فهرست منبع

Migrate some FileUploader and FileDownloader APIs to User

Signed-off-by: Chris Narkiewicz <hello@ezaquarii.com>
Chris Narkiewicz 2 سال پیش
والد
کامیت
1d81a705bf
17فایلهای تغییر یافته به همراه72 افزوده شده و 86 حذف شده
  1. 8 8
      app/src/androidTest/java/com/owncloud/android/files/services/FileUploaderIT.kt
  2. 1 1
      app/src/main/java/com/nextcloud/client/jobs/FilesSyncWork.kt
  3. 1 1
      app/src/main/java/com/owncloud/android/datamodel/UploadsStorageManager.java
  4. 8 11
      app/src/main/java/com/owncloud/android/files/services/FileDownloader.java
  5. 31 35
      app/src/main/java/com/owncloud/android/files/services/FileUploader.java
  6. 1 6
      app/src/main/java/com/owncloud/android/operations/DownloadFileOperation.java
  7. 4 4
      app/src/main/java/com/owncloud/android/operations/RefreshFolderOperation.java
  8. 1 1
      app/src/main/java/com/owncloud/android/operations/SynchronizeFileOperation.java
  9. 1 1
      app/src/main/java/com/owncloud/android/operations/SynchronizeFolderOperation.java
  10. 2 6
      app/src/main/java/com/owncloud/android/operations/UploadFileOperation.java
  11. 1 1
      app/src/main/java/com/owncloud/android/providers/DocumentsStorageProvider.java
  12. 3 3
      app/src/main/java/com/owncloud/android/ui/activity/ConflictsResolveActivity.java
  13. 1 1
      app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java
  14. 2 1
      app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java
  15. 3 3
      app/src/main/java/com/owncloud/android/ui/asynctasks/CopyAndUploadContentUrisTask.java
  16. 1 1
      app/src/main/java/com/owncloud/android/ui/helpers/UriUploader.java
  17. 3 2
      app/src/main/java/com/owncloud/android/utils/EncryptionUtils.java

+ 8 - 8
app/src/androidTest/java/com/owncloud/android/files/services/FileUploaderIT.kt

@@ -136,7 +136,7 @@ class FileUploaderIT : AbstractOnServerIT() {
 
         FileUploader.uploadNewFile(
             targetContext,
-            account,
+            user,
             file.absolutePath,
             "/testFile.txt",
             FileUploader.LOCAL_BEHAVIOUR_COPY,
@@ -160,7 +160,7 @@ class FileUploaderIT : AbstractOnServerIT() {
 
         FileUploader.uploadUpdateFile(
             targetContext,
-            account,
+            user,
             ocFile2,
             FileUploader.LOCAL_BEHAVIOUR_COPY,
             NameCollisionPolicy.OVERWRITE
@@ -255,7 +255,7 @@ class FileUploaderIT : AbstractOnServerIT() {
 
         FileUploader.uploadNewFile(
             targetContext,
-            account,
+            user,
             file.absolutePath,
             "/testFile.txt",
             FileUploader.LOCAL_BEHAVIOUR_COPY,
@@ -279,7 +279,7 @@ class FileUploaderIT : AbstractOnServerIT() {
 
         FileUploader.uploadUpdateFile(
             targetContext,
-            account,
+            user,
             ocFile2,
             FileUploader.LOCAL_BEHAVIOUR_COPY,
             NameCollisionPolicy.RENAME
@@ -366,7 +366,7 @@ class FileUploaderIT : AbstractOnServerIT() {
 
         FileUploader.uploadNewFile(
             targetContext,
-            account,
+            user,
             file.absolutePath,
             "/testFile.txt",
             FileUploader.LOCAL_BEHAVIOUR_COPY,
@@ -390,7 +390,7 @@ class FileUploaderIT : AbstractOnServerIT() {
 
         FileUploader.uploadUpdateFile(
             targetContext,
-            account,
+            user,
             ocFile2,
             FileUploader.LOCAL_BEHAVIOUR_COPY,
             NameCollisionPolicy.CANCEL
@@ -473,7 +473,7 @@ class FileUploaderIT : AbstractOnServerIT() {
 
         FileUploader.uploadNewFile(
             targetContext,
-            account,
+            user,
             file.absolutePath,
             "/testFile.txt",
             FileUploader.LOCAL_BEHAVIOUR_COPY,
@@ -497,7 +497,7 @@ class FileUploaderIT : AbstractOnServerIT() {
 
         FileUploader.uploadUpdateFile(
             targetContext,
-            account,
+            user,
             ocFile2,
             FileUploader.LOCAL_BEHAVIOUR_COPY,
             NameCollisionPolicy.CANCEL

+ 1 - 1
app/src/main/java/com/nextcloud/client/jobs/FilesSyncWork.kt

@@ -173,7 +173,7 @@ class FilesSyncWork(
             }
             FileUploader.uploadNewFile(
                 context,
-                user.toPlatformAccount(),
+                user,
                 file.absolutePath,
                 FileStorageUtils.getInstantUploadFilePath(
                     file,

+ 1 - 1
app/src/main/java/com/owncloud/android/datamodel/UploadsStorageManager.java

@@ -560,7 +560,7 @@ public class UploadsStorageManager extends Observable {
 
         if (uploadResult.isCancelled()) {
             removeUpload(
-                    upload.getAccount().name,
+                    upload.getUser().getAccountName(),
                     upload.getRemotePath()
             );
         } else {

+ 8 - 11
app/src/main/java/com/owncloud/android/files/services/FileDownloader.java

@@ -269,7 +269,7 @@ public class FileDownloader extends Service
     @Override
     public void onAccountsUpdated(Account[] accounts) {
          //review the current download and cancel it if its account doesn't exist
-        if (mCurrentDownload != null && !accountManager.exists(mCurrentDownload.getAccount())) {
+        if (mCurrentDownload != null && !accountManager.exists(mCurrentDownload.getUser().toPlatformAccount())) {
             mCurrentDownload.cancel();
         }
         // The rest of downloads are cancelled when they try to start
@@ -443,15 +443,12 @@ public class FileDownloader extends Service
 
         if (mCurrentDownload != null) {
             // Detect if the account exists
-            if (accountManager.exists(mCurrentDownload.getAccount())) {
-                Log_OC.d(TAG, "Account " + mCurrentDownload.getAccount().name + " exists");
-
+            if (accountManager.exists(mCurrentDownload.getUser().toPlatformAccount())) {
                 notifyDownloadStart(mCurrentDownload);
-
                 RemoteOperationResult downloadResult = null;
                 try {
                     /// prepare client object to send the request to the ownCloud server
-                    Account currentDownloadAccount = mCurrentDownload.getAccount();
+                    Account currentDownloadAccount = mCurrentDownload.getUser().toPlatformAccount();
                     Optional<User> currentDownloadUser = accountManager.getUser(currentDownloadAccount.name);
                     if (!currentUser.equals(currentDownloadUser)) {
                         currentUser = currentDownloadUser;
@@ -641,7 +638,7 @@ public class FileDownloader extends Service
                     .setProgress(0, 0, false);
 
             if (needsToUpdateCredentials) {
-                configureUpdateCredentialsNotification(download.getAccount());
+                configureUpdateCredentialsNotification(download.getUser());
 
             } else {
                 // TODO put something smart in showDetailsIntent
@@ -666,10 +663,10 @@ public class FileDownloader extends Service
         }
     }
 
-    private void configureUpdateCredentialsNotification(Account account) {
+    private void configureUpdateCredentialsNotification(User user) {
         // let the user update credentials with one click
         Intent updateAccountCredentials = new Intent(this, AuthenticatorActivity.class);
-        updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, account);
+        updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, user.toPlatformAccount());
         updateAccountCredentials.putExtra(
                 AuthenticatorActivity.EXTRA_ACTION,
                 AuthenticatorActivity.ACTION_UPDATE_EXPIRED_TOKEN
@@ -701,7 +698,7 @@ public class FileDownloader extends Service
 
         Intent end = new Intent(getDownloadFinishMessage());
         end.putExtra(EXTRA_DOWNLOAD_RESULT, downloadResult.isSuccess());
-        end.putExtra(ACCOUNT_NAME, download.getAccount().name);
+        end.putExtra(ACCOUNT_NAME, download.getUser().getAccountName());
         end.putExtra(EXTRA_REMOTE_PATH, download.getRemotePath());
         end.putExtra(OCFileListFragment.DOWNLOAD_BEHAVIOUR, download.getBehaviour());
         end.putExtra(SendShareDialog.ACTIVITY_NAME, download.getActivityName());
@@ -723,7 +720,7 @@ public class FileDownloader extends Service
     private void sendBroadcastNewDownload(DownloadFileOperation download,
                                           String linkedToRemotePath) {
         Intent added = new Intent(getDownloadAddedMessage());
-        added.putExtra(ACCOUNT_NAME, download.getAccount().name);
+        added.putExtra(ACCOUNT_NAME, download.getUser().getAccountName());
         added.putExtra(EXTRA_REMOTE_PATH, download.getRemotePath());
         added.putExtra(EXTRA_LINKED_TO_PATH, linkedToRemotePath);
         added.setPackage(getPackageName());

+ 31 - 35
app/src/main/java/com/owncloud/android/files/services/FileUploader.java

@@ -142,11 +142,18 @@ public class FileUploader extends Service
      * Call this Service with KEY_RETRY and KEY_RETRY_UPLOAD to retry upload of file identified by KEY_RETRY_UPLOAD.
      */
     private static final String KEY_RETRY_UPLOAD = "KEY_RETRY_UPLOAD";
+
     /**
      * {@link Account} to which file is to be uploaded.
      */
     public static final String KEY_ACCOUNT = "ACCOUNT";
 
+    /**
+     * {@link User} for which file is to be uploaded.
+     */
+    public static final String KEY_USER = "USER";
+
+
     /**
      * What {@link NameCollisionPolicy} to do when the file already exists on the remote.
      */
@@ -584,7 +591,7 @@ public class FileUploader extends Service
     @Override
     public void onAccountsUpdated(Account[] accounts) {
         // Review current upload, and cancel it if its account doesn't exist
-        if (mCurrentUpload != null && !accountManager.exists(mCurrentUpload.getAccount())) {
+        if (mCurrentUpload != null && !accountManager.exists(mCurrentUpload.getUser().toPlatformAccount())) {
             mCurrentUpload.cancel(ResultCode.ACCOUNT_NOT_FOUND);
         }
         // The rest of uploads are cancelled when they try to start
@@ -600,8 +607,8 @@ public class FileUploader extends Service
 
         if (mCurrentUpload != null) {
             /// Check account existence
-            if (!accountManager.exists(mCurrentUpload.getAccount())) {
-                Log_OC.w(TAG, "Account " + mCurrentUpload.getAccount().name +
+            if (!accountManager.exists(mCurrentUpload.getUser().toPlatformAccount())) {
+                Log_OC.w(TAG, "Account " + mCurrentUpload.getUser().getAccountName() +
                     " does not exist anymore -> cancelling all its uploads");
                 cancelPendingUploads(mCurrentUpload.getUser().getAccountName());
                 return;
@@ -618,28 +625,14 @@ public class FileUploader extends Service
 
             try {
                 /// prepare client object to send the request to the ownCloud server
-                if (mCurrentAccount == null || !mCurrentAccount.equals(mCurrentUpload.getAccount())) {
-                    mCurrentAccount = mCurrentUpload.getAccount();
+                if (mCurrentAccount == null || !mCurrentAccount.equals(mCurrentUpload.getUser().toPlatformAccount())) {
+                    mCurrentAccount = mCurrentUpload.getUser().toPlatformAccount();
                     mStorageManager = new FileDataStorageManager(getCurrentUser().get(), getContentResolver());
                 }   // else, reuse storage manager from previous operation
-
                 // always get client from client manager, to get fresh credentials in case of update
                 OwnCloudAccount ocAccount = new OwnCloudAccount(mCurrentAccount, this);
                 mUploadClient = OwnCloudClientManagerFactory.getDefaultSingleton().getClientFor(ocAccount, this);
-
-
-//                // If parent folder is encrypted, upload file encrypted
-//                OCFile parent = mStorageManager.getFileByPath(mCurrentUpload.getFile().getParentRemotePath());
-
-//                if (parent.isEncrypted()) {
-//                    UploadEncryptedFileOperation uploadEncryptedFileOperation =
-//                            new UploadEncryptedFileOperation(parent, mCurrentUpload);
-//
-//                    uploadResult = uploadEncryptedFileOperation.execute(mUploadClient, mStorageManager);
-//                } else {
-                /// perform the regular upload
                 uploadResult = mCurrentUpload.execute(mUploadClient);
-//                }
             } catch (Exception e) {
                 Log_OC.e(TAG, "Error uploading", e);
                 uploadResult = new RemoteOperationResult(e);
@@ -810,7 +803,7 @@ public class FileUploader extends Service
                 // let the user update credentials with one click
                 Intent updateAccountCredentials = new Intent(this, AuthenticatorActivity.class);
                 updateAccountCredentials.putExtra(
-                    AuthenticatorActivity.EXTRA_ACCOUNT, upload.getAccount()
+                    AuthenticatorActivity.EXTRA_ACCOUNT, upload.getUser().toPlatformAccount()
                 );
                 updateAccountCredentials.putExtra(
                     AuthenticatorActivity.EXTRA_ACTION,
@@ -878,7 +871,7 @@ public class FileUploader extends Service
         Intent start = new Intent(getUploadStartMessage());
         start.putExtra(EXTRA_REMOTE_PATH, upload.getRemotePath()); // real remote
         start.putExtra(EXTRA_OLD_FILE_PATH, upload.getOriginalStoragePath());
-        start.putExtra(ACCOUNT_NAME, upload.getAccount().name);
+        start.putExtra(ACCOUNT_NAME, upload.getUser().getAccountName());
 
         start.setPackage(getPackageName());
         localBroadcastManager.sendBroadcast(start);
@@ -908,7 +901,7 @@ public class FileUploader extends Service
             end.putExtra(EXTRA_OLD_REMOTE_PATH, upload.getOldFile().getRemotePath());
         }
         end.putExtra(EXTRA_OLD_FILE_PATH, upload.getOriginalStoragePath());
-        end.putExtra(ACCOUNT_NAME, upload.getAccount().name);
+        end.putExtra(ACCOUNT_NAME, upload.getUser().getAccountName());
         end.putExtra(EXTRA_UPLOAD_RESULT, uploadResult.isSuccess());
         if (unlinkedFromRemotePath != null) {
             end.putExtra(EXTRA_LINKED_TO_PATH, unlinkedFromRemotePath);
@@ -932,7 +925,7 @@ public class FileUploader extends Service
      */
     public static void uploadNewFile(
         Context context,
-        Account account,
+        User user,
         String localPath,
         String remotePath,
         int behaviour,
@@ -945,7 +938,7 @@ public class FileUploader extends Service
     ) {
         uploadNewFile(
             context,
-            account,
+            user,
             new String[]{localPath},
             new String[]{remotePath},
             new String[]{mimeType},
@@ -963,7 +956,7 @@ public class FileUploader extends Service
      */
     public static void uploadNewFile(
         Context context,
-        Account account,
+        User user,
         String[] localPaths,
         String[] remotePaths,
         String[] mimeTypes,
@@ -976,7 +969,8 @@ public class FileUploader extends Service
     ) {
         Intent intent = new Intent(context, FileUploader.class);
 
-        intent.putExtra(FileUploader.KEY_ACCOUNT, account);
+        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);
@@ -999,12 +993,12 @@ public class FileUploader extends Service
      */
     public static void uploadUpdateFile(
         Context context,
-        Account account,
+        User user,
         OCFile existingFile,
         Integer behaviour,
         NameCollisionPolicy nameCollisionPolicy
-                                       ) {
-        uploadUpdateFile(context, account, new OCFile[]{existingFile}, behaviour, nameCollisionPolicy, true);
+    ) {
+        uploadUpdateFile(context, user, new OCFile[]{existingFile}, behaviour, nameCollisionPolicy, true);
     }
 
     /**
@@ -1012,13 +1006,13 @@ public class FileUploader extends Service
      */
     public static void uploadUpdateFile(
         Context context,
-        Account account,
+        User user,
         OCFile existingFile,
         Integer behaviour,
         NameCollisionPolicy nameCollisionPolicy,
         boolean disableRetries
                                        ) {
-        uploadUpdateFile(context, account, new OCFile[]{existingFile}, behaviour, nameCollisionPolicy, disableRetries);
+        uploadUpdateFile(context, user, new OCFile[]{existingFile}, behaviour, nameCollisionPolicy, disableRetries);
     }
 
     /**
@@ -1026,7 +1020,7 @@ public class FileUploader extends Service
      */
     public static void uploadUpdateFile(
         Context context,
-        Account account,
+        User user,
         OCFile[] existingFiles,
         Integer behaviour,
         NameCollisionPolicy nameCollisionPolicy,
@@ -1034,7 +1028,8 @@ public class FileUploader extends Service
                                        ) {
         Intent intent = new Intent(context, FileUploader.class);
 
-        intent.putExtra(FileUploader.KEY_ACCOUNT, account);
+        intent.putExtra(FileUploader.KEY_USER, user);
+        intent.putExtra(FileUploader.KEY_ACCOUNT, user.toPlatformAccount());
         intent.putExtra(FileUploader.KEY_FILE, existingFiles);
         intent.putExtra(FileUploader.KEY_LOCAL_BEHAVIOUR, behaviour);
         intent.putExtra(FileUploader.KEY_NAME_COLLISION_POLICY, nameCollisionPolicy);
@@ -1053,6 +1048,7 @@ public class FileUploader extends Service
     public static void retryUpload(@NonNull Context context, @NonNull User user, @NonNull OCUpload upload) {
         Intent i = new Intent(context, FileUploader.class);
         i.putExtra(FileUploader.KEY_RETRY, true);
+        i.putExtra(FileUploader.KEY_USER, user);
         i.putExtra(FileUploader.KEY_ACCOUNT, user.toPlatformAccount());
         i.putExtra(FileUploader.KEY_RETRY_UPLOAD, upload);
 
@@ -1323,7 +1319,7 @@ public class FileUploader extends Service
             long totalToTransfer,
             String fileName
         ) {
-            String key = buildRemoteName(mCurrentUpload.getAccount().name, mCurrentUpload.getFile().getRemotePath());
+            String key = buildRemoteName(mCurrentUpload.getUser().getAccountName(), mCurrentUpload.getFile().getRemotePath());
             OnDatatransferProgressListener boundListener = mBoundListeners.get(key);
 
             if (boundListener != null) {
@@ -1344,7 +1340,7 @@ public class FileUploader extends Service
 
                 if (cancelReason != null) {
                     cancel(
-                        mCurrentUpload.getAccount().name,
+                        mCurrentUpload.getUser().getAccountName(),
                         mCurrentUpload.getFile().getRemotePath(),
                         cancelReason
                     );

+ 1 - 6
app/src/main/java/com/owncloud/android/operations/DownloadFileOperation.java

@@ -185,7 +185,7 @@ public class DownloadFileOperation extends RemoteOperation {
                 DecryptedFolderMetadata metadata = EncryptionUtils.downloadFolderMetadata(parent,
                                                                                           client,
                                                                                           context,
-                                                                                          user.toPlatformAccount());
+                                                                                          user);
 
                 if (metadata == null) {
                     return new RemoteOperationResult(RemoteOperationResult.ResultCode.METADATA_NOT_FOUND);
@@ -239,11 +239,6 @@ public class DownloadFileOperation extends RemoteOperation {
         }
     }
 
-    @Deprecated
-    public Account getAccount() {
-        return this.user.toPlatformAccount();
-    }
-
     public User getUser() {
         return this.user;
     }

+ 4 - 4
app/src/main/java/com/owncloud/android/operations/RefreshFolderOperation.java

@@ -316,7 +316,7 @@ public class RefreshFolderOperation extends RemoteOperation {
     }
 
     private void updateDirectEditing(ArbitraryDataProvider arbitraryDataProvider, String newDirectEditingEtag) {
-        RemoteOperationResult<DirectEditing> result = new DirectEditingObtainRemoteOperation().execute(user.toPlatformAccount(),
+        RemoteOperationResult<DirectEditing> result = new DirectEditingObtainRemoteOperation().execute(user,
                                                                                                        mContext);
 
         if (result.isSuccess()) {
@@ -474,7 +474,7 @@ public class RefreshFolderOperation extends RemoteOperation {
         DecryptedFolderMetadata metadata = getDecryptedFolderMetadata(encryptedAncestor,
                                                                       mLocalFolder,
                                                                       getClient(),
-                                                                      user.toPlatformAccount(),
+                                                                      user,
                                                                       mContext);
 
         // get current data about local contents of the folder to synchronize
@@ -539,11 +539,11 @@ public class RefreshFolderOperation extends RemoteOperation {
     public static DecryptedFolderMetadata getDecryptedFolderMetadata(boolean encryptedAncestor,
                                                                      OCFile localFolder,
                                                                      OwnCloudClient client,
-                                                                     Account account,
+                                                                     User user,
                                                                      Context context) {
         DecryptedFolderMetadata metadata;
         if (encryptedAncestor) {
-            metadata = EncryptionUtils.downloadFolderMetadata(localFolder, client, context, account);
+            metadata = EncryptionUtils.downloadFolderMetadata(localFolder, client, context, user);
         } else {
             metadata = null;
         }

+ 1 - 1
app/src/main/java/com/owncloud/android/operations/SynchronizeFileOperation.java

@@ -300,7 +300,7 @@ public class SynchronizeFileOperation extends SyncOperation {
     private void requestForUpload(OCFile file) {
         FileUploader.uploadUpdateFile(
                 mContext,
-                mUser.toPlatformAccount(),
+                mUser,
                 file,
                 FileUploader.LOCAL_BEHAVIOUR_MOVE,
                 NameCollisionPolicy.OVERWRITE

+ 1 - 1
app/src/main/java/com/owncloud/android/operations/SynchronizeFolderOperation.java

@@ -283,7 +283,7 @@ public class SynchronizeFolderOperation extends SyncOperation {
         DecryptedFolderMetadata metadata = RefreshFolderOperation.getDecryptedFolderMetadata(encryptedAncestor,
                                                                                              mLocalFolder,
                                                                                              getClient(),
-                                                                                             user.toPlatformAccount(),
+                                                                                             user,
                                                                                              mContext);
 
         // get current data about local contents of the folder to synchronize

+ 2 - 6
app/src/main/java/com/owncloud/android/operations/UploadFileOperation.java

@@ -264,10 +264,6 @@ public class UploadFileOperation extends SyncOperation {
 
     public boolean isIgnoringPowerSaveMode() { return mIgnoringPowerSaveMode; }
 
-    public Account getAccount() {
-        return user.toPlatformAccount();
-    }
-
     public User getUser() {
         return user;
     }
@@ -468,8 +464,8 @@ public class UploadFileOperation extends SyncOperation {
 
         ArbitraryDataProvider arbitraryDataProvider = new ArbitraryDataProvider(getContext().getContentResolver());
 
-        String privateKey = arbitraryDataProvider.getValue(getAccount().name, EncryptionUtils.PRIVATE_KEY);
-        String publicKey = arbitraryDataProvider.getValue(getAccount().name, EncryptionUtils.PUBLIC_KEY);
+        String privateKey = arbitraryDataProvider.getValue(user.getAccountName(), EncryptionUtils.PRIVATE_KEY);
+        String publicKey = arbitraryDataProvider.getValue(user.getAccountName(), EncryptionUtils.PUBLIC_KEY);
 
         try {
             // check conditions

+ 1 - 1
app/src/main/java/com/owncloud/android/providers/DocumentsStorageProvider.java

@@ -263,7 +263,7 @@ public class DocumentsStorageProvider extends DocumentsProvider {
                         // upload file with FileUploader service (off main thread)
                         FileUploader.uploadUpdateFile(
                             context,
-                            user.toPlatformAccount(),
+                            user,
                             ocFile,
                             LOCAL_BEHAVIOUR_DELETE,
                             NameCollisionPolicy.OVERWRITE,

+ 3 - 3
app/src/main/java/com/owncloud/android/ui/activity/ConflictsResolveActivity.java

@@ -113,7 +113,7 @@ public class ConflictsResolveActivity extends FileActivity implements OnConflict
         listener = decision -> {
             OCFile file = newFile; // local file got changed, so either upload it or replace it again by server
             // version
-
+            User user = getUser().orElseThrow(RuntimeException::new);
             switch (decision) {
                 case CANCEL:
                     // nothing to do
@@ -121,7 +121,7 @@ public class ConflictsResolveActivity extends FileActivity implements OnConflict
                 case KEEP_LOCAL: // Upload
                     FileUploader.uploadUpdateFile(
                             getBaseContext(),
-                            getAccount(),
+                            user,
                             file,
                             localBehaviour,
                             NameCollisionPolicy.OVERWRITE
@@ -132,7 +132,7 @@ public class ConflictsResolveActivity extends FileActivity implements OnConflict
                 case KEEP_BOTH: // Upload
                     FileUploader.uploadUpdateFile(
                             getBaseContext(),
-                            getAccount(),
+                            user,
                             file,
                             localBehaviour,
                             NameCollisionPolicy.RENAME

+ 1 - 1
app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -907,7 +907,7 @@ public class FileDisplayActivity extends FileActivity
 
             FileUploader.uploadNewFile(
                 this,
-                getAccount(),
+                getUser().orElseThrow(RuntimeException::new),
                 filePaths,
                 remotePaths,
                 null,           // MIME type will be detected from file name

+ 2 - 1
app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java

@@ -63,6 +63,7 @@ import android.widget.Toast;
 import com.google.android.material.button.MaterialButton;
 import com.google.android.material.textfield.TextInputEditText;
 import com.google.android.material.textfield.TextInputLayout;
+import com.nextcloud.client.account.User;
 import com.nextcloud.client.di.Injectable;
 import com.nextcloud.client.preferences.AppPreferences;
 import com.owncloud.android.MainApp;
@@ -898,7 +899,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
     public void uploadFile(String tmpName, String filename) {
         FileUploader.uploadNewFile(
                 getBaseContext(),
-                getAccount(),
+                getUser().orElseThrow(RuntimeException::new),
                 tmpName,
                 mFile.getRemotePath() + filename,
                 FileUploader.LOCAL_BEHAVIOUR_COPY,

+ 3 - 3
app/src/main/java/com/owncloud/android/ui/asynctasks/CopyAndUploadContentUrisTask.java

@@ -191,7 +191,7 @@ public class CopyAndUploadContentUrisTask extends AsyncTask<Object, Void, Result
                 }
 
                 requestUpload(
-                    user.toPlatformAccount(),
+                    user,
                     fullTempPath,
                     currentRemotePath,
                     behaviour,
@@ -249,10 +249,10 @@ public class CopyAndUploadContentUrisTask extends AsyncTask<Object, Void, Result
         return result;
     }
 
-    private void requestUpload(Account account, String localPath, String remotePath, int behaviour, String mimeType) {
+    private void requestUpload(User user, String localPath, String remotePath, int behaviour, String mimeType) {
         FileUploader.uploadNewFile(
                 mAppContext,
-                account,
+                user,
                 localPath,
                 remotePath,
                 behaviour,

+ 1 - 1
app/src/main/java/com/owncloud/android/ui/helpers/UriUploader.java

@@ -157,7 +157,7 @@ public class UriUploader {
     private void requestUpload(String localPath, String remotePath) {
         FileUploader.uploadNewFile(
             mActivity,
-            user.toPlatformAccount(),
+            user,
             localPath,
             remotePath,
             mBehaviour,

+ 3 - 2
app/src/main/java/com/owncloud/android/utils/EncryptionUtils.java

@@ -29,6 +29,7 @@ import android.util.Pair;
 
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
+import com.nextcloud.client.account.User;
 import com.owncloud.android.datamodel.ArbitraryDataProvider;
 import com.owncloud.android.datamodel.DecryptedFolderMetadata;
 import com.owncloud.android.datamodel.EncryptedFolderMetadata;
@@ -223,7 +224,7 @@ public final class EncryptionUtils {
      */
     public static @Nullable
     DecryptedFolderMetadata downloadFolderMetadata(OCFile folder, OwnCloudClient client,
-                                                   Context context, Account account) {
+                                                   Context context, User user) {
         RemoteOperationResult getMetadataOperationResult = new GetMetadataRemoteOperation(folder.getLocalId())
             .execute(client);
 
@@ -234,7 +235,7 @@ public final class EncryptionUtils {
         // decrypt metadata
         ArbitraryDataProvider arbitraryDataProvider = new ArbitraryDataProvider(context.getContentResolver());
         String serializedEncryptedMetadata = (String) getMetadataOperationResult.getData().get(0);
-        String privateKey = arbitraryDataProvider.getValue(account.name, EncryptionUtils.PRIVATE_KEY);
+        String privateKey = arbitraryDataProvider.getValue(user.getAccountName(), EncryptionUtils.PRIVATE_KEY);
 
         EncryptedFolderMetadata encryptedFolderMetadata = EncryptionUtils.deserializeJSON(
                 serializedEncryptedMetadata, new TypeToken<EncryptedFolderMetadata>() {