diff --git a/app/src/main/java/org/linphone/contacts/ContactsManager.kt b/app/src/main/java/org/linphone/contacts/ContactsManager.kt
index efae440f3..46f360b9c 100644
--- a/app/src/main/java/org/linphone/contacts/ContactsManager.kt
+++ b/app/src/main/java/org/linphone/contacts/ContactsManager.kt
@@ -789,6 +789,7 @@ fun Friend.getPerson(): Person {
@WorkerThread
fun Friend.getListOfSipAddresses(): ArrayList
{
val addressesList = arrayListOf()
+ if (corePreferences.hideSipAddresses) return addressesList
for (address in addresses) {
if (addressesList.find { it.weakEqual(address) } == null) {
@@ -803,19 +804,19 @@ fun Friend.getListOfSipAddresses(): ArrayList {
fun Friend.getListOfSipAddressesAndPhoneNumbers(listener: ContactNumberOrAddressClickListener): ArrayList {
val addressesAndNumbers = arrayListOf()
- if (!corePreferences.hideSipAddresses) {
- for (address in getListOfSipAddresses()) {
- val data = ContactNumberOrAddressModel(
- this,
- address,
- address.asStringUriOnly(),
- true, // SIP addresses are always enabled
- listener,
- true
- )
- addressesAndNumbers.add(data)
- }
+ // Will return an empty list if corePreferences.hideSipAddresses == true
+ for (address in getListOfSipAddresses()) {
+ val data = ContactNumberOrAddressModel(
+ this,
+ address,
+ address.asStringUriOnly(),
+ true, // SIP addresses are always enabled
+ listener,
+ true
+ )
+ addressesAndNumbers.add(data)
}
+
if (corePreferences.hidePhoneNumbers) {
return addressesAndNumbers
}
diff --git a/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt b/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt
index 0d1cac9fc..ead2822ca 100644
--- a/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt
+++ b/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt
@@ -361,15 +361,6 @@ class ActiveCallFragment : GenericCallFragment() {
}
}
- callViewModel.chatRoomCreationErrorEvent.observe(viewLifecycleOwner) {
- it.consume { error ->
- (requireActivity() as GenericActivity).showRedToast(
- getString(error),
- R.drawable.warning_circle
- )
- }
- }
-
callViewModel.goToConversationEvent.observe(viewLifecycleOwner) {
it.consume { conversationId ->
if (findNavController().currentDestination?.id == R.id.activeCallFragment) {
diff --git a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt
index 169c1a66b..7ad686537 100644
--- a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt
+++ b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt
@@ -220,10 +220,6 @@ class CurrentCallViewModel
MutableLiveData>()
}
- val chatRoomCreationErrorEvent: MutableLiveData> by lazy {
- MutableLiveData>()
- }
-
// Conference
val conferenceModel = ConferenceViewModel()
@@ -429,9 +425,7 @@ class CurrentCallViewModel
Log.e("$TAG Conversation [$id] creation has failed!")
chatRoom.removeListener(this)
operationInProgress.postValue(false)
- chatRoomCreationErrorEvent.postValue(
- Event(R.string.conversation_failed_to_create_toast)
- )
+ showRedToast(R.string.conversation_failed_to_create_toast, R.drawable.warning_circle)
}
}
}
@@ -1434,9 +1428,7 @@ class CurrentCallViewModel
"$TAG Failed to create 1-1 conversation with [${remoteAddress.asStringUriOnly()}]!"
)
operationInProgress.postValue(false)
- chatRoomCreationErrorEvent.postValue(
- Event(R.string.conversation_failed_to_create_toast)
- )
+ showRedToast(R.string.conversation_failed_to_create_toast, R.drawable.warning_circle)
}
}
diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/StartConversationFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/StartConversationFragment.kt
index 807ea9fe3..84faf4247 100644
--- a/app/src/main/java/org/linphone/ui/main/chat/fragment/StartConversationFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/StartConversationFragment.kt
@@ -99,16 +99,6 @@ class StartConversationFragment : GenericAddressPickerFragment() {
}
}
- viewModel.chatRoomCreationErrorEvent.observe(viewLifecycleOwner) {
- it.consume { error ->
- Log.i("$TAG Conversation creation error, showing red toast")
- (requireActivity() as GenericActivity).showRedToast(
- getString(error),
- R.drawable.warning_circle
- )
- }
- }
-
viewModel.defaultAccountChangedEvent.observe(viewLifecycleOwner) {
it.consume {
viewModel.updateGroupChatButtonVisibility()
diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/StartConversationViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/StartConversationViewModel.kt
index 98e0a6920..2a428d532 100644
--- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/StartConversationViewModel.kt
+++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/StartConversationViewModel.kt
@@ -52,10 +52,6 @@ class StartConversationViewModel
val operationInProgress = MutableLiveData()
- val chatRoomCreationErrorEvent: MutableLiveData> by lazy {
- MutableLiveData>()
- }
-
val chatRoomCreatedEvent: MutableLiveData> by lazy {
MutableLiveData>()
}
@@ -78,9 +74,7 @@ class StartConversationViewModel
Log.e("$TAG Conversation [$id] creation has failed!")
chatRoom.removeListener(this)
operationInProgress.postValue(false)
- chatRoomCreationErrorEvent.postValue(
- Event(R.string.conversation_failed_to_create_toast)
- )
+ showRedToast(R.string.conversation_failed_to_create_toast, R.drawable.warning_circle)
}
}
}
@@ -159,9 +153,7 @@ class StartConversationViewModel
} else {
Log.e("$TAG Failed to create group conversation [$groupChatRoomSubject]!")
operationInProgress.postValue(false)
- chatRoomCreationErrorEvent.postValue(
- Event(R.string.conversation_failed_to_create_toast)
- )
+ showRedToast(R.string.conversation_failed_to_create_toast, R.drawable.warning_circle)
}
}
}
@@ -212,9 +204,7 @@ class StartConversationViewModel
"$TAG Account is in secure mode, can't chat with SIP address of different domain [${remote.asStringUriOnly()}]"
)
operationInProgress.postValue(false)
- chatRoomCreationErrorEvent.postValue(
- Event(R.string.conversation_invalid_participant_due_to_security_mode_toast)
- )
+ showRedToast(R.string.conversation_invalid_participant_due_to_security_mode_toast, R.drawable.warning_circle)
return
}
@@ -247,9 +237,7 @@ class StartConversationViewModel
} else {
Log.e("$TAG Failed to create 1-1 conversation with [${remote.asStringUriOnly()}]!")
operationInProgress.postValue(false)
- chatRoomCreationErrorEvent.postValue(
- Event(R.string.conversation_failed_to_create_toast)
- )
+ showRedToast(R.string.conversation_failed_to_create_toast, R.drawable.warning_circle)
}
} else {
Log.w(
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 da7c88ee0..02bdf318a 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
@@ -66,6 +66,8 @@ class ContactNewOrEditViewModel
val sipAddresses = ArrayList()
+ val hideSipAddresses = MutableLiveData()
+
val phoneNumbers = ArrayList()
val company = MutableLiveData()
@@ -82,6 +84,10 @@ class ContactNewOrEditViewModel
val removeNewNumberOrAddressFieldEvent = MutableLiveData>()
+ init {
+ hideSipAddresses.postValue(corePreferences.hideSipAddresses)
+ }
+
@UiThread
fun findFriendByRefKey(refKey: String?) {
reset()
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 e90988a89..ac2ea4254 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
@@ -99,10 +99,6 @@ class ContactViewModel
val operationInProgress = MutableLiveData()
- val chatRoomCreationErrorEvent: MutableLiveData> by lazy {
- MutableLiveData>()
- }
-
val showLongPressMenuForNumberOrAddressEvent: MutableLiveData> by lazy {
MutableLiveData>()
}
@@ -214,9 +210,7 @@ class ContactViewModel
Log.e("$TAG Conversation [$id] creation has failed!")
chatRoom.removeListener(this)
operationInProgress.postValue(false)
- chatRoomCreationErrorEvent.postValue(
- Event(R.string.conversation_failed_to_create_toast)
- )
+ showRedToast(R.string.conversation_failed_to_create_toast, R.drawable.warning_circle)
}
}
}
@@ -579,9 +573,7 @@ class ContactViewModel
"$TAG Failed to create 1-1 conversation with [${remote.asStringUriOnly()}]!"
)
operationInProgress.postValue(false)
- chatRoomCreationErrorEvent.postValue(
- Event(R.string.conversation_failed_to_create_toast)
- )
+ showRedToast(R.string.conversation_failed_to_create_toast, R.drawable.warning_circle)
}
}
}
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 5cc06ba3d..2da405721 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
@@ -67,10 +67,6 @@ class HistoryViewModel
val callLogFoundEvent = MutableLiveData>()
- val chatRoomCreationErrorEvent: MutableLiveData> by lazy {
- MutableLiveData>()
- }
-
val goToMeetingConversationEvent: MutableLiveData> by lazy {
MutableLiveData>()
}
@@ -125,9 +121,7 @@ class HistoryViewModel
Log.e("$TAG Conversation [$id] creation has failed!")
chatRoom.removeListener(this)
operationInProgress.postValue(false)
- chatRoomCreationErrorEvent.postValue(
- Event(R.string.conversation_failed_to_create_toast)
- )
+ showRedToast(R.string.conversation_failed_to_create_toast, R.drawable.warning_circle)
}
}
}
@@ -307,9 +301,7 @@ class HistoryViewModel
"$TAG Failed to create 1-1 conversation with [${remote.asStringUriOnly()}]!"
)
operationInProgress.postValue(false)
- chatRoomCreationErrorEvent.postValue(
- Event(R.string.conversation_failed_to_create_toast)
- )
+ showRedToast(R.string.conversation_failed_to_create_toast, R.drawable.warning_circle)
}
}
}
diff --git a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt
index 63907f3dd..511df23d7 100644
--- a/app/src/main/java/org/linphone/utils/LinphoneUtils.kt
+++ b/app/src/main/java/org/linphone/utils/LinphoneUtils.kt
@@ -142,7 +142,7 @@ class LinphoneUtils {
}
val defaultDomain = corePreferences.defaultDomain
- val currentDomain = friend.core.defaultAccount?.params?.identityAddress?.domain
+ val currentDomain = getDefaultAccount()?.params?.identityAddress?.domain
if (defaultDomain != currentDomain) return null
var defaultDomainAddressesCount = 0
diff --git a/app/src/main/res/layout-land/contact_new_or_edit_fragment.xml b/app/src/main/res/layout-land/contact_new_or_edit_fragment.xml
index 9fe2cc458..d86f80682 100644
--- a/app/src/main/res/layout-land/contact_new_or_edit_fragment.xml
+++ b/app/src/main/res/layout-land/contact_new_or_edit_fragment.xml
@@ -316,6 +316,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/sip_address"
+ android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/sip_addresses"/>
@@ -326,6 +327,7 @@
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:orientation="vertical"
+ android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/sip_addresses_label"
app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/layout/contact_new_or_edit_fragment.xml b/app/src/main/res/layout/contact_new_or_edit_fragment.xml
index b9526e0e1..d0580d955 100644
--- a/app/src/main/res/layout/contact_new_or_edit_fragment.xml
+++ b/app/src/main/res/layout/contact_new_or_edit_fragment.xml
@@ -224,6 +224,7 @@
android:layout_marginTop="30dp"
android:layout_marginEnd="16dp"
android:text="@string/sip_address"
+ android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintTop_toBottomOf="@id/last_name"
app:layout_constraintStart_toStartOf="@id/sip_addresses"/>
@@ -234,6 +235,7 @@
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:orientation="vertical"
+ android:visibility="@{viewModel.hideSipAddresses ? View.GONE : View.VISIBLE}"
app:layout_constraintWidth_max="@dimen/text_input_max_width"
app:layout_constraintTop_toBottomOf="@id/sip_addresses_label"
app:layout_constraintStart_toStartOf="parent"