From c4716a3f4c9ff9b53863d1f1267056c8f153c0c7 Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 24 Jan 2021 16:11:45 -0500 Subject: [PATCH] Fix cancelling library updates not working --- .../tachiyomi/data/library/LibraryUpdateService.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt index 0714c9fb4..d4d8bf0e4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt @@ -34,6 +34,7 @@ import eu.kanade.tachiyomi.util.storage.getUriCompat import eu.kanade.tachiyomi.util.system.acquireWakeLock import eu.kanade.tachiyomi.util.system.createFileInCacheDir import eu.kanade.tachiyomi.util.system.isServiceRunning +import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope @@ -258,6 +259,10 @@ class LibraryUpdateService( mangaToUpdate .map { manga -> + if (updateJob?.isActive != true) { + throw CancellationException() + } + // Notify manga that will update. notifier.showProgressNotification(manga, progressCount.andIncrement, mangaToUpdate.size) @@ -354,6 +359,10 @@ class LibraryUpdateService( var progressCount = 0 mangaToUpdate.forEach { manga -> + if (updateJob?.isActive != true) { + throw CancellationException() + } + notifier.showProgressNotification(manga, progressCount++, mangaToUpdate.size) sourceManager.get(manga.source)?.let { source -> @@ -384,6 +393,10 @@ class LibraryUpdateService( val loggedServices = trackManager.services.filter { it.isLogged } mangaToUpdate.forEach { manga -> + if (updateJob?.isActive != true) { + throw CancellationException() + } + // Notify manga that will update. notifier.showProgressNotification(manga, progressCount++, mangaToUpdate.size)