Как я могу использовать подпрограммы для обновления моего адаптера порциями (вместо всех сразу)? - PullRequest
0 голосов
/ 10 января 2019

РЕДАКТИРОВАТЬ: я немного изменил вопрос, благодаря комментариям в комментариях.

Итак, я заполняю и отображаю один список объектов в другой список объектов. Код здесь:

val backingData: List<AddLeadViewData> = leadList
        .filter { it.address.latitude != null || it.address.longitude != null }
        .map {
            val name = if (it.businessName != null && it.businessName != "") it.businessName
            else if (it.primaryContact != null && it.primaryContact.fullName != null && it.primaryContact.fullName != "") it.primaryContact.fullName
            else it.status.name ?: ""
            AddLeadViewData(name, it.address.singleLineAddress()
                    ?: "", false, it.status.buttonDrawable, it.id!!, it.status.name, it.address.city, it.address.state, it.address.postalCode)
        }. 

Вся эта последовательность занимает в среднем 5 секунд, что не очень хорошо, потому что пользователь ждет этой информации. Некоторые комментарии предложили мне сделать это кусками, что легко в Kotlin. Но как я могу написать подпрограмму, которая будет:

получить данные затем разделить список на куски сопоставить данные (от objA до objB) по частям Затем в главном потоке обновить блок чанка на чанк?

Я не уверен, с чего начать в совместной программе.

...