TF-1831 Handle system back button in dialog view

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit dc93aa9961987315bd1b478aecda530049b75f02)
This commit is contained in:
dab246
2023-12-10 02:53:23 +07:00
committed by Dat H. Pham
parent 9e5e6af9ce
commit fbb43e3bb0
15 changed files with 286 additions and 254 deletions
@@ -11,15 +11,15 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:pointer_interceptor/pointer_interceptor.dart';
import 'package:rule_filter/rule_filter/tmail_rule.dart';
import 'package:tmail_ui_user/features/base/base_controller.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/create_new_email_rule_filter_request.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/delete_email_rule_request.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/edit_email_rule_filter_request.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/delete_email_rule_state.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/create_new_email_rule_filter_request.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/create_new_rule_filter_state.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/delete_email_rule_state.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/edit_email_rule_filter_state.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/get_all_rules_state.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/delete_email_rule_interactor.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/create_new_email_rule_filter_interactor.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/delete_email_rule_interactor.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/edit_email_rule_filter_interactor.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_rules_interactor.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/widgets/email_rule_bottom_sheet_action_tile_builder.dart';
@@ -27,9 +27,9 @@ import 'package:tmail_ui_user/features/manage_account/presentation/manage_accoun
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/creator_action_type.dart';
import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/rules_filter_creator_arguments.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/routes/app_routes.dart';
import 'package:tmail_ui_user/main/routes/dialog_router.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
import 'package:tmail_ui_user/main/routes/app_routes.dart';
class EmailRulesController extends BaseController {
@@ -166,28 +166,29 @@ class EmailRulesController extends BaseController {
}))
.show();
} else {
showDialog(
context: context,
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
builder: (BuildContext context) =>
PointerInterceptor(child: (ConfirmDialogBuilder(imagePaths)
..title(AppLocalizations.of(context).deleteEmailRule)
..content(AppLocalizations.of(context).messageConfirmationDialogDeleteEmailRule(emailRule.name))
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog,
fit: BoxFit.fill))
..marginIcon(EdgeInsets.zero)
..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorActionDeleteConfirmDialog))
..onCloseButtonAction(() => popBack())
..onConfirmButtonAction(AppLocalizations.of(context).delete, () {
_handleDeleteEmailRuleAction(emailRule);
})
..onCancelButtonAction(AppLocalizations.of(context).cancel, () =>
popBack()))
.build()));
Get.dialog(
PointerInterceptor(
child: (ConfirmDialogBuilder(imagePaths)
..title(AppLocalizations.of(context).deleteEmailRule)
..content(AppLocalizations.of(context).messageConfirmationDialogDeleteEmailRule(emailRule.name))
..addIcon(SvgPicture.asset(imagePaths.icRemoveDialog,
fit: BoxFit.fill))
..marginIcon(EdgeInsets.zero)
..colorConfirmButton(AppColor.colorConfirmActionDialog)
..styleTextConfirmButton(const TextStyle(
fontSize: 17,
fontWeight: FontWeight.w500,
color: AppColor.colorActionDeleteConfirmDialog))
..onCloseButtonAction(() => popBack())
..onConfirmButtonAction(AppLocalizations.of(context).delete, () {
_handleDeleteEmailRuleAction(emailRule);
})
..onCancelButtonAction(AppLocalizations.of(context).cancel, () =>
popBack()))
.build()
),
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
);
}
}
@@ -192,14 +192,14 @@ class IdentitiesController extends BaseController {
}
void openConfirmationDialogDeleteIdentityAction(BuildContext context, Identity identity) {
showDialog(
context: context,
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
builder: (BuildContext context) => DeleteIdentityDialogBuilder(
Get.dialog(
DeleteIdentityDialogBuilder(
responsiveUtils: responsiveUtils,
imagePaths: imagePaths,
onDeleteIdentityAction: () => _deleteIdentityAction(identity),
));
),
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
);
}
void _deleteIdentityAction(Identity identity) {
@@ -225,25 +225,25 @@ class IdentitiesController extends BaseController {
void _deleteIdentityFailure(DeleteIdentityFailure failure) {
if (currentContext != null) {
showDialog(
context: currentContext!,
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
builder: (BuildContext context) => (ConfirmDialogBuilder(imagePaths)
..key(const Key('dialog_message_delete_identity_failed'))
..title(AppLocalizations.of(context).delete_failed)
..addIcon(SvgPicture.asset(imagePaths.icDeleteDialogFailed, fit: BoxFit.fill))
..marginIcon(EdgeInsets.zero)
..styleTitle(const TextStyle(fontSize: 20,
fontWeight: FontWeight.bold,
color: Colors.black))
..colorConfirmButton(AppColor.colorTextButton)
..paddingTitle(const EdgeInsets.symmetric(vertical: 12))
..styleTextConfirmButton(const TextStyle(fontSize: 17,
fontWeight: FontWeight.w500,
color: Colors.white))
..onCloseButtonAction(() => popBack())
..onConfirmButtonAction('${AppLocalizations.of(context).got_it}!', () => popBack()))
.build());
Get.dialog(
(ConfirmDialogBuilder(imagePaths)
..key(const Key('dialog_message_delete_identity_failed'))
..title(AppLocalizations.of(currentContext!).delete_failed)
..addIcon(SvgPicture.asset(imagePaths.icDeleteDialogFailed, fit: BoxFit.fill))
..marginIcon(EdgeInsets.zero)
..styleTitle(const TextStyle(fontSize: 20,
fontWeight: FontWeight.bold,
color: Colors.black))
..colorConfirmButton(AppColor.colorTextButton)
..paddingTitle(const EdgeInsets.symmetric(vertical: 12))
..styleTextConfirmButton(const TextStyle(fontSize: 17,
fontWeight: FontWeight.w500,
color: Colors.white))
..onCloseButtonAction(() => popBack())
..onConfirmButtonAction('${AppLocalizations.of(currentContext!).got_it}!', () => popBack()))
.build(),
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
);
}
}