diff --git a/data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt b/data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt index 490bd1631..bc7eb9e91 100644 --- a/data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt +++ b/data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt @@ -151,6 +151,11 @@ class MangaRepositoryImpl( dateAdded = it.dateAdded, updateStrategy = it.updateStrategy, version = it.version, + // SY --> + updateTitle = it.ogTitle.isNotBlank(), + updateCover = !it.ogThumbnailUrl.isNullOrBlank(), + // SY <-- + updateDetails = it.initialized, mapper = MangaMapper::mapManga, ) .executeAsOne() diff --git a/data/src/main/sqldelight/tachiyomi/data/mangas.sq b/data/src/main/sqldelight/tachiyomi/data/mangas.sq index cf0de16ce..3ff054d91 100644 --- a/data/src/main/sqldelight/tachiyomi/data/mangas.sq +++ b/data/src/main/sqldelight/tachiyomi/data/mangas.sq @@ -208,9 +208,18 @@ insertNetworkManga { :updateStrategy, :calculateInterval, 0, :version WHERE NOT EXISTS(SELECT 0 FROM mangas WHERE source = :source AND url = :url); - -- Update the title if it is not favorite + -- Update the relevant details if applicable and not favorite UPDATE mangas - SET title = :title + SET + title = CASE WHEN :updateTitle THEN :title ELSE title END, + thumbnail_url = CASE WHEN :updateCover THEN :thumbnailUrl ELSE thumbnail_url END, + author = CASE WHEN :updateDetails THEN :author ELSE author END, + artist = CASE WHEN :updateDetails THEN :artist ELSE artist END, + description = CASE WHEN :updateDetails THEN :description ELSE description END, + genre = CASE WHEN :updateDetails THEN :genre ELSE genre END, + status = CASE WHEN :updateDetails THEN :status ELSE status END, + update_strategy = CASE WHEN :updateDetails THEN :updateStrategy ELSE update_strategy END, + initialized = :updateDetails WHERE source = :source AND url = :url AND favorite = 0; 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 a3e35d6e3..69137d9e9 100644 --- a/domain/src/main/java/tachiyomi/domain/manga/interactor/NetworkToLocalManga.kt +++ b/domain/src/main/java/tachiyomi/domain/manga/interactor/NetworkToLocalManga.kt @@ -8,7 +8,7 @@ class NetworkToLocalManga( ) { suspend operator fun invoke(manga: Manga): Manga { - return mangaRepository.insertNetworkManga(listOf(manga)).single() + return invoke(listOf(manga)).single() } suspend operator fun invoke(manga: List): List {