TF-1956 Fix email subjects are displayed overlap email content in RTL mode

(cherry picked from commit 6b341d449790ff00d8ed210b1b8580535d97e721)
This commit is contained in:
dab246
2023-07-06 12:50:50 +07:00
committed by Dat Vu
parent 0583406e3b
commit 80de2599ae
6 changed files with 33 additions and 33 deletions
@@ -12,7 +12,7 @@ Widget buildIconWeb({
required Widget icon, required Widget icon,
String? tooltip, String? tooltip,
IconWebCallback? onTap, IconWebCallback? onTap,
EdgeInsets? iconPadding, EdgeInsetsGeometry? iconPadding,
double? iconSize, double? iconSize,
double? splashRadius, double? splashRadius,
double? minSize, double? minSize,
@@ -38,7 +38,7 @@ Widget buildIconWeb({
Widget buildSVGIconButton({ Widget buildSVGIconButton({
required String icon, required String icon,
String? tooltip, String? tooltip,
EdgeInsets? padding, EdgeInsetsGeometry? padding,
double? iconSize, double? iconSize,
Color? iconColor, Color? iconColor,
OnTapIconButtonCallbackAction? onTap, OnTapIconButtonCallbackAction? onTap,
@@ -127,7 +127,7 @@ Widget buildTextCircleButton(String text, {
Widget buildTextIcon(String text, { Widget buildTextIcon(String text, {
TextStyle? textStyle, TextStyle? textStyle,
EdgeInsets? padding, EdgeInsetsGeometry? padding,
IconWebCallback? onTap, IconWebCallback? onTap,
}) { }) {
return Material( return Material(
@@ -147,7 +147,7 @@ Widget buildTextButton(String text, {
double? width, double? width,
double? height, double? height,
Color? backgroundColor, Color? backgroundColor,
EdgeInsets? padding, EdgeInsetsGeometry? padding,
double? radius, double? radius,
IconWebCallback? onTap, IconWebCallback? onTap,
FocusNode? focusNode, FocusNode? focusNode,
@@ -160,7 +160,7 @@ Widget buildTextButton(String text, {
style: ButtonStyle( style: ButtonStyle(
backgroundColor: MaterialStateProperty.resolveWith((states) => backgroundColor ?? AppColor.colorTextButton), backgroundColor: MaterialStateProperty.resolveWith((states) => backgroundColor ?? AppColor.colorTextButton),
elevation: MaterialStateProperty.resolveWith((states) => 0), elevation: MaterialStateProperty.resolveWith((states) => 0),
padding: MaterialStateProperty.resolveWith<EdgeInsets>( padding: MaterialStateProperty.resolveWith<EdgeInsetsGeometry>(
(Set<MaterialState> states) => padding ?? const EdgeInsets.symmetric(horizontal: 8)), (Set<MaterialState> states) => padding ?? const EdgeInsets.symmetric(horizontal: 8)),
shape: MaterialStateProperty.all(RoundedRectangleBorder(borderRadius: BorderRadius.circular(radius ?? 0)))), shape: MaterialStateProperty.all(RoundedRectangleBorder(borderRadius: BorderRadius.circular(radius ?? 0)))),
child: Text( child: Text(
@@ -182,7 +182,7 @@ Widget buildButtonWrapText(String name, {
double? radius, double? radius,
double? height, double? height,
double? minWidth, double? minWidth,
EdgeInsets? padding, EdgeInsetsGeometry? padding,
FocusNode? focusNode, FocusNode? focusNode,
IconWebCallback? onTap IconWebCallback? onTap
}) { }) {
@@ -13,7 +13,7 @@ class EmailQuickSearchItemTileWidget extends StatelessWidget {
final PresentationEmail _presentationEmail; final PresentationEmail _presentationEmail;
final PresentationMailbox? _presentationMailbox; final PresentationMailbox? _presentationMailbox;
final EdgeInsets? contentPadding; final EdgeInsetsGeometry? contentPadding;
EmailQuickSearchItemTileWidget( EmailQuickSearchItemTileWidget(
this._presentationEmail, this._presentationEmail,
@@ -29,7 +29,7 @@ class EmailQuickSearchItemTileWidget extends StatelessWidget {
final maxWidthItem = constraints.maxWidth; final maxWidthItem = constraints.maxWidth;
log('EmailQuickSearchItemTileWidget::build(): maxWidthItem: $maxWidthItem'); log('EmailQuickSearchItemTileWidget::build(): maxWidthItem: $maxWidthItem');
return Padding( return Padding(
padding: contentPadding ?? const EdgeInsets.all(12), padding: contentPadding ?? const EdgeInsetsDirectional.all(12),
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@@ -10,7 +10,7 @@ class RecentSearchItemTileWidget extends StatelessWidget {
final imagePath = Get.find<ImagePaths>(); final imagePath = Get.find<ImagePaths>();
final RecentSearch recentSearch; final RecentSearch recentSearch;
final EdgeInsets? contentPadding; final EdgeInsetsGeometry? contentPadding;
RecentSearchItemTileWidget( RecentSearchItemTileWidget(
this.recentSearch, { this.recentSearch, {
@@ -21,7 +21,7 @@ class RecentSearchItemTileWidget extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Padding( return Padding(
padding: contentPadding ?? const EdgeInsets.all(12), padding: contentPadding ?? const EdgeInsetsDirectional.all(12),
child: Row( child: Row(
children: [ children: [
SvgPicture.asset(imagePath.icClockSB), SvgPicture.asset(imagePath.icClockSB),
@@ -34,8 +34,8 @@ mixin BaseEmailItemTile {
) { ) {
if (hasMailboxLabel(isSearchEmailRunning, email)) { if (hasMailboxLabel(isSearchEmailRunning, email)) {
return Container( return Container(
margin: const EdgeInsets.only(left: 8), margin: const EdgeInsetsDirectional.only(start: 8),
padding: const EdgeInsets.symmetric( padding: const EdgeInsetsDirectional.symmetric(
horizontal: 8, horizontal: 8,
vertical: 3), vertical: 3),
constraints: const BoxConstraints(maxWidth: 100), constraints: const BoxConstraints(maxWidth: 100),
@@ -248,8 +248,8 @@ mixin BaseEmailItemTile {
height: iconSize ?? 48, height: iconSize ?? 48,
alignment: Alignment.center, alignment: Alignment.center,
padding: responsiveUtils.isDesktop(context) padding: responsiveUtils.isDesktop(context)
? const EdgeInsets.symmetric(horizontal: 4) ? const EdgeInsetsDirectional.symmetric(horizontal: 4)
: const EdgeInsets.all(12), : const EdgeInsetsDirectional.all(12),
child: SvgPicture.asset( child: SvgPicture.asset(
email.selectMode == SelectMode.ACTIVE email.selectMode == SelectMode.ACTIVE
? imagePaths.icSelected ? imagePaths.icSelected
@@ -16,8 +16,8 @@ class EmailTileBuilder with BaseEmailItemTile {
final PresentationMailbox? mailboxContain; final PresentationMailbox? mailboxContain;
final SearchQuery? _searchQuery; final SearchQuery? _searchQuery;
final bool isSearchEmailRunning; final bool isSearchEmailRunning;
final EdgeInsets? padding; final EdgeInsetsGeometry? padding;
final EdgeInsets? paddingDivider; final EdgeInsetsGeometry? paddingDivider;
final bool isDrag; final bool isDrag;
final bool _isShowingEmailContent; final bool _isShowingEmailContent;
@@ -51,7 +51,7 @@ class EmailTileBuilder with BaseEmailItemTile {
children: [ children: [
ListTile( ListTile(
tileColor: _isShowingEmailContent ? AppColor.colorItemEmailSelectedDesktop : null, tileColor: _isShowingEmailContent ? AppColor.colorItemEmailSelectedDesktop : null,
contentPadding: padding ?? const EdgeInsets.symmetric(horizontal: 16, vertical: 5), contentPadding: padding ?? const EdgeInsetsDirectional.symmetric(horizontal: 16, vertical: 5),
onTap: () => _emailActionClick?.call( onTap: () => _emailActionClick?.call(
EmailActionType.preview, EmailActionType.preview,
_presentationEmail), _presentationEmail),
@@ -75,7 +75,7 @@ class EmailTileBuilder with BaseEmailItemTile {
children: [ children: [
if (!_presentationEmail.hasRead) if (!_presentationEmail.hasRead)
Padding( Padding(
padding: const EdgeInsets.only(right: 5), padding: const EdgeInsetsDirectional.only(end: 5),
child: SvgPicture.asset( child: SvgPicture.asset(
imagePaths.icUnreadStatus, imagePaths.icUnreadStatus,
width: 9, width: 9,
@@ -89,10 +89,10 @@ class EmailTileBuilder with BaseEmailItemTile {
buildIconAnsweredOrForwarded(width: 16, height: 16, presentationEmail: _presentationEmail), buildIconAnsweredOrForwarded(width: 16, height: 16, presentationEmail: _presentationEmail),
if (_presentationEmail.hasAttachment == true) if (_presentationEmail.hasAttachment == true)
Padding( Padding(
padding: const EdgeInsets.only(left: 8), padding: const EdgeInsetsDirectional.only(start: 8),
child: buildIconAttachment()), child: buildIconAttachment()),
Padding( Padding(
padding: const EdgeInsets.only(right: 4, left: 8), padding: const EdgeInsetsDirectional.only(end: 4, start: 8),
child: buildDateTime(_context, _presentationEmail)), child: buildDateTime(_context, _presentationEmail)),
buildIconChevron(), buildIconChevron(),
], ],
@@ -102,7 +102,7 @@ class EmailTileBuilder with BaseEmailItemTile {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
Padding( Padding(
padding: const EdgeInsets.only(top: 6), padding: const EdgeInsetsDirectional.only(top: 6),
child: Row( child: Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
@@ -116,13 +116,13 @@ class EmailTileBuilder with BaseEmailItemTile {
_presentationEmail), _presentationEmail),
if (_presentationEmail.hasStarred) if (_presentationEmail.hasStarred)
Padding( Padding(
padding: const EdgeInsets.only(left: 8), padding: const EdgeInsetsDirectional.only(start: 8),
child: buildIconStar(), child: buildIconStar(),
) )
], ],
)), )),
Padding( Padding(
padding: const EdgeInsets.only(top: 6), padding: const EdgeInsetsDirectional.only(top: 6),
child: Row(children: [ child: Row(children: [
Expanded(child: buildEmailPartialContent( Expanded(child: buildEmailPartialContent(
_presentationEmail, _presentationEmail,
@@ -134,7 +134,7 @@ class EmailTileBuilder with BaseEmailItemTile {
), ),
), ),
Padding( Padding(
padding: paddingDivider ?? const EdgeInsets.symmetric(horizontal: 16), padding: paddingDivider ?? const EdgeInsetsDirectional.symmetric(horizontal: 16),
child: const Divider( child: const Divider(
color: AppColor.lineItemListColor, color: AppColor.lineItemListColor,
height: 1, height: 1,
@@ -132,7 +132,7 @@ class EmailTileBuilder with BaseEmailItemTile {
: EmailActionType.preview, : EmailActionType.preview,
_presentationEmail), _presentationEmail),
child: Padding( child: Padding(
padding: const EdgeInsets.only(top: 8, right: 12), padding: const EdgeInsetsDirectional.only(top: 8, end: 12),
child: _buildAvatarIcon(), child: _buildAvatarIcon(),
), ),
), ),
@@ -141,7 +141,7 @@ class EmailTileBuilder with BaseEmailItemTile {
Row(children: [ Row(children: [
if (!_presentationEmail.hasRead) if (!_presentationEmail.hasRead)
Padding( Padding(
padding: const EdgeInsets.only(right: 5), padding: const EdgeInsetsDirectional.only(end: 5),
child: SvgPicture.asset( child: SvgPicture.asset(
imagePaths.icUnreadStatus, imagePaths.icUnreadStatus,
width: 9, width: 9,
@@ -156,14 +156,14 @@ class EmailTileBuilder with BaseEmailItemTile {
buildIconAnsweredOrForwarded(width: 16, height: 16, presentationEmail: _presentationEmail), buildIconAnsweredOrForwarded(width: 16, height: 16, presentationEmail: _presentationEmail),
if (_presentationEmail.hasAttachment == true) if (_presentationEmail.hasAttachment == true)
Padding( Padding(
padding: const EdgeInsets.only(left: 8), padding: const EdgeInsetsDirectional.only(start: 8),
child: SvgPicture.asset( child: SvgPicture.asset(
imagePaths.icAttachment, imagePaths.icAttachment,
width: 16, width: 16,
height: 16, height: 16,
fit: BoxFit.fill)), fit: BoxFit.fill)),
Padding( Padding(
padding: const EdgeInsets.only(right: 4, left: 8), padding: const EdgeInsetsDirectional.only(end: 4, start: 8),
child: buildDateTime(_context, _presentationEmail)), child: buildDateTime(_context, _presentationEmail)),
buildIconChevron() buildIconChevron()
]), ]),
@@ -183,7 +183,7 @@ class EmailTileBuilder with BaseEmailItemTile {
), ),
if (_presentationEmail.hasStarred) if (_presentationEmail.hasStarred)
Padding( Padding(
padding: const EdgeInsets.only(left: 8), padding: const EdgeInsetsDirectional.only(start: 8),
child: buildIconStar(), child: buildIconStar(),
), ),
], ],
@@ -323,7 +323,7 @@ class EmailTileBuilder with BaseEmailItemTile {
child: Stack(alignment: Alignment.bottomCenter, children: [ child: Stack(alignment: Alignment.bottomCenter, children: [
Row(children: [ Row(children: [
Container( Container(
padding: const EdgeInsets.only(left: 16, right: 16), padding: const EdgeInsetsDirectional.symmetric(horizontal: 16),
alignment: Alignment.center, alignment: Alignment.center,
child: !_presentationEmail.hasRead child: !_presentationEmail.hasRead
? SvgPicture.asset( ? SvgPicture.asset(
@@ -351,7 +351,7 @@ class EmailTileBuilder with BaseEmailItemTile {
buildIconWeb( buildIconWeb(
icon: buildIconAnsweredOrForwarded(presentationEmail: _presentationEmail), icon: buildIconAnsweredOrForwarded(presentationEmail: _presentationEmail),
tooltip: messageToolTipForAnsweredOrForwarded(context, _presentationEmail), tooltip: messageToolTipForAnsweredOrForwarded(context, _presentationEmail),
iconPadding: const EdgeInsets.only(right: 12), iconPadding: const EdgeInsetsDirectional.only(end: 12),
splashRadius: 1), splashRadius: 1),
InkWell( InkWell(
onTap: () { onTap: () {
@@ -390,7 +390,7 @@ class EmailTileBuilder with BaseEmailItemTile {
Transform( Transform(
transform: Matrix4.translationValues(0.0, 10, 0.0), transform: Matrix4.translationValues(0.0, 10, 0.0),
child: const Padding( child: const Padding(
padding: EdgeInsets.only(left: 120), padding: EdgeInsetsDirectional.only(start: 120),
child: Divider( child: Divider(
color: AppColor.lineItemListColor, color: AppColor.lineItemListColor,
height: 1, height: 1,
@@ -524,7 +524,7 @@ class EmailTileBuilder with BaseEmailItemTile {
if (_presentationEmail.getEmailTitle().isNotEmpty) if (_presentationEmail.getEmailTitle().isNotEmpty)
Container( Container(
constraints: BoxConstraints(maxWidth: constraints.maxWidth / 2), constraints: BoxConstraints(maxWidth: constraints.maxWidth / 2),
padding: const EdgeInsets.only(right: 12), padding: const EdgeInsetsDirectional.only(end: 12),
child: buildEmailTitle( child: buildEmailTitle(
_presentationEmail, _presentationEmail,
isSearchEmailRunning, isSearchEmailRunning,