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

Use BackgroundJobManager for cancel Downloads

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk 1 жил өмнө
parent
commit
74a4271b00

+ 6 - 5
app/src/main/java/com/nextcloud/client/files/downloader/FileDownloadWorker.kt

@@ -37,7 +37,6 @@ import com.nextcloud.client.account.UserAccountManager
 import com.nextcloud.client.jobs.BackgroundJobManagerImpl.Companion.JOB_FILES_DOWNLOAD
 import com.nextcloud.client.notifications.download.DownloadNotificationManager
 import com.nextcloud.java.util.Optional
-import com.nextcloud.utils.extensions.cancelWork
 import com.nextcloud.utils.extensions.isWorkScheduled
 import com.owncloud.android.datamodel.FileDataStorageManager
 import com.owncloud.android.datamodel.OCFile
@@ -353,13 +352,15 @@ class FileDownloadWorker(
         private val boundListeners: MutableMap<Long, OnDatatransferProgressListener> = HashMap()
 
         fun cancelPendingOrCurrentDownloads() {
-            context.cancelWork(JOB_FILES_DOWNLOAD)
+            helper.backgroundJobManager.cancelFilesDownloadJob(currentUser.get())
         }
 
         fun cancelAllDownloadsForAccount(accountName: String?) {
-            if (currentDownload?.user?.nameEquals(accountName) == true) {
-                context.cancelWork(JOB_FILES_DOWNLOAD)
-                currentDownload?.cancel()
+            currentDownload?.user?.let {
+                if (it.nameEquals(accountName)) {
+                    helper.backgroundJobManager.cancelFilesDownloadJob(it)
+                    currentDownload?.cancel()
+                }
             }
 
             removePendingDownload(accountName)

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

@@ -146,6 +146,8 @@ interface BackgroundJobManager {
     fun getFileUploads(user: User): LiveData<List<JobInfo>>
     fun cancelFilesUploadJob(user: User)
 
+    fun cancelFilesDownloadJob(user: User)
+
     @Suppress("LongParameterList")
     fun startFilesDownloadJob(
         user: User,

+ 4 - 0
app/src/main/java/com/nextcloud/client/jobs/BackgroundJobManagerImpl.kt

@@ -609,6 +609,10 @@ internal class BackgroundJobManagerImpl(
         workManager.cancelJob(JOB_FILES_UPLOAD, user)
     }
 
+    override fun cancelFilesDownloadJob(user: User) {
+        workManager.cancelJob(JOB_FILES_DOWNLOAD, user)
+    }
+
     override fun startPdfGenerateAndUploadWork(
         user: User,
         uploadFolder: String,

+ 0 - 4
app/src/main/java/com/nextcloud/utils/extensions/ContextExtensions.kt

@@ -64,7 +64,3 @@ fun Context.isWorkScheduled(tag: String): Boolean {
 
     return running
 }
-
-fun Context.cancelWork(tag: String) {
-    WorkManager.getInstance(this).cancelAllWorkByTag(tag)
-}