Browse Source

Merge pull request #4712 from nextcloud/fetchRemoteFile

Fix possible IndexOutOfBoundsException if returned array is empty
Andy Scherzinger 5 years ago
parent
commit
3dcbfa1236

+ 4 - 0
src/main/java/com/owncloud/android/ui/asynctasks/FetchRemoteFileTask.java

@@ -26,6 +26,7 @@ import android.os.AsyncTask;
 import android.text.TextUtils;
 
 import com.owncloud.android.MainApp;
+import com.owncloud.android.R;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
@@ -67,6 +68,9 @@ public class FetchRemoteFileTask extends AsyncTask<Void, Void, String> {
         RemoteOperationResult remoteOperationResult = searchRemoteOperation.execute(account, fileDisplayActivity);
 
         if (remoteOperationResult.isSuccess() && remoteOperationResult.getData() != null) {
+            if (remoteOperationResult.getData().isEmpty()) {
+                return fileDisplayActivity.getString(R.string.remote_file_fetch_failed);
+            }
             String remotePath = ((RemoteFile) remoteOperationResult.getData().get(0)).getRemotePath();
 
             ReadFileRemoteOperation operation = new ReadFileRemoteOperation(remotePath);

+ 1 - 0
src/main/res/values/strings.xml

@@ -897,4 +897,5 @@
     <string name="could_not_download_image">Could not download full image</string>
     <string name="file_detail_activity_error">Error retrieving activities for file</string>
     <string name="no_mutliple_accounts_allowed">Only one account allowed</string>
+    <string name="remote_file_fetch_failed">Failed to find file!</string>
 </resources>