Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private fun getRecommendedContacts() {
- interactor?.let { interactor ->
- compositeDisposable?.add(
- interactor.getRecommendedContacts()
- .map { recommendedContacts ->
- recommendedContacts.map { recommendedContact ->
- Triple(
- interactor.getContactById(recommendedContact.contactId).blockingGet(),
- recommendedContact,
- getContactLatestConnection(recommendedContact.contactId)
- )
- }.filter { !it.first.isBlocked }.associateBy { it.first.id }
- }.compose(ioToMainSingleScheduler())
- .doOnSuccess { recommendedContactsMap ->
- this.recommendedContactsMap = recommendedContactsMap.map{
- it.key to (it.value.first to it.value.second) }.toMap().toMutableMap()
- view?.displayRecommendedContacts(recommendedContactsMap.map {
- it.value.first to it.value.third})
- }.subscribe())
- }
- }
- private fun getContactLatestConnection(contactId: Long): Connection? {
- return interactor?.let {
- getLatestConnection(it.getPhoneNumbers(contactId).blockingGet()) }
- }
- private fun getLatestConnection(phoneNumbers: List<PhoneNumber>): Connection? {
- val connections = mutableListOf<Connection?>()
- phoneNumbers.forEach { phone ->
- connections.add(interactor?.getLatestConnection(phone.phoneNumber)?.blockingGet())
- }
- connections.sortBy { it?.date }
- return connections.first()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement