TF-4268 Cache Sentry config and user for FCM background re-initialization

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2026-04-09 16:22:37 +07:00
committed by Dat H. Pham
parent cb5d43630a
commit eeaab49e93
20 changed files with 755 additions and 183 deletions
@@ -154,7 +154,9 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions
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/mixin/sentry_ecosystem_mixin.dart';
import 'package:tmail_ui_user/features/caching/manager/sentry_configuration_cache_manager.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/linagora_ecosystem/sentry_config_linagora_ecosystem.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/sentry_ecosystem.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';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/draggable_app_state.dart';
@@ -242,8 +244,9 @@ class MailboxDashBoardController extends ReloadableController
AiScribeMixin,
SearchLabelFilterModalMixin,
AddLabelToEmailMixin,
HandleTeamMailboxMixin,
SentryEcosystemMixin {
HandleTeamMailboxMixin {
SentryEcosystem? _sentryEcosystem;
final RemoveEmailDraftsInteractor _removeEmailDraftsInteractor = Get.find<RemoveEmailDraftsInteractor>();
final EmailReceiveManager _emailReceiveManager = Get.find<EmailReceiveManager>();
@@ -403,6 +406,7 @@ class MailboxDashBoardController extends ReloadableController
@override
void onInit() {
if (PlatformInfo.isMobile) {
_sentryEcosystem = SentryEcosystem(getBinding<SentryConfigurationCacheManager>());
_registerReceivingFileSharingStream();
_registerDeepLinks();
}
@@ -415,6 +419,11 @@ class MailboxDashBoardController extends ReloadableController
super.onInit();
}
void initSentryUser(SentryUser? user) => _sentryEcosystem?.initUser(user);
Future<void> setUpSentry(SentryConfigLinagoraEcosystem ecosystemConfig) async =>
_sentryEcosystem?.setUp(ecosystemConfig);
@override
void onReady() {
if (PlatformInfo.isWeb) {
@@ -3477,6 +3486,7 @@ class MailboxDashBoardController extends ReloadableController
paywallController?.onClose();
paywallController = null;
cachedLinagoraEcosystem = null;
_sentryEcosystem = null;
_disposeWorkerObxVariables();
super.onClose();
}