From d69a797b2507cdc61a16375c7ddd2865191c5ee8 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 4 Jul 2025 10:15:50 +0200 Subject: [PATCH] Prevent auth dialog when failed to login in assistant and then successfully login another account --- app/src/main/java/org/linphone/core/CoreContext.kt | 3 ++- app/src/main/java/org/linphone/ui/main/MainActivity.kt | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index f9e84098d..4beabe28b 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -498,12 +498,13 @@ class CoreContext if (account.findAuthInfo() == digestAuthInfoPendingPasswordUpdate) { Log.i("$TAG Removed account matches auth info pending password update, removing dialog") clearAuthenticationRequestDialogEvent.postValue(Event(true)) + digestAuthInfoPendingPasswordUpdate = null } if (core.defaultAccount == null || core.defaultAccount == account) { Log.w("$TAG Removed account was the default one, choosing another as default if possible") val newDefaultAccount = core.accountList.find { - it.params.isRegisterEnabled == true + it.params.isRegisterEnabled } ?: core.accountList.firstOrNull() if (newDefaultAccount == null) { Log.e("$TAG Failed to find a new default account!") diff --git a/app/src/main/java/org/linphone/ui/main/MainActivity.kt b/app/src/main/java/org/linphone/ui/main/MainActivity.kt index bfc169be1..fd6378323 100644 --- a/app/src/main/java/org/linphone/ui/main/MainActivity.kt +++ b/app/src/main/java/org/linphone/ui/main/MainActivity.kt @@ -309,7 +309,9 @@ class MainActivity : GenericActivity() { coreContext.digestAuthenticationRequestedEvent.observe(this) { it.consume { identity -> try { - showAuthenticationRequestedDialog(identity) + if (coreContext.digestAuthInfoPendingPasswordUpdate != null) { + showAuthenticationRequestedDialog(identity) + } } catch (e: WindowManager.BadTokenException) { Log.e("$TAG Failed to show authentication dialog: $e") }