Always update library entries that were never initialized (#3179)

Closes #3179
Closes #3144

Co-authored-by: NarwhalHorns <onefailedgamer@gamil.com>
This commit is contained in:
AntsyLich
2026-10-10 17:36:19 +06:00
co-authored by NarwhalHorns
parent 36ec043a5c
commit 8c0419657b
2 changed files with 7 additions and 3 deletions
@@ -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,
)
@@ -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,
),
)