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 143e3bc39..d0d1fc776 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt @@ -205,10 +205,11 @@ class LibraryScreenModel( combine( getCategoriesPerLibraryManga.subscribe(), state.map { it.filterCategory }.distinctUntilChanged(), - ::Pair, + state.map { it.searchQuery.isNullOrBlank() && !it.hasActiveFilters }.distinctUntilChanged(), + ::Triple, ), // KMK <-- - ) { (searchQuery, library, _), (tracks, trackingFilter), (groupType, sort), (categoriesPerManga, filterCategory) -> + ) { (searchQuery, library, _), (tracks, trackingFilter), (groupType, sort), (categoriesPerManga, filterCategory, noActiveFilterOrSearch) -> library // SY --> .applyGrouping(/* KMK --> */ if (filterCategory) LibraryGroup.UNGROUPED else /* KMK <-- */ groupType) @@ -238,6 +239,24 @@ class LibraryScreenModel( value } } + // KMK --> + .filter { + noActiveFilterOrSearch || it.value.isNotEmpty() + } + .let { + it.ifEmpty { + mapOf( + Category( + 0, + preferences.context.stringResource(MR.strings.default_category), + 0, + 0, + false, + ) to emptyList(), + ) + } + } + // KMK <-- } .collectLatest { mutableState.update { state -> diff --git a/presentation-core/src/main/java/tachiyomi/presentation/core/screens/EmptyScreen.kt b/presentation-core/src/main/java/tachiyomi/presentation/core/screens/EmptyScreen.kt index dfeb75f3d..8cd150d66 100644 --- a/presentation-core/src/main/java/tachiyomi/presentation/core/screens/EmptyScreen.kt +++ b/presentation-core/src/main/java/tachiyomi/presentation/core/screens/EmptyScreen.kt @@ -90,7 +90,7 @@ fun EmptyScreen( ) // KMK --> - help?.let { help() } + help?.invoke() // KMK <-- if (!actions.isNullOrEmpty()) {