TF-501 [iOS] add Mail app to be Default mail

This commit is contained in:
ManhNTX
2022-08-30 09:17:31 +07:00
committed by Dat H. Pham
parent f8b5ddc227
commit 83bf289550
14 changed files with 116 additions and 105 deletions
+2
View File
@@ -3,6 +3,7 @@ import 'package:tmail_ui_user/main/bindings/core/core_bindings.dart';
import 'package:tmail_ui_user/main/bindings/credential/credential_bindings.dart';
import 'package:tmail_ui_user/main/bindings/local/local_bindings.dart';
import 'package:tmail_ui_user/main/bindings/network/network_bindings.dart';
import 'package:tmail_ui_user/main/bindings/network/network_isolate_binding.dart';
import 'package:tmail_ui_user/main/bindings/session/session_bindings.dart';
class MainBindings extends Bindings {
@@ -11,6 +12,7 @@ class MainBindings extends Bindings {
await CoreBindings().dependencies();
LocalBindings().dependencies();
NetworkBindings().dependencies();
NetworkIsolateBindings().dependencies();
CredentialBindings().dependencies();
SessionBindings().dependencies();
}
+1 -1
View File
@@ -1,3 +1,3 @@
class BindingTag {
static const isoLateTag = 'isoLateTag';
static const isolateTag = 'isolateTag';
}
@@ -13,17 +13,12 @@ import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.da
import 'package:tmail_ui_user/features/login/data/local/token_oidc_cache_manager.dart';
import 'package:tmail_ui_user/features/login/data/network/authentication_client/authentication_client_base.dart';
import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart';
import 'package:tmail_ui_user/features/login/data/network/config/authorization_isolate_interceptors.dart';
import 'package:tmail_ui_user/features/login/data/network/oidc_http_client.dart';
import 'package:tmail_ui_user/features/login/data/utils/library_platform/app_auth_plugin/app_auth_plugin.dart';
import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_api.dart';
import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_isolate_worker.dart';
import 'package:tmail_ui_user/features/manage_account/data/network/manage_account_api.dart';
import 'package:tmail_ui_user/features/session/data/network/session_api.dart';
import 'package:tmail_ui_user/features/thread/data/network/thread_api.dart';
import 'package:tmail_ui_user/features/thread/data/network/thread_isolate_worker.dart';
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
import 'package:worker_manager/worker_manager.dart';
class NetworkBindings extends Bindings {
@@ -31,7 +26,6 @@ class NetworkBindings extends Bindings {
void dependencies() {
_bindingDio();
_bindingApi();
_bindingIsolateWorker();
_bindingConnection();
_bindingException();
}
@@ -47,9 +41,7 @@ class NetworkBindings extends Bindings {
void _bindingDio() {
_bindingBaseOption();
Get.put(Dio(Get.find<BaseOptions>()));
Get.put(Dio(Get.find<BaseOptions>()), tag: BindingTag.isoLateTag);
Get.put(DioClient(Get.find<Dio>()));
Get.put(DioClient(Get.find<Dio>(tag: BindingTag.isoLateTag)), tag: BindingTag.isoLateTag);
Get.put(const FlutterAppAuth());
Get.put(AppAuthWebPlugin());
Get.put(OIDCHttpClient(Get.find<DioClient>()));
@@ -59,20 +51,16 @@ class NetworkBindings extends Bindings {
void _bindingInterceptors() {
Get.put(DynamicUrlInterceptors());
Get.put(AuthorizationIsolateInterceptors());
Get.put(AuthorizationInterceptors(
Get.find<Dio>(),
Get.find<AuthenticationClientBase>(),
Get.find<TokenOidcCacheManager>(),
Get.find<AccountCacheManager>(),
));
Get.find<Dio>(tag: BindingTag.isoLateTag).interceptors.add(Get.find<DynamicUrlInterceptors>());
Get.find<Dio>(tag: BindingTag.isoLateTag).interceptors.add(Get.find<AuthorizationIsolateInterceptors>());
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));
Get.find<Dio>(tag: BindingTag.isoLateTag).interceptors.add(LogInterceptor(requestBody: true));
}
}
@@ -98,18 +86,4 @@ class NetworkBindings extends Bindings {
void _bindingException() {
Get.put(RemoteExceptionThrower());
}
void _bindingIsolateWorker() {
Get.put(Executor());
Get.put(ThreadIsolateWorker(
Get.find<ThreadAPI>(),
Get.find<EmailAPI>(),
Get.find<Executor>(),
));
Get.put(MailboxIsolateWorker(
Get.find<ThreadAPI>(),
Get.find<EmailAPI>(),
Get.find<Executor>(),
));
}
}
@@ -0,0 +1,70 @@
import 'package:core/core.dart';
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/http/http_client.dart' as JmapHttpClient;
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';
import 'package:tmail_ui_user/features/login/data/local/token_oidc_cache_manager.dart';
import 'package:tmail_ui_user/features/login/data/network/authentication_client/authentication_client_base.dart';
import 'package:tmail_ui_user/features/login/data/network/config/authorization_interceptors.dart';
import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_isolate_worker.dart';
import 'package:tmail_ui_user/features/thread/data/network/thread_api.dart';
import 'package:tmail_ui_user/features/thread/data/network/thread_isolate_worker.dart';
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
import 'package:worker_manager/worker_manager.dart';
class NetworkIsolateBindings extends Bindings {
@override
void dependencies() {
_bindingDio();
_bindingApi();
_bindingIsolateWorker();
}
void _bindingDio() {
final dio = Get.put(Dio(Get.find<BaseOptions>()), tag: BindingTag.isolateTag);
Get.put(DioClient(dio), tag: BindingTag.isolateTag);
_bindingInterceptors(dio);
}
void _bindingInterceptors(Dio dio) {
Get.put(AuthorizationInterceptors(
dio,
Get.find<AuthenticationClientBase>(),
Get.find<TokenOidcCacheManager>(),
Get.find<AccountCacheManager>(),
), tag: BindingTag.isolateTag);
dio.interceptors.add(Get.find<DynamicUrlInterceptors>());
dio.interceptors.add(Get.find<AuthorizationInterceptors>(tag: BindingTag.isolateTag));
if (kDebugMode) {
dio.interceptors.add(LogInterceptor(requestBody: true));
}
}
void _bindingApi() {
final JmapHttpClient.HttpClient httpClient = Get.put(JmapHttpClient.HttpClient(Get.find<Dio>(tag: BindingTag.isolateTag)), tag: BindingTag.isolateTag);
Get.put(DownloadClient(Get.find<DioClient>(tag: BindingTag.isolateTag), Get.find<CompressFileUtils>()), tag: BindingTag.isolateTag);
Get.put(DownloadManager(Get.find<DownloadClient>(tag: BindingTag.isolateTag)), tag: BindingTag.isolateTag);
Get.put(ThreadAPI(httpClient), tag: BindingTag.isolateTag);
Get.put(EmailAPI(
httpClient,
Get.find<DownloadManager>(tag: BindingTag.isolateTag),
Get.find<DioClient>(tag: BindingTag.isolateTag)), tag: BindingTag.isolateTag);
}
void _bindingIsolateWorker() {
Get.put(Executor());
Get.put(ThreadIsolateWorker(
Get.find<ThreadAPI>(tag: BindingTag.isolateTag),
Get.find<EmailAPI>(tag: BindingTag.isolateTag),
Get.find<Executor>(),
));
Get.put(MailboxIsolateWorker(
Get.find<ThreadAPI>(tag: BindingTag.isolateTag),
Get.find<EmailAPI>(tag: BindingTag.isolateTag),
Get.find<Executor>(),
));
}
}