浏览代码

Refactor, add info message for not existing cancelled uploads

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk 1 年之前
父节点
当前提交
5b285946d0

+ 12 - 6
app/src/main/java/com/nextcloud/client/jobs/upload/FileUploadHelper.kt

@@ -104,13 +104,14 @@ class FileUploadHelper {
         uploadsStorageManager: UploadsStorageManager,
         connectivityService: ConnectivityService,
         accountManager: UserAccountManager,
-        powerManagementService: PowerManagementService
-    ) {
+        powerManagementService: PowerManagementService,
+    ): Boolean {
         val cancelledUploads = uploadsStorageManager.cancelledUploadsForCurrentAccount
         if (cancelledUploads == null || cancelledUploads.isEmpty()) {
-            return
+            return false
         }
-        retryUploads(
+
+        return retryUploads(
             uploadsStorageManager,
             connectivityService,
             accountManager,
@@ -125,8 +126,9 @@ class FileUploadHelper {
         connectivityService: ConnectivityService,
         accountManager: UserAccountManager,
         powerManagementService: PowerManagementService,
-        failedUploads: Array<OCUpload>
-    ) {
+        failedUploads: Array<OCUpload>,
+    ): Boolean {
+        var showNotExistMessage = false
         val (gotNetwork, _, gotWifi) = connectivityService.connectivity
         val batteryStatus = powerManagementService.battery
         val charging = batteryStatus.isCharging || batteryStatus.isFull
@@ -139,6 +141,8 @@ class FileUploadHelper {
             }
             val isDeleted = !File(failedUpload.localPath).exists()
             if (isDeleted) {
+                showNotExistMessage = true
+
                 // 2A. for deleted files, mark as permanently failed
                 if (failedUpload.lastResult != UploadResult.FILE_NOT_FOUND) {
                     failedUpload.lastResult = UploadResult.FILE_NOT_FOUND
@@ -151,6 +155,8 @@ class FileUploadHelper {
                 retryUpload(failedUpload, uploadUser.get())
             }
         }
+
+        return showNotExistMessage
     }
 
     @Suppress("LongParameterList")

+ 4 - 0
app/src/main/java/com/owncloud/android/db/OCUpload.java

@@ -390,6 +390,10 @@ public class OCUpload implements Parcelable {
         return this.useWifiOnly;
     }
 
+    public boolean exists() {
+        return new File(localPath).exists();
+    }
+
     public boolean isWhileChargingOnly() {
         return this.whileChargingOnly;
     }

+ 24 - 11
app/src/main/java/com/owncloud/android/ui/adapter/UploadListAdapter.java

@@ -175,7 +175,7 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
         failedPopup.show();
     }
 
-    public void showCancelledPopupMenu(HeaderViewHolder headerViewHolder) {
+    private void showCancelledPopupMenu(HeaderViewHolder headerViewHolder) {
         PopupMenu popup = new PopupMenu(MainApp.getAppContext(), headerViewHolder.binding.uploadListAction);
         popup.inflate(R.menu.upload_list_cancelled_options);
 
@@ -186,23 +186,36 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
                 uploadsStorageManager.clearCancelledUploadsForCurrentAccount();
                 loadUploadItemsFromDb();
             } else if (itemId == R.id.action_upload_list_cancelled_resume) {
-
-                new Thread(() -> {
-                    FileUploadHelper.Companion.instance().retryCancelledUploads(
-                        uploadsStorageManager,
-                        connectivityService,
-                        accountManager,
-                        powerManagementService);
-                    parentActivity.runOnUiThread(this::loadUploadItemsFromDb);
-                }).start();
-
+                retryCancelledUploads();
             }
 
             return true;
         });
+
         popup.show();
     }
 
+    private void retryCancelledUploads() {
+        new Thread(() -> {
+            boolean showNotExistMessage = FileUploadHelper.Companion.instance().retryCancelledUploads(
+                uploadsStorageManager,
+                connectivityService,
+                accountManager,
+                powerManagementService);
+
+            parentActivity.runOnUiThread(this::loadUploadItemsFromDb);
+            parentActivity.runOnUiThread(() -> {
+                if (showNotExistMessage) {
+                    showNotExistMessage();
+                }
+            });
+        }).start();
+    }
+
+    private void showNotExistMessage() {
+        DisplayUtils.showSnackMessage(parentActivity, R.string.upload_action_file_not_exist_message);
+    }
+
     @Override
     public void onBindFooterViewHolder(SectionedViewHolder holder, int section) {
         // not needed

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

@@ -853,6 +853,7 @@
     <string name="upload_action_global_upload_pause">Pause all uploads</string>
     <string name="upload_action_global_upload_resume">Resume all uploads</string>
     <string name="dismiss_notification_description">Dismiss notification</string>
+    <string name="upload_action_file_not_exist_message">Some files not exists those files cannot be resumed</string>
     <string name="upload_action_cancelled_resume">Resume cancelled uploads</string>
     <string name="upload_action_cancelled_clear">Clear cancelled uploads</string>
     <string name="upload_manually_cancelled">Upload was cancelled by user</string>