TF-1839 Clean IncomingEmailed in cache

(cherry picked from commit 005bfe41a140eb228d032d52123376b1be8473a7)
This commit is contained in:
dab246
2023-06-05 11:19:43 +07:00
committed by Dat Vu
parent 94cd15d237
commit e2397b3b43
4 changed files with 34 additions and 20 deletions
+10 -12
View File
@@ -1,6 +1,6 @@
import 'dart:developer';
import 'dart:io'; import 'dart:io';
import 'package:core/domain/exceptions/download_file_exception.dart'; import 'package:core/domain/exceptions/download_file_exception.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart'; import 'package:core/utils/build_utils.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
@@ -97,18 +97,16 @@ class FileUtils {
return File(internalStorageDirPath).exists(); return File(internalStorageDirPath).exists();
} }
}
enum ExtensionType { void removeFolder(String folderName) async {
text, try {
json; String folderPath = (await getApplicationDocumentsDirectory()).absolute.path;
folderPath = '$folderPath/$folderName';
String get value { log('FileUtils::removeFolder():folderPath: $folderPath');
switch(this) { final dir = Directory(folderPath);
case ExtensionType.text: dir.deleteSync(recursive: true);
return 'txt'; } catch (e) {
case ExtensionType.json: logError('FileUtils::removeFolder():EXCEPTION: $e');
return 'json';
} }
} }
} }
+18 -5
View File
@@ -1,5 +1,7 @@
import 'package:core/utils/app_logger.dart'; import 'package:core/utils/app_logger.dart';
import 'package:core/utils/file_utils.dart';
import 'package:tmail_ui_user/features/caching/clients/account_cache_client.dart'; import 'package:tmail_ui_user/features/caching/clients/account_cache_client.dart';
import 'package:tmail_ui_user/features/caching/clients/detailed_email_hive_cache_client.dart';
import 'package:tmail_ui_user/features/caching/config/hive_cache_config.dart'; import 'package:tmail_ui_user/features/caching/config/hive_cache_config.dart';
import 'package:tmail_ui_user/features/caching/clients/email_cache_client.dart'; import 'package:tmail_ui_user/features/caching/clients/email_cache_client.dart';
import 'package:tmail_ui_user/features/caching/clients/fcm_cache_client.dart'; import 'package:tmail_ui_user/features/caching/clients/fcm_cache_client.dart';
@@ -8,6 +10,7 @@ import 'package:tmail_ui_user/features/caching/clients/mailbox_cache_client.dart
import 'package:tmail_ui_user/features/caching/clients/recent_search_cache_client.dart'; import 'package:tmail_ui_user/features/caching/clients/recent_search_cache_client.dart';
import 'package:tmail_ui_user/features/caching/clients/state_cache_client.dart'; import 'package:tmail_ui_user/features/caching/clients/state_cache_client.dart';
import 'package:tmail_ui_user/features/caching/clients/subscription_cache_client.dart'; import 'package:tmail_ui_user/features/caching/clients/subscription_cache_client.dart';
import 'package:tmail_ui_user/features/caching/utils/caching_constants.dart';
import 'package:tmail_ui_user/features/mailbox/data/model/state_type.dart'; import 'package:tmail_ui_user/features/mailbox/data/model/state_type.dart';
class CachingManager { class CachingManager {
@@ -19,6 +22,8 @@ class CachingManager {
final FcmCacheClient _fcmCacheClient; final FcmCacheClient _fcmCacheClient;
final FCMSubscriptionCacheClient _fcmSubscriptionCacheClient; final FCMSubscriptionCacheClient _fcmSubscriptionCacheClient;
final HiveCacheVersionClient _hiveCacheVersionClient; final HiveCacheVersionClient _hiveCacheVersionClient;
final DetailedEmailHiveCacheClient _detailedEmailHiveCacheClient;
final FileUtils _fileUtils;
CachingManager( CachingManager(
this._mailboxCacheClient, this._mailboxCacheClient,
@@ -29,6 +34,8 @@ class CachingManager {
this._fcmCacheClient, this._fcmCacheClient,
this._fcmSubscriptionCacheClient, this._fcmSubscriptionCacheClient,
this._hiveCacheVersionClient, this._hiveCacheVersionClient,
this._detailedEmailHiveCacheClient,
this._fileUtils,
); );
Future<void> clearAll() async { Future<void> clearAll() async {
@@ -39,8 +46,9 @@ class CachingManager {
_fcmCacheClient.clearAllData(), _fcmCacheClient.clearAllData(),
_fcmSubscriptionCacheClient.clearAllData(), _fcmSubscriptionCacheClient.clearAllData(),
_recentSearchCacheClient.clearAllData(), _recentSearchCacheClient.clearAllData(),
_accountCacheClient.clearAllData() _accountCacheClient.clearAllData(),
]); _detailedEmailHiveCacheClient.clearAllData(),
], eagerError: true);
} }
Future<void> clearData() async { Future<void> clearData() async {
@@ -50,15 +58,16 @@ class CachingManager {
_emailCacheClient.clearAllData(), _emailCacheClient.clearAllData(),
_fcmCacheClient.clearAllData(), _fcmCacheClient.clearAllData(),
_fcmSubscriptionCacheClient.clearAllData(), _fcmSubscriptionCacheClient.clearAllData(),
_recentSearchCacheClient.clearAllData() _recentSearchCacheClient.clearAllData(),
]); _detailedEmailHiveCacheClient.clearAllData(),
], eagerError: true);
} }
Future<void> clearEmailCache() async { Future<void> clearEmailCache() async {
await Future.wait([ await Future.wait([
_stateCacheClient.deleteItem(StateType.email.value), _stateCacheClient.deleteItem(StateType.email.value),
_emailCacheClient.clearAllData(), _emailCacheClient.clearAllData(),
]); ], eagerError: true);
log('CachingManager::clearEmailCache(): success'); log('CachingManager::clearEmailCache(): success');
} }
@@ -81,4 +90,8 @@ class CachingManager {
Future<void> closeHive() async { Future<void> closeHive() async {
return await HiveCacheConfig().closeHive(); return await HiveCacheConfig().closeHive();
} }
void clearAllFileInStorage() {
_fileUtils.removeFolder(CachingConstants.incomingEmailedContentFolderName);
}
} }
@@ -21,11 +21,12 @@ class CachingConstants {
static const String fcmCacheBoxName = 'fcm_cache_box'; static const String fcmCacheBoxName = 'fcm_cache_box';
static const String incomingEmailedCacheBoxName = 'incoming_emailed_cache_box'; static const String incomingEmailedCacheBoxName = 'incoming_emailed_cache_box';
static const String incomingEmailedContentFolderName = 'incoming_emailed';
static const String openedEmailContentFolderName = 'opened_email';
static const String openedEmailCacheBoxName = 'opened_email_cache_box'; static const String openedEmailCacheBoxName = 'opened_email_cache_box';
static const String sendingEmailCacheBoxName = 'sending_email_cache_box'; static const String sendingEmailCacheBoxName = 'sending_email_cache_box';
static const String incomingEmailedContentFolderName = 'incoming_emailed';
static const String openedEmailContentFolderName = 'opened_email';
static const int maxNumberNewEmailsForOffline = 10; static const int maxNumberNewEmailsForOffline = 10;
static const int maxNumberOpenedEmailsForOffline = 30; static const int maxNumberOpenedEmailsForOffline = 30;
} }
+3 -1
View File
@@ -88,7 +88,9 @@ class LocalBindings extends Bindings {
Get.find<AccountCacheClient>(), Get.find<AccountCacheClient>(),
Get.find<FcmCacheClient>(), Get.find<FcmCacheClient>(),
Get.find<FCMSubscriptionCacheClient>(), Get.find<FCMSubscriptionCacheClient>(),
Get.find<HiveCacheVersionClient>() Get.find<HiveCacheVersionClient>(),
Get.find<DetailedEmailHiveCacheClient>(),
Get.find<FileUtils>(),
)); ));
Get.put(SharePreferenceSpamReportDataSource(Get.find<SharedPreferences>())); Get.put(SharePreferenceSpamReportDataSource(Get.find<SharedPreferences>()));
} }