Fix empty lists state with Downloaded filter

master
Koitharu 2 years ago
parent 0fb3c69e10
commit 2df567372e
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -82,17 +82,7 @@ class FavouritesListViewModel @Inject constructor(
observeListModeWithTriggers(), observeListModeWithTriggers(),
refreshTrigger, refreshTrigger,
) { list, filters, mode, _ -> ) { 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 { }.catch {
emit(listOf(it.toErrorState(canRetry = false))) emit(listOf(it.toErrorState(canRetry = false)))
}.stateIn(viewModelScope + Dispatchers.Default, SharingStarted.Eagerly, listOf(LoadingState)) }.stateIn(viewModelScope + Dispatchers.Default, SharingStarted.Eagerly, listOf(LoadingState))
@ -145,6 +135,13 @@ class FavouritesListViewModel @Inject constructor(
} else { } else {
this this
} }
if (list.isEmpty()) {
return if (filters.isEmpty()) {
listOf(getEmptyState(hasFilters = false))
} else {
listOfNotNull(quickFilter.filterItem(filters), getEmptyState(hasFilters = true))
}
}
val result = ArrayList<ListModel>(list.size + 1) val result = ArrayList<ListModel>(list.size + 1)
quickFilter.filterItem(filters)?.let(result::add) quickFilter.filterItem(filters)?.let(result::add)
mangaListMapper.toListModelList(result, list, mode) mangaListMapper.toListModelList(result, list, mode)

@ -96,20 +96,7 @@ class HistoryListViewModel @Inject constructor(
observeListModeWithTriggers(), observeListModeWithTriggers(),
settings.observeAsFlow(AppSettings.KEY_INCOGNITO_MODE) { isIncognitoModeEnabled }, settings.observeAsFlow(AppSettings.KEY_INCOGNITO_MODE) { isIncognitoModeEnabled },
) { filters, list, grouped, mode, incognito -> ) { filters, list, grouped, mode, incognito ->
when { mapList(list, grouped, mode, filters, incognito).also { isReady.set(true) }
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)
}
}
}.onStart { }.onStart {
loadingCounter.increment() loadingCounter.increment()
}.onFirst { }.onFirst {
@ -172,6 +159,13 @@ class HistoryListViewModel @Inject constructor(
} else { } else {
historyList historyList
} }
if (list.isEmpty()) {
return if (filters.isEmpty()) {
listOf(getEmptyState(hasFilters = false))
} else {
listOfNotNull(quickFilter.filterItem(filters), getEmptyState(hasFilters = true))
}
}
val result = ArrayList<ListModel>((if (grouped) (list.size * 1.4).toInt() else list.size) + 2) val result = ArrayList<ListModel>((if (grouped) (list.size * 1.4).toInt() else list.size) + 2)
quickFilter.filterItem(filters)?.let(result::add) quickFilter.filterItem(filters)?.let(result::add)
if (isIncognito) { if (isIncognito) {

Loading…
Cancel
Save