diff --git a/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountCreationViewModel.kt b/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountCreationViewModel.kt index c8e86ed21..d5bd307a1 100644 --- a/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountCreationViewModel.kt +++ b/app/src/main/java/org/linphone/ui/assistant/viewmodel/AccountCreationViewModel.kt @@ -33,6 +33,7 @@ import kotlinx.coroutines.withContext import org.json.JSONException import org.json.JSONObject import org.linphone.LinphoneApplication.Companion.coreContext +import org.linphone.LinphoneApplication.Companion.corePreferences import org.linphone.R import org.linphone.core.Account import org.linphone.core.AccountManagerServices @@ -82,6 +83,8 @@ class AccountCreationViewModel val showPassword = MutableLiveData() + val lockUsernameAndPassword = MutableLiveData() + val createEnabled = MediatorLiveData() val pushNotificationsAvailable = MutableLiveData() @@ -199,12 +202,11 @@ class AccountCreationViewModel if (account != null) { coreContext.core.removeAccount(account) } - createEnabled.postValue(true) } else -> { - createEnabled.postValue(true) } } + createEnabled.postValue(true) } } @@ -258,6 +260,7 @@ class AccountCreationViewModel init { operationInProgress.value = false + lockUsernameAndPassword.value = false coreContext.postOnCoreThread { core -> pushNotificationsAvailable.postValue(LinphoneUtils.arePushNotificationsAvailable(core)) @@ -469,15 +472,16 @@ class AccountCreationViewModel @WorkerThread private fun storeAccountInCore(identity: String) { - val passwordValue = password.value - val core = coreContext.core + core.loadConfigFromXml(corePreferences.linphoneDefaultValuesPath) + val sipIdentity = Factory.instance().createAddress(identity) if (sipIdentity == null) { Log.e("$TAG Failed to create address from SIP Identity [$identity]!") return } + val passwordValue = password.value // We need to have an AuthInfo for newly created account to authorize phone number linking request val authInfo = Factory.instance().createAuthInfo( sipIdentity.username.orEmpty(), @@ -506,6 +510,8 @@ class AccountCreationViewModel accountCreatedAuthInfo = authInfo accountCreated = account + + lockUsernameAndPassword.postValue(true) } @WorkerThread diff --git a/app/src/main/res/layout/assistant_register_fragment.xml b/app/src/main/res/layout/assistant_register_fragment.xml index f240a5bdf..4d1a4a193 100644 --- a/app/src/main/res/layout/assistant_register_fragment.xml +++ b/app/src/main/res/layout/assistant_register_fragment.xml @@ -90,7 +90,7 @@