Преглед изворни кода

MangaScreenModel: Start downloads in IO dispatcher (#10241)

Ivan Iskandar пре 1 година
родитељ
комит
09531e7f5a
1 измењених фајлова са 11 додато и 11 уклоњено
  1. 11 11
      app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt

+ 11 - 11
app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt

@@ -636,18 +636,18 @@ class MangaScreenModel(
     ) {
         val successState = successState ?: return
 
-        if (startNow) {
-            val chapterId = chapters.singleOrNull()?.id ?: return
-            downloadManager.startDownloadNow(chapterId)
-        } else {
-            downloadChapters(chapters)
-        }
-
-        if (!isFavorited && !successState.hasPromptedToAddBefore) {
-            updateSuccessState { state ->
-                state.copy(hasPromptedToAddBefore = true)
+        screenModelScope.launchNonCancellable {
+            if (startNow) {
+                val chapterId = chapters.singleOrNull()?.id ?: return@launchNonCancellable
+                downloadManager.startDownloadNow(chapterId)
+            } else {
+                downloadChapters(chapters)
             }
-            screenModelScope.launch {
+
+            if (!isFavorited && !successState.hasPromptedToAddBefore) {
+                updateSuccessState { state ->
+                    state.copy(hasPromptedToAddBefore = true)
+                }
                 val result = snackbarHostState.showSnackbar(
                     message = context.stringResource(MR.strings.snack_add_to_library),
                     actionLabel = context.stringResource(MR.strings.action_add),