فهرست منبع

Preserve local file behaviour when uploading files with new upload worker

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
Álvaro Brey 2 سال پیش
والد
کامیت
1c33fadb1f

+ 21 - 16
app/src/main/java/com/owncloud/android/files/services/FileUploader.java

@@ -912,19 +912,7 @@ public class FileUploader extends Service
         boolean requiresCharging,
         NameCollisionPolicy nameCollisionPolicy
                                     ) {
-        Intent intent = new Intent(context, FileUploader.class);
 
-        intent.putExtra(FileUploader.KEY_ACCOUNT, user.toPlatformAccount());
-        intent.putExtra(FileUploader.KEY_USER, user);
-        intent.putExtra(FileUploader.KEY_LOCAL_FILE, localPaths);
-        intent.putExtra(FileUploader.KEY_REMOTE_FILE, remotePaths);
-        intent.putExtra(FileUploader.KEY_MIME_TYPE, mimeTypes);
-        intent.putExtra(FileUploader.KEY_LOCAL_BEHAVIOUR, behaviour);
-        intent.putExtra(FileUploader.KEY_CREATE_REMOTE_FOLDER, createRemoteFolder);
-        intent.putExtra(FileUploader.KEY_CREATED_BY, createdBy);
-        intent.putExtra(FileUploader.KEY_WHILE_ON_WIFI_ONLY, requiresWifi);
-        intent.putExtra(FileUploader.KEY_WHILE_CHARGING_ONLY, requiresCharging);
-        intent.putExtra(FileUploader.KEY_NAME_COLLISION_POLICY, nameCollisionPolicy);
 
         if (useFilesUploadWorker(context)) {
             new FilesUploadHelper().uploadNewFiles(user,
@@ -934,11 +922,28 @@ public class FileUploader extends Service
                                                    createdBy,
                                                    requiresWifi,
                                                    requiresCharging,
-                                                   nameCollisionPolicy);
-        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            context.startForegroundService(intent);
+                                                   nameCollisionPolicy,
+                                                   behaviour);
         } else {
-            context.startService(intent);
+            Intent intent = new Intent(context, FileUploader.class);
+
+            intent.putExtra(FileUploader.KEY_ACCOUNT, user.toPlatformAccount());
+            intent.putExtra(FileUploader.KEY_USER, user);
+            intent.putExtra(FileUploader.KEY_LOCAL_FILE, localPaths);
+            intent.putExtra(FileUploader.KEY_REMOTE_FILE, remotePaths);
+            intent.putExtra(FileUploader.KEY_MIME_TYPE, mimeTypes);
+            intent.putExtra(FileUploader.KEY_LOCAL_BEHAVIOUR, behaviour);
+            intent.putExtra(FileUploader.KEY_CREATE_REMOTE_FOLDER, createRemoteFolder);
+            intent.putExtra(FileUploader.KEY_CREATED_BY, createdBy);
+            intent.putExtra(FileUploader.KEY_WHILE_ON_WIFI_ONLY, requiresWifi);
+            intent.putExtra(FileUploader.KEY_WHILE_CHARGING_ONLY, requiresCharging);
+            intent.putExtra(FileUploader.KEY_NAME_COLLISION_POLICY, nameCollisionPolicy);
+
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+                context.startForegroundService(intent);
+            } else {
+                context.startService(intent);
+            }
         }
     }
 

+ 3 - 1
app/src/main/java/com/owncloud/android/utils/FilesUploadHelper.kt

@@ -52,7 +52,8 @@ class FilesUploadHelper {
         createdBy: Int,
         requiresWifi: Boolean,
         requiresCharging: Boolean,
-        nameCollisionPolicy: NameCollisionPolicy
+        nameCollisionPolicy: NameCollisionPolicy,
+        localBehavior: Int
     ) {
         for (i in localPaths.indices) {
             OCUpload(localPaths[i], remotePaths[i], user.accountName).apply {
@@ -62,6 +63,7 @@ class FilesUploadHelper {
                 uploadStatus = UploadsStorageManager.UploadStatus.UPLOAD_IN_PROGRESS
                 this.createdBy = createdBy
                 isCreateRemoteFolder = createRemoteFolder
+                localAction = localBehavior
             }.also {
                 uploadsStorageManager.storeUpload(it)
             }