РЕДАКТИРОВАТЬ: я немного изменил вопрос, благодаря комментариям в комментариях.
Итак, я заполняю и отображаю один список объектов в другой список объектов. Код здесь:
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) по частям
Затем в главном потоке обновить блок чанка на чанк?
Я не уверен, с чего начать в совместной программе.