From 8c0419657bb6ca2651b170404f6e17f883c8a825 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Sat, 10 Oct 2026 01:43:28 +0600 Subject: [PATCH] Always update library entries that were never initialized (#3179) Closes #3179 Closes #3144 Co-authored-by: NarwhalHorns --- .../eu/kanade/tachiyomi/data/library/LibraryUpdateWorker.kt | 5 ++++- .../mihon/domain/source/interactor/UpdateMangaFromRemote.kt | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateWorker.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateWorker.kt index 8b95987c6..a101c9f96 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateWorker.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateWorker.kt @@ -189,6 +189,9 @@ class LibraryUpdateWorker(private val context: Context, workerParams: WorkerPara mangaToUpdate = listToUpdate .filter { when { + // Entries added without opening them have no details yet + !it.manga.initialized -> true + it.manga.updateStrategy == UpdateStrategy.ONLY_FETCH_ONCE && it.totalChapters > 0L -> { skippedUpdates.add( it.manga to context.stringResource(MR.strings.skipped_reason_not_always_update), @@ -347,7 +350,7 @@ class LibraryUpdateWorker(private val context: Context, workerParams: WorkerPara val update = updateMangaFromRemote( source = source, manga = manga, - fetchDetails = libraryPreferences.autoUpdateMetadata.get(), + fetchDetails = !manga.initialized || libraryPreferences.autoUpdateMetadata.get(), fetchChapters = true, fetchWindow = fetchWindow, ) diff --git a/app/src/main/java/mihon/domain/source/interactor/UpdateMangaFromRemote.kt b/app/src/main/java/mihon/domain/source/interactor/UpdateMangaFromRemote.kt index 05a7b4d99..ab1fe2fa7 100644 --- a/app/src/main/java/mihon/domain/source/interactor/UpdateMangaFromRemote.kt +++ b/app/src/main/java/mihon/domain/source/interactor/UpdateMangaFromRemote.kt @@ -69,7 +69,7 @@ class UpdateMangaFromRemote( fetchChapters = fetchChapters, ) } - awaitUpdateFromSource(manga, update.manga, manualFetch) + awaitUpdateFromSource(manga, update.manga, fetchDetails, manualFetch) val newChapters = syncChaptersWithSource.await( rawSourceChapters = update.chapters, manga = manga, @@ -89,6 +89,7 @@ class UpdateMangaFromRemote( private suspend fun awaitUpdateFromSource( localManga: Manga, remoteManga: SManga, + fetchDetails: Boolean, manualFetch: Boolean, ): Boolean { val remoteTitle = try { @@ -134,7 +135,7 @@ class UpdateMangaFromRemote( thumbnailUrl = thumbnailUrl, status = remoteManga.status.toLong(), updateStrategy = remoteManga.update_strategy, - initialized = true, + initialized = localManga.initialized || fetchDetails, memo = remoteManga.memo, ), )