TF-1923 Add createdTime for DetailedEmail

(cherry picked from commit 817c35849338c483feaa2a68586b162a8a67b9a2)
This commit is contained in:
dab246
2023-06-21 01:38:19 +07:00
committed by Dat H. Pham
parent 4ea620cc2b
commit 5faab2c306
21 changed files with 57 additions and 39 deletions
@@ -24,8 +24,8 @@ import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_api.dart';
import 'package:tmail_ui_user/features/mailbox/data/network/mailbox_isolate_worker.dart';
import 'package:tmail_ui_user/features/mailbox/data/repository/mailbox_repository_impl.dart';
import 'package:tmail_ui_user/features/mailbox/domain/repository/mailbox_repository.dart';
import 'package:tmail_ui_user/features/offline_mode/manager/detailed_email_cache_worker_queue.dart';
import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_manager.dart';
import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_worker_queue.dart';
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';
@@ -65,7 +65,7 @@ class SendEmailInteractorBindings extends InteractorsBindings {
Get.lazyPut(() => EmailHiveCacheDataSourceImpl(
Get.find<NewEmailCacheManager>(),
Get.find<OpenedEmailCacheManager>(),
Get.find<DetailedEmailCacheWorkerQueue>(),
Get.find<NewEmailCacheWorkerQueue>(),
Get.find<OpenedEmailCacheWorkerQueue>(),
Get.find<EmailCacheManager>(),
Get.find<SendingEmailCacheManager>(),
@@ -1,8 +0,0 @@
import 'package:tmail_ui_user/features/offline_mode/hive_worker/hive_worker_queue.dart';
class DetailedEmailCacheWorkerQueue extends WorkerQueue {
@override
String get workerName => 'DetailedEmailCache';
}
@@ -1,4 +1,5 @@
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/file_utils.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/user_name.dart';
@@ -24,20 +25,19 @@ class NewEmailCacheManager {
DetailedEmailHiveCache detailedEmailCache
) async {
final listDetailedEmails = await getAllDetailedEmails(accountId, userName);
log('NewEmailCacheManager::storeDetailedNewEmail():listDetailedEmails: $listDetailedEmails');
if (listDetailedEmails.length >= CachingConstants.maxNumberNewEmailsForOffline) {
final lastElementsListEmail = listDetailedEmails.sublist(
CachingConstants.maxNumberNewEmailsForOffline - 1,
listDetailedEmails.length);
final lastElementsListEmail = listDetailedEmails.sublist(CachingConstants.maxNumberNewEmailsForOffline - 1);
for (var email in lastElementsListEmail) {
if (email.emailContentPath != null) {
await _deleteFileExisted(email.emailContentPath!);
}
await removeDetailedEmail(accountId, userName, email.emailId);
}
log('NewEmailCacheManager::storeDetailedNewEmail(): DELETE COMPLETED');
}
await insertDetailedEmail(accountId, userName, detailedEmailCache);
log('NewEmailCacheManager::storeDetailedNewEmail(): INSERT COMPLETED');
return detailedEmailCache;
}
@@ -82,4 +82,6 @@ class NewEmailCacheManager {
throw NotFoundStoredNewEmailException();
}
}
Future<void> closeNewEmailHiveCacheBox() => _cacheClient.closeBox();
}
@@ -0,0 +1,8 @@
import 'package:tmail_ui_user/features/offline_mode/hive_worker/hive_worker_queue.dart';
class NewEmailCacheWorkerQueue extends WorkerQueue {
@override
String get workerName => 'NewEmailCache';
}
@@ -54,9 +54,7 @@ class OpenedEmailCacheManager {
final listDetailedEmails = await getAllDetailedEmails(accountId, userName);
if (listDetailedEmails.length >= CachingConstants.maxNumberOpenedEmailsForOffline) {
final lastElementsListEmail = listDetailedEmails.sublist(
CachingConstants.maxNumberOpenedEmailsForOffline - 1,
listDetailedEmails.length);
final lastElementsListEmail = listDetailedEmails.sublist(CachingConstants.maxNumberOpenedEmailsForOffline - 1);
for (var email in lastElementsListEmail) {
if (email.emailContentPath != null) {
await _deleteFileExisted(email.emailContentPath!);
@@ -3,5 +3,5 @@ import 'package:tmail_ui_user/features/offline_mode/hive_worker/hive_worker_queu
class OpenedEmailCacheWorkerQueue extends WorkerQueue {
@override
String get workerName => 'OpenedEmailCacheQueue';
String get workerName => 'OpenedEmailCache';
}