From bab7619840baf5e9e849de75a53c4faca2c90304 Mon Sep 17 00:00:00 2001 From: dab246 Date: Mon, 28 Mar 2022 12:04:29 +0700 Subject: [PATCH] TF-389 Fix can not see the attachment in EmailView --- .../domain/usecases/get_email_content_interactor.dart | 2 +- lib/features/email/presentation/email_view.dart | 2 +- model/lib/email/attachment.dart | 4 +++- model/lib/extensions/list_attachment_extension.dart | 9 +++++---- 4 files changed, 10 insertions(+), 7 deletions(-) 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 1aa1061d8..f6d1abda0 100644 --- a/lib/features/email/domain/usecases/get_email_content_interactor.dart +++ b/lib/features/email/domain/usecases/get_email_content_interactor.dart @@ -19,7 +19,7 @@ class GetEmailContentInteractor { if (email.emailContentList.isNotEmpty) { final newEmailContents = await emailRepository.transformEmailContent( email.emailContentList, - email.allAttachments.attachmentWithDispositionInlines, + email.allAttachments.listAttachmentsDisplayedInContent, baseDownloadUrl, accountId); yield Right(GetEmailContentSuccess(newEmailContents, email.allAttachments)); diff --git a/lib/features/email/presentation/email_view.dart b/lib/features/email/presentation/email_view.dart index d11e08f89..86bd17702 100644 --- a/lib/features/email/presentation/email_view.dart +++ b/lib/features/email/presentation/email_view.dart @@ -384,7 +384,7 @@ class EmailView extends GetView with UserSettingPopupMenuMixin { if (success is LoadingState) { return AttachmentsPlaceHolderLoading(responsiveUtils: responsiveUtils); } else { - final attachments = emailController.attachments.attachmentsWithDispositionAttachment; + final attachments = emailController.attachments.listAttachmentsDisplayedOutSide; return attachments.isNotEmpty ? _buildAttachmentsBody(context, attachments) : SizedBox.shrink(); diff --git a/model/lib/email/attachment.dart b/model/lib/email/attachment.dart index 73ced9246..e766a6e82 100644 --- a/model/lib/email/attachment.dart +++ b/model/lib/email/attachment.dart @@ -27,7 +27,9 @@ class Attachment with EquatableMixin { this.disposition, }); - bool cidNotEmpty() => cid != null && cid!.isNotEmpty; + bool noCid() => cid == null || cid?.isEmpty == true; + + bool hasCid() => cid != null && cid?.isNotEmpty == true; String getDownloadUrl(String baseDownloadUrl, AccountId accountId) { final downloadUriTemplate = UriTemplate('$baseDownloadUrl'); diff --git a/model/lib/extensions/list_attachment_extension.dart b/model/lib/extensions/list_attachment_extension.dart index 8760dd7d5..f4e964181 100644 --- a/model/lib/extensions/list_attachment_extension.dart +++ b/model/lib/extensions/list_attachment_extension.dart @@ -12,12 +12,13 @@ extension ListAttachmentExtension on List { return totalSize; } - List get attachmentsWithDispositionAttachment { - return where((attachment) => attachment.disposition == ContentDisposition.attachment).toList(); + List get listAttachmentsDisplayedOutSide { + return where((attachment) => attachment.disposition == ContentDisposition.attachment || attachment.noCid()) + .toList(); } - List get attachmentWithDispositionInlines { - return where((attachment) => attachment.disposition == ContentDisposition.inline && attachment.cidNotEmpty()) + List get listAttachmentsDisplayedInContent { + return where((attachment) => attachment.hasCid()) .toList(); } } \ No newline at end of file