From eebc1bc91eb3fdeefc3f3daae94a87ee2ffdde0d Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 19 Dec 2024 09:59:43 +0100 Subject: [PATCH] Moved third party sip account login auth id field to advanced settings, added outbound proxy advanced setting --- .../ThirdPartySipAccountLoginViewModel.kt | 25 +++- ...third_party_sip_account_login_fragment.xml | 124 +++++++++++++----- 2 files changed, 113 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/assistant/viewmodel/ThirdPartySipAccountLoginViewModel.kt b/app/src/main/java/org/linphone/ui/assistant/viewmodel/ThirdPartySipAccountLoginViewModel.kt index 53ef1a3bc..40a33b649 100644 --- a/app/src/main/java/org/linphone/ui/assistant/viewmodel/ThirdPartySipAccountLoginViewModel.kt +++ b/app/src/main/java/org/linphone/ui/assistant/viewmodel/ThirdPartySipAccountLoginViewModel.kt @@ -65,6 +65,10 @@ class ThirdPartySipAccountLoginViewModel val showPassword = MutableLiveData() + val expandAdvancedSettings = MutableLiveData() + + val outboundProxy = MutableLiveData() + val loginEnabled = MediatorLiveData() val registrationInProgress = MutableLiveData() @@ -131,6 +135,7 @@ class ThirdPartySipAccountLoginViewModel init { showPassword.value = false + expandAdvancedSettings.value = false registrationInProgress.value = false loginEnabled.addSource(username) { @@ -218,11 +223,22 @@ class ThirdPartySipAccountLoginViewModel val accountParams = core.createAccountParams() if (displayName.value.orEmpty().isNotEmpty()) { - identityAddress?.displayName = displayName.value.orEmpty().trim() + identityAddress.displayName = displayName.value.orEmpty().trim() } accountParams.identityAddress = identityAddress - val serverAddress = Factory.instance().createAddress("sip:$domain") + val outboundProxyValue = outboundProxy.value.orEmpty().trim() + val serverAddress = if (outboundProxyValue.isNotEmpty()) { + val server = if (outboundProxyValue.startsWith("sip:")) { + outboundProxyValue + } else { + "sip:$outboundProxyValue" + } + Factory.instance().createAddress(server) + } else { + Factory.instance().createAddress("sip:$domain") + } + serverAddress?.transport = when (transport.value.orEmpty().trim()) { TransportType.Tcp.name.uppercase(Locale.getDefault()) -> TransportType.Tcp TransportType.Tls.name.uppercase(Locale.getDefault()) -> TransportType.Tls @@ -265,4 +281,9 @@ class ThirdPartySipAccountLoginViewModel // Password isn't mandatory as authentication could be Bearer return username.value.orEmpty().isNotEmpty() && domain.value.orEmpty().isNotEmpty() } + + @UiThread + fun toggleAdvancedSettingsExpand() { + expandAdvancedSettings.value = expandAdvancedSettings.value == false + } } diff --git a/app/src/main/res/layout/assistant_third_party_sip_account_login_fragment.xml b/app/src/main/res/layout/assistant_third_party_sip_account_login_fragment.xml index 6b42cb47f..e34911793 100644 --- a/app/src/main/res/layout/assistant_third_party_sip_account_login_fragment.xml +++ b/app/src/main/res/layout/assistant_third_party_sip_account_login_fragment.xml @@ -94,38 +94,6 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> - - - - + + + + + + + + + + + +