diff --git a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactNewOrEditViewModel.kt b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactNewOrEditViewModel.kt index 72aa17114..58873fb25 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactNewOrEditViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactNewOrEditViewModel.kt @@ -262,10 +262,14 @@ class ContactNewOrEditViewModel fun addSipAddress(address: String = "", requestFieldToBeAddedInUi: Boolean = false) { val newModel = NewOrEditNumberOrAddressModel(address, true, "", { if (address.isEmpty()) { - addSipAddress(requestFieldToBeAddedInUi = true) + coreContext.postOnCoreThread { + addSipAddress(requestFieldToBeAddedInUi = true) + } } }, { model -> - removeModel(model) + coreContext.postOnCoreThread { + removeModel(model) + } }) sipAddresses.add(newModel) @@ -282,10 +286,14 @@ class ContactNewOrEditViewModel ) { val newModel = NewOrEditNumberOrAddressModel(number, false, label, { if (number.isEmpty()) { - addPhoneNumber(requestFieldToBeAddedInUi = true) + coreContext.postOnCoreThread { + addPhoneNumber(requestFieldToBeAddedInUi = true) + } } }, { model -> - removeModel(model) + coreContext.postOnCoreThread { + removeModel(model) + } }) phoneNumbers.add(newModel) @@ -294,14 +302,14 @@ class ContactNewOrEditViewModel } } - @UiThread + @WorkerThread private fun removeModel(model: NewOrEditNumberOrAddressModel) { if (model.isSip) { sipAddresses.remove(model) } else { phoneNumbers.remove(model) } - removeNewNumberOrAddressFieldEvent.value = Event(model) + removeNewNumberOrAddressFieldEvent.postValue(Event(model)) } @UiThread