Преглед на файлове

Clean up startDownloadNow function a bit

Fixes #9330, I think. If it was even still an issue.
arkon преди 1 година
родител
ревизия
3aead3a2a9
променени са 1 файла, в които са добавени 16 реда и са изтрити 16 реда
  1. 16 16
      app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt

+ 16 - 16
app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt

@@ -68,7 +68,13 @@ class DownloadManager(
      * Tells the downloader to begin downloads.
      */
     fun startDownloads() {
-        DownloadJob.start(context)
+        if (downloader.isRunning) return
+
+        if (DownloadJob.isRunning(context)) {
+            downloader.start()
+        } else {
+            DownloadJob.start(context)
+        }
     }
 
     /**
@@ -97,22 +103,16 @@ class DownloadManager(
         return queueState.value.find { it.chapter.id == chapterId }
     }
 
-    fun startDownloadNow(chapterId: Long?) {
-        if (chapterId == null) return
-        val download = getQueuedDownloadOrNull(chapterId)
+    fun startDownloadNow(chapterId: Long) {
+        val existingDownload = getQueuedDownloadOrNull(chapterId)
         // If not in queue try to start a new download
-        val toAdd = download ?: runBlocking { Download.fromChapterId(chapterId) } ?: return
-        val queue = queueState.value.toMutableList()
-        download?.let { queue.remove(it) }
-        queue.add(0, toAdd)
-        reorderQueue(queue)
-        if (!downloader.isRunning) {
-            if (DownloadJob.isRunning(context)) {
-                downloader.start()
-            } else {
-                DownloadJob.start(context)
-            }
+        val toAdd = existingDownload ?: runBlocking { Download.fromChapterId(chapterId) } ?: return
+        queueState.value.toMutableList().apply {
+            existingDownload?.let { remove(it) }
+            add(0, toAdd)
+            reorderQueue(this)
         }
+        startDownloads()
     }
 
     /**
@@ -146,7 +146,7 @@ class DownloadManager(
             addAll(0, downloads)
             reorderQueue(this)
         }
-        if (!DownloadJob.isRunning(context)) DownloadJob.start(context)
+        if (!DownloadJob.isRunning(context)) startDownloads()
     }
 
     /**