From dd0c3a516e34b935d7d3c3355fe652d2bcda4a28 Mon Sep 17 00:00:00 2001 From: Cuong-Tran Date: Tue, 29 Oct 2024 16:59:37 +0700 Subject: [PATCH] fix crash if cancel migration too soon --- .../ui/browse/migration/advanced/process/MigratingManga.kt | 2 +- .../migration/advanced/process/MigrationListScreenModel.kt | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigratingManga.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigratingManga.kt index 765085a90..f1cc80587 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigratingManga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigratingManga.kt @@ -22,7 +22,7 @@ class MigratingManga( val migrationScope = CoroutineScope(parentContext + SupervisorJob() + Dispatchers.Default) // KMK --> - lateinit var searchingJob: Deferred + var searchingJob: Deferred? = null // KMK <-- val searchResult = MutableStateFlow(SearchResult.Searching) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListScreenModel.kt index b881785e0..16271be2e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigrationListScreenModel.kt @@ -296,7 +296,7 @@ class MigrationListScreenModel( } } // KMK --> - manga.searchingJob.await() + manga.searchingJob?.await() // KMK <-- } catch (e: CancellationException) { // Ignore canceled migrations @@ -571,7 +571,8 @@ class MigrationListScreenModel( screenModelScope.launchIO { val item = migratingItems.value.orEmpty().find { it.manga.id == mangaId } ?: return@launchIO - item.searchingJob.cancel() + item.searchingJob?.cancel() + item.searchingJob = null item.searchResult.value = SearchResult.NotFound sourceFinished() }