mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 06:17:57 +01:00 
			
		
		
		
	Perform mark as read action in IO coroutine scope to avoid freezing app
This commit is contained in:
		| @@ -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 { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user