TF-2384 Store data to keychain when save new Account
Signed-off-by: dab246 <tdvu@linagora.com> (cherry picked from commit 4d84a3354927d1c0becaf0e8e6d7cc8c54721f58)
This commit is contained in:
@@ -7,9 +7,11 @@ import 'package:core/utils/config/app_config_loader.dart';
|
||||
import 'package:core/utils/file_utils.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:device_info_plus/device_info_plus.dart';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/presentation/utils/sending_queue_isolate_manager.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_config.dart';
|
||||
import 'package:tmail_ui_user/main/utils/email_receive_manager.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
@@ -25,6 +27,7 @@ class CoreBindings extends Bindings {
|
||||
_bindingReceivingSharingStream();
|
||||
_bindingUtils();
|
||||
_bindingIsolate();
|
||||
_bindingStorage();
|
||||
}
|
||||
|
||||
void _bindingAppImagePaths() {
|
||||
@@ -64,4 +67,13 @@ class CoreBindings extends Bindings {
|
||||
Get.put(SendingQueueIsolateManager());
|
||||
}
|
||||
}
|
||||
|
||||
void _bindingStorage() {
|
||||
Get.put(const FlutterSecureStorage(
|
||||
iOptions: IOSOptions(
|
||||
groupId: AppConfig.iOSKeychainSharingGroupId,
|
||||
accountName: AppConfig.iOSKeychainSharingService,
|
||||
)
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -31,6 +31,7 @@ import 'package:tmail_ui_user/features/login/domain/usecases/update_authenticati
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart';
|
||||
import 'package:tmail_ui_user/main/utils/ios_sharing_manager.dart';
|
||||
|
||||
class CredentialBindings extends InteractorsBindings {
|
||||
|
||||
@@ -67,6 +68,7 @@ class CredentialBindings extends InteractorsBindings {
|
||||
void bindingsDataSourceImpl() {
|
||||
Get.put(HiveAccountDatasourceImpl(
|
||||
Get.find<AccountCacheManager>(),
|
||||
Get.find<IOSSharingManager>(),
|
||||
Get.find<CacheExceptionThrower>())
|
||||
);
|
||||
Get.put(AuthenticationDataSourceImpl());
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
|
||||
import 'package:core/utils/file_utils.dart';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/account_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/authentication_info_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/email_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/encryption_key_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/fcm_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/firebase_registration_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/hive_cache_version_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/mailbox_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/new_email_hive_cache_client.dart';
|
||||
@@ -18,7 +20,6 @@ import 'package:tmail_ui_user/features/caching/clients/recent_search_cache_clien
|
||||
import 'package:tmail_ui_user/features/caching/clients/sending_email_hive_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/session_hive_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/state_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/firebase_registration_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/clients/token_oidc_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/cleanup/data/local/recent_login_url_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/cleanup/data/local/recent_login_username_cache_manager.dart';
|
||||
@@ -29,6 +30,7 @@ import 'package:tmail_ui_user/features/login/data/local/encryption_key_cache_man
|
||||
import 'package:tmail_ui_user/features/login/data/local/oidc_configuration_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/local/token_oidc_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/local/mailbox_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/local/state_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/local_spam_report_manager.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_manager.dart';
|
||||
@@ -36,6 +38,7 @@ import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_work
|
||||
import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_worker_queue.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/manager/sending_email_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/push_notification/data/keychain/keychain_sharing_manager.dart';
|
||||
import 'package:tmail_ui_user/features/push_notification/data/local/fcm_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/local/email_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart';
|
||||
@@ -45,6 +48,7 @@ class LocalBindings extends Bindings {
|
||||
@override
|
||||
void dependencies() {
|
||||
_bindingException();
|
||||
_bindingKeychainSharing();
|
||||
_bindingCaching();
|
||||
_bindingWorkerQueue();
|
||||
}
|
||||
@@ -52,6 +56,7 @@ class LocalBindings extends Bindings {
|
||||
void _bindingCaching() {
|
||||
Get.put(MailboxCacheClient());
|
||||
Get.put(StateCacheClient());
|
||||
Get.put(StateCacheManager(Get.find<StateCacheClient>()));
|
||||
Get.put(MailboxCacheManager(Get.find<MailboxCacheClient>()));
|
||||
Get.put(EmailCacheClient());
|
||||
Get.put(EmailCacheManager(Get.find<EmailCacheClient>()));
|
||||
@@ -98,6 +103,7 @@ class LocalBindings extends Bindings {
|
||||
Get.find<SendingEmailCacheManager>(),
|
||||
Get.find<SessionHiveCacheClient>(),
|
||||
Get.find<LocalSpamReportManager>(),
|
||||
Get.find<KeychainSharingManager>(),
|
||||
));
|
||||
}
|
||||
|
||||
@@ -109,4 +115,8 @@ class LocalBindings extends Bindings {
|
||||
Get.put(NewEmailCacheWorkerQueue());
|
||||
Get.put(OpenedEmailCacheWorkerQueue());
|
||||
}
|
||||
|
||||
void _bindingKeychainSharing() {
|
||||
Get.put(KeychainSharingManager(Get.find<FlutterSecureStorage>()));
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@ import 'package:tmail_ui_user/features/email/data/network/email_api.dart';
|
||||
import 'package:tmail_ui_user/features/email/data/network/mdn_api.dart';
|
||||
import 'package:tmail_ui_user/features/home/data/network/session_api.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/local/account_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/local/authentication_info_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';
|
||||
@@ -21,17 +22,20 @@ import 'package:tmail_ui_user/features/login/data/network/config/time_out_interc
|
||||
import 'package:tmail_ui_user/features/login/data/network/dns_service.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/local/state_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_api.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/network/spam_report_api.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/network/forwarding_api.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/network/identity_api.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/network/rule_filter_api.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/network/vacation_api.dart';
|
||||
import 'package:tmail_ui_user/features/push_notification/data/keychain/keychain_sharing_manager.dart';
|
||||
import 'package:tmail_ui_user/features/push_notification/data/network/fcm_api.dart';
|
||||
import 'package:tmail_ui_user/features/quotas/data/network/quotas_api.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/network/thread_api.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/locale_interceptor.dart';
|
||||
import 'package:tmail_ui_user/main/utils/ios_sharing_manager.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
class NetworkBindings extends Bindings {
|
||||
@@ -39,7 +43,10 @@ class NetworkBindings extends Bindings {
|
||||
@override
|
||||
void dependencies() {
|
||||
_bindingConnection();
|
||||
_bindingBaseOption();
|
||||
_bindingDio();
|
||||
_bindingSharing();
|
||||
_bindingInterceptors();
|
||||
_bindingApi();
|
||||
_bindingTransformer();
|
||||
_bindingServices();
|
||||
@@ -55,14 +62,21 @@ class NetworkBindings extends Bindings {
|
||||
}
|
||||
|
||||
void _bindingDio() {
|
||||
_bindingBaseOption();
|
||||
Get.put(Dio(Get.find<BaseOptions>()));
|
||||
Get.put(DioClient(Get.find<Dio>()));
|
||||
Get.put(const FlutterAppAuth());
|
||||
Get.put(AppAuthWebPlugin());
|
||||
Get.put(OIDCHttpClient(Get.find<DioClient>()));
|
||||
Get.put(AuthenticationClientBase());
|
||||
_bindingInterceptors();
|
||||
}
|
||||
|
||||
void _bindingSharing() {
|
||||
Get.put(IOSSharingManager(
|
||||
Get.find<KeychainSharingManager>(),
|
||||
Get.find<StateCacheManager>(),
|
||||
Get.find<TokenOidcCacheManager>(),
|
||||
Get.find<AuthenticationInfoCacheManager>(),
|
||||
));
|
||||
}
|
||||
|
||||
void _bindingInterceptors() {
|
||||
@@ -72,6 +86,7 @@ class NetworkBindings extends Bindings {
|
||||
Get.find<AuthenticationClientBase>(),
|
||||
Get.find<TokenOidcCacheManager>(),
|
||||
Get.find<AccountCacheManager>(),
|
||||
Get.find<IOSSharingManager>(),
|
||||
));
|
||||
Get.put(LocaleInterceptor());
|
||||
Get.put(TimeOutInterceptors());
|
||||
|
||||
@@ -16,6 +16,7 @@ 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:tmail_ui_user/main/localizations/locale_interceptor.dart';
|
||||
import 'package:tmail_ui_user/main/utils/ios_sharing_manager.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
import 'package:worker_manager/worker_manager.dart';
|
||||
|
||||
@@ -43,6 +44,7 @@ class NetworkIsolateBindings extends Bindings {
|
||||
Get.find<AuthenticationClientBase>(tag: BindingTag.isolateTag),
|
||||
Get.find<TokenOidcCacheManager>(tag: BindingTag.isolateTag),
|
||||
Get.find<AccountCacheManager>(tag: BindingTag.isolateTag),
|
||||
Get.find<IOSSharingManager>(),
|
||||
), tag: BindingTag.isolateTag);
|
||||
dio.interceptors.add(Get.find<DynamicUrlInterceptors>());
|
||||
dio.interceptors.add(Get.find<AuthorizationInterceptors>(tag: BindingTag.isolateTag));
|
||||
|
||||
@@ -5,6 +5,13 @@ import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/network/config/oidc_constant.dart';
|
||||
|
||||
class AppConfig {
|
||||
static const int limitCharToStartSearch = 3;
|
||||
|
||||
static const String appDashboardConfigurationPath = "configurations/app_dashboard.json";
|
||||
static const String appFCMConfigurationPath = "configurations/env.fcm";
|
||||
static const String iOSKeychainSharingGroupId = 'KUT463DS29.com.linagora.ios.teammail.shared';
|
||||
static const String iOSKeychainSharingService = 'com.linagora.ios.teammail.sessions';
|
||||
|
||||
static String get baseUrl => dotenv.get('SERVER_URL', fallback: '');
|
||||
static String get domainRedirectUrl => dotenv.get('DOMAIN_REDIRECT_URL', fallback: '');
|
||||
static String get webOidcClientId => dotenv.get('WEB_OIDC_CLIENT_ID', fallback: '');
|
||||
@@ -15,7 +22,6 @@ class AppConfig {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
static String appDashboardConfigurationPath = "configurations/app_dashboard.json";
|
||||
static bool get fcmAvailable {
|
||||
final supportedOtherPlatform = dotenv.get('FCM_AVAILABLE', fallback: 'unsupported');
|
||||
final supportedIOSPlatform = dotenv.get('IOS_FCM', fallback: 'unsupported');
|
||||
@@ -26,10 +32,7 @@ class AppConfig {
|
||||
return supportedOtherPlatform == 'supported';
|
||||
}
|
||||
}
|
||||
static String appFCMConfigurationPath = "configurations/env.fcm";
|
||||
|
||||
static String get fcmVapidPublicKeyWeb => dotenv.get('FIREBASE_WEB_VAPID_PUBLIC_KEY', fallback: '');
|
||||
|
||||
static List<String> get oidcScopes {
|
||||
try {
|
||||
final envScopes = dotenv.get('OIDC_SCOPES', fallback: '');
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
|
||||
class AppConstants {
|
||||
static const int limitCharToStartSearch = 3;
|
||||
}
|
||||
Reference in New Issue
Block a user