From ca28b55d24516ecc29895f0bc25433fde7601627 Mon Sep 17 00:00:00 2001 From: dab246 Date: Mon, 11 Oct 2021 12:17:04 +0700 Subject: [PATCH] TF-105 [BUG] Fix email address should be in lower case --- .../local/email_address_database_manager.dart | 2 +- ...email_address_composer_widget_builder.dart | 4 +-- ...and_receiver_information_tile_builder.dart | 2 +- .../widgets/email_tile_builder.dart | 4 +-- .../extensions/email_address_extension.dart | 30 +++++++++++-------- .../list_email_address_extension.dart | 2 +- 6 files changed, 24 insertions(+), 20 deletions(-) diff --git a/lib/features/composer/data/local/email_address_database_manager.dart b/lib/features/composer/data/local/email_address_database_manager.dart index d8dd22484..50c56f161 100644 --- a/lib/features/composer/data/local/email_address_database_manager.dart +++ b/lib/features/composer/data/local/email_address_database_manager.dart @@ -39,7 +39,7 @@ class EmailAddressDatabaseManager implements DatabaseManager { final res = await _databaseClient.updateData( EmailAddressTable.TABLE_NAME, EmailAddressTable.EMAIL, - emailAddress.getEmail(), + emailAddress.emailAddress, emailAddress.toEmailAddressCache().toJson()); return res > 0 ? true : false; } diff --git a/lib/features/composer/presentation/widgets/email_address_composer_widget_builder.dart b/lib/features/composer/presentation/widgets/email_address_composer_widget_builder.dart index b128099bd..63daa4e18 100644 --- a/lib/features/composer/presentation/widgets/email_address_composer_widget_builder.dart +++ b/lib/features/composer/presentation/widgets/email_address_composer_widget_builder.dart @@ -182,9 +182,9 @@ class EmailAddressComposerWidgetBuilder { title: Text( emailAddress.asString(), style: TextStyle(color: AppColor.nameUserColor, fontSize: 14, fontWeight: FontWeight.w500)), - subtitle: emailAddress.getName().isNotEmpty && emailAddress.getEmail().isNotEmpty + subtitle: emailAddress.displayName.isNotEmpty && emailAddress.emailAddress.isNotEmpty ? Text( - emailAddress.getEmail(), + emailAddress.emailAddress, style: TextStyle(color: AppColor.baseTextColor, fontSize: 12, fontWeight: FontWeight.w500)) : null, onTap: () => state.selectSuggestion(emailAddress), diff --git a/lib/features/email/presentation/widgets/sender_and_receiver_information_tile_builder.dart b/lib/features/email/presentation/widgets/sender_and_receiver_information_tile_builder.dart index 5e21ebdef..07e2b6512 100644 --- a/lib/features/email/presentation/widgets/sender_and_receiver_information_tile_builder.dart +++ b/lib/features/email/presentation/widgets/sender_and_receiver_information_tile_builder.dart @@ -53,7 +53,7 @@ class SenderAndReceiverInformationTileBuilder { title: Transform( transform: Matrix4.translationValues(-15.0, 0.0, 0.0), child: Text( - '${AppLocalizations.of(_context).from_email_address_prefix}: ${_presentationEmail!.getSenderName().inCaps}', + '${AppLocalizations.of(_context).from_email_address_prefix}: ${_presentationEmail!.getSenderName()}', style: TextStyle(fontSize: 16, color: AppColor.nameUserColor, fontWeight: FontWeight.w500), )), subtitle: Transform( diff --git a/lib/features/thread/presentation/widgets/email_tile_builder.dart b/lib/features/thread/presentation/widgets/email_tile_builder.dart index c829e2363..c8ffe63d6 100644 --- a/lib/features/thread/presentation/widgets/email_tile_builder.dart +++ b/lib/features/thread/presentation/widgets/email_tile_builder.dart @@ -86,8 +86,8 @@ class EmailTileBuilder { Expanded( child: Text( _mailboxRole == PresentationMailbox.roleSent - ? '${_presentationEmail.recipientsName().inCaps}' - : '${_presentationEmail.getSenderName().inCaps}', + ? '${_presentationEmail.recipientsName()}' + : '${_presentationEmail.getSenderName()}', maxLines: 1, overflow:TextOverflow.ellipsis, style: TextStyle( diff --git a/model/lib/extensions/email_address_extension.dart b/model/lib/extensions/email_address_extension.dart index 73e2aeea0..1a97c3c08 100644 --- a/model/lib/extensions/email_address_extension.dart +++ b/model/lib/extensions/email_address_extension.dart @@ -1,32 +1,36 @@ import 'package:jmap_dart_client/jmap/mail/email/email_address.dart'; import 'package:model/email/email_address_cache.dart'; +import 'package:core/core.dart'; extension EmailAddressExtension on EmailAddress { String asString() { - if (getName().isNotEmpty) { - return name!; - } else if (getEmail().isNotEmpty) { - return email!; + if (displayName.isNotEmpty) { + if (emailAddress.isNotEmpty && displayName == emailAddress) { + return displayName; + } + return displayName.capitalizeFirstEach; + } else if (emailAddress.isNotEmpty) { + return emailAddress; } return ''; } String asFullString() { - if (getName().isNotEmpty) { - if (getEmail().isNotEmpty) { - return '${name!} <${email!}>'; + if (displayName.isNotEmpty) { + if (emailAddress.isNotEmpty) { + return '${displayName.capitalizeFirstEach} <$emailAddress>'; } - return name!; - } else if (getEmail().isNotEmpty) { - return email!; + return displayName.capitalizeFirstEach; + } else if (emailAddress.isNotEmpty) { + return emailAddress; } return ''; } - String getEmail() => email != null ? email! : ''; + String get emailAddress => email != null ? email! : ''; - String getName() => name != null ? name! : ''; + String get displayName => name != null ? name! : ''; - EmailAddressCache toEmailAddressCache() => EmailAddressCache(name ?? '', email ?? ''); + EmailAddressCache toEmailAddressCache() => EmailAddressCache(displayName, emailAddress); } \ No newline at end of file diff --git a/model/lib/extensions/list_email_address_extension.dart b/model/lib/extensions/list_email_address_extension.dart index 4b1386cd6..21864a9df 100644 --- a/model/lib/extensions/list_email_address_extension.dart +++ b/model/lib/extensions/list_email_address_extension.dart @@ -4,7 +4,7 @@ import 'package:model/extensions/email_address_extension.dart'; extension ListEmailAddressExtension on Set? { - List? getListAddress() => this?.map((emailAddress) => emailAddress.getEmail()).toList(); + List? getListAddress() => this?.map((emailAddress) => emailAddress.emailAddress).toList(); List asList() => this != null ? this!.toList() : List.empty();