From b95dfa297482d57e5936377daa329e2bf3357f38 Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 23 Jan 2022 17:21:23 -0500 Subject: [PATCH] Avoid migration failing if previous source doesn't exist (cherry picked from commit 89dbb4d300b7a5dc6f1dcb01d6366f731f730217) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt --- .../eu/kanade/tachiyomi/data/track/EnhancedTrackService.kt | 2 +- .../main/java/eu/kanade/tachiyomi/data/track/komga/Komga.kt | 4 ++-- .../ui/browse/migration/manga/MigrationMangaPresenter.kt | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/EnhancedTrackService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/EnhancedTrackService.kt index 21ee0e7e4..08060f3da 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/EnhancedTrackService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/EnhancedTrackService.kt @@ -30,7 +30,7 @@ interface EnhancedTrackService { /** * Checks whether the provided source/track/manga triplet is from this TrackService */ - fun isTrackFrom(track: Track, manga: Manga, source: Source): Boolean + fun isTrackFrom(track: Track, manga: Manga, source: Source?): Boolean /** * Migrates the given track for the manga to the newSource, if possible diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/komga/Komga.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/komga/Komga.kt index 03afcb213..b9cb86518 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/komga/Komga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/komga/Komga.kt @@ -105,8 +105,8 @@ class Komga(private val context: Context, id: Int) : TrackService(id), EnhancedT null } - override fun isTrackFrom(track: Track, manga: Manga, source: Source): Boolean = - accept(source) && track.tracking_url == manga.url + override fun isTrackFrom(track: Track, manga: Manga, source: Source?): Boolean = + track.tracking_url == manga.url && source?.let { accept(it) } == true override fun migrateTrack(track: Track, manga: Manga, newSource: Source): Track? = if (accept(newSource)) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrationMangaPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrationMangaPresenter.kt index 6e15d17b2..ceb78812b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrationMangaPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/manga/MigrationMangaPresenter.kt @@ -46,8 +46,8 @@ class MigrationMangaPresenter( // SY --> fun migrateManga(prevManga: Manga, manga: Manga, replace: Boolean) { - val prevSource = sourceManager.get(prevManga.source) val source = sourceManager.get(manga.source) ?: return + val prevSource = sourceManager.get(prevManga.source) Observable.defer { runAsObservable { source.getChapterList(manga.toMangaInfo()).map { it.toSChapter() } } }.onErrorReturn { emptyList() } .doOnNext { migrateMangaInternal(prevSource, source, it, prevManga, manga, replace) } @@ -105,7 +105,7 @@ class MigrationMangaPresenter( track.manga_id = manga.id!! val service = enhancedServices - .firstOrNull { prevSource != null && it.isTrackFrom(track, prevManga, prevSource) } + .firstOrNull { it.isTrackFrom(track, prevManga, prevSource) } if (service != null) service.migrateTrack(track, manga, source) else track }