TF-571 Injection and configuration for Hive cache
This commit is contained in:
committed by
Dat H. Pham
parent
2c156819ba
commit
8c96a486d1
@@ -1,9 +1,11 @@
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:tmail_ui_user/features/caching/account_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/email_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/mailbox_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/recent_search_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/state_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/token_oidc_cache_client.dart';
|
||||
|
||||
class CachingManager {
|
||||
|
||||
@@ -11,12 +13,16 @@ class CachingManager {
|
||||
final StateCacheClient _stateCacheClient;
|
||||
final EmailCacheClient _emailCacheClient;
|
||||
final RecentSearchCacheClient _recentSearchCacheClient;
|
||||
final TokenOidcCacheClient _tokenOidcCacheClient;
|
||||
final AccountCacheClient _accountCacheClient;
|
||||
|
||||
CachingManager(
|
||||
this._mailboxCacheClient,
|
||||
this._stateCacheClient,
|
||||
this._emailCacheClient,
|
||||
this._recentSearchCacheClient,
|
||||
this._tokenOidcCacheClient,
|
||||
this._accountCacheClient
|
||||
);
|
||||
|
||||
Future<void> clearAll() async {
|
||||
@@ -26,6 +32,8 @@ class CachingManager {
|
||||
_mailboxCacheClient.clearAllData(),
|
||||
_emailCacheClient.clearAllData(),
|
||||
_recentSearchCacheClient.clearAllData(),
|
||||
_tokenOidcCacheClient.clearAllData(),
|
||||
_accountCacheClient.clearAllData()
|
||||
]);
|
||||
} else {
|
||||
await Future.wait([
|
||||
@@ -33,6 +41,8 @@ class CachingManager {
|
||||
_mailboxCacheClient.deleteBox(),
|
||||
_emailCacheClient.deleteBox(),
|
||||
_recentSearchCacheClient.deleteBox(),
|
||||
_tokenOidcCacheClient.deleteBox(),
|
||||
_accountCacheClient.deleteBox()
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ import 'dart:io';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:hive/hive.dart';
|
||||
import 'package:path_provider/path_provider.dart' as path_provider;
|
||||
import 'package:tmail_ui_user/features/login/data/model/account_cache.dart';
|
||||
import 'package:tmail_ui_user/features/login/data/model/token_oidc_cache.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/model/mailbox_cache.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/model/mailbox_rights_cache.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/model/state_cache.dart';
|
||||
@@ -37,5 +39,7 @@ class HiveCacheConfig {
|
||||
Hive.registerAdapter(EmailAddressHiveCacheAdapter());
|
||||
Hive.registerAdapter(EmailCacheAdapter());
|
||||
Hive.registerAdapter(RecentSearchCacheAdapter());
|
||||
Hive.registerAdapter(TokenOidcCacheAdapter());
|
||||
Hive.registerAdapter(AccountCacheAdapter());
|
||||
}
|
||||
}
|
||||
@@ -7,4 +7,6 @@ class CachingConstants {
|
||||
static const int EMAIL_CACHE_IDENTIFY = 5;
|
||||
static const int EMAIL_ADDRESS_HIVE_CACHE_IDENTIFY = 6;
|
||||
static const int RECENT_SEARCH_HIVE_CACHE_IDENTIFY = 7;
|
||||
static const int TOKEN_OIDC_HIVE_CACHE_IDENTIFY = 8;
|
||||
static const int ACCOUNT_HIVE_CACHE_IDENTIFY = 9;
|
||||
}
|
||||
@@ -1,12 +1,16 @@
|
||||
|
||||
import 'package:core/core.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/caching/account_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
|
||||
import 'package:tmail_ui_user/features/caching/email_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/mailbox_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/recent_search_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/state_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/caching/token_oidc_cache_client.dart';
|
||||
import 'package:tmail_ui_user/features/cleanup/data/local/recent_search_cache_manager.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/mailbox/data/local/mailbox_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/local/email_cache_manager.dart';
|
||||
|
||||
@@ -30,11 +34,17 @@ class LocalBindings extends Bindings {
|
||||
Get.put(EmailCacheManager(Get.find<EmailCacheClient>()));
|
||||
Get.put(RecentSearchCacheClient());
|
||||
Get.put(RecentSearchCacheManager(Get.find<RecentSearchCacheClient>()));
|
||||
Get.put(TokenOidcCacheClient());
|
||||
Get.put(TokenOidcCacheManager(Get.find<TokenOidcCacheClient>()));
|
||||
Get.put(AccountCacheClient());
|
||||
Get.put(AccountCacheManager(Get.find<AccountCacheClient>()));
|
||||
Get.put(CachingManager(
|
||||
Get.find<MailboxCacheClient>(),
|
||||
Get.find<StateCacheClient>(),
|
||||
Get.find<EmailCacheClient>(),
|
||||
Get.find<RecentSearchCacheClient>(),
|
||||
Get.find<TokenOidcCacheClient>(),
|
||||
Get.find<AccountCacheClient>()
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -8,12 +8,12 @@ import 'package:tmail_ui_user/features/email/presentation/email_view.dart' defer
|
||||
import 'package:tmail_ui_user/features/home/presentation/home_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/home/presentation/home_view.dart';
|
||||
import 'package:tmail_ui_user/features/identity_creator/presentation/identity_creator_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/identity_creator/presentation/identity_creator_view.dart' deferred as identity_creator;
|
||||
import 'package:tmail_ui_user/features/login/presentation/login_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/login/presentation/login_view.dart'
|
||||
if (dart.library.html) 'package:tmail_ui_user/features/login/presentation/login_view_web.dart' deferred as login;
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/presentation/mailbox_creator_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_creator/presentation/mailbox_creator_view.dart' deferred as mailbox_creator;
|
||||
import 'package:tmail_ui_user/features/identity_creator/presentation/identity_creator_view.dart' deferred as identity_creator;
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mailbox_dashboard_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mailbox_dashboard_view.dart'
|
||||
if (dart.library.html) 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart' deferred as mailbox_dashboard;
|
||||
@@ -28,7 +28,7 @@ class AppPages {
|
||||
static final pages = [
|
||||
GetPage(
|
||||
name: AppRoutes.HOME,
|
||||
page: () => HomeView(),
|
||||
page: () => const HomeView(),
|
||||
binding: HomeBindings()),
|
||||
GetPage(
|
||||
name: AppRoutes.LOGIN,
|
||||
|
||||
Reference in New Issue
Block a user