TF-3449 Setup Sender-set important flag in Setting View

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-02-20 02:11:28 +07:00
committed by Dat H. Pham
parent f40056ea99
commit d2ee165f49
41 changed files with 675 additions and 407 deletions
@@ -102,6 +102,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart' as search;
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/delete_emails_in_mailbox_extension.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/handle_preferences_setting_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/mixin/user_setting_popup_menu_mixin.dart';
@@ -144,6 +145,8 @@ import 'package:tmail_ui_user/features/sending_queue/domain/usecases/get_all_sen
import 'package:tmail_ui_user/features/sending_queue/domain/usecases/store_sending_email_interactor.dart';
import 'package:tmail_ui_user/features/sending_queue/domain/usecases/update_sending_email_interactor.dart';
import 'package:tmail_ui_user/features/sending_queue/presentation/model/sending_email_arguments.dart';
import 'package:tmail_ui_user/features/server_settings/domain/state/get_server_setting_state.dart';
import 'package:tmail_ui_user/features/server_settings/domain/usecases/get_server_setting_interactor.dart';
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
import 'package:tmail_ui_user/features/thread/domain/state/empty_spam_folder_state.dart';
@@ -174,6 +177,7 @@ import 'package:tmail_ui_user/main/universal_import/html_stub.dart' as html;
import 'package:tmail_ui_user/main/utils/app_config.dart';
import 'package:tmail_ui_user/main/utils/email_receive_manager.dart';
import 'package:tmail_ui_user/main/utils/ios_notification_manager.dart';
import 'package:server_settings/server_settings/tmail_server_settings_extension.dart';
import 'package:uuid/uuid.dart';
class MailboxDashBoardController extends ReloadableController
@@ -221,6 +225,7 @@ class MailboxDashBoardController extends ReloadableController
DeleteMailboxStateToRefreshInteractor? _deleteMailboxStateToRefreshInteractor;
GetAutoCompleteInteractor? _getAutoCompleteInteractor;
IOSNotificationManager? _iosNotificationManager;
GetServerSettingInteractor? getServerSettingInteractor;
final scaffoldKey = GlobalKey<ScaffoldState>();
final selectedMailbox = Rxn<PresentationMailbox>();
@@ -245,6 +250,7 @@ class MailboxDashBoardController extends ReloadableController
final attachmentDraggableAppState = Rxn<DraggableAppState>();
final isRecoveringDeletedMessage = RxBool(false);
final localFileDraggableAppState = Rxn<DraggableAppState>();
final isSenderImportantFlagEnabled = RxBool(true);
Session? sessionCurrent;
Map<Role, MailboxId> mapDefaultMailboxIdByRole = {};
@@ -439,6 +445,8 @@ class MailboxDashBoardController extends ReloadableController
[success.emailId],
markStarAction: success.markStarAction,
);
} else if (success is GetServerSettingSuccess) {
isSenderImportantFlagEnabled.value = success.settingOption.isDisplaySenderPriority;
}
}
@@ -471,6 +479,8 @@ class MailboxDashBoardController extends ReloadableController
toastManager.showMessageFailure(failure);
} else if (failure is GetComposerCacheFailure) {
_handleIdentityCache();
} else if (failure is GetServerSettingFailure) {
isSenderImportantFlagEnabled.value = true;
}
}
@@ -734,6 +744,7 @@ class MailboxDashBoardController extends ReloadableController
injectRuleFilterBindings(session, currentAccountId);
injectVacationBindings(session, currentAccountId);
injectWebSocket(session, currentAccountId);
injectPreferencesBindings();
if (PlatformInfo.isMobile) {
injectFCMBindings(session, currentAccountId);
}
@@ -741,6 +752,7 @@ class MailboxDashBoardController extends ReloadableController
_getVacationResponse();
spamReportController.getSpamReportStateAction();
_getAllIdentities();
getServerSetting();
if (PlatformInfo.isMobile) {
getAllSendingEmails();
@@ -1900,6 +1912,7 @@ class MailboxDashBoardController extends ReloadableController
}
_getAllIdentities();
getServerSetting();
}
Future<List<PresentationEmail>> quickSearchEmails(String query) async {
@@ -1965,6 +1978,7 @@ class MailboxDashBoardController extends ReloadableController
}
_getAllIdentities();
getServerSetting();
}
void _handleUpdateVacationSuccess(UpdateVacationSuccess success) {