From 9a12a904ba63d74512ac63bf37f9403a3ecfd459 Mon Sep 17 00:00:00 2001 From: "Tran M. Cuong" Date: Wed, 28 Aug 2024 18:36:52 +0700 Subject: [PATCH] safe-guard some edge-cases where chapters are duplicated some how on a merged entry (#311) --- app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt | 4 +++- .../java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt index 187ce3127..596d34728 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt @@ -1204,7 +1204,9 @@ private fun LazyListScope.sharedChapterItems( items = chapters, key = { item -> when (item) { - is ChapterList.MissingCount -> "missing-count-${item.id}" + // KMK: using hashcode to prevent edge-cases where the missing count might duplicate, + // especially on merged manga + is ChapterList.MissingCount -> "missing-count-${item.hashCode()}" is ChapterList.Item -> "chapter-${item.id}" } }, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt index e56c5c5ea..9994205a9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt @@ -1832,6 +1832,10 @@ class MangaScreenModel( val processedChapters by lazy { chapters.applyFilters(manga).toList() + // KMK --> + // safe-guard some edge-cases where chapters are duplicated some how on a merged entry + .distinctBy { it.id } + // KMK <-- } val isAnySelected by lazy {