TF-2101 Handle open recover_deleted_messages

(cherry picked from commit a58beb7a293471f39b080805c652c9d6f73dfe20)
This commit is contained in:
hieubt
2023-12-20 23:50:02 +07:00
committed by Dat H. Pham
parent 61e3067c57
commit bf0030e7d7
7 changed files with 43 additions and 12 deletions
@@ -1038,6 +1038,9 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
case MailboxActions.newSubfolder:
goToCreateNewMailboxView(context, parentMailbox: mailbox);
break;
case MailboxActions.recoverDeletedMessages:
mailboxDashBoardController.gotoEmailRecovery();
break;
default:
break;
}
@@ -2426,6 +2426,18 @@ class MailboxDashBoardController extends ReloadableController {
}
}
void gotoEmailRecovery() async {
closeMailboxMenuDrawer();
if (PlatformInfo.isWeb) {
await DialogRouter.pushGeneralDialog(
routeName: AppRoutes.emailRecovery,
arguments: {},
);
} else {
await push(AppRoutes.emailRecovery);
}
}
@override
void onClose() {
_emailReceiveManager.closeEmailReceiveManagerStream();
@@ -441,17 +441,15 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
Obx(() {
final mailboxSelected = controller.selectedMailbox.value;
if (mailboxSelected != null && mailboxSelected.role == PresentationMailbox.roleTrash) {
return Row(
children: [
const SizedBox(width: 16),
TMailButtonWidget.fromIcon(
key: const Key('recover_deleted_messages_button'),
icon: controller.imagePaths.icRecoverDeletedMessages,
borderRadius: 10,
iconSize: 16,
onTapActionCallback: () => controller.gotoEmailRecovery(),
)
],
return Padding(
padding: const EdgeInsetsDirectional.only(start: 16),
child: TMailButtonWidget.fromIcon(
key: const Key('recover_deleted_messages_button'),
icon: controller.imagePaths.icRecoverDeletedMessages,
borderRadius: 10,
iconSize: 16,
onTapActionCallback: () => controller.gotoEmailRecovery(),
),
);
} else {
return const SizedBox.shrink();
@@ -3768,7 +3768,7 @@ class AppLocalizations {
String get bannerProgressingRecoveryMessage {
return Intl.message(
'The recovery is in progress. You can continue using TeamMail',
'The recovery is in progress. You can continue using TwakeMail',
name: 'bannerProgressingRecoveryMessage',
);
}
+10
View File
@@ -8,6 +8,7 @@ import 'package:tmail_ui_user/features/composer/presentation/composer_view.dart'
import 'package:tmail_ui_user/features/contact/presentation/contact_bindings.dart';
import 'package:tmail_ui_user/features/destination_picker/presentation/destination_picker_bindings.dart';
import 'package:tmail_ui_user/features/destination_picker/presentation/destination_picker_view.dart' deferred as destination_picker;
import 'package:tmail_ui_user/features/email_recovery/presentation/email_recovery_bindings.dart';
import 'package:tmail_ui_user/features/home/presentation/home_bindings.dart';
import 'package:tmail_ui_user/features/home/presentation/home_view.dart';
import 'package:tmail_ui_user/features/contact/presentation/contact_view.dart' deferred as contact_view;
@@ -32,6 +33,7 @@ import 'package:tmail_ui_user/main/pages/deferred_widget.dart';
import 'package:tmail_ui_user/main/routes/app_routes.dart';
import 'package:tmail_ui_user/features/search/mailbox/presentation/search_mailbox_view.dart' deferred as search_mailbox_view;
import 'package:tmail_ui_user/features/mailto/presentation/mailto_url_view.dart' deferred as mailto_url_view;
import 'package:tmail_ui_user/features/email_recovery/presentation/email_recovery_view.dart' deferred as email_recovery;
class AppPages {
static final pages = [
@@ -125,6 +127,14 @@ class AppPages {
() => identity_creator.IdentityCreatorView()
),
binding: IdentityCreatorBindings()),
GetPage(
name: AppRoutes.emailRecovery,
opaque: false,
page: () => DeferredWidget(
email_recovery.loadLibrary,
() => email_recovery.EmailRecoveryView()
),
binding: EmailRecoveryBindings()),
]
];
+1
View File
@@ -14,4 +14,5 @@ abstract class AppRoutes {
static const unknownRoutePage = '/notfound';
static const searchMailbox = '/search_mailbox';
static const mailtoURL = '/mailto';
static const emailRecovery = '/email_recovery';
}
+7
View File
@@ -6,6 +6,8 @@ import 'package:tmail_ui_user/features/contact/presentation/contact_bindings.dar
import 'package:tmail_ui_user/features/contact/presentation/contact_view.dart';
import 'package:tmail_ui_user/features/destination_picker/presentation/destination_picker_bindings.dart';
import 'package:tmail_ui_user/features/destination_picker/presentation/destination_picker_view.dart';
import 'package:tmail_ui_user/features/email_recovery/presentation/email_recovery_bindings.dart';
import 'package:tmail_ui_user/features/email_recovery/presentation/email_recovery_view.dart';
import 'package:tmail_ui_user/features/identity_creator/presentation/identity_creator_bindings.dart';
import 'package:tmail_ui_user/features/identity_creator/presentation/identity_creator_view.dart';
import 'package:tmail_ui_user/features/mailbox_creator/presentation/mailbox_creator_bindings.dart';
@@ -46,6 +48,9 @@ class DialogRouter {
case AppRoutes.contact:
ContactBindings().dependencies();
break;
case AppRoutes.emailRecovery:
EmailRecoveryBindings().dependencies();
break;
}
}
@@ -62,6 +67,8 @@ class DialogRouter {
return DestinationPickerView();
case AppRoutes.contact:
return const ContactView();
case AppRoutes.emailRecovery:
return EmailRecoveryView();
default:
return const SizedBox.shrink();
}