diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/list/FavouritesListViewModel.kt b/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/list/FavouritesListViewModel.kt index f7718107e..a5ead0d80 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/list/FavouritesListViewModel.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/favourites/ui/list/FavouritesListViewModel.kt @@ -82,17 +82,7 @@ class FavouritesListViewModel @Inject constructor( observeListModeWithTriggers(), refreshTrigger, ) { list, filters, mode, _ -> - when { - list.isEmpty() -> if (filters.isEmpty()) { - listOf(getEmptyState(hasFilters = false)) - } else { - listOfNotNull(quickFilter.filterItem(filters), getEmptyState(hasFilters = true)) - } - - else -> { - list.mapList(mode, filters).also { isReady.set(true) } - } - } + list.mapList(mode, filters).also { isReady.set(true) } }.catch { emit(listOf(it.toErrorState(canRetry = false))) }.stateIn(viewModelScope + Dispatchers.Default, SharingStarted.Eagerly, listOf(LoadingState)) @@ -145,6 +135,13 @@ class FavouritesListViewModel @Inject constructor( } else { this } + if (list.isEmpty()) { + return if (filters.isEmpty()) { + listOf(getEmptyState(hasFilters = false)) + } else { + listOfNotNull(quickFilter.filterItem(filters), getEmptyState(hasFilters = true)) + } + } val result = ArrayList(list.size + 1) quickFilter.filterItem(filters)?.let(result::add) mangaListMapper.toListModelList(result, list, mode) diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt b/app/src/main/kotlin/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt index 2b01621ba..414d1df73 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt @@ -96,20 +96,7 @@ class HistoryListViewModel @Inject constructor( observeListModeWithTriggers(), settings.observeAsFlow(AppSettings.KEY_INCOGNITO_MODE) { isIncognitoModeEnabled }, ) { filters, list, grouped, mode, incognito -> - when { - list.isEmpty() -> { - if (filters.isEmpty()) { - listOf(getEmptyState(hasFilters = false)) - } else { - listOfNotNull(quickFilter.filterItem(filters), getEmptyState(hasFilters = true)) - } - } - - else -> { - isReady.set(true) - mapList(list, grouped, mode, filters, incognito) - } - } + mapList(list, grouped, mode, filters, incognito).also { isReady.set(true) } }.onStart { loadingCounter.increment() }.onFirst { @@ -172,6 +159,13 @@ class HistoryListViewModel @Inject constructor( } else { historyList } + if (list.isEmpty()) { + return if (filters.isEmpty()) { + listOf(getEmptyState(hasFilters = false)) + } else { + listOfNotNull(quickFilter.filterItem(filters), getEmptyState(hasFilters = true)) + } + } val result = ArrayList((if (grouped) (list.size * 1.4).toInt() else list.size) + 2) quickFilter.filterItem(filters)?.let(result::add) if (isIncognito) {