From c217cab5db9c1c972cf22221eb85cdc919beeb6c Mon Sep 17 00:00:00 2001 From: NerdNumber9 Date: Mon, 22 Apr 2019 00:16:38 -0400 Subject: [PATCH] Fix reading progress being lost in some rare cases in galleries opened before v8.4.0 --- .../main/java/exh/eh/EHentaiUpdateHelper.kt | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt b/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt index 40cfd48cf..7527e5b55 100644 --- a/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt +++ b/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt @@ -6,6 +6,8 @@ import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.ChapterImpl import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaCategory +import exh.metadata.metadata.EHentaiSearchMetadata +import exh.metadata.metadata.base.getFlatMetadataForManga import rx.Observable import rx.Single import uy.kohesive.injekt.injectLazy @@ -58,7 +60,24 @@ class EHentaiUpdateHelper(context: Context) { if(toDiscard.isNotEmpty()) { // Copy chain chapters to curChapters val newChapters = toDiscard - .flatMap { it.chapters } + .flatMap { chain -> + val meta by lazy { + db.getFlatMetadataForManga(chain.manga.id!!) + .executeAsBlocking() + ?.raise() + } + + chain.chapters.map { chapter -> + // Convert old style chapters to new style chapters if possible + if(chapter.date_upload <= 0 + && meta?.datePosted != null + && meta?.title != null) { + chapter.name = meta!!.title!! + chapter.date_upload = meta!!.datePosted!! + } + chapter + } + } .fold(accepted.chapters) { curChapters, chapter -> val existing = curChapters.find { it.url == chapter.url }