diff --git a/lib/features/caching/clients/detailed_email_hive_cache_client.dart b/lib/features/caching/clients/detailed_email_hive_cache_client.dart index d425182f6..1ca0b0362 100644 --- a/lib/features/caching/clients/detailed_email_hive_cache_client.dart +++ b/lib/features/caching/clients/detailed_email_hive_cache_client.dart @@ -6,5 +6,5 @@ import 'package:tmail_ui_user/features/offline_mode/model/detailed_email_hive_ca class DetailedEmailHiveCacheClient extends HiveCacheClient { @override - String get tableName => CachingConstants.detailedEmailCacheBoxName; + String get tableName => CachingConstants.incomingEmailedCacheBoxName; } \ No newline at end of file diff --git a/lib/features/caching/utils/caching_constants.dart b/lib/features/caching/utils/caching_constants.dart index 08c55038c..74744539d 100644 --- a/lib/features/caching/utils/caching_constants.dart +++ b/lib/features/caching/utils/caching_constants.dart @@ -19,8 +19,8 @@ class CachingConstants { static const int DETAILED_EMAIL_HIVE_CACHE_ID = 17; static const String fcmCacheBoxName = 'fcm_cache_box'; - static const String detailedEmailCacheBoxName = 'detailed_email_cache_box'; - static const String newEmailContentFolderName = 'new_email'; + 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'; diff --git a/lib/features/email/data/datasource/email_datasource.dart b/lib/features/email/data/datasource/email_datasource.dart index 19703368d..a0f546b45 100644 --- a/lib/features/email/data/datasource/email_datasource.dart +++ b/lib/features/email/data/datasource/email_datasource.dart @@ -80,11 +80,11 @@ abstract class EmailDataSource { Future storeEmail(Session session, AccountId accountId, Email email); - Future getEmailFromCache(Session session, AccountId accountId, EmailId emailId); + Future getEmailStored(Session session, AccountId accountId, EmailId emailId); Future storeOpenedEmail(Session session, AccountId accountId, DetailedEmail detailedEmail); Future getOpenedEmail(Session session, AccountId accountId, EmailId emailId); - Future getDetailedEmail(Session session, AccountId accountId, EmailId emailId); + Future getIncomingEmailedStored(Session session, AccountId accountId, EmailId emailId); } \ No newline at end of file diff --git a/lib/features/email/data/datasource_impl/email_datasource_impl.dart b/lib/features/email/data/datasource_impl/email_datasource_impl.dart index a48c07ac8..65934bb47 100644 --- a/lib/features/email/data/datasource_impl/email_datasource_impl.dart +++ b/lib/features/email/data/datasource_impl/email_datasource_impl.dart @@ -178,12 +178,12 @@ class EmailDataSourceImpl extends EmailDataSource { } @override - Future getDetailedEmail(Session session, AccountId accountId, EmailId emailId) { + Future getIncomingEmailedStored(Session session, AccountId accountId, EmailId emailId) { throw UnimplementedError(); } @override - Future getEmailFromCache(Session session, AccountId accountId, EmailId emailId) { + Future getEmailStored(Session session, AccountId accountId, EmailId emailId) { throw UnimplementedError(); } } \ No newline at end of file diff --git a/lib/features/email/data/datasource_impl/email_hive_cache_datasource_impl.dart b/lib/features/email/data/datasource_impl/email_hive_cache_datasource_impl.dart index 5c322d633..89a52c2a3 100644 --- a/lib/features/email/data/datasource_impl/email_hive_cache_datasource_impl.dart +++ b/lib/features/email/data/datasource_impl/email_hive_cache_datasource_impl.dart @@ -211,18 +211,19 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource { } @override - Future getDetailedEmail(Session session, AccountId accountId, EmailId emailId) { + Future getIncomingEmailedStored(Session session, AccountId accountId, EmailId emailId) { return Future.sync(() async { final detailedEmailHiveCache = await _detailedEmailCacheManager.getDetailEmailExistedInCache(accountId, session.username, emailId); if (detailedEmailHiveCache == null) { return null; } + log('EmailHiveCacheDataSourceImpl::getDetailedEmail():folderPath: ${detailedEmailHiveCache.emailContentPath}'); final emailContent = await _fileUtils.getContentFromFile( nameFile: emailId.asString, - folderPath: CachingConstants.newEmailContentFolderName + folderPath: CachingConstants.incomingEmailedContentFolderName ); return detailedEmailHiveCache.toDetailedEmailWithContent(emailContent); @@ -230,9 +231,8 @@ class EmailHiveCacheDataSourceImpl extends EmailDataSource { } @override - Future getEmailFromCache(Session session, AccountId accountId, EmailId emailId) { + Future getEmailStored(Session session, AccountId accountId, EmailId emailId) { return Future.sync(() async { - log('EmailHiveCacheDataSourceImpl::getEmailFromCache():emailId: ${emailId.asString}'); final email = await _emailCacheManager.getEmailFromCache(accountId, session.username, emailId); log('EmailHiveCacheDataSourceImpl::getEmailFromCache():emailId: $email'); return email?.toEmail(); diff --git a/lib/features/email/data/repository/email_repository_impl.dart b/lib/features/email/data/repository/email_repository_impl.dart index 1c6a1d34b..abe03ffe5 100644 --- a/lib/features/email/data/repository/email_repository_impl.dart +++ b/lib/features/email/data/repository/email_repository_impl.dart @@ -206,17 +206,17 @@ class EmailRepositoryImpl extends EmailRepository { @override Future getOpenedEmail(Session session, AccountId accountId, EmailId emailId) async { - final detailedEmail = await emailDataSource[DataSourceType.hiveCache]!.getDetailedEmail(session, accountId, emailId); + final getIncomingEmailedStored = await emailDataSource[DataSourceType.hiveCache]!.getIncomingEmailedStored(session, accountId, emailId); final openedEmail = await emailDataSource[DataSourceType.hiveCache]!.getOpenedEmail(session, accountId, emailId); - if (detailedEmail != null) { - return detailedEmail; + if (getIncomingEmailedStored != null) { + return getIncomingEmailedStored; } else { return openedEmail; } } @override - Future getEmailFromCache(Session session, AccountId accountId, EmailId emailId) { - return emailDataSource[DataSourceType.hiveCache]!.getEmailFromCache(session, accountId, emailId); + Future getEmailStored(Session session, AccountId accountId, EmailId emailId) { + return emailDataSource[DataSourceType.hiveCache]!.getEmailStored(session, accountId, emailId); } } \ No newline at end of file diff --git a/lib/features/email/domain/extensions/detailed_email_extension.dart b/lib/features/email/domain/extensions/detailed_email_extension.dart index 47bd2b2be..944cf8e7e 100644 --- a/lib/features/email/domain/extensions/detailed_email_extension.dart +++ b/lib/features/email/domain/extensions/detailed_email_extension.dart @@ -17,7 +17,7 @@ extension DetailedEmailExtension on DetailedEmail { ); } - String get newEmailFolderPath => CachingConstants.newEmailContentFolderName; + String get newEmailFolderPath => CachingConstants.incomingEmailedContentFolderName; String get openedEmailFolderPath => CachingConstants.openedEmailContentFolderName; diff --git a/lib/features/email/domain/repository/email_repository.dart b/lib/features/email/domain/repository/email_repository.dart index d8a174473..940ef817b 100644 --- a/lib/features/email/domain/repository/email_repository.dart +++ b/lib/features/email/domain/repository/email_repository.dart @@ -94,7 +94,7 @@ abstract class EmailRepository { Future storeEmailToCache(Session session, AccountId accountId, Email email); - Future getEmailFromCache(Session session, AccountId accountId, EmailId emailId); + Future getEmailStored(Session session, AccountId accountId, EmailId emailId); Future storeOpenedEmail(Session session, AccountId accountId, DetailedEmail detailedEmail); diff --git a/lib/features/email/domain/usecases/get_email_content_interactor.dart b/lib/features/email/domain/usecases/get_email_content_interactor.dart index 02392e1a4..f68ceb5e7 100644 --- a/lib/features/email/domain/usecases/get_email_content_interactor.dart +++ b/lib/features/email/domain/usecases/get_email_content_interactor.dart @@ -92,10 +92,10 @@ class GetEmailContentInteractor { bool draftsEmail = false } ) async* { - log('GetEmailContentInteractor::_getOpenedEmailCache():'); try { final detailedEmail = await emailRepository.getOpenedEmail(session, accountId, emailId); if (detailedEmail != null) { + log('GetEmailContentInteractor::_tryToGetOpenedEmailCache(): $detailedEmail'); yield Right(GetEmailContentFromCacheSuccess( detailedEmail.htmlEmailContent ?? "", detailedEmail.attachments ?? [], diff --git a/lib/features/offline_mode/manager/detailed_email_cache_manager.dart b/lib/features/offline_mode/manager/detailed_email_cache_manager.dart index 769a1405e..72affb2b5 100644 --- a/lib/features/offline_mode/manager/detailed_email_cache_manager.dart +++ b/lib/features/offline_mode/manager/detailed_email_cache_manager.dart @@ -77,7 +77,7 @@ class DetailedEmailCacheManager { EmailId emailId ) async { final keyCache = TupleKey(emailId.asString, accountId.asString, userName.value).encodeKey; - final detailedEmailCache = await _cacheClient.getItem(keyCache); + final detailedEmailCache = await _cacheClient.getItem(keyCache, needToReopen: true); log('DetailedEmailCacheManager::getDetailEmailExistedInCache():Email: $detailedEmailCache'); return detailedEmailCache; } diff --git a/lib/features/offline_mode/manager/opened_email_cache_manager.dart b/lib/features/offline_mode/manager/opened_email_cache_manager.dart index a3649b10b..2170cf6a6 100644 --- a/lib/features/offline_mode/manager/opened_email_cache_manager.dart +++ b/lib/features/offline_mode/manager/opened_email_cache_manager.dart @@ -93,8 +93,8 @@ class OpenedEmailCacheManager { EmailId emailId ) async { final keyCache = TupleKey(emailId.asString, accountId.asString, userName.value).encodeKey; - final detailedEmailCache = await _cacheClient.getItem(keyCache); - log('OpenedEmailCacheManager::_getDetailedEmailCache():_getDetailedEmailCache: $detailedEmailCache'); + final detailedEmailCache = await _cacheClient.getItem(keyCache,needToReopen: true); + log('OpenedEmailCacheManager::getOpenedEmailExistedInCache(): $detailedEmailCache'); return detailedEmailCache; } diff --git a/lib/features/thread/domain/usecases/get_email_by_id_interactor.dart b/lib/features/thread/domain/usecases/get_email_by_id_interactor.dart index 50d63304a..608f3a8d4 100644 --- a/lib/features/thread/domain/usecases/get_email_by_id_interactor.dart +++ b/lib/features/thread/domain/usecases/get_email_by_id_interactor.dart @@ -66,7 +66,7 @@ class GetEmailByIdInteractor { ) async* { try { - final email = await _emailRepository.getEmailFromCache(session, accountId, emailId); + final email = await _emailRepository.getEmailStored(session, accountId, emailId); if (email != null) { yield Right(GetEmailByIdSuccess(email.toPresentationEmail()));