diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/LoginFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/LoginFragment.kt index 78ccbbbb9..f651242a9 100644 --- a/app/src/main/java/org/linphone/ui/assistant/fragment/LoginFragment.kt +++ b/app/src/main/java/org/linphone/ui/assistant/fragment/LoginFragment.kt @@ -141,6 +141,7 @@ class LoginFragment : Fragment() { val dialPlan = PhoneNumberUtils.getDeviceDialPlan(requireContext()) if (dialPlan != null) { viewModel.internationalPrefix.postValue(dialPlan.countryCallingCode) + viewModel.internationalPrefixIsoCountryCode.postValue(dialPlan.isoCountryCode) } } } diff --git a/app/src/main/java/org/linphone/ui/assistant/fragment/ThirdPartySipAccountLoginFragment.kt b/app/src/main/java/org/linphone/ui/assistant/fragment/ThirdPartySipAccountLoginFragment.kt index 5e867711b..56b82c0fa 100644 --- a/app/src/main/java/org/linphone/ui/assistant/fragment/ThirdPartySipAccountLoginFragment.kt +++ b/app/src/main/java/org/linphone/ui/assistant/fragment/ThirdPartySipAccountLoginFragment.kt @@ -122,6 +122,7 @@ class ThirdPartySipAccountLoginFragment : Fragment() { val dialPlan = PhoneNumberUtils.getDeviceDialPlan(requireContext()) if (dialPlan != null) { viewModel.internationalPrefix.postValue(dialPlan.countryCallingCode) + viewModel.internationalPrefixIsoCountryCode.postValue(dialPlan.isoCountryCode) } } } diff --git a/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountLoginViewModel.kt b/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountLoginViewModel.kt index cc0157589..19f034013 100644 --- a/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountLoginViewModel.kt +++ b/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountLoginViewModel.kt @@ -51,6 +51,8 @@ class AccountLoginViewModel @UiThread constructor() : ViewModel() { val internationalPrefix = MutableLiveData() + val internationalPrefixIsoCountryCode = MutableLiveData() + val showPassword = MutableLiveData() val loginEnabled = MediatorLiveData() @@ -171,6 +173,7 @@ class AccountLoginViewModel @UiThread constructor() : ViewModel() { accountParams.identityAddress = identityAddress val prefix = internationalPrefix.value.orEmpty().trim() + val isoCountryCode = internationalPrefixIsoCountryCode.value.orEmpty() if (prefix.isNotEmpty()) { val prefixDigits = if (prefix.startsWith("+")) { prefix.substring(1) @@ -178,8 +181,11 @@ class AccountLoginViewModel @UiThread constructor() : ViewModel() { prefix } if (prefixDigits.isNotEmpty()) { - Log.i("$TAG Setting international prefix [$prefixDigits] in account params") + Log.i( + "$TAG Setting international prefix [$prefixDigits]($isoCountryCode) in account params" + ) accountParams.internationalPrefix = prefixDigits + accountParams.internationalPrefixIsoCountryCode = isoCountryCode } } 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 50f48aa1a..f489ec5e0 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 @@ -57,6 +57,8 @@ class ThirdPartySipAccountLoginViewModel @UiThread constructor() : ViewModel() { val internationalPrefix = MutableLiveData() + val internationalPrefixIsoCountryCode = MutableLiveData() + val showPassword = MutableLiveData() val loginEnabled = MediatorLiveData() @@ -171,6 +173,7 @@ class ThirdPartySipAccountLoginViewModel @UiThread constructor() : ViewModel() { accountParams.serverAddress = serverAddress val prefix = internationalPrefix.value.orEmpty().trim() + val isoCountryCode = internationalPrefixIsoCountryCode.value.orEmpty() if (prefix.isNotEmpty()) { val prefixDigits = if (prefix.startsWith("+")) { prefix.substring(1) @@ -178,8 +181,11 @@ class ThirdPartySipAccountLoginViewModel @UiThread constructor() : ViewModel() { prefix } if (prefixDigits.isNotEmpty()) { - Log.i("$TAG Setting international prefix [$prefixDigits] in account params") + Log.i( + "$TAG Setting international prefix [$prefixDigits]($isoCountryCode) in account params" + ) accountParams.internationalPrefix = prefixDigits + accountParams.internationalPrefixIsoCountryCode = isoCountryCode } } diff --git a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountProfileViewModel.kt b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountProfileViewModel.kt index 3b9753483..5b059addb 100644 --- a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountProfileViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountProfileViewModel.kt @@ -115,11 +115,14 @@ class AccountProfileViewModel @UiThread constructor() : ViewModel() { devices.postValue(devicesList) val prefix = account.params.internationalPrefix - if (!prefix.isNullOrEmpty()) { + val isoCountryCode = account.params.internationalPrefixIsoCountryCode + if (!prefix.isNullOrEmpty() || !isoCountryCode.isNullOrEmpty()) { Log.i( - "$TAG Account [${account.params.identityAddress?.asStringUriOnly()}] prefix is [$prefix]" + "$TAG Account [${account.params.identityAddress?.asStringUriOnly()}] prefix is [$prefix]($isoCountryCode)" ) val dialPlan = Factory.instance().dialPlans.find { + it.isoCountryCode == isoCountryCode + } ?: Factory.instance().dialPlans.find { it.countryCallingCode == prefix } if (dialPlan != null) { @@ -238,9 +241,10 @@ class AccountProfileViewModel @UiThread constructor() : ViewModel() { val params = account.params val copy = params.clone() copy.internationalPrefix = dialPlan.countryCallingCode + copy.internationalPrefixIsoCountryCode = dialPlan.isoCountryCode account.params = copy Log.i( - "$TAG Updated international prefix for account [${account.params.identityAddress?.asStringUriOnly()}] to [${copy.internationalPrefix}]" + "$TAG Updated international prefix for account [${account.params.identityAddress?.asStringUriOnly()}] to [${copy.internationalPrefix} (${copy.internationalPrefixIsoCountryCode})]" ) } } @@ -251,6 +255,7 @@ class AccountProfileViewModel @UiThread constructor() : ViewModel() { val params = account.params val copy = params.clone() copy.internationalPrefix = "" + copy.internationalPrefixIsoCountryCode = "" account.params = copy Log.i( "$TAG Removed international prefix for account [${account.params.identityAddress?.asStringUriOnly()}]"