diff --git a/lib/features/caching/caching_manager.dart b/lib/features/caching/caching_manager.dart index 41726f45e..ab7617d4d 100644 --- a/lib/features/caching/caching_manager.dart +++ b/lib/features/caching/caching_manager.dart @@ -129,7 +129,7 @@ class CachingManager { } Future closeHive() async { - return await HiveCacheConfig().closeHive(); + return await HiveCacheConfig.instance.closeHive(); } Future clearAllFileInStorage() async { diff --git a/lib/features/caching/config/hive_cache_client.dart b/lib/features/caching/config/hive_cache_client.dart index b74dc925d..4700e6684 100644 --- a/lib/features/caching/config/hive_cache_client.dart +++ b/lib/features/caching/config/hive_cache_client.dart @@ -13,7 +13,7 @@ abstract class HiveCacheClient { bool get encryption => false; - Future _getEncryptionKey() => HiveCacheConfig.getEncryptionKey(); + Future _getEncryptionKey() => HiveCacheConfig.instance.getEncryptionKey(); Future> openBox() async { if (Hive.isBoxOpen(tableName)) { diff --git a/lib/features/caching/config/hive_cache_config.dart b/lib/features/caching/config/hive_cache_config.dart index 0162c67d7..b2bf00067 100644 --- a/lib/features/caching/config/hive_cache_config.dart +++ b/lib/features/caching/config/hive_cache_config.dart @@ -34,12 +34,18 @@ import 'package:tmail_ui_user/main/routes/route_navigation.dart'; class HiveCacheConfig { - Future setUp({String? cachePath}) async { + HiveCacheConfig._internal(); + + static final HiveCacheConfig _instance = HiveCacheConfig._internal(); + + static HiveCacheConfig get instance => _instance; + + Future setUp({String? cachePath}) async { await initializeDatabase(databasePath: cachePath); - registerAdapter(); + _registerAdapter(); } - Future initializeDatabase({String? databasePath}) async { + Future initializeDatabase({String? databasePath}) async { if (databasePath != null) { Hive.init(databasePath); } else { @@ -59,7 +65,7 @@ class HiveCacheConfig { } } - static Future initializeEncryptionKey() async { + Future initializeEncryptionKey() async { final encryptionKeyCacheManager = getBinding() ?? getBinding(tag: BindingTag.isolateTag); if (encryptionKeyCacheManager == null) { log('HiveCacheConfig::_initializeEncryptionKey(): encryptionKeyCacheManager not found'); @@ -74,7 +80,7 @@ class HiveCacheConfig { } } - static Future getEncryptionKey() async { + Future getEncryptionKey() async { final encryptionKeyCacheManager = getBinding() ?? getBinding(tag: BindingTag.isolateTag); if (encryptionKeyCacheManager == null) { log('HiveCacheConfig::getEncryptionKey(): encryptionKeyCacheManager not found'); @@ -92,7 +98,7 @@ class HiveCacheConfig { } } - void registerAdapter() { + void _registerAdapter() { registerCacheAdapter( MailboxCacheAdapter(), CachingConstants.MAILBOX_CACHE_IDENTIFY @@ -177,7 +183,7 @@ class HiveCacheConfig { } } - Future closeHive() async { - await Hive.close(); + Future closeHive() async { + return await Hive.close(); } } \ No newline at end of file diff --git a/lib/features/home/presentation/home_controller.dart b/lib/features/home/presentation/home_controller.dart index cc7d20bd9..c7a40a7d9 100644 --- a/lib/features/home/presentation/home_controller.dart +++ b/lib/features/home/presentation/home_controller.dart @@ -91,7 +91,7 @@ class HomeController extends ReloadableController { static void downloadCallback(String id, DownloadTaskStatus status, int progress) {} void _cleanupCache() async { - await HiveCacheConfig().onUpgradeDatabase(cachingManager); + await HiveCacheConfig.instance.onUpgradeDatabase(cachingManager); await Future.wait([ _cleanupEmailCacheInteractor.execute(EmailCleanupRule(Duration.defaultCacheInternal)), diff --git a/lib/features/mailbox/data/network/mailbox_isolate_worker.dart b/lib/features/mailbox/data/network/mailbox_isolate_worker.dart index 2e56652ef..58a3306f1 100644 --- a/lib/features/mailbox/data/network/mailbox_isolate_worker.dart +++ b/lib/features/mailbox/data/network/mailbox_isolate_worker.dart @@ -86,7 +86,7 @@ class MailboxIsolateWorker { ) async { final rootIsolateToken = args.isolateToken; BackgroundIsolateBinaryMessenger.ensureInitialized(rootIsolateToken); - await HiveCacheConfig().setUp(); + await HiveCacheConfig.instance.setUp(); List emailListCompleted = List.empty(growable: true); try { diff --git a/lib/features/offline_mode/work_manager/sending_email_worker.dart b/lib/features/offline_mode/work_manager/sending_email_worker.dart index ba5c212bf..530dfb57f 100644 --- a/lib/features/offline_mode/work_manager/sending_email_worker.dart +++ b/lib/features/offline_mode/work_manager/sending_email_worker.dart @@ -78,7 +78,7 @@ class SendingEmailWorker extends Worker { Future bindDI() async { await Future.wait([ MainBindings().dependencies(), - HiveCacheConfig().setUp() + HiveCacheConfig.instance.setUp() ]); await Future.sync(() { diff --git a/lib/features/push_notification/presentation/controller/fcm_message_controller.dart b/lib/features/push_notification/presentation/controller/fcm_message_controller.dart index a515abba2..5e51e88e7 100644 --- a/lib/features/push_notification/presentation/controller/fcm_message_controller.dart +++ b/lib/features/push_notification/presentation/controller/fcm_message_controller.dart @@ -178,7 +178,7 @@ class FcmMessageController extends FcmBaseController { Future _initialAppConfig() async { await Future.wait([ MainBindings().dependencies(), - HiveCacheConfig().setUp() + HiveCacheConfig.instance.setUp() ]); await Future.sync(() { diff --git a/lib/features/thread/data/network/thread_isolate_worker.dart b/lib/features/thread/data/network/thread_isolate_worker.dart index 0157acfda..83062371c 100644 --- a/lib/features/thread/data/network/thread_isolate_worker.dart +++ b/lib/features/thread/data/network/thread_isolate_worker.dart @@ -68,7 +68,7 @@ class ThreadIsolateWorker { ) async { final rootIsolateToken = args.isolateToken; BackgroundIsolateBinaryMessenger.ensureInitialized(rootIsolateToken); - await HiveCacheConfig().setUp(); + await HiveCacheConfig.instance.setUp(); List emailListCompleted = List.empty(growable: true); try { diff --git a/lib/features/upload/data/network/file_uploader.dart b/lib/features/upload/data/network/file_uploader.dart index c75e12845..46fc1f857 100644 --- a/lib/features/upload/data/network/file_uploader.dart +++ b/lib/features/upload/data/network/file_uploader.dart @@ -86,7 +86,7 @@ class FileUploader { ) async { final rootIsolateToken = argsUpload.isolateToken; BackgroundIsolateBinaryMessenger.ensureInitialized(rootIsolateToken); - await HiveCacheConfig().setUp(); + await HiveCacheConfig.instance.setUp(); final headerParam = argsUpload.dioClient.getHeaders(); headerParam[HttpHeaders.contentTypeHeader] = argsUpload.mobileFileUpload.mimeType; diff --git a/lib/main.dart b/lib/main.dart index 047ec02ed..1ff6496fe 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -21,11 +21,11 @@ void main() async { await Future.wait([ MainBindings().dependencies(), - HiveCacheConfig().setUp(), + HiveCacheConfig.instance.setUp(), Executor().warmUp(), AppUtils.loadEnvFile() ]); - await HiveCacheConfig.initializeEncryptionKey(); + await HiveCacheConfig.instance.initializeEncryptionKey(); setPathUrlStrategy(); diff --git a/test/features/caching/email_cache_client_test.dart b/test/features/caching/email_cache_client_test.dart index e7350cd78..a04cafe2a 100644 --- a/test/features/caching/email_cache_client_test.dart +++ b/test/features/caching/email_cache_client_test.dart @@ -14,7 +14,7 @@ void main() { late EmailCacheClient emailCacheClient; setUpAll(() { - HiveCacheConfig().setUp(cachePath: Directory.current.path); + HiveCacheConfig.instance.setUp(cachePath: Directory.current.path); }); setUp(() { diff --git a/test/features/caching/mailbox_cache_client_test.dart b/test/features/caching/mailbox_cache_client_test.dart index 11ce1fd01..3c1370f28 100644 --- a/test/features/caching/mailbox_cache_client_test.dart +++ b/test/features/caching/mailbox_cache_client_test.dart @@ -14,7 +14,7 @@ void main() { late MailboxCacheClient mailboxCacheClient; setUpAll(() { - HiveCacheConfig().setUp(cachePath: Directory.current.path); + HiveCacheConfig.instance.setUp(cachePath: Directory.current.path); }); setUp(() { diff --git a/test/features/offline_mode/woker_queue_test.dart b/test/features/offline_mode/woker_queue_test.dart index eab62ef5e..a45f8b38d 100644 --- a/test/features/offline_mode/woker_queue_test.dart +++ b/test/features/offline_mode/woker_queue_test.dart @@ -18,7 +18,7 @@ void main() { late MailboxStateWorkerQueue workerQueue; setUpAll(() { - HiveCacheConfig().setUp(cachePath: Directory.current.path); + HiveCacheConfig.instance.setUp(cachePath: Directory.current.path); }); setUp(() {