Я получаю ответ от data api, и мне нужно показать эти данные в представлении переработчика, группируя данные на основе источника.
По сути, я получаю Список ArticalDto, и я хочу преобразовать этот список в Список, так как мне нужно сгруппировать данные по источникам и показать в виде переработчика в многократном представлении. Я думал использовать GroupBy или Map для этого, но не получил точного подхода. Вот код, который я написал для получения данных из сети.
class ContentListViewModel : BaseViewModel() {
internal val result = MutableLiveData<Result<ArticlesDto>>()
/**
* Fetches news from sources.
* You do not need to understand this implementation in order to complete the assignment.
* All the updates (response) are posted to the [result] liveData.
*/
fun fetchNews(params: ContentParams = ContentParams()) {
NewsApiRepository(apiKey = apiKey).getEverything(
q = params.q,
sources = params.sources,
domains = params.domains,
language = params.language,
sortBy = params.sortBy,
pageSize = params.pageSize,
page = params.page
)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.toFlowable()
.subscribe(
{ result.value = Result.success(it) },
{
Log.e("Error", it.cause?.message ?: "")
result.value = Result.failure(it)
}
).disposeOnClear()
}
}
Кто-нибудь может подсказать мне, как я могу добиться этого с помощью rxjava? Я могу сделать это путем преобразования списка в Hashmap, а затем снова преобразовать его в список, но для этого хочу использовать rxjava.