From 07edb789e1a0bd543642c964dd13cc668d06f966 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 13 Sep 2023 09:30:20 +0200 Subject: [PATCH] Prevent multiple auth dialog being stacked --- .../main/java/org/linphone/activities/main/MainActivity.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/org/linphone/activities/main/MainActivity.kt b/app/src/main/java/org/linphone/activities/main/MainActivity.kt index 1fc446783..4a9c7be8c 100644 --- a/app/src/main/java/org/linphone/activities/main/MainActivity.kt +++ b/app/src/main/java/org/linphone/activities/main/MainActivity.kt @@ -19,6 +19,7 @@ */ package org.linphone.activities.main +import android.app.Dialog import android.content.ComponentCallbacks2 import android.content.Context import android.content.Intent @@ -116,6 +117,7 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin private val authenticationRequestedEvent: MutableLiveData> by lazy { MutableLiveData>() } + private var authenticationRequiredDialog: Dialog? = null private val coreListener: CoreListenerStub = object : CoreListenerStub() { override fun onAuthenticationRequested(core: Core, authInfo: AuthInfo, method: AuthMethod) { @@ -687,6 +689,8 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin private fun showAuthenticationRequestedDialog( authInfo: AuthInfo ) { + authenticationRequiredDialog?.dismiss() + val identity = "${authInfo.username}@${authInfo.domain}" Log.i("[Main Activity] Showing authentication required dialog for account [$identity]") @@ -702,6 +706,7 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin dialogViewModel.showCancelButton { dialog.dismiss() + authenticationRequiredDialog = null } dialogViewModel.showOkButton( @@ -716,10 +721,12 @@ class MainActivity : GenericActivity(), SnackBarActivity, NavController.OnDestin coreContext.core.refreshRegisters() dialog.dismiss() + authenticationRequiredDialog = null }, getString(R.string.dialog_authentication_required_change_password_label) ) dialog.show() + authenticationRequiredDialog = dialog } }