TF-1611 Fix can not display correctly menu screen when open setting view
(cherry picked from commit 2ba04f782ef17dac3b93930dccd3723f13d6836d)
This commit is contained in:
@@ -32,7 +32,6 @@ import 'package:tmail_ui_user/features/manage_account/domain/state/log_out_oidc_
|
|||||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/bindings/email_rules_interactor_bindings.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/bindings/email_rules_interactor_bindings.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/forward/bindings/forwarding_interactors_bindings.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/forward/bindings/forwarding_interactors_bindings.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/bindings/mailbox_visibility_interactor_bindings.dart';
|
|
||||||
import 'package:tmail_ui_user/features/push_notification/domain/exceptions/fcm_exception.dart';
|
import 'package:tmail_ui_user/features/push_notification/domain/exceptions/fcm_exception.dart';
|
||||||
import 'package:tmail_ui_user/features/push_notification/domain/state/destroy_subscription_state.dart';
|
import 'package:tmail_ui_user/features/push_notification/domain/state/destroy_subscription_state.dart';
|
||||||
import 'package:tmail_ui_user/features/push_notification/domain/state/get_fcm_subscription_local.dart';
|
import 'package:tmail_ui_user/features/push_notification/domain/state/get_fcm_subscription_local.dart';
|
||||||
@@ -222,10 +221,6 @@ abstract class BaseController extends GetxController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void injectMailboxVisibilityBindings() {
|
|
||||||
MailboxVisibilityInteractorBindings().dependencies();
|
|
||||||
}
|
|
||||||
|
|
||||||
void injectFCMBindings(Session? session, AccountId? accountId) async {
|
void injectFCMBindings(Session? session, AccountId? accountId) async {
|
||||||
try {
|
try {
|
||||||
requireCapability(session!, accountId!, [FirebaseCapability.fcmIdentifier]);
|
requireCapability(session!, accountId!, [FirebaseCapability.fcmIdentifier]);
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ class ForwardController extends BaseController {
|
|||||||
bool get currentForwardLocalCopyState => currentForward.value?.localCopy ?? false;
|
bool get currentForwardLocalCopyState => currentForward.value?.localCopy ?? false;
|
||||||
|
|
||||||
late ForwardRecipientController recipientController;
|
late ForwardRecipientController recipientController;
|
||||||
late Worker dashboardActionWorker;
|
|
||||||
|
|
||||||
ForwardController() {
|
ForwardController() {
|
||||||
recipientController = ForwardRecipientController(
|
recipientController = ForwardRecipientController(
|
||||||
@@ -73,7 +72,6 @@ class ForwardController extends BaseController {
|
|||||||
@override
|
@override
|
||||||
void onClose() {
|
void onClose() {
|
||||||
recipientController.onClose();
|
recipientController.onClose();
|
||||||
unregisterListenerWorker();
|
|
||||||
super.onClose();
|
super.onClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -291,7 +289,7 @@ class ForwardController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void registerListenerWorker() {
|
void registerListenerWorker() {
|
||||||
dashboardActionWorker = ever(
|
ever(
|
||||||
accountDashBoardController.dashboardSettingAction,
|
accountDashBoardController.dashboardSettingAction,
|
||||||
(action) {
|
(action) {
|
||||||
if (action is ClearAllInputForwarding) {
|
if (action is ClearAllInputForwarding) {
|
||||||
@@ -301,8 +299,4 @@ class ForwardController extends BaseController {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void unregisterListenerWorker() {
|
|
||||||
dashboardActionWorker.dispose();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
+5
-1
@@ -3,19 +3,23 @@ import 'package:tmail_ui_user/features/mailbox/domain/usecases/get_all_mailbox_i
|
|||||||
import 'package:tmail_ui_user/features/mailbox/domain/usecases/refresh_all_mailbox_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/usecases/refresh_all_mailbox_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree_builder.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_name_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_name_interactor.dart';
|
||||||
|
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/bindings/mailbox_visibility_interactor_bindings.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/mailbox_visibility_controller.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/mailbox_visibility_controller.dart';
|
||||||
|
|
||||||
class MailboxVisibilityBindings extends Bindings {
|
class MailboxVisibilityBindings extends Bindings {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dependencies() {
|
void dependencies() {
|
||||||
|
MailboxVisibilityInteractorBindings().dependencies();
|
||||||
|
|
||||||
|
_bindingsUtils();
|
||||||
|
|
||||||
Get.lazyPut(() => MailboxVisibilityController(
|
Get.lazyPut(() => MailboxVisibilityController(
|
||||||
Get.find<TreeBuilder>(),
|
Get.find<TreeBuilder>(),
|
||||||
Get.find<VerifyNameInteractor>(),
|
Get.find<VerifyNameInteractor>(),
|
||||||
Get.find<GetAllMailboxInteractor>(),
|
Get.find<GetAllMailboxInteractor>(),
|
||||||
Get.find<RefreshAllMailboxInteractor>(),
|
Get.find<RefreshAllMailboxInteractor>(),
|
||||||
));
|
));
|
||||||
_bindingsUtils();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _bindingsUtils() {
|
void _bindingsUtils() {
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_
|
|||||||
import 'package:tmail_ui_user/features/manage_account/data/repository/manage_account_repository_impl.dart';
|
import 'package:tmail_ui_user/features/manage_account/data/repository/manage_account_repository_impl.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
|
||||||
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/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/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/menu/settings/settings_bindings.dart';
|
||||||
@@ -41,16 +40,15 @@ class ManageAccountDashBoardBindings extends BaseBindings {
|
|||||||
SettingsBindings().dependencies();
|
SettingsBindings().dependencies();
|
||||||
ManageAccountMenuBindings().dependencies();
|
ManageAccountMenuBindings().dependencies();
|
||||||
ProfileBindings().dependencies();
|
ProfileBindings().dependencies();
|
||||||
LanguageAndRegionBindings().dependencies();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void bindingsController() {
|
void bindingsController() {
|
||||||
Get.lazyPut(() => ManageAccountDashBoardController(
|
Get.put(ManageAccountDashBoardController(
|
||||||
Get.find<LogoutOidcInteractor>(),
|
Get.find<LogoutOidcInteractor>(),
|
||||||
Get.find<DeleteAuthorityOidcInteractor>(),
|
Get.find<DeleteAuthorityOidcInteractor>(),
|
||||||
Get.find<GetAuthenticatedAccountInteractor>(),
|
Get.find<GetAuthenticatedAccountInteractor>(),
|
||||||
Get.find<UpdateAuthenticationAccountInteractor>()
|
Get.find<UpdateAuthenticationAccountInteractor>()
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,10 +26,12 @@ import 'package:tmail_ui_user/features/manage_account/presentation/action/dashbo
|
|||||||
import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/bindings/email_rules_bindings.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/bindings/email_rules_bindings.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/vacation_response_extension.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/vacation_response_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/forward/bindings/forward_bindings.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/forward/bindings/forward_bindings.dart';
|
||||||
|
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/mailbox_visibility/bindings/mailbox_visibility_bindings.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/bindings/mailbox_visibility_bindings.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart';
|
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/features/manage_account/presentation/model/manage_account_arguments.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/settings_page_level.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_bindings.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_controller_bindings.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_controller_bindings.dart';
|
||||||
import 'package:tmail_ui_user/main/error/capability_validator.dart';
|
import 'package:tmail_ui_user/main/error/capability_validator.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
@@ -68,9 +70,9 @@ class ManageAccountDashBoardController extends ReloadableController {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void onReady() {
|
void onReady() {
|
||||||
|
_initialPageLevel();
|
||||||
_getArguments();
|
_getArguments();
|
||||||
_getAppVersion();
|
_getAppVersion();
|
||||||
_initialPageLevel();
|
|
||||||
super.onReady();
|
super.onReady();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,26 +99,18 @@ class ManageAccountDashBoardController extends ReloadableController {
|
|||||||
sessionCurrent = session;
|
sessionCurrent = session;
|
||||||
accountId.value = session.accounts.keys.first;
|
accountId.value = session.accounts.keys.first;
|
||||||
_getUserProfile();
|
_getUserProfile();
|
||||||
injectAutoCompleteBindings(sessionCurrent, accountId.value);
|
_bindingInteractorForMenuItemView(sessionCurrent, accountId.value);
|
||||||
injectForwardBindings(sessionCurrent, accountId.value);
|
|
||||||
injectRuleFilterBindings(sessionCurrent, accountId.value);
|
|
||||||
injectMailboxVisibilityBindings();
|
|
||||||
injectVacationBindings(sessionCurrent, accountId.value);
|
|
||||||
_getVacationResponse();
|
_getVacationResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _getArguments() {
|
void _getArguments() {
|
||||||
final arguments = Get.arguments;
|
final arguments = Get.arguments;
|
||||||
log('ManageAccountDashBoardController::_getAccountIdAndUserProfile(): $arguments');
|
log('ManageAccountDashBoardController::_getArguments(): $arguments');
|
||||||
if (arguments is ManageAccountArguments) {
|
if (arguments is ManageAccountArguments) {
|
||||||
sessionCurrent = arguments.session;
|
sessionCurrent = arguments.session;
|
||||||
accountId.value = arguments.session?.accounts.keys.first;
|
accountId.value = arguments.session?.accounts.keys.first;
|
||||||
_getUserProfile();
|
_getUserProfile();
|
||||||
injectAutoCompleteBindings(sessionCurrent, accountId.value);
|
_bindingInteractorForMenuItemView(sessionCurrent, accountId.value);
|
||||||
injectForwardBindings(sessionCurrent, accountId.value);
|
|
||||||
injectRuleFilterBindings(sessionCurrent, accountId.value);
|
|
||||||
injectMailboxVisibilityBindings();
|
|
||||||
injectVacationBindings(sessionCurrent, accountId.value);
|
|
||||||
_getVacationResponse();
|
_getVacationResponse();
|
||||||
if (arguments.menuSettingCurrent != null) {
|
if (arguments.menuSettingCurrent != null) {
|
||||||
_goToSettingMenuCurrent(arguments.menuSettingCurrent!);
|
_goToSettingMenuCurrent(arguments.menuSettingCurrent!);
|
||||||
@@ -136,6 +130,13 @@ class ManageAccountDashBoardController extends ReloadableController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _bindingInteractorForMenuItemView(Session? session, AccountId? accountId) {
|
||||||
|
injectAutoCompleteBindings(session, accountId);
|
||||||
|
injectVacationBindings(session, accountId);
|
||||||
|
injectForwardBindings(session, accountId);
|
||||||
|
injectRuleFilterBindings(session, accountId);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void injectVacationBindings(Session? session, AccountId? accountId) {
|
void injectVacationBindings(Session? session, AccountId? accountId) {
|
||||||
try {
|
try {
|
||||||
@@ -170,19 +171,38 @@ class ManageAccountDashBoardController extends ReloadableController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void selectAccountMenuItem(AccountMenuItem newAccountMenuItem) {
|
void selectAccountMenuItem(AccountMenuItem newAccountMenuItem) {
|
||||||
|
settingsPageLevel.value = newAccountMenuItem == AccountMenuItem.none
|
||||||
|
? SettingsPageLevel.universal
|
||||||
|
: SettingsPageLevel.level1;
|
||||||
|
|
||||||
clearInputFormView();
|
clearInputFormView();
|
||||||
if (newAccountMenuItem == AccountMenuItem.emailRules) {
|
_bindingControllerMenuItemView(newAccountMenuItem);
|
||||||
EmailRulesBindings().dependencies();
|
|
||||||
}
|
|
||||||
if (newAccountMenuItem == AccountMenuItem.forward) {
|
|
||||||
ForwardBindings().dependencies();
|
|
||||||
}
|
|
||||||
if (newAccountMenuItem == AccountMenuItem.mailboxVisibility) {
|
|
||||||
MailboxVisibilityBindings().dependencies();
|
|
||||||
}
|
|
||||||
accountMenuItemSelected.value = newAccountMenuItem;
|
accountMenuItemSelected.value = newAccountMenuItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _bindingControllerMenuItemView(AccountMenuItem item) {
|
||||||
|
switch (item) {
|
||||||
|
case AccountMenuItem.profiles:
|
||||||
|
ProfileBindings().dependencies();
|
||||||
|
break;
|
||||||
|
case AccountMenuItem.languageAndRegion:
|
||||||
|
LanguageAndRegionBindings().dependencies();
|
||||||
|
break;
|
||||||
|
case AccountMenuItem.emailRules:
|
||||||
|
EmailRulesBindings().dependencies();
|
||||||
|
break;
|
||||||
|
case AccountMenuItem.forward:
|
||||||
|
ForwardBindings().dependencies();
|
||||||
|
break;
|
||||||
|
case AccountMenuItem.mailboxVisibility:
|
||||||
|
MailboxVisibilityBindings().dependencies();
|
||||||
|
break;
|
||||||
|
case AccountMenuItem.vacation:
|
||||||
|
case AccountMenuItem.none:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void clearInputFormView() {
|
void clearInputFormView() {
|
||||||
switch(accountMenuItemSelected.value) {
|
switch(accountMenuItemSelected.value) {
|
||||||
case AccountMenuItem.forward:
|
case AccountMenuItem.forward:
|
||||||
@@ -194,20 +214,7 @@ class ManageAccountDashBoardController extends ReloadableController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _goToSettingMenuCurrent(AccountMenuItem accountMenuItem) {
|
void _goToSettingMenuCurrent(AccountMenuItem accountMenuItem) {
|
||||||
if (accountMenuItem == AccountMenuItem.emailRules) {
|
selectAccountMenuItem(accountMenuItem);
|
||||||
EmailRulesBindings().dependencies();
|
|
||||||
}
|
|
||||||
if (accountMenuItem == AccountMenuItem.forward) {
|
|
||||||
ForwardBindings().dependencies();
|
|
||||||
}
|
|
||||||
if (accountMenuItem == AccountMenuItem.mailboxVisibility) {
|
|
||||||
MailboxVisibilityBindings().dependencies();
|
|
||||||
}
|
|
||||||
accountMenuItemSelected.value = accountMenuItem;
|
|
||||||
if (currentContext != null &&
|
|
||||||
!_responsiveUtils.isDesktop(currentContext!)) {
|
|
||||||
settingsPageLevel.value = SettingsPageLevel.level1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void goToSettings() {
|
void goToSettings() {
|
||||||
|
|||||||
@@ -1,31 +1,10 @@
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:tmail_ui_user/features/base/base_bindings.dart';
|
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/menu/manage_account_menu_controller.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/menu/manage_account_menu_controller.dart';
|
||||||
|
|
||||||
class ManageAccountMenuBindings extends BaseBindings {
|
class ManageAccountMenuBindings extends Bindings {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void bindingsController() {
|
void dependencies() {
|
||||||
Get.lazyPut(() => ManageAccountMenuController());
|
Get.put(ManageAccountMenuController());
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsDataSource() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsDataSourceImpl() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsInteractor() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsRepository() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsRepositoryImpl() {
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,68 +1,59 @@
|
|||||||
|
|
||||||
|
import 'package:core/core.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart';
|
||||||
|
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||||
|
|
||||||
class ManageAccountMenuController extends BaseController {
|
class ManageAccountMenuController extends GetxController {
|
||||||
|
|
||||||
final dashBoardController = Get.find<ManageAccountDashBoardController>();
|
final dashBoardController = Get.find<ManageAccountDashBoardController>();
|
||||||
|
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
||||||
late Worker sessionWorker;
|
|
||||||
|
|
||||||
final listAccountMenuItem = RxList<AccountMenuItem>([
|
final listAccountMenuItem = RxList<AccountMenuItem>([
|
||||||
AccountMenuItem.profiles,
|
AccountMenuItem.profiles,
|
||||||
AccountMenuItem.vacation,
|
AccountMenuItem.mailboxVisibility,
|
||||||
AccountMenuItem.languageAndRegion,
|
AccountMenuItem.languageAndRegion,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
void _initWorker() {
|
void _registerObxStreamListener() {
|
||||||
sessionWorker = ever(dashBoardController.accountId, (_) {
|
ever(dashBoardController.accountId, (accountId) {
|
||||||
_createListAccountMenu();
|
if (accountId != null) {
|
||||||
|
_createListAccountMenu();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void _clearWorker() {
|
|
||||||
sessionWorker.call();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
_initWorker();
|
_registerObxStreamListener();
|
||||||
_createListAccountMenu();
|
|
||||||
super.onInit();
|
super.onInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _createListAccountMenu(){
|
void _createListAccountMenu() {
|
||||||
listAccountMenuItem.clear();
|
final newListMenuSetting = [
|
||||||
listAccountMenuItem.add(AccountMenuItem.profiles);
|
AccountMenuItem.profiles,
|
||||||
if (dashBoardController.isRuleFilterCapabilitySupported) {
|
if (dashBoardController.isRuleFilterCapabilitySupported)
|
||||||
listAccountMenuItem.add(AccountMenuItem.emailRules);
|
AccountMenuItem.emailRules,
|
||||||
}
|
if (dashBoardController.isForwardCapabilitySupported)
|
||||||
if (dashBoardController.isForwardCapabilitySupported) {
|
AccountMenuItem.forward,
|
||||||
listAccountMenuItem.add(AccountMenuItem.forward);
|
if (dashBoardController.isVacationCapabilitySupported)
|
||||||
}
|
AccountMenuItem.vacation,
|
||||||
if (dashBoardController.isVacationCapabilitySupported) {
|
AccountMenuItem.mailboxVisibility,
|
||||||
listAccountMenuItem.add(AccountMenuItem.vacation);
|
AccountMenuItem.languageAndRegion
|
||||||
}
|
];
|
||||||
listAccountMenuItem.addAll(
|
listAccountMenuItem.value = newListMenuSetting;
|
||||||
[
|
|
||||||
AccountMenuItem.mailboxVisibility,
|
|
||||||
AccountMenuItem.languageAndRegion
|
|
||||||
]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
if (listAccountMenuItem.isNotEmpty) {
|
||||||
void onClose() {
|
if (currentContext != null && _responsiveUtils.isWebDesktop(currentContext!)) {
|
||||||
_clearWorker();
|
selectAccountMenuItem(listAccountMenuItem.first);
|
||||||
super.onClose();
|
} else {
|
||||||
|
selectAccountMenuItem(AccountMenuItem.none);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
void onDone() {}
|
|
||||||
|
|
||||||
void selectAccountMenuItem(AccountMenuItem newAccountMenuItem) {
|
void selectAccountMenuItem(AccountMenuItem newAccountMenuItem) {
|
||||||
dashBoardController.selectAccountMenuItem(newAccountMenuItem);
|
dashBoardController.selectAccountMenuItem(newAccountMenuItem);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,24 +89,29 @@ class ManageAccountMenuView extends GetWidget<ManageAccountMenuController> {
|
|||||||
AppLocalizations.of(context).manage_account,
|
AppLocalizations.of(context).manage_account,
|
||||||
style: const TextStyle(color: Colors.black, fontWeight: FontWeight.bold, fontSize: 17))),
|
style: const TextStyle(color: Colors.black, fontWeight: FontWeight.bold, fontSize: 17))),
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
Obx(
|
Obx(() {
|
||||||
() => ListView.builder(
|
if (controller.listAccountMenuItem.isNotEmpty) {
|
||||||
|
return ListView.builder(
|
||||||
|
key: const Key('list_manage_account_menu_item'),
|
||||||
padding: EdgeInsets.only(
|
padding: EdgeInsets.only(
|
||||||
left: AppUtils.isDirectionRTL(context) ? 8 : 16,
|
left: AppUtils.isDirectionRTL(context) ? 8 : 16,
|
||||||
right: AppUtils.isDirectionRTL(context) ? 16 : 8
|
right: AppUtils.isDirectionRTL(context) ? 16 : 8
|
||||||
),
|
),
|
||||||
key: const Key('list_manage_account_property'),
|
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
itemCount: controller.listAccountMenuItem.length,
|
itemCount: controller.listAccountMenuItem.length,
|
||||||
itemBuilder: (context, index) => Obx(() => AccountMenuItemTileBuilder(
|
itemBuilder: (context, index) => Obx(() {
|
||||||
context,
|
final menuItem = controller.listAccountMenuItem[index];
|
||||||
_imagePaths,
|
return AccountMenuItemTileBuilder(
|
||||||
_responsiveUtils,
|
menuItem,
|
||||||
controller.listAccountMenuItem[index],
|
|
||||||
controller.dashBoardController.accountMenuItemSelected.value,
|
controller.dashBoardController.accountMenuItemSelected.value,
|
||||||
onSelectAccountMenuItemAction: (newAccountMenuItem) =>
|
onSelectAccountMenuItemAction: controller.selectAccountMenuItem
|
||||||
controller.selectAccountMenuItem(newAccountMenuItem)))),
|
);
|
||||||
),
|
})
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
}
|
||||||
|
}),
|
||||||
const Padding(
|
const Padding(
|
||||||
padding: EdgeInsets.symmetric(vertical: 16),
|
padding: EdgeInsets.symmetric(vertical: 16),
|
||||||
child: Divider(color: AppColor.lineItemListColor, height: 0.5, thickness: 0.2)),
|
child: Divider(color: AppColor.lineItemListColor, height: 0.5, thickness: 0.2)),
|
||||||
@@ -117,7 +122,7 @@ class ManageAccountMenuView extends GetWidget<ManageAccountMenuController> {
|
|||||||
),
|
),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
controller.logout(
|
controller.dashBoardController.logout(
|
||||||
controller.dashBoardController.sessionCurrent,
|
controller.dashBoardController.sessionCurrent,
|
||||||
controller.dashBoardController.accountId.value
|
controller.dashBoardController.accountId.value
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -55,6 +55,9 @@ class SettingsView extends GetWidget<SettingsController> {
|
|||||||
top: 16),
|
top: 16),
|
||||||
fromAccountDashBoard: true,
|
fromAccountDashBoard: true,
|
||||||
vacationResponse: controller.manageAccountDashboardController.vacationResponse.value!,
|
vacationResponse: controller.manageAccountDashboardController.vacationResponse.value!,
|
||||||
|
actionGotoVacationSetting: !controller.manageAccountDashboardController.inVacationSettings()
|
||||||
|
? () => controller.manageAccountDashboardController.selectAccountMenuItem(AccountMenuItem.vacation)
|
||||||
|
: null,
|
||||||
actionEndNow: () => controller.manageAccountDashboardController.disableVacationResponder());
|
actionEndNow: () => controller.manageAccountDashboardController.disableVacationResponder());
|
||||||
} else if ((controller.manageAccountDashboardController.vacationResponse.value?.vacationResponderIsWaiting == true
|
} else if ((controller.manageAccountDashboardController.vacationResponse.value?.vacationResponderIsWaiting == true
|
||||||
|| controller.manageAccountDashboardController.vacationResponse.value?.vacationResponderIsStopped == true)
|
|| controller.manageAccountDashboardController.vacationResponse.value?.vacationResponderIsStopped == true)
|
||||||
|
|||||||
+37
-27
@@ -1,61 +1,71 @@
|
|||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart';
|
||||||
|
|
||||||
typedef OnSelectAccountMenuItemAction = void Function(AccountMenuItem);
|
typedef OnSelectAccountMenuItemAction = void Function(AccountMenuItem);
|
||||||
|
|
||||||
class AccountMenuItemTileBuilder extends StatelessWidget {
|
class AccountMenuItemTileBuilder extends StatelessWidget {
|
||||||
|
|
||||||
final BuildContext _context;
|
|
||||||
final ImagePaths _imagePaths;
|
|
||||||
final ResponsiveUtils _responsiveUtils;
|
|
||||||
final AccountMenuItem _menuItem;
|
final AccountMenuItem _menuItem;
|
||||||
final AccountMenuItem _menuItemSelected;
|
final AccountMenuItem? _menuItemSelected;
|
||||||
final OnSelectAccountMenuItemAction? onSelectAccountMenuItemAction;
|
final OnSelectAccountMenuItemAction? onSelectAccountMenuItemAction;
|
||||||
|
|
||||||
const AccountMenuItemTileBuilder(
|
const AccountMenuItemTileBuilder(
|
||||||
this._context,
|
|
||||||
this._imagePaths,
|
|
||||||
this._responsiveUtils,
|
|
||||||
this._menuItem,
|
this._menuItem,
|
||||||
this._menuItemSelected,
|
this._menuItemSelected,
|
||||||
{Key? key, this.onSelectAccountMenuItemAction}
|
{
|
||||||
|
Key? key,
|
||||||
|
this.onSelectAccountMenuItemAction
|
||||||
|
}
|
||||||
) : super(key: key);
|
) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final imagePaths = Get.find<ImagePaths>();
|
||||||
|
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: const EdgeInsets.only(top: 6),
|
padding: const EdgeInsets.only(top: 6),
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () => onSelectAccountMenuItemAction?.call(_menuItem),
|
onTap: () => onSelectAccountMenuItemAction?.call(_menuItem),
|
||||||
child: Container(
|
child: Container(
|
||||||
key: const Key('account_menu_item_tile'),
|
key: const Key('account_menu_item_tile'),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(10),
|
borderRadius: BorderRadius.circular(10),
|
||||||
color: backgroundColorItem),
|
color: _getBackgroundColorItem(context)),
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
|
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
|
||||||
child: Column(children: [
|
child: Column(children: [
|
||||||
Row(children: [
|
Row(children: [
|
||||||
SvgPicture.asset(_menuItem.getIcon(_imagePaths),
|
SvgPicture.asset(
|
||||||
width: 20,
|
_menuItem.getIcon(imagePaths),
|
||||||
height: 20,
|
width: 20,
|
||||||
fit: BoxFit.fill),
|
height: 20,
|
||||||
const SizedBox(width: 12),
|
fit: BoxFit.fill),
|
||||||
Expanded(child: Text(_menuItem.getName(context),
|
const SizedBox(width: 12),
|
||||||
style: const TextStyle(fontWeight: FontWeight.normal, fontSize: 15, color: Colors.black)))
|
Expanded(child: Text(
|
||||||
]),
|
_menuItem.getName(context),
|
||||||
])
|
style: const TextStyle(
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
fontSize: 15,
|
||||||
|
color: Colors.black
|
||||||
|
)
|
||||||
|
))
|
||||||
|
]),
|
||||||
|
])
|
||||||
)),
|
)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Color get backgroundColorItem {
|
Color _getBackgroundColorItem(BuildContext context) {
|
||||||
|
final responsiveUtils = Get.find<ResponsiveUtils>();
|
||||||
|
|
||||||
if (_menuItemSelected == _menuItem) {
|
if (_menuItemSelected == _menuItem) {
|
||||||
return AppColor.colorBgMailboxSelected;
|
return AppColor.colorBgMailboxSelected;
|
||||||
}
|
} else {
|
||||||
return _responsiveUtils.isWebDesktop(_context)
|
return responsiveUtils.isWebDesktop(context)
|
||||||
? AppColor.colorBgDesktop
|
? AppColor.colorBgDesktop
|
||||||
: Colors.white;
|
: Colors.white;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+6
-25
@@ -28,7 +28,6 @@ import 'package:tmail_ui_user/features/manage_account/domain/usecases/edit_ident
|
|||||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_identities_interactor.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_identities_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/identity_action_type.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/model/identity_action_type.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/identities/widgets/delete_identity_dialog_builder.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/profiles/identities/widgets/delete_identity_dialog_builder.dart';
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.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/app_routes.dart';
|
||||||
@@ -51,8 +50,6 @@ class IdentitiesController extends BaseController {
|
|||||||
final identitySelected = Rxn<Identity>();
|
final identitySelected = Rxn<Identity>();
|
||||||
final listAllIdentities = <Identity>[].obs;
|
final listAllIdentities = <Identity>[].obs;
|
||||||
|
|
||||||
late Worker accountIdWorker;
|
|
||||||
|
|
||||||
IdentitiesController(
|
IdentitiesController(
|
||||||
this._getAllIdentitiesInteractor,
|
this._getAllIdentitiesInteractor,
|
||||||
this._deleteIdentityInteractor,
|
this._deleteIdentityInteractor,
|
||||||
@@ -64,16 +61,10 @@ class IdentitiesController extends BaseController {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
_initWorker();
|
_registerObxStreamListener();
|
||||||
super.onInit();
|
super.onInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
void onClose() {
|
|
||||||
_clearWorker();
|
|
||||||
super.onClose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onDone() {
|
void onDone() {
|
||||||
viewState.value.fold(
|
viewState.value.fold(
|
||||||
@@ -98,23 +89,13 @@ class IdentitiesController extends BaseController {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _initWorker() {
|
void _registerObxStreamListener() {
|
||||||
accountIdWorker = ever(_accountDashBoardController.accountId, (accountId) {
|
ever(_accountDashBoardController.accountId, (accountId) {
|
||||||
if (accountId is AccountId) {
|
final session = _accountDashBoardController.sessionCurrent;
|
||||||
final session = _accountDashBoardController.sessionCurrent;
|
if (accountId != null && session != null) {
|
||||||
if (session != null) {
|
_getAllIdentities(session, accountId);
|
||||||
_getAllIdentities(session, accountId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (_accountDashBoardController.settingsPageLevel.value == SettingsPageLevel.level1) {
|
|
||||||
_accountDashBoardController.accountId.refresh();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _clearWorker() {
|
|
||||||
accountIdWorker.call();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _getAllIdentities(Session session, AccountId accountId) {
|
void _getAllIdentities(Session session, AccountId accountId) {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class IdentityBindings extends Bindings {
|
|||||||
void dependencies() {
|
void dependencies() {
|
||||||
IdentityInteractorsBindings().dependencies();
|
IdentityInteractorsBindings().dependencies();
|
||||||
|
|
||||||
Get.lazyPut(() => IdentitiesController(
|
Get.put(IdentitiesController(
|
||||||
Get.find<GetAllIdentitiesInteractor>(),
|
Get.find<GetAllIdentitiesInteractor>(),
|
||||||
Get.find<DeleteIdentityInteractor>(),
|
Get.find<DeleteIdentityInteractor>(),
|
||||||
Get.find<CreateNewIdentityInteractor>(),
|
Get.find<CreateNewIdentityInteractor>(),
|
||||||
|
|||||||
@@ -1,38 +1,10 @@
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:tmail_ui_user/features/base/base_bindings.dart';
|
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/profiles/identities/identity_bindings.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/profiles/identities/identity_bindings.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/profiles/profiles_controller.dart';
|
|
||||||
|
|
||||||
class ProfileBindings extends BaseBindings {
|
class ProfileBindings extends Bindings {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dependencies() {
|
void dependencies() {
|
||||||
super.dependencies();
|
|
||||||
IdentityBindings().dependencies();
|
IdentityBindings().dependencies();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsController() {
|
|
||||||
Get.lazyPut(() => ProfilesController());
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsDataSource() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsDataSourceImpl() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsInteractor() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsRepository() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsRepositoryImpl() {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
|
|
||||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
|
||||||
|
|
||||||
class ProfilesController extends BaseController {
|
|
||||||
|
|
||||||
@override
|
|
||||||
void onDone() {}
|
|
||||||
}
|
|
||||||
@@ -6,10 +6,9 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/base/setting_detail_view_builder.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/base/setting_detail_view_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/profiles/identities/identities_view.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/profiles/identities/identities_view.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/profiles/profiles_controller.dart';
|
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/profiles/widgets/profiles_header_widget.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/profiles/widgets/profiles_header_widget.dart';
|
||||||
|
|
||||||
class ProfilesView extends GetWidget<ProfilesController> {
|
class ProfilesView extends StatelessWidget {
|
||||||
|
|
||||||
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
||||||
final _imagePaths = Get.find<ImagePaths>();
|
final _imagePaths = Get.find<ImagePaths>();
|
||||||
|
|||||||
@@ -21,8 +21,6 @@ import 'package:tmail_ui_user/features/manage_account/presentation/model/vacatio
|
|||||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/vacation/vacation_message_type.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/model/vacation/vacation_message_type.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/vacation/vacation_presentation.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/model/vacation/vacation_presentation.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/vacation/vacation_responder_status.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/model/vacation/vacation_responder_status.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/utils/vacation_utils.dart';
|
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_controller_bindings.dart';
|
|
||||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||||
|
|
||||||
@@ -31,11 +29,11 @@ class VacationController extends BaseController {
|
|||||||
final _accountDashBoardController = Get.find<ManageAccountDashBoardController>();
|
final _accountDashBoardController = Get.find<ManageAccountDashBoardController>();
|
||||||
final _appToast = Get.find<AppToast>();
|
final _appToast = Get.find<AppToast>();
|
||||||
final _settingController = Get.find<SettingsController>();
|
final _settingController = Get.find<SettingsController>();
|
||||||
final _richTextControllerForWeb = Get.find<RichTextWebController>(tag: VacationUtils.vacationTagName);
|
|
||||||
|
|
||||||
final GetAllVacationInteractor _getAllVacationInteractor;
|
final GetAllVacationInteractor _getAllVacationInteractor;
|
||||||
final UpdateVacationInteractor _updateVacationInteractor;
|
final UpdateVacationInteractor _updateVacationInteractor;
|
||||||
final VerifyNameInteractor _verifyNameInteractor;
|
final VerifyNameInteractor _verifyNameInteractor;
|
||||||
|
final RichTextWebController _richTextControllerForWeb;
|
||||||
|
|
||||||
final vacationPresentation = VacationPresentation.initialize().obs;
|
final vacationPresentation = VacationPresentation.initialize().obs;
|
||||||
final errorMessageBody = Rxn<String>();
|
final errorMessageBody = Rxn<String>();
|
||||||
@@ -51,14 +49,13 @@ class VacationController extends BaseController {
|
|||||||
VacationResponse? currentVacation;
|
VacationResponse? currentVacation;
|
||||||
String? _vacationMessageHtmlText;
|
String? _vacationMessageHtmlText;
|
||||||
|
|
||||||
late Worker vacationWorker;
|
|
||||||
|
|
||||||
final ScrollController scrollController = ScrollController();
|
final ScrollController scrollController = ScrollController();
|
||||||
|
|
||||||
VacationController(
|
VacationController(
|
||||||
this._getAllVacationInteractor,
|
this._getAllVacationInteractor,
|
||||||
this._updateVacationInteractor,
|
this._updateVacationInteractor,
|
||||||
this._verifyNameInteractor
|
this._verifyNameInteractor,
|
||||||
|
this._richTextControllerForWeb
|
||||||
);
|
);
|
||||||
|
|
||||||
String? get vacationMessageHtmlText => _vacationMessageHtmlText;
|
String? get vacationMessageHtmlText => _vacationMessageHtmlText;
|
||||||
@@ -92,7 +89,7 @@ class VacationController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _initWorker() {
|
void _initWorker() {
|
||||||
vacationWorker = ever(_accountDashBoardController.vacationResponse, (vacation) {
|
ever(_accountDashBoardController.vacationResponse, (vacation) {
|
||||||
if (vacation is VacationResponse) {
|
if (vacation is VacationResponse) {
|
||||||
currentVacation = vacation;
|
currentVacation = vacation;
|
||||||
final newVacationPresentation = currentVacation?.toVacationPresentation();
|
final newVacationPresentation = currentVacation?.toVacationPresentation();
|
||||||
@@ -387,9 +384,7 @@ class VacationController extends BaseController {
|
|||||||
messageTextController.dispose();
|
messageTextController.dispose();
|
||||||
subjectTextController.dispose();
|
subjectTextController.dispose();
|
||||||
richTextControllerForMobile.dispose();
|
richTextControllerForMobile.dispose();
|
||||||
vacationWorker.dispose();
|
|
||||||
scrollController.dispose();
|
scrollController.dispose();
|
||||||
VacationControllerBindings().dispose();
|
|
||||||
super.onClose();
|
super.onClose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+9
-32
@@ -1,5 +1,4 @@
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:tmail_ui_user/features/base/base_bindings.dart';
|
|
||||||
import 'package:tmail_ui_user/features/composer/presentation/controller/rich_text_web_controller.dart';
|
import 'package:tmail_ui_user/features/composer/presentation/controller/rich_text_web_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_name_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_name_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_vacation_interactor.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_vacation_interactor.dart';
|
||||||
@@ -7,39 +6,17 @@ import 'package:tmail_ui_user/features/manage_account/domain/usecases/update_vac
|
|||||||
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/utils/vacation_utils.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/utils/vacation_utils.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_controller.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_controller.dart';
|
||||||
|
|
||||||
class VacationControllerBindings extends BaseBindings {
|
class VacationControllerBindings extends Bindings {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void bindingsController() {
|
void dependencies() {
|
||||||
Get.lazyPut(() => RichTextWebController(), tag: VacationUtils.vacationTagName);
|
|
||||||
Get.lazyPut(() => VacationController(
|
|
||||||
Get.find<GetAllVacationInteractor>(),
|
|
||||||
Get.find<UpdateVacationInteractor>(),
|
|
||||||
Get.find<VerifyNameInteractor>()));
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsDataSource() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsDataSourceImpl() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void bindingsInteractor() {
|
|
||||||
Get.lazyPut(() => VerifyNameInteractor());
|
Get.lazyPut(() => VerifyNameInteractor());
|
||||||
}
|
Get.lazyPut(() => RichTextWebController(), tag: VacationUtils.vacationTagName);
|
||||||
|
Get.put(VacationController(
|
||||||
@override
|
Get.find<GetAllVacationInteractor>(),
|
||||||
void bindingsRepository() {
|
Get.find<UpdateVacationInteractor>(),
|
||||||
}
|
Get.find<VerifyNameInteractor>(),
|
||||||
|
Get.find<RichTextWebController>(tag: VacationUtils.vacationTagName),
|
||||||
@override
|
));
|
||||||
void bindingsRepositoryImpl() {
|
|
||||||
}
|
|
||||||
|
|
||||||
void dispose() {
|
|
||||||
Get.delete<RichTextWebController>(tag: VacationUtils.vacationTagName);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,7 @@ import 'package:tmail_ui_user/features/quotas/presentation/quotas_controller.dar
|
|||||||
|
|
||||||
class QuotasWarningBannerWidget extends GetWidget<QuotasController> {
|
class QuotasWarningBannerWidget extends GetWidget<QuotasController> {
|
||||||
const QuotasWarningBannerWidget({this.margin ,Key? key}) : super(key: key);
|
const QuotasWarningBannerWidget({this.margin ,Key? key}) : super(key: key);
|
||||||
final EdgeInsetsGeometry? margin;
|
final EdgeInsets? margin;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@@ -14,7 +14,7 @@ class QuotasWarningBannerWidget extends GetWidget<QuotasController> {
|
|||||||
() => controller.enableShowWarningQuotas
|
() => controller.enableShowWarningQuotas
|
||||||
? Container(
|
? Container(
|
||||||
padding: const EdgeInsets.all(16),
|
padding: const EdgeInsets.all(16),
|
||||||
margin: margin ?? const EdgeInsets.only(left: 12, right: 12, top: 8),
|
margin: margin ?? const EdgeInsets.only(left: 12, right: 12, bottom: 12),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: controller.quotasState.value.getBackgroundColorWarningBanner(),
|
color: controller.quotasState.value.getBackgroundColorWarningBanner(),
|
||||||
borderRadius: const BorderRadius.all(Radius.circular(10)),
|
borderRadius: const BorderRadius.all(Radius.circular(10)),
|
||||||
|
|||||||
@@ -108,13 +108,11 @@ class ThreadView extends GetWidget<ThreadController>
|
|||||||
return Obx(() {
|
return Obx(() {
|
||||||
final vacation = controller.mailboxDashBoardController.vacationResponse.value;
|
final vacation = controller.mailboxDashBoardController.vacationResponse.value;
|
||||||
if (vacation?.vacationResponderIsValid == true) {
|
if (vacation?.vacationResponderIsValid == true) {
|
||||||
return Padding(
|
return VacationNotificationMessageWidget(
|
||||||
padding: const EdgeInsets.only(bottom: 8, top: 4),
|
margin: const EdgeInsets.only(bottom: 12, left: 12, right: 12),
|
||||||
child: VacationNotificationMessageWidget(
|
vacationResponse: vacation!,
|
||||||
vacationResponse: vacation!,
|
actionGotoVacationSetting: controller.mailboxDashBoardController.goToVacationSetting,
|
||||||
actionGotoVacationSetting: () => controller.mailboxDashBoardController.goToVacationSetting(),
|
actionEndNow: controller.mailboxDashBoardController.disableVacationResponder);
|
||||||
actionEndNow: () => controller.mailboxDashBoardController.disableVacationResponder()),
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
return const SizedBox.shrink();
|
return const SizedBox.shrink();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ class SpamReportBannerWidget extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
return Container(
|
return Container(
|
||||||
height: 124,
|
height: 124,
|
||||||
margin: const EdgeInsets.only(left: 16, right: 16, bottom: 16),
|
margin: const EdgeInsets.only(left: 12, right: 12, bottom: 12),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(12),
|
||||||
border: Border.all(color: AppColor.colorBorderBodyThread, width: 1),
|
border: Border.all(color: AppColor.colorBorderBodyThread, width: 1),
|
||||||
|
|||||||
Reference in New Issue
Block a user