Fix SMime signature status not displayed
This commit is contained in:
@@ -612,10 +612,10 @@ packages:
|
|||||||
description:
|
description:
|
||||||
path: "."
|
path: "."
|
||||||
ref: main
|
ref: main
|
||||||
resolved-ref: b1b0d407e5082f9d7afc88ccec8d05bf39ec992f
|
resolved-ref: "80bd3a9d6bea2cca9cf905edfdea8b8d5e8c5a8e"
|
||||||
url: "https://github.com/linagora/jmap-dart-client.git"
|
url: "https://github.com/linagora/jmap-dart-client.git"
|
||||||
source: git
|
source: git
|
||||||
version: "0.2.0"
|
version: "0.2.1"
|
||||||
js:
|
js:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -15,8 +15,6 @@ dependencies:
|
|||||||
path: ../model
|
path: ../model
|
||||||
|
|
||||||
### Dependencies from git ###
|
### Dependencies from git ###
|
||||||
# TODO: We will change it when the PR in upstream repository will be merged
|
|
||||||
# https://github.com/linagora/jmap-dart-client/pull/87
|
|
||||||
jmap_dart_client:
|
jmap_dart_client:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/linagora/jmap-dart-client.git
|
url: https://github.com/linagora/jmap-dart-client.git
|
||||||
|
|||||||
@@ -296,10 +296,10 @@ packages:
|
|||||||
description:
|
description:
|
||||||
path: "."
|
path: "."
|
||||||
ref: main
|
ref: main
|
||||||
resolved-ref: b1b0d407e5082f9d7afc88ccec8d05bf39ec992f
|
resolved-ref: "80bd3a9d6bea2cca9cf905edfdea8b8d5e8c5a8e"
|
||||||
url: "https://github.com/linagora/jmap-dart-client.git"
|
url: "https://github.com/linagora/jmap-dart-client.git"
|
||||||
source: git
|
source: git
|
||||||
version: "0.2.0"
|
version: "0.2.1"
|
||||||
js:
|
js:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -12,8 +12,6 @@ dependencies:
|
|||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
### Dependencies from git ###
|
### Dependencies from git ###
|
||||||
# TODO: We will change it when the PR in upstream repository will be merged
|
|
||||||
# https://github.com/linagora/jmap-dart-client/pull/87
|
|
||||||
jmap_dart_client:
|
jmap_dart_client:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/linagora/jmap-dart-client.git
|
url: https://github.com/linagora/jmap-dart-client.git
|
||||||
|
|||||||
+2
-2
@@ -296,10 +296,10 @@ packages:
|
|||||||
description:
|
description:
|
||||||
path: "."
|
path: "."
|
||||||
ref: main
|
ref: main
|
||||||
resolved-ref: b1b0d407e5082f9d7afc88ccec8d05bf39ec992f
|
resolved-ref: "80bd3a9d6bea2cca9cf905edfdea8b8d5e8c5a8e"
|
||||||
url: "https://github.com/linagora/jmap-dart-client.git"
|
url: "https://github.com/linagora/jmap-dart-client.git"
|
||||||
source: git
|
source: git
|
||||||
version: "0.2.0"
|
version: "0.2.1"
|
||||||
js:
|
js:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -12,8 +12,6 @@ dependencies:
|
|||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
### Dependencies from git ###
|
### Dependencies from git ###
|
||||||
# TODO: We will change it when the PR in upstream repository will be merged
|
|
||||||
# https://github.com/linagora/jmap-dart-client/pull/87
|
|
||||||
jmap_dart_client:
|
jmap_dart_client:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/linagora/jmap-dart-client.git
|
url: https://github.com/linagora/jmap-dart-client.git
|
||||||
|
|||||||
@@ -296,10 +296,10 @@ packages:
|
|||||||
description:
|
description:
|
||||||
path: "."
|
path: "."
|
||||||
ref: main
|
ref: main
|
||||||
resolved-ref: b1b0d407e5082f9d7afc88ccec8d05bf39ec992f
|
resolved-ref: "80bd3a9d6bea2cca9cf905edfdea8b8d5e8c5a8e"
|
||||||
url: "https://github.com/linagora/jmap-dart-client.git"
|
url: "https://github.com/linagora/jmap-dart-client.git"
|
||||||
source: git
|
source: git
|
||||||
version: "0.2.0"
|
version: "0.2.1"
|
||||||
js:
|
js:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -12,8 +12,6 @@ dependencies:
|
|||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
### Dependencies from git ###
|
### Dependencies from git ###
|
||||||
# TODO: We will change it when the PR in upstream repository will be merged
|
|
||||||
# https://github.com/linagora/jmap-dart-client/pull/87
|
|
||||||
jmap_dart_client:
|
jmap_dart_client:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/linagora/jmap-dart-client.git
|
url: https://github.com/linagora/jmap-dart-client.git
|
||||||
|
|||||||
@@ -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/extensions/list_email_header_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.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/offline_mode/model/detailed_email_hive_cache.dart';
|
||||||
|
import 'package:tmail_ui_user/features/thread/data/extensions/map_header_identifier_id_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/data/extensions/map_keywords_extension.dart';
|
import 'package:tmail_ui_user/features/thread/data/extensions/map_keywords_extension.dart';
|
||||||
|
|
||||||
extension DetailedEmailExtension on DetailedEmail {
|
extension DetailedEmailExtension on DetailedEmail {
|
||||||
@@ -19,6 +20,7 @@ extension DetailedEmailExtension on DetailedEmail {
|
|||||||
messageId: messageId?.ids.toList(),
|
messageId: messageId?.ids.toList(),
|
||||||
references: references?.ids.toList(),
|
references: references?.ids.toList(),
|
||||||
inlineImages: inlineImages?.toHiveCache(),
|
inlineImages: inlineImages?.toHiveCache(),
|
||||||
|
sMimeStatusHeader: sMimeStatusHeader?.toMapString(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,6 +40,7 @@ extension DetailedEmailExtension on DetailedEmail {
|
|||||||
messageId: messageId,
|
messageId: messageId,
|
||||||
references: references,
|
references: references,
|
||||||
inlineImages: inlineImages,
|
inlineImages: inlineImages,
|
||||||
|
sMimeStatusHeader: sMimeStatusHeader
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
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/email.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/mail/email/individual_header_identifier.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.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_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/extensions/list_email_header_hive_cache_extension.dart';
|
||||||
@@ -24,6 +25,9 @@ extension DetailedEmailHiveCacheExtension on DetailedEmailHiveCache {
|
|||||||
? MessageIdsHeaderValue(references!.toSet())
|
? MessageIdsHeaderValue(references!.toSet())
|
||||||
: null,
|
: null,
|
||||||
inlineImages: inlineImages?.toAttachment(),
|
inlineImages: inlineImages?.toAttachment(),
|
||||||
|
sMimeStatusHeader: sMimeStatusHeader != null
|
||||||
|
? Map.fromIterables(sMimeStatusHeader!.keys.map((value) => IndividualHeaderIdentifier(value)), sMimeStatusHeader!.values)
|
||||||
|
: null,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -16,6 +16,7 @@ extension EmailExtension on Email {
|
|||||||
messageId: messageId,
|
messageId: messageId,
|
||||||
references: references,
|
references: references,
|
||||||
inlineImages: allAttachments.listAttachmentsDisplayedInContent,
|
inlineImages: allAttachments.listAttachmentsDisplayedInContent,
|
||||||
|
sMimeStatusHeader: sMimeStatusHeader,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:equatable/equatable.dart';
|
import 'package:equatable/equatable.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email_header.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email_header.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/mail/email/individual_header_identifier.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
|
||||||
import 'package:model/email/attachment.dart';
|
import 'package:model/email/attachment.dart';
|
||||||
|
|
||||||
@@ -15,6 +16,7 @@ class DetailedEmail with EquatableMixin {
|
|||||||
final MessageIdsHeaderValue? messageId;
|
final MessageIdsHeaderValue? messageId;
|
||||||
final MessageIdsHeaderValue? references;
|
final MessageIdsHeaderValue? references;
|
||||||
final List<Attachment>? inlineImages;
|
final List<Attachment>? inlineImages;
|
||||||
|
final Map<IndividualHeaderIdentifier, String?>? sMimeStatusHeader;
|
||||||
|
|
||||||
DetailedEmail({
|
DetailedEmail({
|
||||||
required this.emailId,
|
required this.emailId,
|
||||||
@@ -27,6 +29,7 @@ class DetailedEmail with EquatableMixin {
|
|||||||
this.messageId,
|
this.messageId,
|
||||||
this.references,
|
this.references,
|
||||||
this.inlineImages,
|
this.inlineImages,
|
||||||
|
this.sMimeStatusHeader,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -41,5 +44,6 @@ class DetailedEmail with EquatableMixin {
|
|||||||
messageId,
|
messageId,
|
||||||
references,
|
references,
|
||||||
inlineImages,
|
inlineImages,
|
||||||
|
sMimeStatusHeader,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -98,7 +98,8 @@ class GetEmailContentInteractor {
|
|||||||
emailCurrent: Email(
|
emailCurrent: Email(
|
||||||
id: emailId,
|
id: emailId,
|
||||||
headers: detailedEmail.headers,
|
headers: detailedEmail.headers,
|
||||||
keywords: detailedEmail.keywords
|
keywords: detailedEmail.keywords,
|
||||||
|
sMimeStatusHeader: detailedEmail.sMimeStatusHeader,
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -130,7 +131,8 @@ class GetEmailContentInteractor {
|
|||||||
emailCurrent: Email(
|
emailCurrent: Email(
|
||||||
id: emailId,
|
id: emailId,
|
||||||
headers: detailedEmail.headers,
|
headers: detailedEmail.headers,
|
||||||
keywords: detailedEmail.keywords
|
keywords: detailedEmail.keywords,
|
||||||
|
sMimeStatusHeader: detailedEmail.sMimeStatusHeader,
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
@@ -580,6 +580,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
|||||||
htmlEmailContent: success.htmlEmailContent,
|
htmlEmailContent: success.htmlEmailContent,
|
||||||
messageId: success.emailCurrent?.messageId,
|
messageId: success.emailCurrent?.messageId,
|
||||||
references: success.emailCurrent?.references,
|
references: success.emailCurrent?.references,
|
||||||
|
sMimeStatusHeader: success.emailCurrent?.sMimeStatusHeader,
|
||||||
);
|
);
|
||||||
|
|
||||||
_storeOpenedEmailAction(
|
_storeOpenedEmailAction(
|
||||||
|
|||||||
@@ -317,6 +317,7 @@ class EmailView extends GetWidget<SingleEmailController> {
|
|||||||
emailSelected: presentationEmail,
|
emailSelected: presentationEmail,
|
||||||
imagePaths: controller.imagePaths,
|
imagePaths: controller.imagePaths,
|
||||||
responsiveUtils: controller.responsiveUtils,
|
responsiveUtils: controller.responsiveUtils,
|
||||||
|
sMimeStatus: controller.currentEmailLoaded.value?.sMimeStatus,
|
||||||
emailUnsubscribe: controller.emailUnsubscribe.value,
|
emailUnsubscribe: controller.emailUnsubscribe.value,
|
||||||
maxBodyHeight: maxBodyHeight,
|
maxBodyHeight: maxBodyHeight,
|
||||||
openEmailAddressDetailAction: controller.openEmailAddressDialog,
|
openEmailAddressDetailAction: controller.openEmailAddressDialog,
|
||||||
|
|||||||
+8
-3
@@ -1,13 +1,18 @@
|
|||||||
|
|
||||||
import 'package:model/email/presentation_email.dart';
|
import 'package:core/utils/app_logger.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
|
import 'package:model/extensions/email_extension.dart';
|
||||||
import 'package:model/extensions/list_email_header_extension.dart';
|
import 'package:model/extensions/list_email_header_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/model/smime_signature_status.dart';
|
import 'package:tmail_ui_user/features/email/presentation/model/smime_signature_status.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/utils/smime_signature_constant.dart';
|
import 'package:tmail_ui_user/features/email/presentation/utils/smime_signature_constant.dart';
|
||||||
|
|
||||||
extension PresentationEmailExtension on PresentationEmail {
|
extension EmailExtension on Email {
|
||||||
|
|
||||||
SMimeSignatureStatus get sMimeStatus {
|
SMimeSignatureStatus get sMimeStatus {
|
||||||
final status = emailHeader?.toSet().sMimeStatus;
|
final status = sMimeStatusHeaderParsed.isNotEmpty
|
||||||
|
? sMimeStatusHeaderParsed
|
||||||
|
: headers?.toSet().sMimeStatus;
|
||||||
|
log('EmailExtension::sMimeStatus: $status');
|
||||||
if (status == SMimeSignatureConstant.GOOD_SIGNATURE) {
|
if (status == SMimeSignatureConstant.GOOD_SIGNATURE) {
|
||||||
return SMimeSignatureStatus.goodSignature;
|
return SMimeSignatureStatus.goodSignature;
|
||||||
} else if (status == SMimeSignatureConstant.BAD_SIGNATURE) {
|
} else if (status == SMimeSignatureConstant.BAD_SIGNATURE) {
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
import 'package:equatable/equatable.dart';
|
import 'package:equatable/equatable.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:model/email/attachment.dart';
|
import 'package:model/email/attachment.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/extensions/email_extension.dart';
|
||||||
|
import 'package:tmail_ui_user/features/email/presentation/model/smime_signature_status.dart';
|
||||||
|
|
||||||
class EmailLoaded with EquatableMixin {
|
class EmailLoaded with EquatableMixin {
|
||||||
final String htmlContent;
|
final String htmlContent;
|
||||||
@@ -15,6 +17,8 @@ class EmailLoaded with EquatableMixin {
|
|||||||
this.emailCurrent,
|
this.emailCurrent,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
SMimeSignatureStatus? get sMimeStatus => emailCurrent?.sMimeStatus;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [
|
List<Object?> get props => [
|
||||||
htmlContent,
|
htmlContent,
|
||||||
|
|||||||
+5
-4
@@ -8,7 +8,6 @@ import 'package:model/email/email_action_type.dart';
|
|||||||
import 'package:model/email/presentation_email.dart';
|
import 'package:model/email/presentation_email.dart';
|
||||||
import 'package:model/extensions/presentation_email_extension.dart';
|
import 'package:model/extensions/presentation_email_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/base/widget/email_avatar_builder.dart';
|
import 'package:tmail_ui_user/features/base/widget/email_avatar_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/extensions/presentation_email_extension.dart';
|
|
||||||
import 'package:tmail_ui_user/features/email/presentation/model/email_unsubscribe.dart';
|
import 'package:tmail_ui_user/features/email/presentation/model/email_unsubscribe.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/model/smime_signature_status.dart';
|
import 'package:tmail_ui_user/features/email/presentation/model/smime_signature_status.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/email_receiver_widget.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/email_receiver_widget.dart';
|
||||||
@@ -26,12 +25,14 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
|
|||||||
final OnOpenEmailAddressDetailAction? openEmailAddressDetailAction;
|
final OnOpenEmailAddressDetailAction? openEmailAddressDetailAction;
|
||||||
final OnEmailActionClick? onEmailActionClick;
|
final OnEmailActionClick? onEmailActionClick;
|
||||||
final double? maxBodyHeight;
|
final double? maxBodyHeight;
|
||||||
|
final SMimeSignatureStatus? sMimeStatus;
|
||||||
|
|
||||||
const InformationSenderAndReceiverBuilder({
|
const InformationSenderAndReceiverBuilder({
|
||||||
Key? key,
|
Key? key,
|
||||||
required this.emailSelected,
|
required this.emailSelected,
|
||||||
required this.responsiveUtils,
|
required this.responsiveUtils,
|
||||||
required this.imagePaths,
|
required this.imagePaths,
|
||||||
|
this.sMimeStatus,
|
||||||
this.emailUnsubscribe,
|
this.emailUnsubscribe,
|
||||||
this.maxBodyHeight,
|
this.maxBodyHeight,
|
||||||
this.openEmailAddressDetailAction,
|
this.openEmailAddressDetailAction,
|
||||||
@@ -64,14 +65,14 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
|
|||||||
openEmailAddressDetailAction: openEmailAddressDetailAction,
|
openEmailAddressDetailAction: openEmailAddressDetailAction,
|
||||||
)
|
)
|
||||||
)),
|
)),
|
||||||
if (emailSelected.sMimeStatus != SMimeSignatureStatus.notSigned)
|
if (sMimeStatus != null && sMimeStatus != SMimeSignatureStatus.notSigned)
|
||||||
Tooltip(
|
Tooltip(
|
||||||
key: const Key('smime_signature_status_icon'),
|
key: const Key('smime_signature_status_icon'),
|
||||||
message: emailSelected.sMimeStatus.getTooltipMessage(context),
|
message: sMimeStatus!.getTooltipMessage(context),
|
||||||
child: MouseRegion(
|
child: MouseRegion(
|
||||||
cursor: SystemMouseCursors.click,
|
cursor: SystemMouseCursors.click,
|
||||||
child: SvgPicture.asset(
|
child: SvgPicture.asset(
|
||||||
emailSelected.sMimeStatus.getIcon(imagePaths),
|
sMimeStatus!.getIcon(imagePaths),
|
||||||
fit: BoxFit.fill,
|
fit: BoxFit.fill,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -38,6 +38,9 @@ class DetailedEmailHiveCache extends HiveObject with EquatableMixin {
|
|||||||
@HiveField(8)
|
@HiveField(8)
|
||||||
final List<AttachmentHiveCache>? inlineImages;
|
final List<AttachmentHiveCache>? inlineImages;
|
||||||
|
|
||||||
|
@HiveField(9)
|
||||||
|
Map<String, String?>? sMimeStatusHeader;
|
||||||
|
|
||||||
DetailedEmailHiveCache({
|
DetailedEmailHiveCache({
|
||||||
required this.emailId,
|
required this.emailId,
|
||||||
required this.timeSaved,
|
required this.timeSaved,
|
||||||
@@ -48,6 +51,7 @@ class DetailedEmailHiveCache extends HiveObject with EquatableMixin {
|
|||||||
this.messageId,
|
this.messageId,
|
||||||
this.references,
|
this.references,
|
||||||
this.inlineImages,
|
this.inlineImages,
|
||||||
|
this.sMimeStatusHeader,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -61,5 +65,6 @@ class DetailedEmailHiveCache extends HiveObject with EquatableMixin {
|
|||||||
messageId,
|
messageId,
|
||||||
references,
|
references,
|
||||||
inlineImages,
|
inlineImages,
|
||||||
|
sMimeStatusHeader,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -51,6 +51,7 @@ class ThreadConstants {
|
|||||||
EmailProperty.mailboxIds,
|
EmailProperty.mailboxIds,
|
||||||
EmailProperty.messageId,
|
EmailProperty.messageId,
|
||||||
EmailProperty.references,
|
EmailProperty.references,
|
||||||
|
IndividualHeaderIdentifier.sMimeStatusHeader.value,
|
||||||
});
|
});
|
||||||
|
|
||||||
static final propertiesGetDetailedEmail = Properties({
|
static final propertiesGetDetailedEmail = Properties({
|
||||||
@@ -72,7 +73,8 @@ class ThreadConstants {
|
|||||||
EmailProperty.bodyValues,
|
EmailProperty.bodyValues,
|
||||||
EmailProperty.htmlBody,
|
EmailProperty.htmlBody,
|
||||||
EmailProperty.attachments,
|
EmailProperty.attachments,
|
||||||
EmailProperty.headers
|
EmailProperty.headers,
|
||||||
|
IndividualHeaderIdentifier.sMimeStatusHeader.value,
|
||||||
});
|
});
|
||||||
|
|
||||||
static final propertiesCalendarEvent = Properties({
|
static final propertiesCalendarEvent = Properties({
|
||||||
|
|||||||
@@ -32,6 +32,8 @@ extension EmailExtension on Email {
|
|||||||
|
|
||||||
bool get hasListUnsubscribe => listUnsubscribe.isNotEmpty;
|
bool get hasListUnsubscribe => listUnsubscribe.isNotEmpty;
|
||||||
|
|
||||||
|
String get sMimeStatusHeaderParsed => sMimeStatusHeader?[IndividualHeaderIdentifier.sMimeStatusHeader]?.trim() ?? '';
|
||||||
|
|
||||||
bool hasReadReceipt(Map<MailboxId, PresentationMailbox> mapMailbox) {
|
bool hasReadReceipt(Map<MailboxId, PresentationMailbox> mapMailbox) {
|
||||||
final mailboxCurrent = findMailboxContain(mapMailbox);
|
final mailboxCurrent = findMailboxContain(mapMailbox);
|
||||||
return !hasMdnSent &&
|
return !hasMdnSent &&
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email_header.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email_header.dart';
|
||||||
import 'package:model/email/email_property.dart';
|
import 'package:model/email/email_property.dart';
|
||||||
|
import 'package:core/utils/app_logger.dart' as logger;
|
||||||
|
|
||||||
extension ListEmailHeaderExtension on Set<EmailHeader>? {
|
extension ListEmailHeaderExtension on Set<EmailHeader>? {
|
||||||
bool get readReceiptHasBeenRequested {
|
bool get readReceiptHasBeenRequested {
|
||||||
@@ -20,6 +21,7 @@ extension ListEmailHeaderExtension on Set<EmailHeader>? {
|
|||||||
|
|
||||||
String get sMimeStatus {
|
String get sMimeStatus {
|
||||||
final sMimeStatus = this?.firstWhereOrNull((header) => header.name == EmailProperty.headerSMimeStatusKey);
|
final sMimeStatus = this?.firstWhereOrNull((header) => header.name == EmailProperty.headerSMimeStatusKey);
|
||||||
return sMimeStatus?.value ?? '';
|
logger.log('ListEmailHeaderExtension::sMimeStatus: $sMimeStatus');
|
||||||
|
return sMimeStatus?.value.trim() ?? '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+2
-2
@@ -604,10 +604,10 @@ packages:
|
|||||||
description:
|
description:
|
||||||
path: "."
|
path: "."
|
||||||
ref: main
|
ref: main
|
||||||
resolved-ref: b1b0d407e5082f9d7afc88ccec8d05bf39ec992f
|
resolved-ref: "80bd3a9d6bea2cca9cf905edfdea8b8d5e8c5a8e"
|
||||||
url: "https://github.com/linagora/jmap-dart-client.git"
|
url: "https://github.com/linagora/jmap-dart-client.git"
|
||||||
source: git
|
source: git
|
||||||
version: "0.2.0"
|
version: "0.2.1"
|
||||||
js:
|
js:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -30,8 +30,6 @@ dependencies:
|
|||||||
path: ../core
|
path: ../core
|
||||||
|
|
||||||
### Dependencies from git ###
|
### Dependencies from git ###
|
||||||
# TODO: We will change it when the PR in upstream repository will be merged
|
|
||||||
# https://github.com/linagora/jmap-dart-client/pull/87
|
|
||||||
jmap_dart_client:
|
jmap_dart_client:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/linagora/jmap-dart-client.git
|
url: https://github.com/linagora/jmap-dart-client.git
|
||||||
|
|||||||
+2
-2
@@ -1196,10 +1196,10 @@ packages:
|
|||||||
description:
|
description:
|
||||||
path: "."
|
path: "."
|
||||||
ref: main
|
ref: main
|
||||||
resolved-ref: b1b0d407e5082f9d7afc88ccec8d05bf39ec992f
|
resolved-ref: "80bd3a9d6bea2cca9cf905edfdea8b8d5e8c5a8e"
|
||||||
url: "https://github.com/linagora/jmap-dart-client.git"
|
url: "https://github.com/linagora/jmap-dart-client.git"
|
||||||
source: git
|
source: git
|
||||||
version: "0.2.0"
|
version: "0.2.1"
|
||||||
js:
|
js:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -62,8 +62,6 @@ dependencies:
|
|||||||
url: https://github.com/linagora/html-editor-enhanced.git
|
url: https://github.com/linagora/html-editor-enhanced.git
|
||||||
ref: main
|
ref: main
|
||||||
|
|
||||||
# TODO: We will change it when the PR in upstream repository will be merged
|
|
||||||
# https://github.com/linagora/jmap-dart-client/pull/87
|
|
||||||
jmap_dart_client:
|
jmap_dart_client:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/linagora/jmap-dart-client.git
|
url: https://github.com/linagora/jmap-dart-client.git
|
||||||
|
|||||||
@@ -296,10 +296,10 @@ packages:
|
|||||||
description:
|
description:
|
||||||
path: "."
|
path: "."
|
||||||
ref: main
|
ref: main
|
||||||
resolved-ref: b1b0d407e5082f9d7afc88ccec8d05bf39ec992f
|
resolved-ref: "80bd3a9d6bea2cca9cf905edfdea8b8d5e8c5a8e"
|
||||||
url: "https://github.com/linagora/jmap-dart-client.git"
|
url: "https://github.com/linagora/jmap-dart-client.git"
|
||||||
source: git
|
source: git
|
||||||
version: "0.2.0"
|
version: "0.2.1"
|
||||||
js:
|
js:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -12,8 +12,6 @@ dependencies:
|
|||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
### Dependencies from git ###
|
### Dependencies from git ###
|
||||||
# TODO: We will change it when the PR in upstream repository will be merged
|
|
||||||
# https://github.com/linagora/jmap-dart-client/pull/87
|
|
||||||
jmap_dart_client:
|
jmap_dart_client:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/linagora/jmap-dart-client.git
|
url: https://github.com/linagora/jmap-dart-client.git
|
||||||
|
|||||||
@@ -288,10 +288,10 @@ packages:
|
|||||||
description:
|
description:
|
||||||
path: "."
|
path: "."
|
||||||
ref: main
|
ref: main
|
||||||
resolved-ref: b1b0d407e5082f9d7afc88ccec8d05bf39ec992f
|
resolved-ref: "80bd3a9d6bea2cca9cf905edfdea8b8d5e8c5a8e"
|
||||||
url: "https://github.com/linagora/jmap-dart-client.git"
|
url: "https://github.com/linagora/jmap-dart-client.git"
|
||||||
source: git
|
source: git
|
||||||
version: "0.2.0"
|
version: "0.2.1"
|
||||||
js:
|
js:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -11,8 +11,6 @@ dependencies:
|
|||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
### Dependencies from git ###
|
### Dependencies from git ###
|
||||||
# TODO: We will change it when the PR in upstream repository will be merged
|
|
||||||
# https://github.com/linagora/jmap-dart-client/pull/87
|
|
||||||
jmap_dart_client:
|
jmap_dart_client:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/linagora/jmap-dart-client.git
|
url: https://github.com/linagora/jmap-dart-client.git
|
||||||
|
|||||||
Reference in New Issue
Block a user