Perform mark as read action in IO coroutine scope to avoid freezing app
Cette révision appartient à :
Parent
10272ef395
révision
79bc1290ae
1 fichiers modifiés avec 16 ajouts et 9 suppressions
|
@ -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 {
|
||||
|
|
Référencer dans un nouveau ticket