From 5942daa4e11b8750da6ee5ce3ed7ebf3fc0154a8 Mon Sep 17 00:00:00 2001 From: "Cuong M. Tran" Date: Fri, 3 May 2024 10:21:22 +0700 Subject: [PATCH] Related titles: switch to Map to avoid duplicated entries --- .../eu/kanade/presentation/manga/MangaScreen.kt | 4 ++-- .../kanade/tachiyomi/ui/manga/MangaScreenModel.kt | 15 +++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) 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 a434b69ce..e650595df 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt @@ -579,7 +579,7 @@ private fun MangaScreenSmallImpl( onClick = { /* Should show a page with grid/list of all the related manga */ }, ) { RelatedMangas( - mangas = state.relatedMangas, + mangas = state.relatedMangas.map { it.value }, getMangaState = { getMangaState(it) }, onClickManga = onRelatedMangaClick, onLongClickManga = onRelatedMangaLongClick, @@ -941,7 +941,7 @@ fun MangaScreenLargeImpl( onClick = { /* Should show a page with grid/list of all the related manga */ }, ) { RelatedMangas( - mangas = state.relatedMangas, + mangas = state.relatedMangas.map { it.value }, getMangaState = { getMangaState(it) }, onClickManga = onRelatedMangaClick, onLongClickManga = onRelatedMangaLongClick, 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 6a823c8b9..c427f939e 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 @@ -1105,12 +1105,15 @@ class MangaScreenModel( withIOContext { if (state.source !is MergedSource) { val relatedMangas = if (Injekt.get().relatedMangas().get()) { - withIOContext { - state.source.getRelatedMangaList(state.manga.toSManga()) - .map { - networkToLocalManga.await(it.toDomainManga(state.source.id)) - } + val map = mutableMapOf() + val list = state.source.getRelatedMangaList(state.manga.toSManga()) + .map { + networkToLocalManga.await(it.toDomainManga(state.source.id)) + } + list.forEach { + map[it.id] = it } + map } else { null } @@ -1711,7 +1714,7 @@ class MangaScreenModel( val previewsRowCount: Int, // SY <-- // KMK --> - val relatedMangas: List? = null, + val relatedMangas: MutableMap? = null, // KMK <-- ) : State { val processedChapters by lazy {