diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt index c073bfb4e..11f506522 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt @@ -18,6 +18,7 @@ import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.ui.main.MainActivity import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.ui.reader.ReaderActivity +import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.storage.DiskUtil import eu.kanade.tachiyomi.util.storage.getUriCompat import eu.kanade.tachiyomi.util.system.notificationManager @@ -170,16 +171,22 @@ class NotificationReceiver : BroadcastReceiver() { val preferences: PreferencesHelper = Injekt.get() val sourceManager: SourceManager = Injekt.get() - chapterUrls.mapNotNull { db.getChapter(it, mangaId).executeAsBlocking() } - .forEach { - it.read = true - db.updateChapterProgress(it).executeAsBlocking() - if (preferences.removeAfterMarkedAsRead()) { - val manga = db.getManga(mangaId).executeAsBlocking() ?: return - val source = sourceManager.get(manga.source) ?: return - downloadManager.deleteChapters(listOf(it), manga, source) + launchIO { + chapterUrls.mapNotNull { db.getChapter(it, mangaId).executeAsBlocking() } + .forEach { + it.read = true + db.updateChapterProgress(it).executeAsBlocking() + if (preferences.removeAfterMarkedAsRead()) { + val manga = db.getManga(mangaId).executeAsBlocking() + if (manga != null) { + val source = sourceManager.get(manga.source) + if (source != null) { + downloadManager.deleteChapters(listOf(it), manga, source) + } + } + } } - } + } } companion object {