From a02435c9f5e39041e4144ffc3e525dc2a15431f7 Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 11 Jun 2025 12:17:45 +0700 Subject: [PATCH] TF-3767 Upgrade Hive database to version 16 Signed-off-by: dab246 --- .../upgrade_hive_database_steps_v16.dart | 17 +++++++++++++++++ lib/features/caching/caching_manager.dart | 7 +++++++ lib/features/caching/config/cache_version.dart | 2 +- .../caching/config/hive_cache_config.dart | 4 ++++ lib/main/bindings/local/local_bindings.dart | 1 + 5 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 lib/features/base/upgradeable/upgrade_hive_database_steps_v16.dart diff --git a/lib/features/base/upgradeable/upgrade_hive_database_steps_v16.dart b/lib/features/base/upgradeable/upgrade_hive_database_steps_v16.dart new file mode 100644 index 000000000..3cf2486a8 --- /dev/null +++ b/lib/features/base/upgradeable/upgrade_hive_database_steps_v16.dart @@ -0,0 +1,17 @@ + +import 'package:tmail_ui_user/features/base/upgradeable/upgrade_database_steps.dart'; +import 'package:tmail_ui_user/features/caching/caching_manager.dart'; + +class UpgradeHiveDatabaseStepsV16 extends UpgradeDatabaseSteps { + + final CachingManager _cachingManager; + + UpgradeHiveDatabaseStepsV16(this._cachingManager); + + @override + Future onUpgrade(int oldVersion, int newVersion) async { + if (oldVersion > 0 && oldVersion < newVersion && newVersion == 16) { + await _cachingManager.clearRecentSearchData(); + } + } +} \ No newline at end of file diff --git a/lib/features/caching/caching_manager.dart b/lib/features/caching/caching_manager.dart index c84102d1d..34250e2c8 100644 --- a/lib/features/caching/caching_manager.dart +++ b/lib/features/caching/caching_manager.dart @@ -15,6 +15,7 @@ import 'package:tmail_ui_user/features/caching/clients/new_email_hive_cache_clie import 'package:tmail_ui_user/features/caching/clients/opened_email_hive_cache_client.dart'; import 'package:tmail_ui_user/features/caching/clients/recent_login_url_cache_client.dart'; import 'package:tmail_ui_user/features/caching/clients/recent_login_username_cache_client.dart'; +import 'package:tmail_ui_user/features/caching/clients/recent_search_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/config/hive_cache_config.dart'; @@ -30,6 +31,7 @@ class CachingManager { final MailboxCacheClient _mailboxCacheClient; final StateCacheClient _stateCacheClient; final EmailCacheClient _emailCacheClient; + final RecentSearchCacheClient _recentSearchCacheClient; final RecentLoginUrlCacheClient _recentLoginUrlCacheClient; final RecentLoginUsernameCacheClient _recentLoginUsernameCacheClient; final AccountCacheClient _accountCacheClient; @@ -48,6 +50,7 @@ class CachingManager { this._mailboxCacheClient, this._stateCacheClient, this._emailCacheClient, + this._recentSearchCacheClient, this._recentLoginUrlCacheClient, this._recentLoginUsernameCacheClient, this._accountCacheClient, @@ -195,4 +198,8 @@ class CachingManager { _recentLoginUsernameCacheClient.clearAllData(), ]); } + + Future clearRecentSearchData() async { + await _recentSearchCacheClient.clearAllData(); + } } diff --git a/lib/features/caching/config/cache_version.dart b/lib/features/caching/config/cache_version.dart index 5c1f5b5ff..e5cee9e79 100644 --- a/lib/features/caching/config/cache_version.dart +++ b/lib/features/caching/config/cache_version.dart @@ -1,4 +1,4 @@ class CacheVersion { - static const int hiveDBVersion = 15; + static const int hiveDBVersion = 16; } \ No newline at end of file diff --git a/lib/features/caching/config/hive_cache_config.dart b/lib/features/caching/config/hive_cache_config.dart index 8def8152e..a8762f9b9 100644 --- a/lib/features/caching/config/hive_cache_config.dart +++ b/lib/features/caching/config/hive_cache_config.dart @@ -11,6 +11,8 @@ import 'package:tmail_ui_user/features/base/upgradeable/upgrade_hive_database_st import 'package:tmail_ui_user/features/base/upgradeable/upgrade_hive_database_steps_v12.dart'; import 'package:tmail_ui_user/features/base/upgradeable/upgrade_hive_database_steps_v13.dart'; import 'package:tmail_ui_user/features/base/upgradeable/upgrade_hive_database_steps_v14.dart'; +import 'package:tmail_ui_user/features/base/upgradeable/upgrade_hive_database_steps_v15.dart'; +import 'package:tmail_ui_user/features/base/upgradeable/upgrade_hive_database_steps_v16.dart'; import 'package:tmail_ui_user/features/base/upgradeable/upgrade_hive_database_steps_v7.dart'; import 'package:tmail_ui_user/features/caching/caching_manager.dart'; import 'package:tmail_ui_user/features/caching/config/cache_version.dart'; @@ -74,6 +76,8 @@ class HiveCacheConfig { await UpgradeHiveDatabaseStepsV12(cachingManager).onUpgrade(oldVersion, newVersion); await UpgradeHiveDatabaseStepsV13(cachingManager).onUpgrade(oldVersion, newVersion); await UpgradeHiveDatabaseStepsV14(cachingManager).onUpgrade(oldVersion, newVersion); + await UpgradeHiveDatabaseStepsV15(cachingManager).onUpgrade(oldVersion, newVersion); + await UpgradeHiveDatabaseStepsV16(cachingManager).onUpgrade(oldVersion, newVersion); if (oldVersion != newVersion) { await cachingManager.storeCacheVersion(newVersion); diff --git a/lib/main/bindings/local/local_bindings.dart b/lib/main/bindings/local/local_bindings.dart index fb4d8959f..c44ecf98a 100644 --- a/lib/main/bindings/local/local_bindings.dart +++ b/lib/main/bindings/local/local_bindings.dart @@ -94,6 +94,7 @@ class LocalBindings extends Bindings { Get.find(), Get.find(), Get.find(), + Get.find(), Get.find(), Get.find(), Get.find(),