chore(manga): Try not to use GlobalScope as much as possible

This commit is contained in:
Ahmad Ansori Palembani 2024-12-08 08:09:37 +07:00
parent 28cbf0b988
commit 823860a56f
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6

View file

@ -191,6 +191,7 @@ suspend fun Manga.addOrRemoveToFavorites(
migrateManga = { source, faved ->
onMangaAdded(source to faved)
},
scope = scope,
)
return null
}
@ -376,6 +377,8 @@ private suspend fun showAddDuplicateDialog(
controller: Controller,
addManga: suspend () -> Unit,
migrateManga: (Long, Boolean) -> Unit,
@OptIn(DelicateCoroutinesApi::class)
scope: CoroutineScope = GlobalScope,
) = withUIContext {
val source = sourceManager.getOrStub(libraryManga.source)
@ -385,7 +388,7 @@ private suspend fun showAddDuplicateDialog(
val enabled = titles.indices.map { listView.isItemChecked(it) }.toTypedArray()
val flags = MigrationFlags.getFlagsFromPositions(enabled, libraryManga)
val enhancedServices by lazy { Injekt.get<TrackManager>().services.filterIsInstance<EnhancedTrackService>() }
launchUI {
scope.launchUI {
MigrationProcessAdapter.migrateMangaInternal(
flags,
enhancedServices,
@ -415,7 +418,7 @@ private suspend fun showAddDuplicateDialog(
MangaDetailsController(libraryManga)
.withFadeTransaction(),
)
1 -> launchIO { addManga() }
1 -> scope.launchIO { addManga() }
2 -> {
if (!newManga.initialized) {
activity.toast(MR.strings.must_view_details_before_migration, Toast.LENGTH_LONG)