TF-1923 Fix new email offline mode not working

(cherry picked from commit c1c48e93d50cb0ebbccaf11c3f4a975af640b63a)
This commit is contained in:
dab246
2023-06-20 22:20:23 +07:00
committed by Dat H. Pham
parent b1a0cab02b
commit 6d96a1109e
35 changed files with 333 additions and 261 deletions
@@ -5,6 +5,7 @@ import 'package:tmail_ui_user/features/email/domain/extensions/list_attachments_
import 'package:tmail_ui_user/features/email/domain/extensions/list_email_header_extension.dart';
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.dart';
import 'package:tmail_ui_user/features/offline_mode/model/detailed_email_hive_cache.dart';
import 'package:tmail_ui_user/features/thread/data/extensions/map_keywords_extension.dart';
extension DetailedEmailExtension on DetailedEmail {
DetailedEmailHiveCache toHiveCache() {
@@ -12,12 +13,13 @@ extension DetailedEmailExtension on DetailedEmail {
emailId: emailId.asString,
timeSaved: DateTime.now(),
attachments: attachments?.toHiveCache(),
headers: headers?.toHiveCache(),
headers: headers?.toList().toHiveCache(),
keywords: keywords?.toMapString(),
emailContentPath: emailContentPath
);
}
String get newEmailFolderPath => CachingConstants.incomingEmailedContentFolderName;
String get newEmailFolderPath => CachingConstants.newEmailsContentFolderName;
String get openedEmailFolderPath => CachingConstants.openedEmailContentFolderName;
@@ -26,6 +28,7 @@ extension DetailedEmailExtension on DetailedEmail {
emailId: emailId,
attachments: attachments,
headers: headers,
keywords: keywords,
htmlEmailContent: htmlEmailContent,
emailContentPath: path,
);
@@ -1,5 +1,6 @@
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
import 'package:tmail_ui_user/features/email/domain/extensions/list_acttachments_hive_cache_extension.dart';
import 'package:tmail_ui_user/features/email/domain/extensions/list_email_header_hive_cache_extension.dart';
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.dart';
@@ -10,7 +11,10 @@ extension DetailedEmailHiveCacheExtension on DetailedEmailHiveCache {
return DetailedEmail(
emailId: EmailId(Id(emailId)),
attachments: attachments?.toAttachment(),
headers: headers?.toListEmailHeader(),
headers: headers?.toSetEmailHeader(),
keywords: keywords != null
? Map.fromIterables(keywords!.keys.map((value) => KeyWordIdentifier(value)), keywords!.values)
: null,
htmlEmailContent: emailContent,
);
}
@@ -8,7 +8,8 @@ extension EmailExtension on Email {
return DetailedEmail(
emailId: id!,
attachments: allAttachments,
headers: headers?.toList(),
headers: headers,
keywords: keywords,
htmlEmailContent: htmlEmailContent
);
}
@@ -3,5 +3,5 @@ import 'package:tmail_ui_user/features/email/domain/extensions/email_header_hive
import 'package:tmail_ui_user/features/offline_mode/model/email_header_hive_cache.dart';
extension ListEmailHeaderExtension on List<EmailHeaderHiveCache> {
List<EmailHeader> toListEmailHeader() => map((emailHeaderHiveCache) => emailHeaderHiveCache.toEmailHeader()).toList();
Set<EmailHeader> toSetEmailHeader() => map((emailHeaderHiveCache) => emailHeaderHiveCache.toEmailHeader()).toSet();
}