From e7c29705613900d411b3e61d606f4385badc4879 Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 27 Nov 2022 10:43:38 -0500 Subject: [PATCH] Show empty library message properly Fixes #8632 The `library` map still contains the default category even when "empty". (cherry picked from commit ac1bed38f93e6b8e51b6f8cc2dae97c7ccb5f9b6) --- .../main/java/eu/kanade/tachiyomi/ui/library/LibraryScreen.kt | 4 ++-- .../java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreen.kt index 74004c5df..1f81ba0f6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreen.kt @@ -179,7 +179,7 @@ object LibraryScreen : Screen { return@Scaffold } - if (state.searchQuery.isNullOrEmpty() && state.library.isEmpty()) { + if (state.searchQuery.isNullOrEmpty() && state.libraryCount == 0) { val handler = LocalUriHandler.current EmptyScreen( textResource = R.string.information_empty_library, @@ -201,7 +201,7 @@ object LibraryScreen : Screen { selection = state.selection, contentPadding = contentPadding, currentPage = { screenModel.activeCategory }, - isLibraryEmpty = state.library.isEmpty(), + isLibraryEmpty = state.libraryCount == 0, showPageTabs = state.showCategoryTabs, onChangeCurrentPage = { screenModel.activeCategory = it }, onMangaClicked = { router.openManga(it) }, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt index 3112e8f75..c0b27b5b7 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt @@ -13,6 +13,7 @@ import cafe.adriel.voyager.core.model.coroutineScope import eu.kanade.core.prefs.CheckboxState import eu.kanade.core.prefs.PreferenceMutableState import eu.kanade.core.prefs.asState +import eu.kanade.core.util.fastDistinctBy import eu.kanade.core.util.fastFilter import eu.kanade.core.util.fastFilterNot import eu.kanade.core.util.fastMapNotNull @@ -1315,7 +1316,7 @@ class LibraryScreenModel( val libraryCount by lazy { library .flatMap { (_, v) -> v } - .distinctBy { it.libraryManga.manga.id } + .fastDistinctBy { it.libraryManga.manga.id } .size }