diff --git a/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt b/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt index b92214c95..a3a6d76bd 100644 --- a/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/settings/fragment/AccountProfileFragment.kt @@ -59,11 +59,19 @@ class AccountProfileFragment : GenericFragment() { private val dropdownListener = object : AdapterView.OnItemSelectedListener { override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { - val dialPlan = viewModel.dialPlansList[position] - Log.i( - "$TAG Selected dialplan updated [+${dialPlan.countryCallingCode}] / [${dialPlan.country}]" - ) - viewModel.setDialPlan(dialPlan) + if (position == 0) { + Log.i("$TAG Removing selected dial plan") + viewModel.removeDialPlan() + viewModel.selectedDialPlan.value = 0 + } else { + val index = position - 1 + val dialPlan = viewModel.dialPlansList[index] + Log.i( + "$TAG Selected dialplan updated [+${dialPlan.countryCallingCode}] / [${dialPlan.country}]" + ) + viewModel.setDialPlan(dialPlan) + viewModel.selectedDialPlan.value = index + } } override fun onNothingSelected(parent: AdapterView<*>?) { 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 3705b3238..3b9753483 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 @@ -53,6 +53,8 @@ class AccountProfileViewModel @UiThread constructor() : ViewModel() { expandDevices.value = false // TODO: set to true when feature will be available coreContext.postOnCoreThread { + dialPlansLabelList.add("") // To allow removing selected dial plan + val dialPlans = Factory.instance().dialPlans.toList() for (dialPlan in dialPlans) { dialPlansList.add(dialPlan) @@ -121,7 +123,7 @@ class AccountProfileViewModel @UiThread constructor() : ViewModel() { it.countryCallingCode == prefix } if (dialPlan != null) { - val index = dialPlansList.indexOf(dialPlan) + val index = dialPlansList.indexOf(dialPlan) + 1 Log.i( "$TAG Found matching dial plan [${dialPlan.country}] at index [$index]" ) @@ -238,7 +240,20 @@ class AccountProfileViewModel @UiThread constructor() : ViewModel() { copy.internationalPrefix = dialPlan.countryCallingCode account.params = copy Log.i( - "$TAG Updated internation prefix for account [${account.params.identityAddress?.asStringUriOnly()}] to [${copy.internationalPrefix}]" + "$TAG Updated international prefix for account [${account.params.identityAddress?.asStringUriOnly()}] to [${copy.internationalPrefix}]" + ) + } + } + + @UiThread + fun removeDialPlan() { + coreContext.postOnCoreThread { + val params = account.params + val copy = params.clone() + copy.internationalPrefix = "" + account.params = copy + Log.i( + "$TAG Removed international prefix for account [${account.params.identityAddress?.asStringUriOnly()}]" ) } }