TF-4136 Add config Sentry

This commit is contained in:
dab246
2025-12-15 12:01:21 +07:00
committed by Dat H. Pham
parent ad768f1552
commit ec75bb3cab
46 changed files with 804 additions and 216 deletions
@@ -3,7 +3,6 @@ import 'package:core/data/utils/device_manager.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/app_toast.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/utils/application_manager.dart';
import 'package:core/utils/config/app_config_loader.dart';
import 'package:core/utils/file_utils.dart';
import 'package:core/utils/platform_info.dart';
@@ -73,7 +72,6 @@ class CoreBindings extends Bindings {
Get.put(AppConfigLoader());
Get.put(FileUtils());
Get.put(PrintUtils());
Get.put(ApplicationManager(Get.find<DeviceInfoPlugin>()));
Get.put(BeforeReconnectManager());
if (PlatformInfo.isIOS) {
Get.put(IOSNotificationManager());
@@ -5,10 +5,10 @@ import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:core/core.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:dio/dio.dart';
import 'package:flutter/foundation.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';
@@ -88,18 +88,22 @@ class NetworkBindings extends Bindings {
}
void _bindingInterceptors() {
final dio = Get.find<Dio>();
Get.put(DynamicUrlInterceptors());
Get.put(AuthorizationInterceptors(
Get.find<Dio>(),
dio,
Get.find<AuthenticationClientBase>(),
Get.find<TokenOidcCacheManager>(),
Get.find<AccountCacheManager>(),
Get.find<IOSSharingManager>(),
));
Get.find<Dio>().interceptors.add(Get.find<DynamicUrlInterceptors>());
Get.find<Dio>().interceptors.add(Get.find<AuthorizationInterceptors>());
if (kDebugMode) {
Get.find<Dio>().interceptors.add(LogInterceptor(requestBody: true));
dio.interceptors.add(Get.find<DynamicUrlInterceptors>());
dio.interceptors.add(Get.find<AuthorizationInterceptors>());
if (BuildUtils.isDebugMode) {
dio.interceptors.add(LogInterceptor(requestBody: true));
}
if (SentryManager.instance.isSentryAvailable) {
dio.addSentry();
}
}
@@ -4,6 +4,7 @@ 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';
@@ -51,20 +52,23 @@ class NetworkIsolateBindings extends Bindings {
}
void _bindingInterceptors() {
Get.put(AuthorizationInterceptors(
Get.find<Dio>(tag: BindingTag.isolateTag),
final dio = Get.find<Dio>(tag: BindingTag.isolateTag);
final authorizationInterceptors = AuthorizationInterceptors(
dio,
Get.find<AuthenticationClientBase>(tag: BindingTag.isolateTag),
Get.find<TokenOidcCacheManager>(tag: BindingTag.isolateTag),
Get.find<AccountCacheManager>(tag: BindingTag.isolateTag),
Get.find<IOSSharingManager>(tag: BindingTag.isolateTag),
), tag: BindingTag.isolateTag);
Get.find<Dio>(tag: BindingTag.isolateTag).interceptors
.add(Get.find<DynamicUrlInterceptors>());
Get.find<Dio>(tag: BindingTag.isolateTag).interceptors
.add(Get.find<AuthorizationInterceptors>(tag: BindingTag.isolateTag));
);
Get.put(authorizationInterceptors, tag: BindingTag.isolateTag);
dio.interceptors.add(Get.find<DynamicUrlInterceptors>());
dio.interceptors.add(authorizationInterceptors);
if (BuildUtils.isDebugMode) {
Get.find<Dio>(tag: BindingTag.isolateTag).interceptors
.add(LogInterceptor(requestBody: true));
dio.interceptors.add(LogInterceptor(requestBody: true));
}
if (SentryManager.instance.isSentryAvailable) {
dio.addSentry();
}
}