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
This commit is contained in:
parent
e32e696606
commit
b95dfa2974
@ -30,7 +30,7 @@ interface EnhancedTrackService {
|
|||||||
/**
|
/**
|
||||||
* Checks whether the provided source/track/manga triplet is from this TrackService
|
* 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
|
* Migrates the given track for the manga to the newSource, if possible
|
||||||
|
@ -105,8 +105,8 @@ class Komga(private val context: Context, id: Int) : TrackService(id), EnhancedT
|
|||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun isTrackFrom(track: Track, manga: Manga, source: Source): Boolean =
|
override fun isTrackFrom(track: Track, manga: Manga, source: Source?): Boolean =
|
||||||
accept(source) && track.tracking_url == manga.url
|
track.tracking_url == manga.url && source?.let { accept(it) } == true
|
||||||
|
|
||||||
override fun migrateTrack(track: Track, manga: Manga, newSource: Source): Track? =
|
override fun migrateTrack(track: Track, manga: Manga, newSource: Source): Track? =
|
||||||
if (accept(newSource)) {
|
if (accept(newSource)) {
|
||||||
|
@ -46,8 +46,8 @@ class MigrationMangaPresenter(
|
|||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
fun migrateManga(prevManga: Manga, manga: Manga, replace: Boolean) {
|
fun migrateManga(prevManga: Manga, manga: Manga, replace: Boolean) {
|
||||||
val prevSource = sourceManager.get(prevManga.source)
|
|
||||||
val source = sourceManager.get(manga.source) ?: return
|
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() }
|
Observable.defer { runAsObservable { source.getChapterList(manga.toMangaInfo()).map { it.toSChapter() } } }.onErrorReturn { emptyList() }
|
||||||
.doOnNext { migrateMangaInternal(prevSource, source, it, prevManga, manga, replace) }
|
.doOnNext { migrateMangaInternal(prevSource, source, it, prevManga, manga, replace) }
|
||||||
@ -105,7 +105,7 @@ class MigrationMangaPresenter(
|
|||||||
track.manga_id = manga.id!!
|
track.manga_id = manga.id!!
|
||||||
|
|
||||||
val service = enhancedServices
|
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)
|
if (service != null) service.migrateTrack(track, manga, source)
|
||||||
else track
|
else track
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user