Эх сурвалжийг харах

Try to workaround disappeared files bug

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic 8 жил өмнө
parent
commit
8cabe1f3d9

+ 29 - 26
src/main/java/com/owncloud/android/utils/FilesSyncHelper.java

@@ -42,6 +42,7 @@ import com.owncloud.android.datamodel.SyncedFolder;
 import com.owncloud.android.datamodel.SyncedFolderProvider;
 import com.owncloud.android.datamodel.UploadsStorageManager;
 import com.owncloud.android.db.OCUpload;
+import com.owncloud.android.db.UploadResult;
 import com.owncloud.android.jobs.AutoUploadJob;
 
 import org.lukhnos.nnio.file.FileVisitResult;
@@ -219,36 +220,38 @@ public class FilesSyncHelper {
         UploadsStorageManager uploadsStorageManager = new UploadsStorageManager(context.getContentResolver(), context);
         OCUpload[] failedUploads = uploadsStorageManager.getFailedUploads();
 
-        boolean accountExists = false;
+        boolean accountExists;
         for (OCUpload failedUpload: failedUploads) {
             accountExists = false;
-            uploadsStorageManager.removeUpload(failedUpload);
-
-            // check if accounts still exists
-            for (Account account : AccountUtils.getAccounts(context)) {
-                if (account.name.equals(failedUpload.getAccountName())) {
-                    accountExists = true;
-                    break;
+            if (!failedUpload.getLastResult().equals(UploadResult.UPLOADED)) {
+                uploadsStorageManager.removeUpload(failedUpload);
+
+                // check if accounts still exists
+                for (Account account : AccountUtils.getAccounts(context)) {
+                    if (account.name.equals(failedUpload.getAccountName())) {
+                        accountExists = true;
+                        break;
+                    }
                 }
-            }
 
-            if (accountExists) {
-                PersistableBundleCompat bundle = new PersistableBundleCompat();
-                bundle.putString(AutoUploadJob.LOCAL_PATH, failedUpload.getLocalPath());
-                bundle.putString(AutoUploadJob.REMOTE_PATH, failedUpload.getRemotePath());
-                bundle.putString(AutoUploadJob.ACCOUNT, failedUpload.getAccountName());
-                bundle.putInt(AutoUploadJob.UPLOAD_BEHAVIOUR, failedUpload.getLocalAction());
-
-                new JobRequest.Builder(AutoUploadJob.TAG)
-                        .setExecutionWindow(30_000L, 80_000L)
-                        .setRequiresCharging(failedUpload.isWhileChargingOnly())
-                        .setRequiredNetworkType(failedUpload.isUseWifiOnly() ? JobRequest.NetworkType.UNMETERED :
-                                JobRequest.NetworkType.CONNECTED)
-                        .setExtras(bundle)
-                        .setRequirementsEnforced(true)
-                        .setUpdateCurrent(false)
-                        .build()
-                        .schedule();
+                if (accountExists) {
+                    PersistableBundleCompat bundle = new PersistableBundleCompat();
+                    bundle.putString(AutoUploadJob.LOCAL_PATH, failedUpload.getLocalPath());
+                    bundle.putString(AutoUploadJob.REMOTE_PATH, failedUpload.getRemotePath());
+                    bundle.putString(AutoUploadJob.ACCOUNT, failedUpload.getAccountName());
+                    bundle.putInt(AutoUploadJob.UPLOAD_BEHAVIOUR, failedUpload.getLocalAction());
+
+                    new JobRequest.Builder(AutoUploadJob.TAG)
+                            .setExecutionWindow(30_000L, 80_000L)
+                            .setRequiresCharging(failedUpload.isWhileChargingOnly())
+                            .setRequiredNetworkType(failedUpload.isUseWifiOnly() ? JobRequest.NetworkType.UNMETERED :
+                                    JobRequest.NetworkType.CONNECTED)
+                            .setExtras(bundle)
+                            .setRequirementsEnforced(true)
+                            .setUpdateCurrent(false)
+                            .build()
+                            .schedule();
+                }
             }
         }
     }