TF-867 [Android] Share image with TeamMail app but image is not add to inline image
This commit is contained in:
@@ -11,6 +11,7 @@ import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
|
||||
import 'package:tmail_ui_user/features/caching/config/hive_cache_config.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/domain/state/get_credential_state.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/state/get_stored_token_oidc_state.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart';
|
||||
@@ -30,6 +31,7 @@ import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
abstract class ReloadableController extends BaseController {
|
||||
final DynamicUrlInterceptors _dynamicUrlInterceptors = Get.find<DynamicUrlInterceptors>();
|
||||
final AuthorizationInterceptors _authorizationInterceptors = Get.find<AuthorizationInterceptors>();
|
||||
final AuthorizationIsolateInterceptors _authorizationIsolateInterceptors = Get.find<AuthorizationIsolateInterceptors>();
|
||||
final GetSessionInteractor _getSessionInteractor = Get.find<GetSessionInteractor>();
|
||||
final DeleteCredentialInteractor _deleteCredentialInteractor = Get.find<DeleteCredentialInteractor>();
|
||||
final CachingManager _cachingManager = Get.find<CachingManager>();
|
||||
@@ -95,6 +97,10 @@ abstract class ReloadableController extends BaseController {
|
||||
credentialViewState.userName.userName,
|
||||
credentialViewState.password.value,
|
||||
);
|
||||
_authorizationIsolateInterceptors.setBasicAuthorization(
|
||||
credentialViewState.userName.userName,
|
||||
credentialViewState.password.value,
|
||||
);
|
||||
}
|
||||
|
||||
void _handleGetCredentialSuccess(GetCredentialViewState credentialViewState) {
|
||||
@@ -138,6 +144,7 @@ abstract class ReloadableController extends BaseController {
|
||||
_languageCacheManager.removeLanguage(),
|
||||
]);
|
||||
_authorizationInterceptors.clear();
|
||||
_authorizationIsolateInterceptors.clear();
|
||||
await HiveCacheConfig().closeHive();
|
||||
_goToLogin(arguments: LoginArguments(LoginFormType.credentialForm));
|
||||
}
|
||||
@@ -151,6 +158,7 @@ abstract class ReloadableController extends BaseController {
|
||||
_cachingManager.clearAll(),
|
||||
_languageCacheManager.removeLanguage(),
|
||||
]);
|
||||
_authorizationIsolateInterceptors.clear();
|
||||
_authorizationInterceptors.clear();
|
||||
await HiveCacheConfig().closeHive();
|
||||
_goToLogin(arguments: LoginArguments(LoginFormType.ssoForm));
|
||||
@@ -166,6 +174,9 @@ abstract class ReloadableController extends BaseController {
|
||||
_authorizationInterceptors.setTokenAndAuthorityOidc(
|
||||
newToken: tokenOidcSuccess.tokenOidc.toToken(),
|
||||
newConfig: tokenOidcSuccess.oidcConfiguration);
|
||||
_authorizationIsolateInterceptors.setTokenAndAuthorityOidc(
|
||||
newToken: tokenOidcSuccess.tokenOidc.toToken(),
|
||||
newConfig: tokenOidcSuccess.oidcConfiguration);
|
||||
}
|
||||
|
||||
void injectAutoCompleteBindings() {
|
||||
|
||||
@@ -53,7 +53,7 @@ import 'package:tmail_ui_user/features/upload/data/datasource_impl/attachment_up
|
||||
import 'package:tmail_ui_user/features/upload/data/network/file_uploader.dart';
|
||||
import 'package:tmail_ui_user/features/upload/domain/usecases/local_file_picker_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/upload/presentation/controller/upload_controller.dart';
|
||||
import 'package:worker_manager/worker_manager.dart';
|
||||
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
|
||||
|
||||
class ComposerBindings extends BaseBindings {
|
||||
|
||||
@@ -64,7 +64,7 @@ class ComposerBindings extends BaseBindings {
|
||||
}
|
||||
|
||||
void _bindingsUtils() {
|
||||
Get.lazyPut(() => FileUploader(Get.find<DioClient>(), Get.find<Executor>()));
|
||||
Get.lazyPut(() => FileUploader(Get.find<DioClient>(tag: BindingTag.isoLateTag)));
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -171,6 +171,7 @@ class ComposerBindings extends BaseBindings {
|
||||
void dispose() {
|
||||
Get.delete<UploadController>();
|
||||
Get.delete<RichTextWebController>();
|
||||
Get.delete<RichTextMobileTabletController>();
|
||||
Get.delete<ComposerController>();
|
||||
}
|
||||
}
|
||||
@@ -245,7 +245,9 @@ class ComposerController extends BaseController {
|
||||
listIdentities.value = success.identities!
|
||||
.where((identity) => identity.mayDelete == true)
|
||||
.toList();
|
||||
selectIdentity(listIdentities.first);
|
||||
if (listIdentities.isNotEmpty) {
|
||||
selectIdentity(listIdentities.first);
|
||||
}
|
||||
}
|
||||
} else if (success is DownloadImageAsBase64Success) {
|
||||
if(kIsWeb) {
|
||||
|
||||
@@ -19,6 +19,7 @@ import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_cache
|
||||
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/repository/account_repository_impl.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/repository/authentication_oidc_repository_impl.dart';
|
||||
@@ -42,6 +43,7 @@ class HomeBindings extends BaseBindings {
|
||||
Get.find<GetAuthenticatedAccountInteractor>(),
|
||||
Get.find<DynamicUrlInterceptors>(),
|
||||
Get.find<AuthorizationInterceptors>(),
|
||||
Get.find<AuthorizationIsolateInterceptors>(),
|
||||
Get.find<CleanupEmailCacheInteractor>(),
|
||||
Get.find<EmailReceiveManager>(),
|
||||
Get.find<CleanupRecentSearchCacheInteractor>(),
|
||||
|
||||
@@ -12,6 +12,7 @@ import 'package:tmail_ui_user/features/cleanup/domain/model/recent_search_cleanu
|
||||
import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_email_cache_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/cleanup/domain/usecases/cleanup_recent_search_cache_interactor.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/domain/state/check_oidc_is_available_state.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/state/get_credential_state.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/state/get_stored_token_oidc_state.dart';
|
||||
@@ -30,6 +31,7 @@ class HomeController extends BaseController {
|
||||
final GetAuthenticatedAccountInteractor _getAuthenticatedAccountInteractor;
|
||||
final DynamicUrlInterceptors _dynamicUrlInterceptors;
|
||||
final AuthorizationInterceptors _authorizationInterceptors;
|
||||
final AuthorizationIsolateInterceptors _authorizationIsolateInterceptors;
|
||||
final CleanupEmailCacheInteractor _cleanupEmailCacheInteractor;
|
||||
final EmailReceiveManager _emailReceiveManager;
|
||||
final CleanupRecentSearchCacheInteractor _cleanupRecentSearchCacheInteractor;
|
||||
@@ -42,6 +44,7 @@ class HomeController extends BaseController {
|
||||
this._getAuthenticatedAccountInteractor,
|
||||
this._dynamicUrlInterceptors,
|
||||
this._authorizationInterceptors,
|
||||
this._authorizationIsolateInterceptors,
|
||||
this._cleanupEmailCacheInteractor,
|
||||
this._emailReceiveManager,
|
||||
this._cleanupRecentSearchCacheInteractor,
|
||||
@@ -176,6 +179,9 @@ class HomeController extends BaseController {
|
||||
_authorizationInterceptors.setTokenAndAuthorityOidc(
|
||||
newToken: storedTokenOidcSuccess.tokenOidc.toToken(),
|
||||
newConfig: storedTokenOidcSuccess.oidcConfiguration);
|
||||
_authorizationIsolateInterceptors.setTokenAndAuthorityOidc(
|
||||
newToken: storedTokenOidcSuccess.tokenOidc.toToken(),
|
||||
newConfig: storedTokenOidcSuccess.oidcConfiguration);
|
||||
pushAndPop(AppRoutes.SESSION);
|
||||
}
|
||||
|
||||
@@ -185,6 +191,10 @@ class HomeController extends BaseController {
|
||||
credentialViewState.userName.userName,
|
||||
credentialViewState.password.value,
|
||||
);
|
||||
_authorizationIsolateInterceptors.setBasicAuthorization(
|
||||
credentialViewState.userName.userName,
|
||||
credentialViewState.password.value,
|
||||
);
|
||||
pushAndPop(AppRoutes.SESSION);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:core/core.dart';
|
||||
import 'package:model/account/authentication_type.dart';
|
||||
import 'package:model/oidc/oidc_configuration.dart';
|
||||
import 'package:model/oidc/token.dart';
|
||||
|
||||
class AuthorizationIsolateInterceptors extends QueuedInterceptorsWrapper {
|
||||
|
||||
AuthenticationType _authenticationType = AuthenticationType.none;
|
||||
OIDCConfiguration? _configOIDC;
|
||||
Token? _token;
|
||||
String? _authorization;
|
||||
|
||||
void setBasicAuthorization(String? userName, String? password) {
|
||||
_authorization = base64Encode(utf8.encode('$userName:$password'));
|
||||
_authenticationType = AuthenticationType.basic;
|
||||
}
|
||||
|
||||
void setTokenAndAuthorityOidc({Token? newToken, OIDCConfiguration? newConfig}) {
|
||||
_token = newToken;
|
||||
_configOIDC = newConfig;
|
||||
_authenticationType = AuthenticationType.oidc;
|
||||
log('AuthorizationIsolateInterceptors::setToken(): newToken: $newToken');
|
||||
log('AuthorizationIsolateInterceptors::setToken(): tokenId: ${newToken?.tokenIdHash}');
|
||||
log('AuthorizationIsolateInterceptors::setToken(): EXPIRE_DATE: ${newToken?.expiredTime?.toIso8601String()}');
|
||||
}
|
||||
|
||||
OIDCConfiguration? get oidcConfig => _configOIDC;
|
||||
|
||||
AuthenticationType get authenticationType => _authenticationType;
|
||||
|
||||
@override
|
||||
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
|
||||
switch(_authenticationType) {
|
||||
case AuthenticationType.basic:
|
||||
if (_authorization != null) {
|
||||
options.headers[HttpHeaders.authorizationHeader] = _getAuthorizationAsBasicHeader(_authorization);
|
||||
}
|
||||
break;
|
||||
case AuthenticationType.oidc:
|
||||
if (_token != null && _token?.isTokenValid() == true) {
|
||||
options.headers[HttpHeaders.authorizationHeader] = _getTokenAsBearerHeader(_token!.token);
|
||||
}
|
||||
break;
|
||||
case AuthenticationType.none:
|
||||
break;
|
||||
}
|
||||
|
||||
super.onRequest(options, handler);
|
||||
}
|
||||
|
||||
String _getAuthorizationAsBasicHeader(String? authorization) => 'Basic $authorization';
|
||||
|
||||
String _getTokenAsBearerHeader(String token) => 'Bearer $token';
|
||||
|
||||
void clear() {
|
||||
_authorization = null;
|
||||
_token = null;
|
||||
_configOIDC = null;
|
||||
_authenticationType = AuthenticationType.none;
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,7 @@ import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_cache
|
||||
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/repository/account_repository_impl.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/repository/authentication_oidc_repository_impl.dart';
|
||||
@@ -39,6 +40,7 @@ class LoginBindings extends BaseBindings {
|
||||
Get.find<AuthenticationInteractor>(),
|
||||
Get.find<DynamicUrlInterceptors>(),
|
||||
Get.find<AuthorizationInterceptors>(),
|
||||
Get.find<AuthorizationIsolateInterceptors>(),
|
||||
Get.find<CheckOIDCIsAvailableInteractor>(),
|
||||
Get.find<GetOIDCConfigurationInteractor>(),
|
||||
Get.find<GetTokenOIDCInteractor>(),
|
||||
|
||||
@@ -9,6 +9,7 @@ import 'package:get/get.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:tmail_ui_user/features/base/base_controller.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/domain/state/authenticate_oidc_on_browser_state.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/state/authentication_user_state.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/state/check_oidc_is_available_state.dart';
|
||||
@@ -35,6 +36,7 @@ class LoginController extends BaseController {
|
||||
final AuthenticationInteractor _authenticationInteractor;
|
||||
final DynamicUrlInterceptors _dynamicUrlInterceptors;
|
||||
final AuthorizationInterceptors _authorizationInterceptors;
|
||||
final AuthorizationIsolateInterceptors _authorizationIsolateInterceptors;
|
||||
final CheckOIDCIsAvailableInteractor _checkOIDCIsAvailableInteractor;
|
||||
final GetOIDCConfigurationInteractor _getOIDCConfigurationInteractor;
|
||||
final GetTokenOIDCInteractor _getTokenOIDCInteractor;
|
||||
@@ -52,6 +54,7 @@ class LoginController extends BaseController {
|
||||
this._authenticationInteractor,
|
||||
this._dynamicUrlInterceptors,
|
||||
this._authorizationInterceptors,
|
||||
this._authorizationIsolateInterceptors,
|
||||
this._checkOIDCIsAvailableInteractor,
|
||||
this._getOIDCConfigurationInteractor,
|
||||
this._getTokenOIDCInteractor,
|
||||
@@ -300,6 +303,9 @@ class LoginController extends BaseController {
|
||||
_authorizationInterceptors.setTokenAndAuthorityOidc(
|
||||
newToken: success.tokenOIDC.toToken(),
|
||||
newConfig: config);
|
||||
_authorizationIsolateInterceptors.setTokenAndAuthorityOidc(
|
||||
newToken: success.tokenOIDC.toToken(),
|
||||
newConfig: config);
|
||||
pushAndPop(AppRoutes.SESSION);
|
||||
}
|
||||
|
||||
@@ -315,6 +321,7 @@ class LoginController extends BaseController {
|
||||
loginState.value = LoginState(Right(success));
|
||||
_dynamicUrlInterceptors.changeBaseUrl(kIsWeb ? AppConfig.baseUrl : _urlText);
|
||||
_authorizationInterceptors.setBasicAuthorization(_userNameText, _passwordText);
|
||||
_authorizationIsolateInterceptors.setBasicAuthorization(_userNameText, _passwordText);
|
||||
pushAndPop(AppRoutes.SESSION);
|
||||
}
|
||||
|
||||
|
||||
@@ -29,9 +29,8 @@ class MailboxIsolateWorker {
|
||||
|
||||
final ThreadAPI _threadApi;
|
||||
final EmailAPI _emailApi;
|
||||
final Executor _isolateExecutor;
|
||||
|
||||
MailboxIsolateWorker(this._threadApi, this._emailApi, this._isolateExecutor);
|
||||
MailboxIsolateWorker(this._threadApi, this._emailApi);
|
||||
|
||||
Future<List<Email>> markAsMailboxRead(
|
||||
AccountId accountId,
|
||||
@@ -46,7 +45,7 @@ class MailboxIsolateWorker {
|
||||
totalEmailUnread,
|
||||
onProgressController);
|
||||
} else {
|
||||
final result = await _isolateExecutor.execute(
|
||||
final result = await Executor().execute(
|
||||
arg1: MailboxMarkAsReadArguments(
|
||||
_threadApi,
|
||||
_emailApi,
|
||||
|
||||
+7
-10
@@ -70,7 +70,6 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
final ResponsiveUtils _responsiveUtils = Get.find<ResponsiveUtils>();
|
||||
final EmailReceiveManager _emailReceiveManager = Get.find<EmailReceiveManager>();
|
||||
final SearchController searchController = Get.find<SearchController>();
|
||||
final Executor _isolateExecutor = Get.find<Executor>();
|
||||
final DownloadController downloadController = Get.find<DownloadController>();
|
||||
|
||||
final MoveToMailboxInteractor _moveToMailboxInteractor;
|
||||
@@ -94,7 +93,6 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
final composerOverlayState = ComposerOverlayState.inActive.obs;
|
||||
final viewStateMarkAsReadMailbox = Rx<Either<Failure, Success>>(Right(UIState.idle));
|
||||
final vacationResponse = Rxn<VacationResponse>();
|
||||
|
||||
Session? sessionCurrent;
|
||||
Map<Role, MailboxId> mapDefaultMailboxId = {};
|
||||
Map<MailboxId, PresentationMailbox> mapMailbox = {};
|
||||
@@ -123,10 +121,9 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
_registerProgressState();
|
||||
_registerNetworkConnectivityState();
|
||||
_registerPendingEmailAddress();
|
||||
_registerPendingFileInfo();
|
||||
_initializeIsolateExecutor();
|
||||
|
||||
super.onInit();
|
||||
}
|
||||
|
||||
@@ -134,6 +131,8 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
void onReady() {
|
||||
log('MailboxDashBoardController::onReady()');
|
||||
dispatchRoute(AppRoutes.THREAD);
|
||||
_registerPendingEmailAddress();
|
||||
_registerPendingFileInfo();
|
||||
_setSessionCurrent();
|
||||
_getUserProfile();
|
||||
_getVacationResponse();
|
||||
@@ -266,7 +265,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
_fileReceiveManagerStreamSubscription =
|
||||
_emailReceiveManager.pendingFileInfo.stream.listen((listFile) {
|
||||
log('MailboxDashBoardController::_registerPendingFileInfo(): ${listFile.length}');
|
||||
if (listFile.isNotEmpty) {
|
||||
if (listFile.isNotEmpty && sessionCurrent != null) {
|
||||
_emailReceiveManager.clearPendingFileInfo();
|
||||
final arguments = ComposerArguments(
|
||||
emailActionType: EmailActionType.edit,
|
||||
@@ -278,9 +277,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
});
|
||||
}
|
||||
|
||||
void _initializeIsolateExecutor() async {
|
||||
await _isolateExecutor.warmUp(log: BuildUtils.isDebugMode);
|
||||
|
||||
void _registerProgressState() async {
|
||||
progressState.listen((state) {
|
||||
viewStateMarkAsReadMailbox.value = state;
|
||||
});
|
||||
@@ -647,7 +644,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
_fileReceiveManagerStreamSubscription.cancel();
|
||||
_connectivityStreamSubscription.cancel();
|
||||
_progressStateController.close();
|
||||
_isolateExecutor.dispose();
|
||||
Executor().dispose();
|
||||
Get.delete<DownloadController>();
|
||||
super.onClose();
|
||||
}
|
||||
|
||||
@@ -19,9 +19,8 @@ import 'package:worker_manager/worker_manager.dart';
|
||||
class ThreadIsolateWorker {
|
||||
final ThreadAPI _threadAPI;
|
||||
final EmailAPI _emailAPI;
|
||||
final Executor _isolateExecutor;
|
||||
|
||||
ThreadIsolateWorker(this._threadAPI, this._emailAPI, this._isolateExecutor);
|
||||
ThreadIsolateWorker(this._threadAPI, this._emailAPI);
|
||||
|
||||
Future<List<EmailId>> emptyTrashFolder(
|
||||
AccountId accountId,
|
||||
@@ -31,7 +30,7 @@ class ThreadIsolateWorker {
|
||||
if (BuildUtils.isWeb) {
|
||||
return _emptyTrashFolderOnWeb(accountId, mailboxId, updateDestroyedEmailCache);
|
||||
} else {
|
||||
final result = await _isolateExecutor.execute(
|
||||
final result = await Executor().execute(
|
||||
arg1: EmptyTrashFolderArguments(_threadAPI, _emailAPI, accountId, mailboxId),
|
||||
fun1: _emptyTrashFolderAction,
|
||||
notification: (value) {
|
||||
|
||||
@@ -17,9 +17,8 @@ import 'package:worker_manager/worker_manager.dart' as worker;
|
||||
class FileUploader {
|
||||
|
||||
final DioClient _dioClient;
|
||||
final worker.Executor _isolateExecutor;
|
||||
|
||||
FileUploader(this._dioClient, this._isolateExecutor);
|
||||
FileUploader(this._dioClient);
|
||||
|
||||
Future<Attachment?> uploadAttachment(
|
||||
UploadTaskId uploadId,
|
||||
@@ -36,7 +35,7 @@ class FileUploader {
|
||||
uploadUri,
|
||||
cancelToken: cancelToken);
|
||||
} else {
|
||||
final attachmentUploaded = await _isolateExecutor.execute(
|
||||
final attachmentUploaded = await worker.Executor().execute(
|
||||
arg1: UploadFileArguments(
|
||||
_dioClient,
|
||||
uploadId,
|
||||
|
||||
@@ -11,6 +11,7 @@ import 'package:tmail_ui_user/main/localizations/app_localizations_delegate.dart
|
||||
import 'package:tmail_ui_user/main/localizations/localization_service.dart';
|
||||
import 'package:tmail_ui_user/main/pages/app_pages.dart';
|
||||
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||
import 'package:worker_manager/worker_manager.dart';
|
||||
|
||||
void main() async {
|
||||
initLogger(() async {
|
||||
@@ -23,6 +24,7 @@ void main() async {
|
||||
));
|
||||
await MainBindings().dependencies();
|
||||
await HiveCacheConfig().setUp();
|
||||
await Executor().warmUp();
|
||||
await dotenv.load(fileName: 'env.file');
|
||||
runApp(const TMailApp());
|
||||
});
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
class BindingTag {
|
||||
static const isoLateTag = 'isoLateTag';
|
||||
}
|
||||
@@ -13,6 +13,7 @@ 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';
|
||||
@@ -21,7 +22,7 @@ import 'package:tmail_ui_user/features/manage_account/data/network/manage_accoun
|
||||
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:worker_manager/worker_manager.dart';
|
||||
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
|
||||
|
||||
class NetworkBindings extends Bindings {
|
||||
|
||||
@@ -45,7 +46,9 @@ 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>()));
|
||||
@@ -55,16 +58,20 @@ 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<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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,14 +99,11 @@ class NetworkBindings extends Bindings {
|
||||
}
|
||||
|
||||
void _bindingIsolateWorker() {
|
||||
Get.put(Executor());
|
||||
Get.put(ThreadIsolateWorker(
|
||||
Get.find<ThreadAPI>(),
|
||||
Get.find<EmailAPI>(),
|
||||
Get.find<Executor>()));
|
||||
Get.find<EmailAPI>()));
|
||||
Get.put(MailboxIsolateWorker(
|
||||
Get.find<ThreadAPI>(),
|
||||
Get.find<EmailAPI>(),
|
||||
Get.find<Executor>()));
|
||||
Get.find<EmailAPI>()));
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -176,7 +176,7 @@ dependencies:
|
||||
percent_indicator: 4.2.2
|
||||
|
||||
# Isolate
|
||||
worker_manager: 4.4.0
|
||||
worker_manager: 4.4.6
|
||||
|
||||
async: 2.8.2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user