From 30364c48b0e3c57275f27b971d02dd3c27b03dd3 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 26 Feb 2025 11:27:57 +0100 Subject: [PATCH] Clear auth info password requested dialog when account is removed --- app/src/main/java/org/linphone/core/CoreContext.kt | 14 ++++++++++++++ .../main/java/org/linphone/ui/main/MainActivity.kt | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index 9ff99de9e..d84a1fc38 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -93,6 +93,10 @@ class CoreContext MutableLiveData>() } + val clearAuthenticationRequestDialogEvent: MutableLiveData> by lazy { + MutableLiveData>() + } + val refreshMicrophoneMuteStateEvent: MutableLiveData> by lazy { MutableLiveData>() } @@ -391,6 +395,7 @@ class CoreContext } } + @WorkerThread override fun onAccountAdded(core: Core, account: Account) { // Prevent this trigger when core is stopped/start in remote prov if (core.globalState == GlobalState.Off) return @@ -412,6 +417,15 @@ class CoreContext } } } + + @WorkerThread + override fun onAccountRemoved(core: Core, account: Account) { + Log.i("$TAG Account [${account.params.identityAddress?.asStringUriOnly()}] removed, clearing auth request dialog if needed") + if (account.findAuthInfo() == digestAuthInfoPendingPasswordUpdate) { + Log.i("$TAG Removed account matches auth info pending password update, removing dialog") + clearAuthenticationRequestDialogEvent.postValue(Event(true)) + } + } } private var logcatEnabled: Boolean = corePreferences.printLogsInLogcat 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 21e33b655..99f96af86 100644 --- a/app/src/main/java/org/linphone/ui/main/MainActivity.kt +++ b/app/src/main/java/org/linphone/ui/main/MainActivity.kt @@ -284,6 +284,12 @@ class MainActivity : GenericActivity() { } } + coreContext.clearAuthenticationRequestDialogEvent.observe(this) { + it.consume { + currentlyDisplayedAuthDialog?.dismiss() + } + } + coreContext.showGreenToastEvent.observe(this) { it.consume { pair -> val message = getString(pair.first)