diff --git a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt index 71c0c3154..e90988a89 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt @@ -180,12 +180,14 @@ class ContactViewModel private val contactsListener = object : ContactsManager.ContactsListener { @WorkerThread override fun onContactsLoaded() { - val friend = coreContext.contactsManager.findContactById(refKey) - if (friend != null && friend != this@ContactViewModel.friend) { + if (!::friend.isInitialized) return + + val found = coreContext.contactsManager.findContactById(refKey) + if (found != null && found != friend) { Log.i( - "$TAG Found contact [${friend.name}] matching ref key [$refKey] after contacts have been loaded/updated" + "$TAG Found contact [${found.name}] matching ref key [$refKey] after contacts have been loaded/updated" ) - this@ContactViewModel.friend = friend + friend = found refreshContactInfo() } } diff --git a/app/src/main/java/org/linphone/ui/main/history/viewmodel/HistoryViewModel.kt b/app/src/main/java/org/linphone/ui/main/history/viewmodel/HistoryViewModel.kt index e89c6990c..5cc06ba3d 100644 --- a/app/src/main/java/org/linphone/ui/main/history/viewmodel/HistoryViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/history/viewmodel/HistoryViewModel.kt @@ -192,6 +192,7 @@ class HistoryViewModel @UiThread fun startAudioCall() { coreContext.postOnCoreThread { core -> + if (!::address.isInitialized) return@postOnCoreThread coreContext.startAudioCall(address) } } @@ -199,6 +200,7 @@ class HistoryViewModel @UiThread fun startVideoCall() { coreContext.postOnCoreThread { core -> + if (!::address.isInitialized) return@postOnCoreThread coreContext.startVideoCall(address) } } @@ -218,6 +220,8 @@ class HistoryViewModel @UiThread fun goToConversation() { coreContext.postOnCoreThread { core -> + if (!::address.isInitialized) return@postOnCoreThread + val account = core.defaultAccount val localSipUri = account?.params?.identityAddress?.asStringUriOnly() if (!localSipUri.isNullOrEmpty()) { @@ -315,9 +319,8 @@ class HistoryViewModel @UiThread fun goToMeetingWaitingRoom() { coreContext.postOnCoreThread { - if (::address.isInitialized) { - conferenceToJoinEvent.postValue(Event(address.asStringUriOnly())) - } + if (!::address.isInitialized) return@postOnCoreThread + conferenceToJoinEvent.postValue(Event(address.asStringUriOnly())) } }