diff --git a/core/lib/presentation/views/text/text_overflow_builder.dart b/core/lib/presentation/views/text/text_overflow_builder.dart index bc15ed73a8..d10030f0dc 100644 --- a/core/lib/presentation/views/text/text_overflow_builder.dart +++ b/core/lib/presentation/views/text/text_overflow_builder.dart @@ -1,6 +1,7 @@ import 'package:core/presentation/extensions/string_extension.dart'; import 'package:core/presentation/utils/style_utils.dart'; +import 'package:core/utils/direction_utils.dart'; import 'package:flutter/material.dart'; class TextOverflowBuilder extends StatelessWidget { @@ -26,7 +27,9 @@ class TextOverflowBuilder extends StatelessWidget { @override Widget build(BuildContext context) { return Text( - data.overflow, + DirectionUtils.isDirectionRTLByLanguage(context) + ? data + : data.overflow, style: style, textAlign: textAlign, softWrap: softWrap, diff --git a/lib/features/thread/presentation/mixin/base_email_item_tile.dart b/lib/features/thread/presentation/mixin/base_email_item_tile.dart index cdb5aa3b6b..3e95e18356 100644 --- a/lib/features/thread/presentation/mixin/base_email_item_tile.dart +++ b/lib/features/thread/presentation/mixin/base_email_item_tile.dart @@ -6,6 +6,7 @@ import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/utils/style_utils.dart'; import 'package:core/presentation/views/text/rich_text_builder.dart'; import 'package:core/presentation/views/text/text_overflow_builder.dart'; +import 'package:core/utils/direction_utils.dart'; import 'package:core/utils/platform_info.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -78,14 +79,17 @@ mixin BaseEmailItemTile { } Widget buildInformationSender( - PresentationEmail email, - PresentationMailbox? mailbox, - bool isSearchEmailRunning, - SearchQuery? query + BuildContext context, + PresentationEmail email, + PresentationMailbox? mailbox, + bool isSearchEmailRunning, + SearchQuery? query ) { if (isSearchEnabled(isSearchEmailRunning, query)) { return RichTextBuilder( - informationSender(email, mailbox).overflow, + DirectionUtils.isDirectionRTLByLanguage(context) + ? informationSender(email, mailbox) + : informationSender(email, mailbox).overflow, query?.value ?? '', TextStyle( fontSize: 15, @@ -110,13 +114,16 @@ mixin BaseEmailItemTile { } Widget buildEmailTitle( + BuildContext context, PresentationEmail email, bool isSearchEmailRunning, SearchQuery? query ) { if (isSearchEnabled(isSearchEmailRunning, query)) { return RichTextBuilder( - email.getEmailTitle().overflow, + DirectionUtils.isDirectionRTLByLanguage(context) + ? email.getEmailTitle() + : email.getEmailTitle().overflow, query?.value ?? '', TextStyle( fontSize: 13, @@ -140,13 +147,16 @@ mixin BaseEmailItemTile { } Widget buildEmailPartialContent( + BuildContext context, PresentationEmail email, bool isSearchEmailRunning, SearchQuery? query ) { if (isSearchEnabled(isSearchEmailRunning, query)) { return RichTextBuilder( - email.getPartialContent().overflow, + DirectionUtils.isDirectionRTLByLanguage(context) + ? email.getPartialContent() + : email.getPartialContent().overflow, query?.value ?? '', const TextStyle( fontSize: 13, diff --git a/lib/features/thread/presentation/widgets/email_tile_builder.dart b/lib/features/thread/presentation/widgets/email_tile_builder.dart index f7d6b1f10f..d65145d9d4 100644 --- a/lib/features/thread/presentation/widgets/email_tile_builder.dart +++ b/lib/features/thread/presentation/widgets/email_tile_builder.dart @@ -82,6 +82,7 @@ class EmailTileBuilder with BaseEmailItemTile { height: 9, fit: BoxFit.fill)), Expanded(child: buildInformationSender( + _context, _presentationEmail, mailboxContain, isSearchEmailRunning, @@ -107,6 +108,7 @@ class EmailTileBuilder with BaseEmailItemTile { mainAxisSize: MainAxisSize.min, children: [ Expanded(child: buildEmailTitle( + _context, _presentationEmail, isSearchEmailRunning, _searchQuery)), @@ -125,6 +127,7 @@ class EmailTileBuilder with BaseEmailItemTile { padding: const EdgeInsetsDirectional.only(top: 6), child: Row(children: [ Expanded(child: buildEmailPartialContent( + _context, _presentationEmail, isSearchEmailRunning, _searchQuery)), diff --git a/lib/features/thread/presentation/widgets/email_tile_web_builder.dart b/lib/features/thread/presentation/widgets/email_tile_web_builder.dart index f5db5f5f01..7fa35c93ec 100644 --- a/lib/features/thread/presentation/widgets/email_tile_web_builder.dart +++ b/lib/features/thread/presentation/widgets/email_tile_web_builder.dart @@ -148,6 +148,7 @@ class EmailTileBuilder with BaseEmailItemTile { height: 9, fit: BoxFit.fill)), Expanded(child: buildInformationSender( + _context, _presentationEmail, mailboxContain, isSearchEmailRunning, @@ -172,6 +173,7 @@ class EmailTileBuilder with BaseEmailItemTile { mainAxisSize: MainAxisSize.min, children: [ Expanded(child: buildEmailTitle( + _context, _presentationEmail, isSearchEmailRunning, _searchQuery @@ -191,6 +193,7 @@ class EmailTileBuilder with BaseEmailItemTile { const SizedBox(height: 8), Row(children: [ Expanded(child: buildEmailPartialContent( + _context, _presentationEmail, isSearchEmailRunning, _searchQuery @@ -243,6 +246,7 @@ class EmailTileBuilder with BaseEmailItemTile { height: 9, fit: BoxFit.fill)), Expanded(child: buildInformationSender( + _context, _presentationEmail, mailboxContain, isSearchEmailRunning, @@ -258,6 +262,7 @@ class EmailTileBuilder with BaseEmailItemTile { mainAxisSize: MainAxisSize.min, children: [ Expanded(child: buildEmailTitle( + _context, _presentationEmail, isSearchEmailRunning, _searchQuery @@ -277,6 +282,7 @@ class EmailTileBuilder with BaseEmailItemTile { const SizedBox(height: 8), Row(children: [ Expanded(child: buildEmailPartialContent( + _context, _presentationEmail, isSearchEmailRunning, _searchQuery @@ -367,6 +373,7 @@ class EmailTileBuilder with BaseEmailItemTile { SizedBox( width: 160, child: buildInformationSender( + _context, _presentationEmail, mailboxContain, isSearchEmailRunning, @@ -517,12 +524,14 @@ class EmailTileBuilder with BaseEmailItemTile { constraints: BoxConstraints(maxWidth: constraints.maxWidth / 2), padding: const EdgeInsetsDirectional.only(end: 12), child: buildEmailTitle( + _context, _presentationEmail, isSearchEmailRunning, _searchQuery )), Expanded(child: Container( child: buildEmailPartialContent( + _context, _presentationEmail, isSearchEmailRunning, _searchQuery