TF-2930 Fix inline attachment lost in draft emails

This commit is contained in:
dab246
2024-07-17 13:25:58 +07:00
committed by Dat H. Pham
parent 1fc3b76f94
commit b0ee2f24ba
14 changed files with 90 additions and 58 deletions
@@ -47,9 +47,11 @@ class GetEmailContentInteractor {
) async* {
try {
final email = await emailRepository.getEmailContent(session, accountId, emailId);
final listAttachments = email.allAttachments.getListAttachmentsDisplayedOutside(email.htmlBodyAttachments);
final listInlineImages = email.allAttachments.listAttachmentsDisplayedInContent;
if (email.emailContentList.isNotEmpty) {
final mapCidImageDownloadUrl = email.attachmentsWithCid.toMapCidImageDownloadUrl(
final mapCidImageDownloadUrl = listInlineImages.toMapCidImageDownloadUrl(
accountId: accountId,
downloadUrl: baseDownloadUrl
);
@@ -61,13 +63,15 @@ class GetEmailContentInteractor {
yield Right<Failure, Success>(GetEmailContentSuccess(
htmlEmailContent: newEmailContents.asHtmlString,
attachments: email.allAttachments.getListAttachmentsDisplayedOutside(email.htmlBodyAttachments),
attachments: listAttachments,
inlineImages: listInlineImages,
emailCurrent: email
));
} else {
yield Right<Failure, Success>(GetEmailContentSuccess(
htmlEmailContent: '',
attachments: email.allAttachments.getListAttachmentsDisplayedOutside(email.htmlBodyAttachments),
attachments: listAttachments,
inlineImages: listInlineImages,
emailCurrent: email
));
}
@@ -90,6 +94,7 @@ class GetEmailContentInteractor {
yield Right<Failure, Success>(GetEmailContentFromCacheSuccess(
htmlEmailContent: detailedEmail.htmlEmailContent ?? '',
attachments: detailedEmail.attachments ?? [],
inlineImages: detailedEmail.inlineImages ?? [],
emailCurrent: Email(
id: emailId,
headers: detailedEmail.headers,
@@ -121,6 +126,7 @@ class GetEmailContentInteractor {
yield Right<Failure, Success>(GetEmailContentFromCacheSuccess(
htmlEmailContent: detailedEmail.htmlEmailContent ?? '',
attachments: detailedEmail.attachments ?? [],
inlineImages: detailedEmail.inlineImages ?? [],
emailCurrent: Email(
id: emailId,
headers: detailedEmail.headers,
@@ -57,7 +57,7 @@ class GetListDetailedEmailByIdInteractor {
final listEmailContent = email.emailContentList;
if (listEmailContent.isNotEmpty) {
final mapCidImageDownloadUrl = email.attachmentsWithCid.toMapCidImageDownloadUrl(
final mapCidImageDownloadUrl = email.allAttachments.listAttachmentsDisplayedInContent.toMapCidImageDownloadUrl(
accountId: accountId,
downloadUrl: baseDownloadUrl
);