diff --git a/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactViewModel.kt b/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactViewModel.kt index 00ea1029b..68ac85ace 100644 --- a/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactViewModel.kt @@ -50,7 +50,7 @@ class ContactViewModelFactory(private val friend: Friend) : } } -class ContactViewModel(friend: Friend, async: Boolean = false) : MessageNotifierViewModel(), ContactDataInterface { +class ContactViewModel(friend: Friend) : MessageNotifierViewModel(), ContactDataInterface { override val contact: MutableLiveData = MutableLiveData() override val displayName: MutableLiveData = MutableLiveData() override val securityLevel: MutableLiveData = MutableLiveData() @@ -143,21 +143,12 @@ class ContactViewModel(friend: Friend, async: Boolean = false) : MessageNotifier init { fullName = friend.name ?: "" - if (async) { - contact.postValue(friend) - displayName.postValue(friend.name) - isNativeContact.postValue(friend.refKey != null) - presenceStatus.postValue(friend.consolidatedPresence) - readOnlyNativeAddressBook.postValue(corePreferences.readOnlyNativeContacts) - hasLongTermPresence.postValue(friend.hasLongTermPresence()) - } else { - contact.value = friend - displayName.value = friend.name - isNativeContact.value = friend.refKey != null - presenceStatus.value = friend.consolidatedPresence - readOnlyNativeAddressBook.value = corePreferences.readOnlyNativeContacts - hasLongTermPresence.value = friend.hasLongTermPresence() - } + contact.value = friend + displayName.value = friend.name + isNativeContact.value = friend.refKey != null + presenceStatus.value = friend.consolidatedPresence + readOnlyNativeAddressBook.value = corePreferences.readOnlyNativeContacts + hasLongTermPresence.value = friend.hasLongTermPresence() friend.addListener { presenceStatus.value = it.consolidatedPresence diff --git a/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactsListViewModel.kt b/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactsListViewModel.kt index becfd4ad3..7ab26ee8e 100644 --- a/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactsListViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/contact/viewmodels/ContactsListViewModel.kt @@ -150,33 +150,26 @@ class ContactsListViewModel : ViewModel() { Log.i("[Contacts] Processing ${results.size} results") contactsList.value.orEmpty().forEach(ContactViewModel::destroy) - viewModelScope.launch { - withContext(Dispatchers.IO) { - val list = arrayListOf() + val list = arrayListOf() - for (result in results) { - val friend = result.friend + for (result in results) { + val friend = result.friend - val viewModel = if (friend != null) { - ContactViewModel(friend, true) - } else { - Log.w("[Contacts] SearchResult [$result] has no Friend!") - val fakeFriend = coreContext.contactsManager.createFriendFromSearchResult( - result - ) - ContactViewModel(fakeFriend, true) - } - - list.add(viewModel) - } - - contactsList.postValue(list) + val viewModel = if (friend != null) { + ContactViewModel(friend) + } else { + Log.w("[Contacts] SearchResult [$result] has no Friend!") + val fakeFriend = coreContext.contactsManager.createFriendFromSearchResult( + result + ) + ContactViewModel(fakeFriend) } - withContext(Dispatchers.Main) { - Log.i("[Contacts] Processed ${results.size} results") - } + list.add(viewModel) } + + contactsList.value = list + Log.i("[Contacts] Processed ${results.size} results") } fun deleteContact(friend: Friend) {