浏览代码

Rebase master

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

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

@@ -37,7 +37,7 @@ import com.owncloud.android.lib.common.operations.OperationCancelledException
 import com.owncloud.android.lib.resources.files.ReadFileRemoteOperation
 import com.owncloud.android.lib.resources.files.model.RemoteFile
 import com.owncloud.android.operations.UploadFileOperation
-import com.owncloud.android.utils.FilesUploadHelper
+import com.nextcloud.client.files.uploader.FileUploadHelper
 import junit.framework.Assert.assertEquals
 import junit.framework.Assert.assertFalse
 import junit.framework.Assert.assertTrue
@@ -140,7 +140,7 @@ abstract class FileUploaderIT : AbstractOnServerIT() {
     fun testKeepLocalAndOverwriteRemoteStatic() {
         val file = getDummyFile("chunkedFile.txt")
 
-        FilesUploadHelper().uploadNewFiles(
+        FileUploadHelper().uploadNewFiles(
             user,
             arrayOf(file.absolutePath),
             arrayOf("/testFile.txt"),
@@ -162,7 +162,7 @@ abstract class FileUploaderIT : AbstractOnServerIT() {
         val ocFile2 = OCFile("/testFile.txt")
         ocFile2.storagePath = getDummyFile("empty.txt").absolutePath
 
-        FilesUploadHelper().uploadUpdatedFile(
+        FileUploadHelper().uploadUpdatedFile(
             user,
             arrayOf(ocFile2),
             FileUploadWorker.LOCAL_BEHAVIOUR_COPY,
@@ -256,7 +256,7 @@ abstract class FileUploaderIT : AbstractOnServerIT() {
     fun testKeepBothStatic() {
         val file = getDummyFile("nonEmpty.txt")
 
-        FilesUploadHelper().uploadNewFiles(
+        FileUploadHelper().uploadNewFiles(
             user,
             arrayOf(file.absolutePath),
             arrayOf("/testFile.txt"),
@@ -278,7 +278,7 @@ abstract class FileUploaderIT : AbstractOnServerIT() {
         val ocFile2 = OCFile("/testFile.txt")
         ocFile2.storagePath = getDummyFile("empty.txt").absolutePath
 
-        FilesUploadHelper().uploadUpdatedFile(
+        FileUploadHelper().uploadUpdatedFile(
             user,
             arrayOf(ocFile2),
             FileUploadWorker.LOCAL_BEHAVIOUR_COPY,
@@ -364,7 +364,7 @@ abstract class FileUploaderIT : AbstractOnServerIT() {
     fun testKeepServerStatic() {
         val file = getDummyFile("chunkedFile.txt")
 
-        FilesUploadHelper().uploadNewFiles(
+        FileUploadHelper().uploadNewFiles(
             user,
             arrayOf(file.absolutePath),
             arrayOf("/testFile.txt"),
@@ -386,7 +386,7 @@ abstract class FileUploaderIT : AbstractOnServerIT() {
         val ocFile2 = OCFile("/testFile.txt")
         ocFile2.storagePath = getDummyFile("empty.txt").absolutePath
 
-        FilesUploadHelper().uploadUpdatedFile(
+        FileUploadHelper().uploadUpdatedFile(
             user,
             arrayOf(ocFile2),
             FileUploadWorker.LOCAL_BEHAVIOUR_COPY,
@@ -468,7 +468,7 @@ abstract class FileUploaderIT : AbstractOnServerIT() {
     fun testKeepCancelStatic() {
         val file = getDummyFile("chunkedFile.txt")
 
-        FilesUploadHelper().uploadNewFiles(
+        FileUploadHelper().uploadNewFiles(
             user,
             arrayOf(file.absolutePath),
             arrayOf("/testFile.txt"),
@@ -490,7 +490,7 @@ abstract class FileUploaderIT : AbstractOnServerIT() {
         val ocFile2 = OCFile("/testFile.txt")
         ocFile2.storagePath = getDummyFile("empty.txt").absolutePath
 
-        FilesUploadHelper().uploadUpdatedFile(
+        FileUploadHelper().uploadUpdatedFile(
             user,
             arrayOf(ocFile2),
             FileUploadWorker.LOCAL_BEHAVIOUR_COPY,

+ 2 - 2
app/src/main/java/com/nextcloud/client/di/AppComponent.java

@@ -36,7 +36,7 @@ import com.owncloud.android.MainApp;
 import com.owncloud.android.media.MediaControlView;
 import com.owncloud.android.ui.ThemeableSwitchPreference;
 import com.owncloud.android.ui.whatsnew.ProgressIndicator;
-import com.owncloud.android.utils.FilesUploadHelper;
+import com.nextcloud.client.files.uploader.FileUploadHelper;
 
 import javax.inject.Singleton;
 
@@ -70,7 +70,7 @@ public interface AppComponent {
 
     void inject(ThemeableSwitchPreference switchPreference);
 
-    void inject(FilesUploadHelper filesUploadHelper);
+    void inject(FileUploadHelper fileUploadHelper);
 
     void inject(FileDownloadHelper fileDownloadHelper);
 

+ 2 - 0
app/src/main/java/com/nextcloud/client/di/AppModule.java

@@ -41,6 +41,8 @@ import com.nextcloud.client.core.ClockImpl;
 import com.nextcloud.client.core.ThreadPoolAsyncRunner;
 import com.nextcloud.client.database.dao.ArbitraryDataDao;
 import com.nextcloud.client.device.DeviceInfo;
+import com.nextcloud.client.files.uploader.FileUploadHelper;
+import com.nextcloud.client.jobs.BackgroundJobManager;
 import com.nextcloud.client.logger.FileLogHandler;
 import com.nextcloud.client.logger.Logger;
 import com.nextcloud.client.logger.LoggerImpl;

+ 2 - 2
app/src/main/java/com/nextcloud/client/documentscan/DocumentScanViewModel.kt

@@ -36,7 +36,7 @@ import com.owncloud.android.datamodel.OCFile
 import com.owncloud.android.files.services.NameCollisionPolicy
 import com.owncloud.android.operations.UploadFileOperation
 import com.owncloud.android.ui.helpers.FileOperationsHelper
-import com.owncloud.android.utils.FilesUploadHelper
+import com.nextcloud.client.files.uploader.FileUploadHelper
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
@@ -184,7 +184,7 @@ class DocumentScanViewModel @Inject constructor(
             uploadFolder + OCFile.PATH_SEPARATOR + File(it).name
         }.toTypedArray()
 
-        FilesUploadHelper().uploadNewFiles(
+        FileUploadHelper().uploadNewFiles(
             currentAccountProvider.user,
             pageList.toTypedArray(),
             uploadPaths,

+ 2 - 2
app/src/main/java/com/nextcloud/client/documentscan/GeneratePdfFromImagesWork.kt

@@ -39,7 +39,7 @@ import com.owncloud.android.datamodel.OCFile
 import com.owncloud.android.files.services.NameCollisionPolicy
 import com.owncloud.android.operations.UploadFileOperation
 import com.owncloud.android.ui.notifications.NotificationUtils
-import com.owncloud.android.utils.FilesUploadHelper
+import com.nextcloud.client.files.uploader.FileUploadHelper
 import com.owncloud.android.utils.theme.ViewThemeUtils
 import java.io.File
 import java.security.SecureRandom
@@ -123,7 +123,7 @@ class GeneratePdfFromImagesWork(
     private fun uploadFile(user: User, uploadFolder: String, pdfPath: String) {
         val uploadPath = uploadFolder + OCFile.PATH_SEPARATOR + File(pdfPath).name
 
-        FilesUploadHelper().uploadNewFiles(
+        FileUploadHelper().uploadNewFiles(
             user,
             arrayOf(pdfPath),
             arrayOf(uploadPath),

+ 2 - 2
app/src/main/java/com/nextcloud/client/editimage/EditImageActivity.kt

@@ -44,7 +44,7 @@ import com.owncloud.android.lib.common.operations.OnRemoteOperationListener
 import com.owncloud.android.operations.UploadFileOperation
 import com.owncloud.android.ui.activity.FileActivity
 import com.owncloud.android.utils.DisplayUtils
-import com.owncloud.android.utils.FilesUploadHelper
+import com.nextcloud.client.files.uploader.FileUploadHelper
 import com.owncloud.android.utils.MimeType
 import java.io.File
 
@@ -112,7 +112,7 @@ class EditImageActivity :
             resultUri?.substring(resultUri.lastIndexOf('.'))
 
         resultUri?.let {
-            FilesUploadHelper().uploadNewFiles(
+            FileUploadHelper().uploadNewFiles(
                 user = storageManager.user,
                 localPaths = arrayOf(it),
                 remotePaths = arrayOf(file.parentRemotePath + File.separator + newFileName),

+ 6 - 7
app/src/main/java/com/owncloud/android/utils/FilesUploadHelper.kt → app/src/main/java/com/nextcloud/client/files/uploader/FileUploadHelper.kt

@@ -1,10 +1,9 @@
 /*
- *
  * Nextcloud Android client application
  *
- * @author Tobias Kaminsky
- * Copyright (C) 2022 Tobias Kaminsky
- * Copyright (C) 2022 Nextcloud GmbH
+ * @author Alper Ozturk
+ * Copyright (C) 2023 Alper Ozturk
+ * Copyright (C) 2023 Nextcloud GmbH
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as published by
@@ -20,11 +19,10 @@
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
  */
 
-package com.owncloud.android.utils
+package com.nextcloud.client.files.uploader
 
 import com.nextcloud.client.account.User
 import com.nextcloud.client.account.UserAccountManager
-import com.nextcloud.client.files.uploader.FileUploadWorker
 import com.nextcloud.client.files.uploader.FileUploadWorker.Companion.currentUploadFileOperation
 import com.nextcloud.client.jobs.BackgroundJobManager
 import com.nextcloud.client.jobs.BackgroundJobManagerImpl
@@ -40,7 +38,8 @@ import com.owncloud.android.lib.common.utils.Log_OC
 import javax.inject.Inject
 
 @Suppress("TooManyFunctions")
-class FilesUploadHelper {
+class FileUploadHelper {
+
     @Inject
     lateinit var backgroundJobManager: BackgroundJobManager
 

+ 4 - 5
app/src/main/java/com/nextcloud/client/files/uploader/FileUploadWorker.kt

@@ -48,7 +48,6 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCo
 import com.owncloud.android.lib.common.utils.Log_OC
 import com.owncloud.android.operations.UploadFileOperation
 import com.owncloud.android.utils.ErrorMessageAdapter
-import com.owncloud.android.utils.FilesUploadHelper
 import com.owncloud.android.utils.theme.ViewThemeUtils
 import java.io.File
 
@@ -270,8 +269,8 @@ class FileUploadWorker(
 
             if (accountName != null && remotePath != null) {
                 val key: String =
-                    FilesUploadHelper.buildRemoteName(accountName, remotePath)
-                val boundListener = FilesUploadHelper.mBoundListeners[key]
+                    FileUploadHelper.buildRemoteName(accountName, remotePath)
+                val boundListener = FileUploadHelper.mBoundListeners[key]
 
                 boundListener?.onTransferProgress(
                     progressRate,
@@ -350,7 +349,7 @@ class FileUploadWorker(
                     canUploadBeRetried(failedUpload, gotWifi, charging) && !connectivityService.isInternetWalled
                 ) {
                     // 2B. for existing local files, try restarting it if possible
-                    FilesUploadHelper().retryUpload(failedUpload, uploadUser.get())
+                    FileUploadHelper().retryUpload(failedUpload, uploadUser.get())
                 }
             }
         }
@@ -389,7 +388,7 @@ class FileUploadWorker(
                         return
                     }
 
-                    val uploadHelper = FilesUploadHelper()
+                    val uploadHelper = FileUploadHelper()
                     uploadHelper.cancelFileUpload(remotePath, accountName)
                 }
             }

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

@@ -52,7 +52,7 @@ import com.owncloud.android.ui.activity.SettingsActivity
 import com.owncloud.android.ui.notifications.NotificationUtils
 import com.owncloud.android.utils.FileStorageUtils
 import com.owncloud.android.utils.FilesSyncHelper
-import com.owncloud.android.utils.FilesUploadHelper
+import com.nextcloud.client.files.uploader.FileUploadHelper
 import com.owncloud.android.utils.MimeType
 import com.owncloud.android.utils.MimeTypeUtil
 import java.io.File
@@ -210,7 +210,7 @@ class FilesSyncWork(
             uploadAction = syncedFolder.uploadAction
         }
 
-        FilesUploadHelper().uploadNewFiles(
+        FileUploadHelper().uploadNewFiles(
             user,
             localPaths,
             remotePaths,

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

@@ -34,7 +34,7 @@ import com.owncloud.android.datamodel.UploadsStorageManager.UploadStatus;
 import com.owncloud.android.files.services.NameCollisionPolicy;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.operations.UploadFileOperation;
-import com.owncloud.android.utils.FilesUploadHelper;
+import com.nextcloud.client.files.uploader.FileUploadHelper;
 import com.owncloud.android.utils.MimeTypeUtil;
 
 import java.io.File;
@@ -183,7 +183,7 @@ public class OCUpload implements Parcelable {
         folderUnlockToken = "";
     }
 
-    public void setDataFixed(FilesUploadHelper uploadHelper) {
+    public void setDataFixed(FileUploadHelper uploadHelper) {
         fixedUploadStatus = uploadStatus;
         fixedUploadingNow = uploadHelper != null && uploadHelper.isUploadingNow(this);
         fixedUploadEndTimeStamp = uploadEndTimestamp;

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

@@ -92,7 +92,7 @@ import com.owncloud.android.utils.DataHolderUtil;
 import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.ErrorMessageAdapter;
 import com.owncloud.android.utils.FileSortOrder;
-import com.owncloud.android.utils.FilesUploadHelper;
+import com.nextcloud.client.files.uploader.FileUploadHelper;
 import com.owncloud.android.utils.MimeType;
 import com.owncloud.android.utils.theme.ViewThemeUtils;
 
@@ -885,7 +885,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
     }
 
     public void uploadFile(String tmpName, String filename) {
-        new FilesUploadHelper().uploadNewFiles(
+        new FileUploadHelper().uploadNewFiles(
             getUser().orElseThrow(RuntimeException::new),
             new String[]{ tmpName },
             new String[]{ mFile.getRemotePath() + filename},
@@ -895,7 +895,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
             false,
             false,
             NameCollisionPolicy.ASK_USER
-                                              );
+                                             );
         finish();
     }
 

+ 2 - 1
app/src/main/java/com/owncloud/android/ui/adapter/GalleryAdapter.kt

@@ -63,7 +63,7 @@ class GalleryAdapter(
     transferServiceGetter: ComponentsGetter,
     viewThemeUtils: ViewThemeUtils,
     var columns: Int,
-    val defaultThumbnailSize: Int
+    private val defaultThumbnailSize: Int
 ) : SectionedRecyclerViewAdapter<SectionedViewHolder>(), CommonOCFileListAdapterInterface, PopupTextProvider {
     var files: List<GalleryItems> = mutableListOf()
     private val ocFileListDelegate: OCFileListDelegate
@@ -73,6 +73,7 @@ class GalleryAdapter(
         storageManager = transferServiceGetter.storageManager
 
         ocFileListDelegate = OCFileListDelegate(
+            transferServiceGetter.fileUploaderHelper,
             context,
             ocFileListFragmentInterface,
             user,

+ 3 - 1
app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java

@@ -46,6 +46,7 @@ import android.widget.LinearLayout;
 import com.elyeproj.loaderviewlibrary.LoaderImageView;
 import com.nextcloud.android.common.ui.theme.utils.ColorRole;
 import com.nextcloud.client.account.User;
+import com.nextcloud.client.files.uploader.FileUploadHelper;
 import com.nextcloud.client.preferences.AppPreferences;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
@@ -170,7 +171,8 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
 
         this.viewThemeUtils = viewThemeUtils;
 
-        ocFileListDelegate = new OCFileListDelegate(activity,
+        ocFileListDelegate = new OCFileListDelegate(new FileUploadHelper(),
+                                                    activity,
                                                     ocFileListFragmentInterface,
                                                     user,
                                                     mStorageManager,

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

@@ -67,7 +67,7 @@ import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.notifications.NotificationUtils;
 import com.owncloud.android.ui.preview.PreviewImageFragment;
 import com.owncloud.android.utils.DisplayUtils;
-import com.owncloud.android.utils.FilesUploadHelper;
+import com.nextcloud.client.files.uploader.FileUploadHelper;
 import com.owncloud.android.utils.MimeTypeUtil;
 import com.owncloud.android.utils.theme.ViewThemeUtils;
 
@@ -95,7 +95,7 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
     private final ViewThemeUtils viewThemeUtils;
     private NotificationManager mNotificationManager;
 
-    private final FilesUploadHelper uploadHelper = new FilesUploadHelper();
+    private final FileUploadHelper uploadHelper = new FileUploadHelper();
 
     @Override
     public int getSectionCount() {
@@ -279,12 +279,12 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
                             return;
                         }
 
-                        String targetKey = FilesUploadHelper.Companion.buildRemoteName(ocUpload.getAccountName(), ocUpload.getRemotePath());
+                        String targetKey = FileUploadHelper.Companion.buildRemoteName(ocUpload.getAccountName(), ocUpload.getRemotePath());
                         uploadHelper.removeUploadTransferProgressListener(progressListener, targetKey);
                     }
                     // ... then, bind the current progress bar to listen for updates
                     progressListener = new ProgressListener(item, itemViewHolder.binding.uploadProgressBar);
-                    String targetKey = FilesUploadHelper.Companion.buildRemoteName(item.getAccountName(), item.getRemotePath());
+                    String targetKey = FileUploadHelper.Companion.buildRemoteName(item.getAccountName(), item.getRemotePath());
                     uploadHelper.addUploadTransferProgressListener(progressListener, targetKey);
                 } else {
                     // not really uploading; stop listening progress if view is reused!
@@ -296,7 +296,7 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
                             return;
                         }
 
-                        String targetKey = FilesUploadHelper.Companion.buildRemoteName(ocUpload.getAccountName(), ocUpload.getRemotePath());
+                        String targetKey = FileUploadHelper.Companion.buildRemoteName(ocUpload.getAccountName(), ocUpload.getRemotePath());
 
                         uploadHelper.removeUploadTransferProgressListener(progressListener, targetKey);
                         progressListener = null;

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

@@ -36,7 +36,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCo
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.operations.UploadFileOperation;
 import com.owncloud.android.utils.FileStorageUtils;
-import com.owncloud.android.utils.FilesUploadHelper;
+import com.nextcloud.client.files.uploader.FileUploadHelper;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -247,7 +247,7 @@ public class CopyAndUploadContentUrisTask extends AsyncTask<Object, Void, Result
     }
 
     private void requestUpload(User user, String localPath, String remotePath, int behaviour) {
-        new FilesUploadHelper().uploadNewFiles(
+        new FileUploadHelper().uploadNewFiles(
             user,
             new String[]{ localPath },
             new String[]{ remotePath },

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

@@ -31,20 +31,20 @@ import com.owncloud.android.ui.activity.FileActivity
 import com.owncloud.android.ui.asynctasks.CopyAndUploadContentUrisTask
 import com.owncloud.android.ui.asynctasks.CopyAndUploadContentUrisTask.OnCopyTmpFilesTaskListener
 import com.owncloud.android.ui.fragment.TaskRetainerFragment
-import com.owncloud.android.utils.FilesUploadHelper
+import com.nextcloud.client.files.uploader.FileUploadHelper
 import com.owncloud.android.utils.UriUtils.getDisplayNameForUri
 
 /**
- * This class examines URIs pointing to files to upload and then requests [FilesUploadHelper] to upload them.
+ * This class examines URIs pointing to files to upload and then requests [FileUploadHelper] to upload them.
  *
  *
- * URIs with scheme file:// do not require any previous processing, their path is sent to [FilesUploadHelper] to find
+ * URIs with scheme file:// do not require any previous processing, their path is sent to [FileUploadHelper] to find
  * the source file.
  *
  *
  * URIs with scheme content:// are handling assuming that file is in private storage owned by a different app, and that
  * persistence permission is not granted. Due to this, contents of the file are temporary copied by the OC app, and then
- * passed [FilesUploadHelper].
+ * passed [FileUploadHelper].
  */
 @Suppress(
     "Detekt.LongParameterList",
@@ -114,7 +114,7 @@ class UriUploader(
     private fun isSensitiveUri(uri: Uri): Boolean = uri.toString().contains(mActivity.packageName)
 
     /**
-     * Requests the upload of a file in the local file system to [FilesUploadHelper] service.
+     * Requests the upload of a file in the local file system to [FileUploadHelper] service.
      *
      * The original file will be left in its original location, and will not be duplicated.
      * As a side effect, the user will see the file as not uploaded when accesses to the OC app.
@@ -125,7 +125,7 @@ class UriUploader(
      * @param remotePath    Absolute path in the current OC account to set to the uploaded file.
      */
     private fun requestUpload(localPath: String?, remotePath: String) {
-        FilesUploadHelper().uploadNewFiles(
+        FileUploadHelper().uploadNewFiles(
             user,
             arrayOf(localPath ?: ""),
             arrayOf(remotePath),

+ 6 - 0
app/src/test/java/com/owncloud/android/ui/adapter/GalleryAdapterTest.kt

@@ -24,6 +24,7 @@ package com.owncloud.android.ui.adapter
 
 import android.content.Context
 import com.nextcloud.client.account.User
+import com.nextcloud.client.files.uploader.FileUploadHelper
 import com.nextcloud.client.preferences.AppPreferences
 import com.owncloud.android.datamodel.FileDataStorageManager
 import com.owncloud.android.datamodel.GalleryItems
@@ -60,6 +61,9 @@ class GalleryAdapterTest {
     @Mock
     lateinit var storageManager: FileDataStorageManager
 
+    @Mock
+    lateinit var fileUploadHelper: FileUploadHelper
+
     @Mock
     lateinit var viewThemeUtils: ViewThemeUtils
 
@@ -78,6 +82,8 @@ class GalleryAdapterTest {
     @Test
     fun testItemCount() {
         whenever(transferServiceGetter.storageManager) doReturn storageManager
+        whenever(transferServiceGetter.fileUploaderHelper) doReturn fileUploadHelper
+
         val thumbnailSize = 50
 
         val sut = GalleryAdapter(