TF-2280 Fix mark as read mailbox when token expired on mobile

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit caab5a896875168f2d98c249207eb3eb537c58ec)
This commit is contained in:
dab246
2023-10-27 20:46:17 +07:00
committed by Dat H. Pham
parent e956250e04
commit ad5dff4ac8
17 changed files with 237 additions and 82 deletions
@@ -0,0 +1,35 @@
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/caching/clients/account_cache_client.dart';
import 'package:tmail_ui_user/features/caching/clients/encryption_key_cache_client.dart';
import 'package:tmail_ui_user/features/caching/clients/token_oidc_cache_client.dart';
import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart';
import 'package:tmail_ui_user/features/login/data/local/encryption_key_cache_manager.dart';
import 'package:tmail_ui_user/features/login/data/local/token_oidc_cache_manager.dart';
import 'package:tmail_ui_user/main/bindings/network/binding_tag.dart';
class LocalIsolateBindings extends Bindings {
@override
void dependencies() {
_bindingCaching();
}
void _bindingCaching() {
Get.put(TokenOidcCacheClient(), tag: BindingTag.isolateTag);
Get.put(TokenOidcCacheManager(
Get.find<TokenOidcCacheClient>(tag: BindingTag.isolateTag)),
tag: BindingTag.isolateTag
);
Get.put(AccountCacheClient(), tag: BindingTag.isolateTag);
Get.put(AccountCacheManager(
Get.find<AccountCacheClient>(tag: BindingTag.isolateTag)),
tag: BindingTag.isolateTag
);
Get.put(EncryptionKeyCacheClient(), tag: BindingTag.isolateTag);
Get.put(EncryptionKeyCacheManager(
Get.find<EncryptionKeyCacheClient>(tag: BindingTag.isolateTag)),
tag: BindingTag.isolateTag
);
}
}
+2
View File
@@ -2,6 +2,7 @@ import 'package:get/get.dart';
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/local/local_isolate_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/network_connection/network_connection_bindings.dart';
@@ -12,6 +13,7 @@ class MainBindings extends Bindings {
Future dependencies() async {
await CoreBindings().dependencies();
LocalBindings().dependencies();
LocalIsolateBindings().dependencies();
NetworkBindings().dependencies();
NetworkIsolateBindings().dependencies();
CredentialBindings().dependencies();
@@ -1,6 +1,7 @@
import 'package:core/core.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:tmail_ui_user/features/email/data/network/email_api.dart';
@@ -8,6 +9,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/utils/library_platform/app_auth_plugin/app_auth_mobile_plugin.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';
@@ -27,15 +29,18 @@ class NetworkIsolateBindings extends Bindings {
void _bindingDio() {
final dio = Get.put(Dio(Get.find<BaseOptions>()), tag: BindingTag.isolateTag);
Get.put(DioClient(dio), tag: BindingTag.isolateTag);
Get.put(const FlutterAppAuth(), tag: BindingTag.isolateTag);
Get.put(AppAuthWebPlugin(), tag: BindingTag.isolateTag);
Get.put(AuthenticationClientBase(tag: BindingTag.isolateTag), tag: BindingTag.isolateTag);
_bindingInterceptors(dio);
}
void _bindingInterceptors(Dio dio) {
Get.put(AuthorizationInterceptors(
dio,
Get.find<AuthenticationClientBase>(),
Get.find<TokenOidcCacheManager>(),
Get.find<AccountCacheManager>(),
Get.find<AuthenticationClientBase>(tag: BindingTag.isolateTag),
Get.find<TokenOidcCacheManager>(tag: BindingTag.isolateTag),
Get.find<AccountCacheManager>(tag: BindingTag.isolateTag),
), tag: BindingTag.isolateTag);
dio.interceptors.add(Get.find<DynamicUrlInterceptors>());
dio.interceptors.add(Get.find<AuthorizationInterceptors>(tag: BindingTag.isolateTag));