Fix SMime signature status not displayed
This commit is contained in:
@@ -580,6 +580,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
htmlEmailContent: success.htmlEmailContent,
|
||||
messageId: success.emailCurrent?.messageId,
|
||||
references: success.emailCurrent?.references,
|
||||
sMimeStatusHeader: success.emailCurrent?.sMimeStatusHeader,
|
||||
);
|
||||
|
||||
_storeOpenedEmailAction(
|
||||
|
||||
@@ -317,6 +317,7 @@ class EmailView extends GetWidget<SingleEmailController> {
|
||||
emailSelected: presentationEmail,
|
||||
imagePaths: controller.imagePaths,
|
||||
responsiveUtils: controller.responsiveUtils,
|
||||
sMimeStatus: controller.currentEmailLoaded.value?.sMimeStatus,
|
||||
emailUnsubscribe: controller.emailUnsubscribe.value,
|
||||
maxBodyHeight: maxBodyHeight,
|
||||
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:tmail_ui_user/features/email/presentation/model/smime_signature_status.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 {
|
||||
final status = emailHeader?.toSet().sMimeStatus;
|
||||
final status = sMimeStatusHeaderParsed.isNotEmpty
|
||||
? sMimeStatusHeaderParsed
|
||||
: headers?.toSet().sMimeStatus;
|
||||
log('EmailExtension::sMimeStatus: $status');
|
||||
if (status == SMimeSignatureConstant.GOOD_SIGNATURE) {
|
||||
return SMimeSignatureStatus.goodSignature;
|
||||
} else if (status == SMimeSignatureConstant.BAD_SIGNATURE) {
|
||||
@@ -1,6 +1,8 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.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 {
|
||||
final String htmlContent;
|
||||
@@ -15,6 +17,8 @@ class EmailLoaded with EquatableMixin {
|
||||
this.emailCurrent,
|
||||
});
|
||||
|
||||
SMimeSignatureStatus? get sMimeStatus => emailCurrent?.sMimeStatus;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [
|
||||
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/extensions/presentation_email_extension.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/smime_signature_status.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 OnEmailActionClick? onEmailActionClick;
|
||||
final double? maxBodyHeight;
|
||||
final SMimeSignatureStatus? sMimeStatus;
|
||||
|
||||
const InformationSenderAndReceiverBuilder({
|
||||
Key? key,
|
||||
required this.emailSelected,
|
||||
required this.responsiveUtils,
|
||||
required this.imagePaths,
|
||||
this.sMimeStatus,
|
||||
this.emailUnsubscribe,
|
||||
this.maxBodyHeight,
|
||||
this.openEmailAddressDetailAction,
|
||||
@@ -64,14 +65,14 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
|
||||
openEmailAddressDetailAction: openEmailAddressDetailAction,
|
||||
)
|
||||
)),
|
||||
if (emailSelected.sMimeStatus != SMimeSignatureStatus.notSigned)
|
||||
if (sMimeStatus != null && sMimeStatus != SMimeSignatureStatus.notSigned)
|
||||
Tooltip(
|
||||
key: const Key('smime_signature_status_icon'),
|
||||
message: emailSelected.sMimeStatus.getTooltipMessage(context),
|
||||
message: sMimeStatus!.getTooltipMessage(context),
|
||||
child: MouseRegion(
|
||||
cursor: SystemMouseCursors.click,
|
||||
child: SvgPicture.asset(
|
||||
emailSelected.sMimeStatus.getIcon(imagePaths),
|
||||
sMimeStatus!.getIcon(imagePaths),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user