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:flutter/material.dart';
extension StringExtension on String {
@@ -38,4 +39,11 @@ extension StringExtension on String {
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/color_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/utils/responsive_utils.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
),
child: Text(
controller.identitySelected.value?.email ?? '',
(controller.identitySelected.value?.email ?? '').withUnicodeCharacter,
maxLines: 1,
overflow: TextOverflow.ellipsis,
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/string_extension.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/utils/style_utils.dart';
@@ -299,7 +300,7 @@ class MailBoxFolderTileBuilder {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
_mailboxNode.item.name?.name ?? '',
(_mailboxNode.item.name?.name ?? '').withUnicodeCharacter,
maxLines: 1,
softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow,
@@ -310,7 +311,7 @@ class MailBoxFolderTileBuilder {
),
if(_mailboxNode.item.isTeamMailboxes)
Text(
_mailboxNode.item.emailTeamMailBoxes ?? '',
(_mailboxNode.item.emailTeamMailBoxes ?? '').withUnicodeCharacter,
maxLines: 1,
softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow,
@@ -1,5 +1,6 @@
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/utils/style_utils.dart';
import 'package:core/presentation/views/image/avatar_builder.dart';
@@ -59,7 +60,7 @@ class UserInformationWidgetBuilder extends StatelessWidget {
top: 10
),
child: Text(
_userProfile != null ? '${_userProfile?.email}' : '',
_userProfile != null ? '${_userProfile?.email}'.withUnicodeCharacter : '',
maxLines: 1,
overflow: CommonTextStyle.defaultTextOverFlow,
softWrap: CommonTextStyle.defaultSoftWrap,
@@ -1,4 +1,5 @@
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/utils/style_utils.dart';
import 'package:core/presentation/views/button/icon_button_web.dart';
@@ -65,7 +66,7 @@ class IdentityListTileBuilder extends StatelessWidget {
Padding(
padding: const EdgeInsets.only(bottom: 6),
child: Text(
identity.name ?? '',
(identity.name ?? '').withUnicodeCharacter,
overflow: CommonTextStyle.defaultTextOverFlow,
softWrap: CommonTextStyle.defaultSoftWrap,
style: const TextStyle(
@@ -122,7 +123,7 @@ class IdentityListTileBuilder extends StatelessWidget {
child: SvgPicture.asset(imagePath, width: 15, height: 15))),
const SizedBox(width: 4),
Expanded(child: Text(
text ?? '',
(text ?? '').withUnicodeCharacter,
style: const TextStyle(
color: AppColor.colorEmailAddressFull,
fontWeight: FontWeight.normal,
@@ -150,7 +151,8 @@ class IdentityListTileBuilder extends StatelessWidget {
decoration: TextDecoration.underline,
color: AppColor.colorTextButton))),
const SizedBox(width: 4),
Expanded(child: Text(text ?? '',
Expanded(child: Text(
(text ?? '').withUnicodeCharacter,
style: const TextStyle(
color: AppColor.colorEmailAddressFull,
fontWeight: FontWeight.normal,
@@ -1,4 +1,5 @@
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/utils/responsive_utils.dart';
import 'package:core/presentation/utils/style_utils.dart';
@@ -204,7 +205,7 @@ class _MailboxSearchedItemBuilderState extends State<MailboxSearchedItemBuilder>
Widget _buildTitleItem() {
return Text(
widget._presentationMailbox.name?.name ?? '',
(widget._presentationMailbox.name?.name ?? '').withUnicodeCharacter,
maxLines: 1,
overflow: CommonTextStyle.defaultTextOverFlow,
softWrap: CommonTextStyle.defaultSoftWrap,
@@ -218,7 +219,7 @@ class _MailboxSearchedItemBuilderState extends State<MailboxSearchedItemBuilder>
Widget _buildSubtitleItem() {
if (widget._presentationMailbox.mailboxPath?.isNotEmpty == true) {
return Text(
widget._presentationMailbox.mailboxPath ?? '',
(widget._presentationMailbox.mailboxPath ?? '').withUnicodeCharacter,
maxLines: 1,
overflow: CommonTextStyle.defaultTextOverFlow,
softWrap: CommonTextStyle.defaultSoftWrap,
@@ -230,7 +231,7 @@ class _MailboxSearchedItemBuilderState extends State<MailboxSearchedItemBuilder>
);
} else if (widget._presentationMailbox.isTeamMailboxes) {
return Text(
widget._presentationMailbox.emailTeamMailBoxes ?? '',
(widget._presentationMailbox.emailTeamMailBoxes ?? '').withUnicodeCharacter,
maxLines: 1,
softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow,
@@ -1,5 +1,6 @@
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/utils/responsive_utils.dart';
import 'package:core/presentation/utils/style_utils.dart';
@@ -39,7 +40,7 @@ mixin BaseEmailItemTile {
borderRadius: BorderRadius.circular(10),
color: AppColor.backgroundCounterMailboxColor),
child: Text(
email.mailboxName,
email.mailboxName.withUnicodeCharacter,
maxLines: 1,
softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow,
@@ -84,7 +85,7 @@ mixin BaseEmailItemTile {
) {
if (isSearchEnabled(isSearchEmailRunning, query)) {
return RichTextBuilder(
informationSender(email, mailbox),
informationSender(email, mailbox).withUnicodeCharacter,
query?.value ?? '',
TextStyle(
fontSize: 15,
@@ -98,7 +99,7 @@ mixin BaseEmailItemTile {
).build();
} else {
return Text(
informationSender(email, mailbox),
informationSender(email, mailbox).withUnicodeCharacter,
softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow,
maxLines: 1,
@@ -118,7 +119,7 @@ mixin BaseEmailItemTile {
) {
if (isSearchEnabled(isSearchEmailRunning, query)) {
return RichTextBuilder(
email.getEmailTitle(),
email.getEmailTitle().withUnicodeCharacter,
query?.value ?? '',
TextStyle(
fontSize: 13,
@@ -132,7 +133,7 @@ mixin BaseEmailItemTile {
).build();
} else {
return Text(
email.getEmailTitle(),
email.getEmailTitle().withUnicodeCharacter,
softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow,
maxLines: 1,
@@ -151,7 +152,7 @@ mixin BaseEmailItemTile {
) {
if (isSearchEnabled(isSearchEmailRunning, query)) {
return RichTextBuilder(
email.getPartialContent(),
email.getPartialContent().withUnicodeCharacter,
query?.value ?? '',
const TextStyle(
fontSize: 13,
@@ -164,7 +165,7 @@ mixin BaseEmailItemTile {
).build();
} else {
return Text(
email.getPartialContent(),
email.getPartialContent().withUnicodeCharacter,
maxLines: 1,
softWrap: CommonTextStyle.defaultSoftWrap,
overflow: CommonTextStyle.defaultTextOverFlow,