From 606f94d60f822de624a475d8f916f47e872cd2ea Mon Sep 17 00:00:00 2001 From: Dat PHAM HOANG Date: Wed, 24 Aug 2022 12:16:56 +0700 Subject: [PATCH] TF-788 Change Dashboard View with SettingsView and Settings details view (Rules, Identity, Language, ...) in the case of mobile/tablet --- .../manage_account_dashboard_bindings.dart | 2 + .../manage_account_dashboard_controller.dart | 4 + .../manage_account_dashboard_view.dart | 73 ++----------------- .../menu/settings/settings_view.dart | 10 +++ lib/l10n/intl_messages.arb | 8 +- 5 files changed, 29 insertions(+), 68 deletions(-) diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart b/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart index 2a5ae39de..2cae243b3 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_bindings.dart @@ -31,6 +31,7 @@ import 'package:tmail_ui_user/features/manage_account/domain/usecases/update_vac import 'package:tmail_ui_user/features/manage_account/presentation/language_and_region/language_and_region_bindings.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/menu/manage_account_menu_bindings.dart'; +import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings/settings_bindings.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/profiles/profiles_bindings.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_bindings.dart'; @@ -39,6 +40,7 @@ class ManageAccountDashBoardBindings extends BaseBindings { @override void dependencies() { super.dependencies(); + SettingsBindings().dependencies(); ManageAccountMenuBindings().dependencies(); ProfileBindings().dependencies(); LanguageAndRegionBindings().dependencies(); diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart b/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart index a601449d3..b1892fa31 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart @@ -25,6 +25,7 @@ import 'package:tmail_ui_user/features/manage_account/presentation/forward/forwa import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/model/manage_account_arguments.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; +import 'package:tmail_ui_user/features/manage_account/presentation/model/settings_page_level.dart'; import 'package:tmail_ui_user/main/routes/app_routes.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; @@ -42,6 +43,8 @@ class ManageAccountDashBoardController extends ReloadableController { final userProfile = Rxn(); final accountId = Rxn(); final accountMenuItemSelected = AccountMenuItem.profiles.obs; + final settingsPageLevel = SettingsPageLevel.universal.obs; + final sessionCurrent = Rxn(); final vacationResponse = Rxn(); @@ -118,6 +121,7 @@ class ManageAccountDashBoardController extends ReloadableController { } void _getUserProfile() async { + log('ManageAccountDashBoardController::_getUserProfile(): ${sessionCurrent.value}'); userProfile.value = sessionCurrent.value != null ? UserProfile(sessionCurrent.value!.username.value) : null; } diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_view.dart b/lib/features/manage_account/presentation/manage_account_dashboard_view.dart index 1168a4e6e..b8a4c79a5 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_view.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_view.dart @@ -12,6 +12,7 @@ import 'package:tmail_ui_user/features/manage_account/presentation/forward/forwa import 'package:tmail_ui_user/features/manage_account/presentation/language_and_region/language_and_region_view.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/menu/manage_account_menu_view.dart'; +import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings/settings_view.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/profiles/profiles_view.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_view.dart'; @@ -40,12 +41,7 @@ class ManageAccountDashBoardView extends GetWidget FocusScope.of(context).unfocus(), child: ResponsiveWidget( @@ -123,57 +119,14 @@ class ManageAccountDashBoardView extends GetWidget controller.disableVacationResponder()); - } else if ((controller.vacationResponse.value?.vacationResponderIsWaiting == true - || controller.vacationResponse.value?.vacationResponderIsStopped == true) - && controller.accountMenuItemSelected.value == AccountMenuItem.vacation) { - return VacationNotificationMessageWidget( - margin: const EdgeInsets.only( - left: BuildUtils.isWeb ? 24 : 16, - right: BuildUtils.isWeb ? 24 : 16, - top: BuildUtils.isWeb ? 16 : 0), - vacationResponse: controller.vacationResponse.value!, - padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 16), - fontWeight: FontWeight.normal, - backgroundColor: Colors.yellow, - leadingIcon: const Padding( - padding: EdgeInsets.only(right: 16), - child: Icon(Icons.timer, size: 20), - )); - } else { - return const SizedBox.shrink(); - } - }), - Expanded(child: Padding( - padding: !BuildUtils.isWeb && _responsiveUtils.isPortraitMobile(context) - ? const EdgeInsets.only(left: 8) - : const EdgeInsets.only(left: 24), - child: _viewDisplayedOfAccountMenuItem())) - ]) - ) + mobile: SettingsView(closeAction: () => controller.backToMailboxDashBoard(context)) ), ), ), if(controller.emailsForwardCreatorIsActive.isTrue) - EmailsForwardCreatorView(), - ] , - ), - ); + EmailsForwardCreatorView() + ] + )); } Widget _buildRightHeader(BuildContext context) { @@ -205,20 +158,6 @@ class ManageAccountDashBoardView extends GetWidget controller.openMenuDrawer()), - const SizedBox(width: 12), - Expanded(child: Text( - AppLocalizations.of(context).manage_account, - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: const TextStyle(fontSize: 21, color: Colors.black, fontWeight: FontWeight.bold))), - ]); - } - Widget _viewDisplayedOfAccountMenuItem() { return Obx(() { switch(controller.accountMenuItemSelected.value) { diff --git a/lib/features/manage_account/presentation/menu/settings/settings_view.dart b/lib/features/manage_account/presentation/menu/settings/settings_view.dart index ddd8d2d21..829522cb9 100644 --- a/lib/features/manage_account/presentation/menu/settings/settings_view.dart +++ b/lib/features/manage_account/presentation/menu/settings/settings_view.dart @@ -9,6 +9,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/email_rules_view.dart'; +import 'package:tmail_ui_user/features/manage_account/presentation/forward/forward_view.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/language_and_region/language_and_region_view.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings/settings_controller.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings/settings_first_level_view.dart'; @@ -16,6 +17,7 @@ import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/model/settings_page_level.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/profiles/profiles_view.dart'; +import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_view.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; typedef CloseSettingsViewAction = void Function(); @@ -135,6 +137,14 @@ class SettingsView extends GetWidget { } else { return const SizedBox.shrink(); } + case AccountMenuItem.forward: + if(controller.manageAccountDashboardController.checkAvailableForwardInSession()){ + return ForwardView(); + } else { + return const SizedBox.shrink(); + } + case AccountMenuItem.vacation: + return VacationView(); default: return const SizedBox.shrink(); } diff --git a/lib/l10n/intl_messages.arb b/lib/l10n/intl_messages.arb index 396c6a09e..8014bdbfe 100644 --- a/lib/l10n/intl_messages.arb +++ b/lib/l10n/intl_messages.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2022-08-21T10:21:05.186351", + "@@last_modified": "2022-08-24T12:13:35.492924", "initializing_data": "Initializing data...", "@initializing_data": { "type": "text", @@ -2101,5 +2101,11 @@ "type": "text", "placeholders_order": [], "placeholders": {} + }, + "emailRuleSettingExplanation": "Creating rules to handle incoming messages. You choose both the condition that triggers a rule and the actions the rule will take.", + "@emailRuleSettingExplanation": { + "type": "text", + "placeholders_order": [], + "placeholders": {} } } \ No newline at end of file