mirror of
https://github.com/mihonapp/mihon.git
synced 2025-02-11 09:38:55 +01:00
Merge 1c202920be03b909a1a9b523a563d4146562bbb0 into 40fe5f8437172a82fd29ef702707e67d45d85dcf
This commit is contained in:
commit
4daa425122
@ -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<DeepLinkScreenModel.State>(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 {
|
||||
|
@ -1,6 +1,7 @@
|
||||
package tachiyomi.domain.manga.interactor
|
||||
|
||||
import tachiyomi.domain.manga.model.Manga
|
||||
import tachiyomi.domain.manga.model.toMangaUpdate
|
||||
import tachiyomi.domain.manga.repository.MangaRepository
|
||||
|
||||
class NetworkToLocalManga(
|
||||
@ -15,9 +16,21 @@ 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(title = manga.title)
|
||||
// if the manga isn't a favorite, update new info from source to db
|
||||
val newThumbnail = manga.thumbnailUrl?.takeUnless { it.isBlank() }
|
||||
val mangaUpdate = if (manga.initialized) {
|
||||
manga.toMangaUpdate().copy(
|
||||
id = localManga.id,
|
||||
thumbnailUrl = newThumbnail,
|
||||
)
|
||||
} else {
|
||||
localManga.toMangaUpdate().copy(
|
||||
title = manga.title,
|
||||
thumbnailUrl = newThumbnail,
|
||||
)
|
||||
}
|
||||
mangaRepository.update(mangaUpdate)
|
||||
manga.copy(id = localManga.id)
|
||||
}
|
||||
else -> {
|
||||
localManga
|
||||
|
Loading…
x
Reference in New Issue
Block a user