TF-4082 Setup text formatting menu state from user's preferences in composer
This commit is contained in:
@@ -94,6 +94,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_com
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_spam_mailbox_cached_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_spam_report_state_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_stored_email_sort_order_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_text_formatting_menu_state_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/quick_search_email_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_all_composer_cache_on_web_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_by_id_on_web_interactor.dart';
|
||||
@@ -111,7 +112,9 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/local/preferences_setting_manager.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/identity_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/get_all_identities_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/bindings/setting_interactor_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/identities/identity_interactors_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/identities/utils/identity_utils.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_manager.dart';
|
||||
@@ -401,6 +404,13 @@ class MailboxDashBoardBindings extends BaseBindings {
|
||||
PaywallBindings().dependencies();
|
||||
|
||||
DownloadInteractorBindings().dependencies();
|
||||
|
||||
SettingInteractorBindings().dependencies();
|
||||
Get.lazyPut(
|
||||
() => GetTextFormattingMenuStateInteractor(
|
||||
Get.find<ManageAccountRepository>(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
+10
@@ -104,9 +104,11 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/exceptions/spam_
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_composer_cache_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_stored_email_sort_order_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_text_formatting_menu_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_composer_cache_on_web_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_stored_email_sort_order_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_text_formatting_menu_state_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_all_composer_cache_on_web_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_composer_cache_by_id_on_web_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_email_drafts_interactor.dart';
|
||||
@@ -133,6 +135,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/select_search_filter_action_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/set_error_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/update_current_emails_flags_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/update_text_formatting_menu_state_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/web_auth_redirect_processor_extension.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/download/download_task_state.dart';
|
||||
@@ -265,6 +268,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
GetServerSettingInteractor? getServerSettingInteractor;
|
||||
CreateNewEmailRuleFilterInteractor? createNewEmailRuleFilterInteractor;
|
||||
SaveLanguageInteractor? saveLanguageInteractor;
|
||||
GetTextFormattingMenuStateInteractor? getTextFormattingMenuStateInteractor;
|
||||
|
||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
||||
final selectedMailbox = Rxn<PresentationMailbox>();
|
||||
@@ -295,6 +299,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
final isContextMenuOpened = RxBool(false);
|
||||
final isPopupMenuOpened = RxBool(false);
|
||||
final octetsQuota = Rxn<Quota>();
|
||||
final isTextFormattingMenuOpened = RxBool(false);
|
||||
|
||||
Map<Role, MailboxId> mapDefaultMailboxIdByRole = {};
|
||||
Map<MailboxId, PresentationMailbox> mapMailboxById = {};
|
||||
@@ -383,6 +388,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
listSearchFilterScrollController = ScrollController();
|
||||
twakeAppManager.setExecutingBeforeReconnect(false);
|
||||
registerReactiveObxVariableListener();
|
||||
initialTextFormattingMenuState();
|
||||
}
|
||||
if (PlatformInfo.isIOS) {
|
||||
_registerPendingCurrentEmailIdInNotification();
|
||||
@@ -512,6 +518,8 @@ class MailboxDashBoardController extends ReloadableController
|
||||
);
|
||||
} else if (success is GetStoredEmailSortOrderSuccess) {
|
||||
setUpDefaultEmailSortOrder(success.emailSortOrderType);
|
||||
} else if (success is GetTextFormattingMenuStateSuccess) {
|
||||
updateTextFormattingMenuState(success.isDisplayed);
|
||||
} else {
|
||||
super.handleSuccessViewState(success);
|
||||
}
|
||||
@@ -557,6 +565,8 @@ class MailboxDashBoardController extends ReloadableController
|
||||
tryGetAuthenticatedAccountToUseApp();
|
||||
} else if (isGetTokenOIDCFailure(failure)) {
|
||||
backToHomeScreen();
|
||||
} else if (failure is GetTextFormattingMenuStateFailure) {
|
||||
updateTextFormattingMenuState(false);
|
||||
} else {
|
||||
super.handleFailureViewState(failure);
|
||||
}
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_text_formatting_menu_state_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
|
||||
extension UpdateTextFormattingMenuStateExtension on MailboxDashBoardController {
|
||||
void initialTextFormattingMenuState() {
|
||||
getTextFormattingMenuStateInteractor =
|
||||
getBinding<GetTextFormattingMenuStateInteractor>();
|
||||
if (getTextFormattingMenuStateInteractor == null) return;
|
||||
|
||||
consumeState(getTextFormattingMenuStateInteractor!.execute());
|
||||
}
|
||||
|
||||
void updateTextFormattingMenuState(bool isDisplayed) {
|
||||
isTextFormattingMenuOpened.value = isDisplayed;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user