parent
9a7e456edf
commit
f3e0ee56df
|
@ -82,22 +82,26 @@ class TrendingViewModel @Inject constructor(
|
||||||
|
|
||||||
mastodonApi.trendingTags().fold(
|
mastodonApi.trendingTags().fold(
|
||||||
{ tagResponse ->
|
{ tagResponse ->
|
||||||
val homeFilters = deferredFilters.await().getOrNull()?.filter { filter ->
|
|
||||||
filter.context.contains(Filter.Kind.HOME.kind)
|
val firstTag = tagResponse.firstOrNull()
|
||||||
}
|
_uiState.value = if (firstTag == null) {
|
||||||
val tags = tagResponse
|
TrendingUiState(emptyList(), LoadingState.LOADED)
|
||||||
.filter { tag ->
|
} else {
|
||||||
homeFilters?.none { filter ->
|
val homeFilters = deferredFilters.await().getOrNull()?.filter { filter ->
|
||||||
filter.keywords.any { keyword -> keyword.keyword.equals(tag.name, ignoreCase = true) }
|
filter.context.contains(Filter.Kind.HOME.kind)
|
||||||
} ?: false
|
|
||||||
}
|
}
|
||||||
.sortedByDescending { tag -> tag.history.sumOf { it.uses.toLongOrNull() ?: 0 } }
|
val tags = tagResponse
|
||||||
.toViewData()
|
.filter { tag ->
|
||||||
|
homeFilters?.none { filter ->
|
||||||
|
filter.keywords.any { keyword -> keyword.keyword.equals(tag.name, ignoreCase = true) }
|
||||||
|
} ?: false
|
||||||
|
}
|
||||||
|
.sortedByDescending { tag -> tag.history.sumOf { it.uses.toLongOrNull() ?: 0 } }
|
||||||
|
.toViewData()
|
||||||
|
|
||||||
val firstTag = tagResponse.first()
|
val header = TrendingViewData.Header(firstTag.start(), firstTag.end())
|
||||||
val header = TrendingViewData.Header(firstTag.start(), firstTag.end())
|
TrendingUiState(listOf(header) + tags, LoadingState.LOADED)
|
||||||
|
}
|
||||||
_uiState.value = TrendingUiState(listOf(header) + tags, LoadingState.LOADED)
|
|
||||||
},
|
},
|
||||||
{ error ->
|
{ error ->
|
||||||
Log.w(TAG, "failed loading trending tags", error)
|
Log.w(TAG, "failed loading trending tags", error)
|
||||||
|
|
Loading…
Reference in New Issue