Avoid displaying duplicate session expiration dialogs

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-04-11 15:57:29 +07:00
committed by Dat H. Pham
parent 3ecb0a36ee
commit b8d66dc539
2 changed files with 23 additions and 4 deletions
+18 -4
View File
@@ -231,6 +231,8 @@ abstract class BaseController extends GetxController
return;
}
if (twakeAppManager.isSessionExpiresDialogOpened) return;
final appLocalizations = AppLocalizations.of(currentContext!);
showConfirmDialogAction(
currentContext!,
@@ -242,10 +244,21 @@ abstract class BaseController extends GetxController
outsideDismissible: false,
titleActionButtonMaxLines: 1,
icon: SvgPicture.asset(imagePaths.icTMailLogo, width: 64, height: 64),
onConfirmAction: _performSaveAndReconnection,
onCancelAction: _performReconnection,
onCloseButtonAction: _performCloseReconnectionConfirmDialog
);
onConfirmAction: () {
twakeAppManager.setSessionExpiresDialogDisplayState(false);
_performSaveAndReconnection();
},
onCancelAction: () {
twakeAppManager.setSessionExpiresDialogDisplayState(false);
_performReconnection();
},
onCloseButtonAction: () {
twakeAppManager.setSessionExpiresDialogDisplayState(false);
_performCloseReconnectionConfirmDialog();
}
).whenComplete(() => twakeAppManager.setSessionExpiresDialogDisplayState(false));
twakeAppManager.setSessionExpiresDialogDisplayState(true);
}
void _performSaveAndReconnection() {
@@ -265,6 +278,7 @@ abstract class BaseController extends GetxController
}
void onDataFailureViewState(Failure failure) {
log('$runtimeType::onDataFailureViewState:failure = ${failure.runtimeType}');
if (failure is FeatureFailure) {
final isUrgentException = validateUrgentException(failure.exception);
if (isUrgentException) {