TF-4136 Fix duplicate Executor instance creation.

This commit is contained in:
dab246
2026-01-12 10:56:30 +07:00
committed by Dat H. Pham
parent 944029d16c
commit b6f7f7d846
15 changed files with 69 additions and 27 deletions
@@ -8,7 +8,6 @@ import 'package:dio/dio.dart';
import 'package:flutter_appauth/flutter_appauth.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/http/http_client.dart';
import 'package:sentry_dio/sentry_dio.dart';
import 'package:tmail_ui_user/features/contact/data/network/contact_api.dart';
import 'package:tmail_ui_user/features/email/data/network/email_api.dart';
import 'package:tmail_ui_user/features/email/data/network/mdn_api.dart';
@@ -102,14 +101,7 @@ class NetworkBindings extends Bindings {
if (BuildUtils.isDebugMode) {
dio.interceptors.add(LogInterceptor(requestBody: true));
}
if (SentryManager.instance.isSentryAvailable) {
// Guard against duplicate Sentry interceptor registration
final alreadyHasSentry = dio.interceptors
.any((i) => i.runtimeType.toString().contains('Sentry'));
if (!alreadyHasSentry) {
dio.addSentry();
}
}
SentryDioHelper.addIfAvailable(dio);
}
void _bindingApi() {
@@ -4,7 +4,6 @@ import 'package:dio/dio.dart';
import 'package:flutter_appauth/flutter_appauth.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/http/http_client.dart';
import 'package:sentry_dio/sentry_dio.dart';
import 'package:tmail_ui_user/features/email/data/local/html_analyzer.dart';
import 'package:tmail_ui_user/features/email/data/network/email_api.dart';
import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart';
@@ -53,6 +52,7 @@ class NetworkIsolateBindings extends Bindings {
void _bindingInterceptors() {
final dio = Get.find<Dio>(tag: BindingTag.isolateTag);
Get.put(DynamicUrlInterceptors());
final authorizationInterceptors = AuthorizationInterceptors(
dio,
Get.find<AuthenticationClientBase>(tag: BindingTag.isolateTag),
@@ -67,14 +67,7 @@ class NetworkIsolateBindings extends Bindings {
if (BuildUtils.isDebugMode) {
dio.interceptors.add(LogInterceptor(requestBody: true));
}
if (SentryManager.instance.isSentryAvailable) {
// Guard against duplicate Sentry interceptor registration
final alreadyHasSentry = dio.interceptors
.any((i) => i.runtimeType.toString().contains('Sentry'));
if (!alreadyHasSentry) {
dio.addSentry();
}
}
SentryDioHelper.addIfAvailable(dio);
}
void _bindingApi() {
+3 -2
View File
@@ -3,6 +3,7 @@ import 'package:core/utils/build_utils.dart';
import 'package:core/utils/config/env_loader.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/widgets.dart';
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/caching/config/hive_cache_config.dart';
import 'package:tmail_ui_user/main.dart';
import 'package:tmail_ui_user/main/bindings/main_bindings.dart';
@@ -22,11 +23,11 @@ Future<void> runTmailPreload() async {
await Future.wait([
MainBindings().dependencies(),
HiveCacheConfig.instance.setUp(),
Executor().warmUp(log: BuildUtils.isDebugMode),
EnvLoader.loadEnvFile(),
if (PlatformInfo.isWeb) AssetPreloader.preloadHtmlEditorAssets(),
]);
], eagerError: false);
await Get.find<Executor>().warmUp(log: BuildUtils.isDebugMode);
await CozyIntegration.integrateCozy();
await HiveCacheConfig.instance.initializeEncryptionKey();