TF-3894 Fix blank email content when opening email
This commit is contained in:
@@ -1513,7 +1513,11 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
return;
|
||||
}
|
||||
|
||||
final receiverEmailAddress = _getReceiverEmailAddress(currentEmail!) ?? session!.getOwnEmailAddressOrEmpty();
|
||||
String receiverEmailAddress = _getReceiverEmailAddress(currentEmail!)
|
||||
?? ownEmailAddress;
|
||||
if (receiverEmailAddress.trim().isEmpty) {
|
||||
receiverEmailAddress = session!.getOwnEmailAddressOrUsername();
|
||||
}
|
||||
log('SingleEmailController::_handleSendReceiptToSenderAction():receiverEmailAddress: $receiverEmailAddress');
|
||||
final mdnToSender = _generateMDN(context, currentEmail!, receiverEmailAddress);
|
||||
final sendReceiptRequest = SendReceiptToSenderRequest(
|
||||
@@ -1821,10 +1825,13 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
}
|
||||
|
||||
_printEmailButtonState = ButtonState.disabled;
|
||||
|
||||
String accountDisplayName = ownEmailAddress;
|
||||
if (accountDisplayName.trim().isEmpty) {
|
||||
accountDisplayName = session?.getOwnEmailAddressOrUsername() ?? '';
|
||||
}
|
||||
consumeState(emailActionReactor.printEmail(
|
||||
email,
|
||||
ownEmailAddress: mailboxDashBoardController.ownEmailAddress.value,
|
||||
ownEmailAddress: accountDisplayName,
|
||||
emailLoaded: currentEmailLoaded.value!,
|
||||
));
|
||||
}
|
||||
@@ -2324,8 +2331,8 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
|
||||
listEmailAddressAttendees.addAll(listEmailAddress);
|
||||
|
||||
final currentUserEmail = mailboxDashBoardController.ownEmailAddress.value;
|
||||
final listEmailAddressMailTo = listEmailAddressAttendees.removeInvalidEmails(currentUserEmail);
|
||||
final listEmailAddressMailTo =
|
||||
listEmailAddressAttendees.removeInvalidEmails(ownEmailAddress);
|
||||
log('SingleEmailController::handleMailToAttendees: listEmailAddressMailTo = $listEmailAddressMailTo');
|
||||
mailboxDashBoardController.openComposer(
|
||||
ComposerArguments.fromMailtoUri(listEmailAddress: listEmailAddressMailTo)
|
||||
@@ -2341,8 +2348,6 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
}
|
||||
}
|
||||
|
||||
String getOwnEmailAddress() => session?.getOwnEmailAddressOrEmpty() ?? '';
|
||||
|
||||
void onHtmlContentClippedAction(bool isClipped) {
|
||||
log('SingleEmailController::onHtmlContentClippedAction:isClipped = $isClipped');
|
||||
isEmailContentClipped.value = isClipped;
|
||||
|
||||
@@ -89,7 +89,7 @@ class EmailView extends GetWidget<SingleEmailController> {
|
||||
position: position,
|
||||
responsiveUtils: controller.responsiveUtils,
|
||||
imagePaths: controller.imagePaths,
|
||||
username: controller.session?.username,
|
||||
ownEmailAddress: controller.ownEmailAddress,
|
||||
handleEmailAction: (email, action) => controller.handleEmailAction(context, email, action),
|
||||
additionalActions: [],
|
||||
emailIsRead: presentationEmail.hasRead,
|
||||
@@ -163,7 +163,7 @@ class EmailView extends GetWidget<SingleEmailController> {
|
||||
responsiveUtils: controller.responsiveUtils,
|
||||
emailLoaded: emailLoaded,
|
||||
presentationEmail: currentEmail,
|
||||
userName: controller.getOwnEmailAddress(),
|
||||
userName: controller.ownEmailAddress,
|
||||
emailActionCallback: controller.pressEmailAction,
|
||||
);
|
||||
}),
|
||||
@@ -261,7 +261,7 @@ class EmailView extends GetWidget<SingleEmailController> {
|
||||
position: position,
|
||||
responsiveUtils: controller.responsiveUtils,
|
||||
imagePaths: controller.imagePaths,
|
||||
username: controller.session?.username,
|
||||
ownEmailAddress: controller.ownEmailAddress,
|
||||
handleEmailAction: (email, action) => controller.handleEmailAction(context, email, action),
|
||||
additionalActions: [
|
||||
EmailActionType.reply,
|
||||
@@ -310,10 +310,7 @@ class EmailView extends GetWidget<SingleEmailController> {
|
||||
),
|
||||
calendarEventReplying: controller.calendarEventProcessing,
|
||||
attendanceStatus: controller.attendanceStatus.value,
|
||||
ownEmailAddress: controller
|
||||
.mailboxDashBoardController
|
||||
.ownEmailAddress
|
||||
.value,
|
||||
ownEmailAddress: controller.ownEmailAddress,
|
||||
onMailtoAttendeesAction: controller.handleMailToAttendees,
|
||||
openEmailAddressDetailAction: (_, emailAddress) => controller.openEmailAddressDialog(emailAddress),
|
||||
isFree: controller.isCalendarEventFree,
|
||||
|
||||
+2
-3
@@ -20,7 +20,6 @@ import 'package:flutter/services.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
@@ -524,7 +523,7 @@ class EmailActionReactor {
|
||||
required RelativeRect? position,
|
||||
required ResponsiveUtils responsiveUtils,
|
||||
required ImagePaths imagePaths,
|
||||
required UserName? username,
|
||||
required String ownEmailAddress,
|
||||
required void Function(
|
||||
PresentationEmail presentationEmail,
|
||||
EmailActionType action,
|
||||
@@ -541,7 +540,7 @@ class EmailActionReactor {
|
||||
EmailActionType.reply,
|
||||
if (additionalActions.contains(EmailActionType.forward))
|
||||
EmailActionType.forward,
|
||||
if (presentationEmail.getCountMailAddressWithoutMe(username?.value ?? '') > 1 &&
|
||||
if (presentationEmail.getCountMailAddressWithoutMe(ownEmailAddress) > 1 &&
|
||||
additionalActions.contains(EmailActionType.replyAll))
|
||||
EmailActionType.replyAll,
|
||||
if (EmailUtils.isReplyToListEnabled(presentationEmail.listPost ?? '') &&
|
||||
|
||||
@@ -264,4 +264,14 @@ class EmailUtils {
|
||||
: attachments.sublist(0, possibleDisplayedCount);
|
||||
}
|
||||
}
|
||||
|
||||
static String getDomainByEmailAddress(String emailAddress) {
|
||||
try {
|
||||
MailAddress mailAddress = MailAddress.validateAddress(emailAddress);
|
||||
return mailAddress.domain.asString();
|
||||
} catch (e) {
|
||||
logError('EmailUtils::getDomainByEmailAddress:Exception is $e');
|
||||
return '';
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user