Как изменить ответ, полученный из сети, чтобы отображать только уникальные элементы в PagedList - PullRequest
0 голосов
/ 02 ноября 2019

Я использую библиотеку подкачки для отображения списка, который я получаю из сети. Теперь я хочу иметь возможность показывать только уникальные предметы со счетчиком на случай, если в списке есть последовательные дубликаты.

Я немного исследовал и обнаружил, чтоВы не можете редактировать PagedList в модели представления, и лучший способ - изменить ответ только в источнике данных.

Теперь я не уверен, как это сделать.

Вот мой источник данныхФайл

override fun loadInitial(params: LoadInitialParams<Int>, callback: LoadInitialCallback<Int, RingDetails>) {

    initialLoad.postValue(FetchRingsResult.Progress(true))

    fun onInitialLoadSuccess(response: GeneralResponse<List<RingDetails>>?) {

        initialLoad.postValue(FetchRingsResult.Progress(false))
        response?.data?.let { callback.onResult(it, null, TIMELINE_PAGE_SIZE) }
    }

    @Suppress("UNUSED_PARAMETER")
    fun onInitialLoadError(errorMessage: String, code: Int) {
        initialLoad.postValue(FetchRingsResult.Error(errorMessage))
    }

    try {
        api.fetchRings(TIMELINE_PAGE_SIZE, 0).enqueue(retrofitCallback(::onInitialLoadSuccess, ::onInitialLoadError))
    } catch (exception: IOException) {
        onInitialLoadError(ErrorMapper.ERROR_CONNECTION, 0)
    }
}
...