TF-3894 Fix blank email content when opening email
This commit is contained in:
@@ -421,11 +421,12 @@ abstract class BaseController extends GetxController
|
||||
BuildContext context,
|
||||
Session? session,
|
||||
AccountId? accountId,
|
||||
String ownEmailAddress,
|
||||
) {
|
||||
if (PlatformInfo.isMobile) {
|
||||
showLogoutConfirmDialog(
|
||||
context: context,
|
||||
userAddress: session?.getOwnEmailAddressOrEmpty() ?? '',
|
||||
userAddress: ownEmailAddress,
|
||||
onConfirmAction: () => _handleLogoutAction(session, accountId),
|
||||
);
|
||||
} else {
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/identities/identity.dart';
|
||||
import 'package:model/extensions/session_extension.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/utils/email_utils.dart';
|
||||
|
||||
mixin OwnEmailAddressMixin {
|
||||
static const String emptyOwnEmailAddress = '';
|
||||
|
||||
final RxString ownEmailAddress = RxString('');
|
||||
Session? sessionCurrent;
|
||||
|
||||
void synchronizeOwnEmailAddress(String emailAddress) {
|
||||
log('$runtimeType::synchronizeOwnEmailAddress:OwnEmailAddress = ${ownEmailAddress.value}, NewEmailAddress = $emailAddress');
|
||||
if (ownEmailAddress.value.trim().isNotEmpty) return;
|
||||
ownEmailAddress.value = emailAddress;
|
||||
}
|
||||
|
||||
void updateOwnEmailAddressFromIdentities(List<Identity> listIdentities) {
|
||||
if (ownEmailAddress.value.trim().isNotEmpty) return;
|
||||
|
||||
if (listIdentities.isEmpty) {
|
||||
synchronizeOwnEmailAddress(emptyOwnEmailAddress);
|
||||
ownEmailAddress.refresh();
|
||||
return;
|
||||
}
|
||||
|
||||
final identityEmailAddress = listIdentities.firstOrNull?.email ?? '';
|
||||
final domain = EmailUtils.getDomainByEmailAddress(identityEmailAddress);
|
||||
final userEmailAddress =
|
||||
sessionCurrent?.generateOwnEmailAddressFromDomain(domain) ?? '';
|
||||
log('$runtimeType::updateOwnEmailAddressFromIdentities: UserEmailAddress = $userEmailAddress');
|
||||
|
||||
if (userEmailAddress.isNotEmpty) {
|
||||
synchronizeOwnEmailAddress(userEmailAddress);
|
||||
} else {
|
||||
synchronizeOwnEmailAddress(emptyOwnEmailAddress);
|
||||
ownEmailAddress.refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user