TF-1779 Fix logic of replacing dot in long email

(cherry picked from commit 24d306500325fc3f7b7901cf1936e46f8be6ccf3)
This commit is contained in:
dab246
2023-04-21 19:25:08 +07:00
committed by Dat Vu
parent fbeae2ee37
commit 800488563b
7 changed files with 32 additions and 17 deletions
@@ -1,4 +1,5 @@
import 'package:core/utils/app_logger.dart'; import 'package:core/utils/app_logger.dart';
import 'package:flutter/material.dart';
extension StringExtension on String { extension StringExtension on String {
@@ -38,4 +39,11 @@ extension StringExtension on String {
return ''; return '';
} }
} }
String get withUnicodeCharacter {
return characters
.replaceAll(Characters(' '), Characters('\u{00A0}'))
.replaceAll(Characters('-'), Characters('\u{2011}'))
.toString();
}
} }
@@ -1,6 +1,7 @@
import 'package:core/presentation/extensions/capitalize_extension.dart'; import 'package:core/presentation/extensions/capitalize_extension.dart';
import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/extensions/html_extension.dart'; import 'package:core/presentation/extensions/html_extension.dart';
import 'package:core/presentation/extensions/string_extension.dart';
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/views/button/icon_button_web.dart'; import 'package:core/presentation/views/button/icon_button_web.dart';
@@ -352,7 +353,7 @@ class ComposerView extends GetWidget<ComposerController>
left: AppUtils.isDirectionRTL(context) ? 8 : 12 left: AppUtils.isDirectionRTL(context) ? 8 : 12
), ),
child: Text( child: Text(
controller.identitySelected.value?.email ?? '', (controller.identitySelected.value?.email ?? '').withUnicodeCharacter,
maxLines: 1, maxLines: 1,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: const TextStyle(fontSize: 17, fontWeight: FontWeight.normal, color: AppColor.colorEmailAddressPrefix), style: const TextStyle(fontSize: 17, fontWeight: FontWeight.normal, color: AppColor.colorEmailAddressPrefix),
@@ -1,4 +1,5 @@
import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/extensions/string_extension.dart';
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/style_utils.dart'; import 'package:core/presentation/utils/style_utils.dart';
@@ -299,7 +300,7 @@ class MailBoxFolderTileBuilder {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( Text(
_mailboxNode.item.name?.name ?? '', (_mailboxNode.item.name?.name ?? '').withUnicodeCharacter,
maxLines: 1, maxLines: 1,
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
@@ -310,7 +311,7 @@ class MailBoxFolderTileBuilder {
), ),
if(_mailboxNode.item.isTeamMailboxes) if(_mailboxNode.item.isTeamMailboxes)
Text( Text(
_mailboxNode.item.emailTeamMailBoxes ?? '', (_mailboxNode.item.emailTeamMailBoxes ?? '').withUnicodeCharacter,
maxLines: 1, maxLines: 1,
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
@@ -1,5 +1,6 @@
import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/extensions/string_extension.dart';
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/style_utils.dart'; import 'package:core/presentation/utils/style_utils.dart';
import 'package:core/presentation/views/image/avatar_builder.dart'; import 'package:core/presentation/views/image/avatar_builder.dart';
@@ -59,7 +60,7 @@ class UserInformationWidgetBuilder extends StatelessWidget {
top: 10 top: 10
), ),
child: Text( child: Text(
_userProfile != null ? '${_userProfile?.email}' : '', _userProfile != null ? '${_userProfile?.email}'.withUnicodeCharacter : '',
maxLines: 1, maxLines: 1,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
@@ -1,4 +1,5 @@
import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/extensions/string_extension.dart';
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/style_utils.dart'; import 'package:core/presentation/utils/style_utils.dart';
import 'package:core/presentation/views/button/icon_button_web.dart'; import 'package:core/presentation/views/button/icon_button_web.dart';
@@ -65,7 +66,7 @@ class IdentityListTileBuilder extends StatelessWidget {
Padding( Padding(
padding: const EdgeInsets.only(bottom: 6), padding: const EdgeInsets.only(bottom: 6),
child: Text( child: Text(
identity.name ?? '', (identity.name ?? '').withUnicodeCharacter,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
style: const TextStyle( style: const TextStyle(
@@ -122,7 +123,7 @@ class IdentityListTileBuilder extends StatelessWidget {
child: SvgPicture.asset(imagePath, width: 15, height: 15))), child: SvgPicture.asset(imagePath, width: 15, height: 15))),
const SizedBox(width: 4), const SizedBox(width: 4),
Expanded(child: Text( Expanded(child: Text(
text ?? '', (text ?? '').withUnicodeCharacter,
style: const TextStyle( style: const TextStyle(
color: AppColor.colorEmailAddressFull, color: AppColor.colorEmailAddressFull,
fontWeight: FontWeight.normal, fontWeight: FontWeight.normal,
@@ -150,7 +151,8 @@ class IdentityListTileBuilder extends StatelessWidget {
decoration: TextDecoration.underline, decoration: TextDecoration.underline,
color: AppColor.colorTextButton))), color: AppColor.colorTextButton))),
const SizedBox(width: 4), const SizedBox(width: 4),
Expanded(child: Text(text ?? '', Expanded(child: Text(
(text ?? '').withUnicodeCharacter,
style: const TextStyle( style: const TextStyle(
color: AppColor.colorEmailAddressFull, color: AppColor.colorEmailAddressFull,
fontWeight: FontWeight.normal, fontWeight: FontWeight.normal,
@@ -1,4 +1,5 @@
import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/extensions/string_extension.dart';
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/style_utils.dart'; import 'package:core/presentation/utils/style_utils.dart';
@@ -204,7 +205,7 @@ class _MailboxSearchedItemBuilderState extends State<MailboxSearchedItemBuilder>
Widget _buildTitleItem() { Widget _buildTitleItem() {
return Text( return Text(
widget._presentationMailbox.name?.name ?? '', (widget._presentationMailbox.name?.name ?? '').withUnicodeCharacter,
maxLines: 1, maxLines: 1,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
@@ -218,7 +219,7 @@ class _MailboxSearchedItemBuilderState extends State<MailboxSearchedItemBuilder>
Widget _buildSubtitleItem() { Widget _buildSubtitleItem() {
if (widget._presentationMailbox.mailboxPath?.isNotEmpty == true) { if (widget._presentationMailbox.mailboxPath?.isNotEmpty == true) {
return Text( return Text(
widget._presentationMailbox.mailboxPath ?? '', (widget._presentationMailbox.mailboxPath ?? '').withUnicodeCharacter,
maxLines: 1, maxLines: 1,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
@@ -230,7 +231,7 @@ class _MailboxSearchedItemBuilderState extends State<MailboxSearchedItemBuilder>
); );
} else if (widget._presentationMailbox.isTeamMailboxes) { } else if (widget._presentationMailbox.isTeamMailboxes) {
return Text( return Text(
widget._presentationMailbox.emailTeamMailBoxes ?? '', (widget._presentationMailbox.emailTeamMailBoxes ?? '').withUnicodeCharacter,
maxLines: 1, maxLines: 1,
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
@@ -1,5 +1,6 @@
import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/extensions/string_extension.dart';
import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/style_utils.dart'; import 'package:core/presentation/utils/style_utils.dart';
@@ -39,7 +40,7 @@ mixin BaseEmailItemTile {
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
color: AppColor.backgroundCounterMailboxColor), color: AppColor.backgroundCounterMailboxColor),
child: Text( child: Text(
email.mailboxName, email.mailboxName.withUnicodeCharacter,
maxLines: 1, maxLines: 1,
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
@@ -84,7 +85,7 @@ mixin BaseEmailItemTile {
) { ) {
if (isSearchEnabled(isSearchEmailRunning, query)) { if (isSearchEnabled(isSearchEmailRunning, query)) {
return RichTextBuilder( return RichTextBuilder(
informationSender(email, mailbox), informationSender(email, mailbox).withUnicodeCharacter,
query?.value ?? '', query?.value ?? '',
TextStyle( TextStyle(
fontSize: 15, fontSize: 15,
@@ -98,7 +99,7 @@ mixin BaseEmailItemTile {
).build(); ).build();
} else { } else {
return Text( return Text(
informationSender(email, mailbox), informationSender(email, mailbox).withUnicodeCharacter,
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
maxLines: 1, maxLines: 1,
@@ -118,7 +119,7 @@ mixin BaseEmailItemTile {
) { ) {
if (isSearchEnabled(isSearchEmailRunning, query)) { if (isSearchEnabled(isSearchEmailRunning, query)) {
return RichTextBuilder( return RichTextBuilder(
email.getEmailTitle(), email.getEmailTitle().withUnicodeCharacter,
query?.value ?? '', query?.value ?? '',
TextStyle( TextStyle(
fontSize: 13, fontSize: 13,
@@ -132,7 +133,7 @@ mixin BaseEmailItemTile {
).build(); ).build();
} else { } else {
return Text( return Text(
email.getEmailTitle(), email.getEmailTitle().withUnicodeCharacter,
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,
maxLines: 1, maxLines: 1,
@@ -151,7 +152,7 @@ mixin BaseEmailItemTile {
) { ) {
if (isSearchEnabled(isSearchEmailRunning, query)) { if (isSearchEnabled(isSearchEmailRunning, query)) {
return RichTextBuilder( return RichTextBuilder(
email.getPartialContent(), email.getPartialContent().withUnicodeCharacter,
query?.value ?? '', query?.value ?? '',
const TextStyle( const TextStyle(
fontSize: 13, fontSize: 13,
@@ -164,7 +165,7 @@ mixin BaseEmailItemTile {
).build(); ).build();
} else { } else {
return Text( return Text(
email.getPartialContent(), email.getPartialContent().withUnicodeCharacter,
maxLines: 1, maxLines: 1,
softWrap: CommonTextStyle.defaultSoftWrap, softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow, overflow: CommonTextStyle.defaultTextOverFlow,