diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/deeplink/DeepLinkScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/deeplink/DeepLinkScreenModel.kt index 5bef14675b..892d4c0f24 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/deeplink/DeepLinkScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/deeplink/DeepLinkScreenModel.kt @@ -15,7 +15,6 @@ import kotlinx.coroutines.flow.update import tachiyomi.core.common.util.lang.launchIO import tachiyomi.domain.chapter.interactor.GetChapterByUrlAndMangaId import tachiyomi.domain.chapter.model.Chapter -import tachiyomi.domain.manga.interactor.GetMangaByUrlAndSourceId import tachiyomi.domain.manga.interactor.NetworkToLocalManga import tachiyomi.domain.manga.model.Manga import tachiyomi.domain.source.service.SourceManager @@ -27,7 +26,6 @@ class DeepLinkScreenModel( private val sourceManager: SourceManager = Injekt.get(), private val networkToLocalManga: NetworkToLocalManga = Injekt.get(), private val getChapterByUrlAndMangaId: GetChapterByUrlAndMangaId = Injekt.get(), - private val getMangaByUrlAndSourceId: GetMangaByUrlAndSourceId = Injekt.get(), private val syncChaptersWithSource: SyncChaptersWithSource = Injekt.get(), ) : StateScreenModel(State.Loading) { @@ -74,8 +72,7 @@ class DeepLinkScreenModel( } private suspend fun getMangaFromSManga(sManga: SManga, sourceId: Long): Manga { - return getMangaByUrlAndSourceId.await(sManga.url, sourceId) - ?: networkToLocalManga.await(sManga.toDomainManga(sourceId)) + return networkToLocalManga.await(sManga.toDomainManga(sourceId)) } sealed interface State { diff --git a/app/src/main/java/exh/GalleryAdder.kt b/app/src/main/java/exh/GalleryAdder.kt index 1f035ecb5f..91b272120f 100644 --- a/app/src/main/java/exh/GalleryAdder.kt +++ b/app/src/main/java/exh/GalleryAdder.kt @@ -135,13 +135,12 @@ class GalleryAdder( } ?: return GalleryAddEvent.Fail.UnknownType(url, context) // Use manga in DB if possible, otherwise, make a new manga - var manga = getManga.await(cleanedMangaUrl, source.id) - ?: networkToLocalManga.await( - Manga.create().copy( - source = source.id, - url = cleanedMangaUrl, - ), - ) + var manga = networkToLocalManga.await( + Manga.create().copy( + source = source.id, + url = cleanedMangaUrl, + ), + ) // Fetch and copy details val newManga = retry(retry) { source.getMangaDetails(manga.toSManga()) } diff --git a/domain/src/main/java/tachiyomi/domain/manga/interactor/NetworkToLocalManga.kt b/domain/src/main/java/tachiyomi/domain/manga/interactor/NetworkToLocalManga.kt index 255951568e..4e1422c274 100644 --- a/domain/src/main/java/tachiyomi/domain/manga/interactor/NetworkToLocalManga.kt +++ b/domain/src/main/java/tachiyomi/domain/manga/interactor/NetworkToLocalManga.kt @@ -1,6 +1,8 @@ package tachiyomi.domain.manga.interactor +import exh.util.nullIfBlank import tachiyomi.domain.manga.model.Manga +import tachiyomi.domain.manga.model.toMangaUpdate import tachiyomi.domain.manga.repository.MangaRepository class NetworkToLocalManga( @@ -15,9 +17,15 @@ class NetworkToLocalManga( manga.copy(id = id!!) } !localManga.favorite -> { - // if the manga isn't a favorite, set its display title from source - // if it later becomes a favorite, updated title will go to db - localManga.copy(/* SY --> */ogTitle/* SY <-- */ = manga.title) + // if the manga isn't a favorite, update new info from source to db + mangaRepository.update( + manga.toMangaUpdate() + .copy( + id = localManga.id, + thumbnailUrl = manga.ogThumbnailUrl?.nullIfBlank(), + ), + ) + manga.copy(id = localManga.id) } else -> { localManga