From 71eafb89c039238cdaff660ca76b999ca7a539ef Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 15 Jun 2023 15:06:17 +0700 Subject: [PATCH] Support RTL mode for alignment mailbox view --- .../views/text/slogan_builder.dart | 6 +- .../presentation/base_mailbox_view.dart | 44 ++++++ .../mailbox/presentation/mailbox_view.dart | 133 ++++++------------ .../presentation/mailbox_view_web.dart | 133 +++++------------- .../mixin/mailbox_widget_mixin.dart | 12 +- .../widgets/mailbox_folder_tile_builder.dart | 42 ++---- .../user_information_widget_builder.dart | 97 +++++-------- .../presentation/mailbox_creator_view.dart | 2 +- .../app_list_dashboard_item.dart | 4 +- ...ailbox_visibility_folder_tile_builder.dart | 3 +- .../menu/settings/settings_view.dart | 3 +- .../setting_first_level_tile_builder.dart | 3 +- .../email/presentation/search_email_view.dart | 3 +- .../widgets/app_bar_sending_queue_widget.dart | 4 +- 14 files changed, 198 insertions(+), 291 deletions(-) create mode 100644 lib/features/mailbox/presentation/base_mailbox_view.dart diff --git a/core/lib/presentation/views/text/slogan_builder.dart b/core/lib/presentation/views/text/slogan_builder.dart index 98ffaa7131..42815496e3 100644 --- a/core/lib/presentation/views/text/slogan_builder.dart +++ b/core/lib/presentation/views/text/slogan_builder.dart @@ -18,8 +18,8 @@ class SloganBuilder extends StatelessWidget { final String? logo; final double? sizeLogo; final OnTapCallback? onTapCallback; - final EdgeInsets? paddingText; - final EdgeInsets? padding; + final EdgeInsetsGeometry? paddingText; + final EdgeInsetsGeometry? padding; final bool enableOverflow; final Color? hoverColor; final double? hoverRadius; @@ -55,7 +55,7 @@ class SloganBuilder extends StatelessWidget { child: Column(children: [ _logoApp(), Padding( - padding: paddingText ?? const EdgeInsets.only(top: 16, left: 16, right: 16), + padding: paddingText ?? const EdgeInsetsDirectional.only(top: 16, start: 16, end: 16), child: Text( text ?? '', style: textStyle, diff --git a/lib/features/mailbox/presentation/base_mailbox_view.dart b/lib/features/mailbox/presentation/base_mailbox_view.dart new file mode 100644 index 0000000000..fb9ee68ee7 --- /dev/null +++ b/lib/features/mailbox/presentation/base_mailbox_view.dart @@ -0,0 +1,44 @@ +import 'package:core/presentation/extensions/color_extension.dart'; +import 'package:core/presentation/resources/image_paths.dart'; +import 'package:core/presentation/state/success.dart'; +import 'package:core/presentation/utils/responsive_utils.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_controller.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/widgets/user_information_widget_builder.dart'; +import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; + +abstract class BaseMailboxView extends GetWidget + with + AppLoaderMixin, + MailboxWidgetMixin { + + BaseMailboxView({Key? key}) : super(key: key); + + final responsiveUtils = Get.find(); + final imagePaths = Get.find(); + + Widget buildUserInformation(BuildContext context) { + return Container( + padding: const EdgeInsets.symmetric(vertical: 10), + child: Column(children: [ + Obx(() => UserInformationWidgetBuilder( + imagePaths, + controller.mailboxDashBoardController.userProfile.value, + subtitle: AppLocalizations.of(context).manage_account, + onSubtitleClick: controller.mailboxDashBoardController.goToSettings)), + const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2) + ]), + ); + } + + Widget buildLoadingView() { + return Obx(() => controller.viewState.value.fold( + (failure) => const SizedBox.shrink(), + (success) => success is LoadingState + ? Padding(padding: const EdgeInsets.only(top: 16), child: loadingWidget) + : const SizedBox.shrink())); + } +} \ No newline at end of file diff --git a/lib/features/mailbox/presentation/mailbox_view.dart b/lib/features/mailbox/presentation/mailbox_view.dart index da7258279c..f06a2cbf3d 100644 --- a/lib/features/mailbox/presentation/mailbox_view.dart +++ b/lib/features/mailbox/presentation/mailbox_view.dart @@ -1,30 +1,22 @@ import 'package:core/core.dart'; +import 'package:core/utils/direction_utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:model/model.dart'; import 'package:package_info_plus/package_info_plus.dart'; -import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart'; -import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_controller.dart'; -import 'package:tmail_ui_user/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/base_mailbox_view.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/widgets/bottom_bar_selection_mailbox_widget.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/widgets/sending_queue_mailbox_widget.dart'; -import 'package:tmail_ui_user/features/mailbox/presentation/widgets/user_information_widget_builder.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart'; import 'package:tmail_ui_user/features/quotas/presentation/widget/quotas_footer_widget.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/utils/app_config.dart'; -import 'package:tmail_ui_user/main/utils/app_utils.dart'; -class MailboxView extends GetWidget - with MailboxWidgetMixin, - AppLoaderMixin { - - final _imagePaths = Get.find(); - final _responsiveUtils = Get.find(); +class MailboxView extends BaseMailboxView { MailboxView({Key? key}) : super(key: key); @@ -33,9 +25,9 @@ class MailboxView extends GetWidget ThemeUtils.setStatusBarTransparentColor(); return SafeArea(bottom: false, left: false, right: false, - top: _responsiveUtils.isMobile(context), + top: responsiveUtils.isMobile(context), child: ClipRRect( - borderRadius: _responsiveUtils.isPortraitMobile(context) + borderRadius: responsiveUtils.isPortraitMobile(context) ? const BorderRadius.only( topRight: Radius.circular(14), topLeft: Radius.circular(14)) @@ -80,7 +72,7 @@ class MailboxView extends GetWidget final appInformation = controller.mailboxDashBoardController.appInformation.value; if (appInformation != null && !controller.isSelectionEnabled()) { - if (_responsiveUtils.isLandscapeMobile(context)) { + if (responsiveUtils.isLandscapeMobile(context)) { return const SizedBox.shrink(); } return _buildVersionInformation(context, appInformation); @@ -100,15 +92,12 @@ class MailboxView extends GetWidget crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( - padding: EdgeInsets.only(top: _responsiveUtils.isMobile(context) ? 10 : 30, bottom: 8), + padding: EdgeInsets.only(top: responsiveUtils.isMobile(context) ? 10 : 30, bottom: 8), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Padding( - padding: EdgeInsets.only( - left: AppUtils.isDirectionRTL(context) ? 0 : 10, - right: AppUtils.isDirectionRTL(context) ? 19 : 0, - ), + padding: const EdgeInsetsDirectional.only(start: 10), child: _buildCloseScreenButton(context)), SizedBox(width: controller.isSelectionEnabled() ? 49 : 40), Expanded(child: Text( @@ -119,7 +108,7 @@ class MailboxView extends GetWidget ] ) ), - if (!_responsiveUtils.isTabletLarge(context)) + if (!responsiveUtils.isTabletLarge(context)) const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2), ] ); @@ -127,14 +116,14 @@ class MailboxView extends GetWidget Widget _buildCloseScreenButton(BuildContext context) { return buildIconWeb( - icon: SvgPicture.asset(_imagePaths.icCloseMailbox, width: 28, height: 28, fit: BoxFit.fill), + icon: SvgPicture.asset(imagePaths.icCloseMailbox, width: 28, height: 28, fit: BoxFit.fill), tooltip: AppLocalizations.of(context).close, onTap: () => controller.closeMailboxScreen(context)); } Widget _buildEditMailboxButton(BuildContext context, bool isSelectionEnabled) { return Padding( - padding: const EdgeInsets.only(right: 10), + padding: const EdgeInsetsDirectional.only(end: 10), child: Material( shape: const CircleBorder(), color: Colors.transparent, @@ -150,29 +139,6 @@ class MailboxView extends GetWidget ); } - Widget _buildUserInformation(BuildContext context) { - return Column(children: [ - Padding( - padding: EdgeInsets.only( - left: AppUtils.isDirectionRTL(context) ? 16 : _responsiveUtils.isLandscapeMobile(context) ? 0 : 16, - right: AppUtils.isDirectionRTL(context) ?_responsiveUtils.isLandscapeMobile(context) ? 0 : 16 : 16), - child: UserInformationWidgetBuilder( - _imagePaths, - controller.mailboxDashBoardController.userProfile.value, - subtitle: AppLocalizations.of(context).manage_account, - onSubtitleClick: () => controller.mailboxDashBoardController.goToSettings())), - const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2) - ]); - } - - Widget _buildLoadingView() { - return Obx(() => controller.viewState.value.fold( - (failure) => const SizedBox.shrink(), - (success) => success is LoadingState - ? Padding(padding: const EdgeInsets.only(top: 16), child: loadingWidget) - : const SizedBox.shrink())); - } - Widget _buildListMailbox(BuildContext context) { return NotificationListener( onNotification: (_) { @@ -186,17 +152,14 @@ class MailboxView extends GetWidget padding: const EdgeInsets.only(bottom: 16), child: Column(children: [ Obx(() { - if (controller.isSelectionEnabled() && _responsiveUtils.isLandscapeMobile(context)) { + if (controller.isSelectionEnabled() && responsiveUtils.isLandscapeMobile(context)) { return const SizedBox.shrink(); } - return _buildUserInformation(context); + return buildUserInformation(context); }), - _buildLoadingView(), + buildLoadingView(), AppConfig.appGridDashboardAvailable - ? Column(children: [ - buildAppGridDashboard(context, _responsiveUtils, _imagePaths, controller), - const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2), - ]) + ? buildAppGridDashboard(context, responsiveUtils, imagePaths, controller) : const SizedBox.shrink(), const SizedBox(height: 8), Obx(() { @@ -227,13 +190,10 @@ class MailboxView extends GetWidget const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2), const SizedBox(height: 12), Container( - margin: EdgeInsets.only( - left: AppUtils.isDirectionRTL(context) ? 16 : _responsiveUtils.isLandscapeMobile(context) ? 0 : 8, - right: AppUtils.isDirectionRTL(context) ? _responsiveUtils.isLandscapeMobile(context) ? 0 : 8 : 16), - padding: EdgeInsets.only( - left: AppUtils.isDirectionRTL(context) ? 0 : 8, - right: AppUtils.isDirectionRTL(context) ? 8 : 0, - ), + margin: EdgeInsetsDirectional.only( + start: responsiveUtils.isLandscapeMobile(context) ? 0 : 8, + end: 16), + padding: const EdgeInsetsDirectional.only(start: 8), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -247,7 +207,7 @@ class MailboxView extends GetWidget minSize: 40, iconPadding: EdgeInsets.zero, icon: SvgPicture.asset( - _imagePaths.icSearchBar, + imagePaths.icSearchBar, colorFilter: AppColor.colorTextButton.asFilter(), fit: BoxFit.fill ), @@ -260,7 +220,7 @@ class MailboxView extends GetWidget iconPadding: EdgeInsets.zero, splashRadius: 15, icon: SvgPicture.asset( - _imagePaths.icAddNewFolder, + imagePaths.icAddNewFolder, colorFilter: AppColor.colorTextButton.asFilter(), fit: BoxFit.fill), tooltip: AppLocalizations.of(context).new_mailbox, @@ -299,9 +259,9 @@ class MailboxView extends GetWidget Widget _buildHeaderMailboxCategory(BuildContext context, MailboxCategories categories) { return Padding( - padding: EdgeInsets.only( - right: AppUtils.isDirectionRTL(context) ? 4 : _responsiveUtils.isLandscapeMobile(context) ? 8 : 28, - left: AppUtils.isDirectionRTL(context) ? _responsiveUtils.isLandscapeMobile(context) ? 8 : 28 : 4), + padding: EdgeInsetsDirectional.only( + start: 4, + end: responsiveUtils.isLandscapeMobile(context) ? 8 : 28), child: Row(children: [ buildIconWeb( minSize: 40, @@ -310,8 +270,8 @@ class MailboxView extends GetWidget splashRadius: 15, icon: SvgPicture.asset( categories.getExpandMode(controller.mailboxCategoriesExpandMode.value) == ExpandMode.EXPAND - ? _imagePaths.icExpandFolder - : _imagePaths.icCollapseFolder, + ? imagePaths.icExpandFolder + : DirectionUtils.isDirectionRTLByLanguage(context) ? imagePaths.icBack : imagePaths.icCollapseFolder, colorFilter: AppColor.primaryColor.asFilter(), fit: BoxFit.fill), tooltip: AppLocalizations.of(context).collapse, @@ -327,14 +287,11 @@ class MailboxView extends GetWidget final lastNode = mailboxNode.childrenItems?.last; return Container( - margin: EdgeInsets.only( - left: AppUtils.isDirectionRTL(context) ? 16 : _responsiveUtils.isLandscapeMobile(context) ? 0 : 8, - right: AppUtils.isDirectionRTL(context) ? _responsiveUtils.isLandscapeMobile(context) ? 0 : 8 : 16 - ), - padding: EdgeInsets.only( - left: AppUtils.isDirectionRTL(context) ? 0 : 12, - right: AppUtils.isDirectionRTL(context) ? 12 : 0, + margin: EdgeInsetsDirectional.only( + start: responsiveUtils.isLandscapeMobile(context) ? 0 : 8, + end: 16 ), + padding: const EdgeInsetsDirectional.only(start: 12), child: TreeView( key: Key('${categories.keyValue}_mailbox_list'), children: _buildListChildTileWidget(context, mailboxNode, lastNode: lastNode))); @@ -362,14 +319,10 @@ class MailboxView extends GetWidget context, key: const Key('children_tree_mailbox_child'), isExpanded: mailboxNode.expandMode == ExpandMode.EXPAND, - isDirectionRTL: AppUtils.isDirectionRTL(context), - paddingChild: EdgeInsets.only( - left: AppUtils.isDirectionRTL(context) ? 0 : 14, - right: AppUtils.isDirectionRTL(context) ? 14 : 0, - ), + paddingChild: const EdgeInsetsDirectional.only(start: 14), parent: Obx(() => (MailBoxFolderTileBuilder( context, - _imagePaths, + imagePaths, mailboxNode, lastNode: lastNode, allSelectMode: controller.currentSelectMode.value, @@ -377,7 +330,7 @@ class MailboxView extends GetWidget ..addOnLongPressMailboxNodeAction((mailboxNode) { openMailboxMenuActionOnMobile( context, - _imagePaths, + imagePaths, mailboxNode.item, controller ); @@ -392,7 +345,7 @@ class MailboxView extends GetWidget } else { return Obx(() => (MailBoxFolderTileBuilder( context, - _imagePaths, + imagePaths, mailboxNode, lastNode: lastNode, allSelectMode: controller.currentSelectMode.value, @@ -400,7 +353,7 @@ class MailboxView extends GetWidget ..addOnLongPressMailboxNodeAction((mailboxNode) { openMailboxMenuActionOnMobile( context, - _imagePaths, + imagePaths, mailboxNode.item, controller ); @@ -425,8 +378,8 @@ class MailboxView extends GetWidget right: false, top: false, child: BottomBarSelectionMailboxWidget( - _responsiveUtils, - _imagePaths, + responsiveUtils, + imagePaths, controller.listMailboxSelected, controller.listActionOfMailboxSelected, onMailboxActionsClick: (actions, listMailboxSelected) => @@ -442,12 +395,12 @@ class MailboxView extends GetWidget } Widget _buildVersionInformation(BuildContext context, PackageInfo packageInfo) { - return SafeArea( - top: false, - child: Container( - color: AppColor.colorBgMailbox, - width: double.infinity, - padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 16), + return Container( + color: AppColor.colorBgMailbox, + width: double.infinity, + padding: const EdgeInsets.all(16), + child: SafeArea( + top: false, child: Text( '${AppLocalizations.of(context).version} ${packageInfo.version}', textAlign: TextAlign.center, diff --git a/lib/features/mailbox/presentation/mailbox_view_web.dart b/lib/features/mailbox/presentation/mailbox_view_web.dart index 5838b3d96c..fa02739d1a 100644 --- a/lib/features/mailbox/presentation/mailbox_view_web.dart +++ b/lib/features/mailbox/presentation/mailbox_view_web.dart @@ -4,47 +4,38 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:model/model.dart'; import 'package:package_info_plus/package_info_plus.dart'; -import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart'; -import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_controller.dart'; -import 'package:tmail_ui_user/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart'; +import 'package:tmail_ui_user/features/mailbox/presentation/base_mailbox_view.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart'; -import 'package:tmail_ui_user/features/mailbox/presentation/widgets/user_information_widget_builder.dart'; import 'package:tmail_ui_user/features/quotas/presentation/widget/quotas_footer_widget.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/utils/app_config.dart'; -import 'package:tmail_ui_user/main/utils/app_utils.dart'; -class MailboxView extends GetWidget - with AppLoaderMixin, - MailboxWidgetMixin { - - final _imagePaths = Get.find(); - final _responsiveUtils = Get.find(); +class MailboxView extends BaseMailboxView { MailboxView({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Drawer( - elevation: _responsiveUtils.isDesktop(context) ? 0 : 16.0, + elevation: responsiveUtils.isDesktop(context) ? 0 : 16.0, child: Scaffold( backgroundColor: Colors.white, body: Column(children: [ - if (!_responsiveUtils.isDesktop(context)) _buildLogoApp(context), - if (!_responsiveUtils.isDesktop(context)) + if (!responsiveUtils.isDesktop(context)) _buildLogoApp(context), + if (!responsiveUtils.isDesktop(context)) const Divider( color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2), Expanded(child: Container( - padding: _getViewPadding(context), - color: _responsiveUtils.isDesktop(context) + padding: EdgeInsetsDirectional.only(start: responsiveUtils.isDesktop(context) ? 16 : 0), + color: responsiveUtils.isDesktop(context) ? AppColor.colorBgDesktop : Colors.white, child: Container( - color: _responsiveUtils.isDesktop(context) + color: responsiveUtils.isDesktop(context) ? AppColor.colorBgDesktop : Colors.white, child: RefreshIndicator( @@ -60,22 +51,13 @@ class MailboxView extends GetWidget ); } - EdgeInsets _getViewPadding(BuildContext context) { - if (AppUtils.isDirectionRTL(context)) { - return EdgeInsets.only(right: _responsiveUtils.isDesktop(context) ? 16 : 0); - } else { - return EdgeInsets.only(left: _responsiveUtils.isDesktop(context) ? 16 : 0); - } - } - Widget _buildLogoApp(BuildContext context) { return Container( color: Colors.white, - padding: EdgeInsets.only( - top: _responsiveUtils.isDesktop(context) ? 25 : 16, - bottom: _responsiveUtils.isDesktop(context) ? 25 : 16, - left: AppUtils.isDirectionRTL(context) ? 0 : _responsiveUtils.isDesktop(context) ? 32 : 16, - right: AppUtils.isDirectionRTL(context) ? _responsiveUtils.isDesktop(context) ? 32 : 16 : 0 + padding: EdgeInsetsDirectional.only( + top: responsiveUtils.isDesktop(context) ? 25 : 16, + bottom: responsiveUtils.isDesktop(context) ? 25 : 16, + start: responsiveUtils.isDesktop(context) ? 32 : 16, ), child: Row(children: [ SloganBuilder( @@ -83,7 +65,7 @@ class MailboxView extends GetWidget text: AppLocalizations.of(context).app_name, textAlign: TextAlign.center, textStyle: const TextStyle(color: Colors.black, fontSize: 20, fontWeight: FontWeight.bold), - logo: _imagePaths.icLogoTMail + logo: imagePaths.icLogoTMail ), Obx(() { if (controller.mailboxDashBoardController.appInformation.value != null) { @@ -96,14 +78,6 @@ class MailboxView extends GetWidget ); } - Widget _buildLoadingView() { - return Obx(() => controller.viewState.value.fold( - (failure) => const SizedBox.shrink(), - (success) => success is LoadingState - ? Padding(padding: const EdgeInsets.only(top: 16), child: loadingWidget) - : const SizedBox.shrink())); - } - Widget _buildListMailbox(BuildContext context) { return Stack( children: [ @@ -111,21 +85,13 @@ class MailboxView extends GetWidget controller: controller.mailboxListScrollController, key: const PageStorageKey('mailbox_list'), physics: const ClampingScrollPhysics(), - padding: EdgeInsets.only( - right: AppUtils.isDirectionRTL(context) ? 0 : _responsiveUtils.isDesktop(context) ? 16 : 0, - left: AppUtils.isDirectionRTL(context) ? _responsiveUtils.isDesktop(context) ? 16 : 0 : 0 - ), + padding: EdgeInsetsDirectional.only(end: responsiveUtils.isDesktop(context) ? 16 : 0), child: Column(children: [ - if (!_responsiveUtils.isDesktop(context)) - _buildUserInformation(context), - _buildLoadingView(), - AppConfig.appGridDashboardAvailable && _responsiveUtils.isWebNotDesktop(context) - ? Column(children: [ - buildAppGridDashboard(context, _responsiveUtils, _imagePaths, controller), - const SizedBox(height: 8), - const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2), - const SizedBox(height: 8), - ]) + if (!responsiveUtils.isDesktop(context)) + buildUserInformation(context), + buildLoadingView(), + AppConfig.appGridDashboardAvailable && responsiveUtils.isWebNotDesktop(context) + ? buildAppGridDashboard(context, responsiveUtils, imagePaths, controller) : const SizedBox.shrink(), Obx(() { if (controller.defaultMailboxIsNotEmpty) { @@ -142,9 +108,8 @@ class MailboxView extends GetWidget const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2), const SizedBox(height: 13), Padding( - padding: EdgeInsets.only( - left: AppUtils.isDirectionRTL(context) ? 0 : _responsiveUtils.isDesktop(context) ? 0 : 12, - right: AppUtils.isDirectionRTL(context) ? _responsiveUtils.isDesktop(context) ? 0 : 12 : 0, + padding: EdgeInsetsDirectional.only( + start: responsiveUtils.isDesktop(context) ? 0 : 12, bottom: 8 ), child: Row( @@ -156,17 +121,14 @@ class MailboxView extends GetWidget color: Colors.black, fontWeight: FontWeight.bold)), Padding( - padding: EdgeInsets.only( - right: AppUtils.isDirectionRTL(context) ? 0 : _responsiveUtils.isDesktop(context) ? 0 : 12, - left: AppUtils.isDirectionRTL(context) ? _responsiveUtils.isDesktop(context) ? 0 : 12 : 0, - ), + padding: EdgeInsetsDirectional.only(end: responsiveUtils.isDesktop(context) ? 0 : 12), child: Row( children: [ buildIconWeb( minSize: 40, iconPadding: EdgeInsets.zero, icon: SvgPicture.asset( - _imagePaths.icSearchBar, + imagePaths.icSearchBar, colorFilter: AppColor.colorTextButton.asFilter(), fit: BoxFit.fill ), @@ -178,7 +140,7 @@ class MailboxView extends GetWidget iconPadding: EdgeInsets.zero, splashRadius: 15, icon: SvgPicture.asset( - _imagePaths.icAddNewFolder, + imagePaths.icAddNewFolder, colorFilter: AppColor.colorTextButton.asFilter(), fit: BoxFit.fill), tooltip: AppLocalizations.of(context).new_mailbox, @@ -233,23 +195,6 @@ class MailboxView extends GetWidget ); } - Widget _buildUserInformation(BuildContext context) { - return Container( - padding: const EdgeInsets.symmetric(vertical: 10), - child: Column(children: [ - Padding( - padding: const EdgeInsets.only(left: 16, bottom: 10, right: 16), - child: Obx(() => UserInformationWidgetBuilder( - _imagePaths, - controller.mailboxDashBoardController.userProfile.value, - subtitle: AppLocalizations.of(context).manage_account, - onSubtitleClick: () => controller.mailboxDashBoardController.goToSettings()), - )), - const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2) - ]), - ); - } - Widget _buildBodyMailboxCategory( BuildContext context, MailboxCategories categories, @@ -259,8 +204,8 @@ class MailboxView extends GetWidget return Container( padding: EdgeInsets.only( - right: _responsiveUtils.isDesktop(context) ? 0 : 16, - left: _responsiveUtils.isDesktop(context) ? 0 : 16), + right: responsiveUtils.isDesktop(context) ? 0 : 16, + left: responsiveUtils.isDesktop(context) ? 0 : 16), child: TreeView( key: Key('${categories.keyValue}_mailbox_list'), children: _buildListChildTileWidget( @@ -281,8 +226,8 @@ class MailboxView extends GetWidget children: [ buildHeaderMailboxCategory( context, - _responsiveUtils, - _imagePaths, + responsiveUtils, + imagePaths, categories, controller, toggleMailboxCategories: controller.toggleMailboxCategories @@ -309,17 +254,13 @@ class MailboxView extends GetWidget return TreeViewChild( context, key: const Key('children_tree_mailbox_child'), - isDirectionRTL: AppUtils.isDirectionRTL(context), isExpanded: mailboxNode.expandMode == ExpandMode.EXPAND, - paddingChild: EdgeInsets.only( - left: AppUtils.isDirectionRTL(context) ? 0 : 14, - right: AppUtils.isDirectionRTL(context) ? 14 : 0, - ), + paddingChild: const EdgeInsetsDirectional.only(start: 14), parent: Obx(() => (MailBoxFolderTileBuilder( context, - _imagePaths, + imagePaths, mailboxNode, - responsiveUtils: _responsiveUtils, + responsiveUtils: responsiveUtils, lastNode: lastNode, mailboxNodeSelected: controller.mailboxDashBoardController.selectedMailbox.value) ..addOnClickOpenMailboxNodeAction((mailboxNode) => controller.openMailbox(context, mailboxNode.item)) @@ -328,8 +269,8 @@ class MailboxView extends GetWidget ..addOnClickOpenMenuMailboxNodeAction((position, mailboxNode) { openMailboxMenuActionOnWeb( context, - _imagePaths, - _responsiveUtils, + imagePaths, + responsiveUtils, position, mailboxNode.item, controller @@ -343,17 +284,17 @@ class MailboxView extends GetWidget } else { return Obx(() => (MailBoxFolderTileBuilder( context, - _imagePaths, + imagePaths, mailboxNode, - responsiveUtils: _responsiveUtils, + responsiveUtils: responsiveUtils, lastNode: lastNode, mailboxNodeSelected: controller.mailboxDashBoardController.selectedMailbox.value) ..addOnClickOpenMailboxNodeAction((mailboxNode) => controller.openMailbox(context, mailboxNode.item)) ..addOnClickOpenMenuMailboxNodeAction((position, mailboxNode) { openMailboxMenuActionOnWeb( context, - _imagePaths, - _responsiveUtils, + imagePaths, + responsiveUtils, position, mailboxNode.item, controller diff --git a/lib/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart b/lib/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart index 30ca8269f1..7e4426894d 100644 --- a/lib/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart +++ b/lib/features/mailbox/presentation/mixin/mailbox_widget_mixin.dart @@ -4,6 +4,7 @@ import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/utils/style_utils.dart'; import 'package:core/presentation/views/button/icon_button_web.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'; @@ -300,7 +301,7 @@ mixin MailboxWidgetMixin { icon: SvgPicture.asset( expandMode == ExpandMode.EXPAND ? imagePaths.icExpandFolder - : imagePaths.icCollapseFolder, + : DirectionUtils.isDirectionRTLByLanguage(context) ? imagePaths.icBack : imagePaths.icCollapseFolder, colorFilter: AppColor.primaryColor.asFilter(), fit: BoxFit.fill ), @@ -345,7 +346,8 @@ mixin MailboxWidgetMixin { ? _buildAppGridInMailboxView(context, controller) : const Offstage(); }) - ) + ), + const Divider(color: AppColor.colorDividerMailbox, height: 0.5, thickness: 0.2), ]); } @@ -357,7 +359,7 @@ mixin MailboxWidgetMixin { MailboxController controller ) { return Padding( - padding: const EdgeInsets.only(left: 32, top: 8, bottom: 8, right: 4), + padding: const EdgeInsetsDirectional.only(start: 32, bottom: 8, end: 4), child: Row(children: [ SvgPicture.asset( imagePaths.icAppDashboard, @@ -381,7 +383,7 @@ mixin MailboxWidgetMixin { buildIconWeb( icon: Obx(() => SvgPicture.asset( controller.mailboxDashBoardController.appGridDashboardController.appDashboardExpandMode.value == ExpandMode.COLLAPSE - ? imagePaths.icCollapseFolder + ? DirectionUtils.isDirectionRTLByLanguage(context) ? imagePaths.icBack : imagePaths.icCollapseFolder : imagePaths.icExpandFolder, colorFilter: controller.mailboxDashBoardController.appGridDashboardController.appDashboardExpandMode.value == ExpandMode.COLLAPSE ? AppColor.colorIconUnSubscribedMailbox.asFilter() @@ -402,7 +404,7 @@ mixin MailboxWidgetMixin { return ListView.builder( shrinkWrap: true, primary: false, - padding: const EdgeInsets.only(left: 16, right: 16, bottom: 8), + padding: const EdgeInsetsDirectional.only(start: 16, end: 16, bottom: 8), itemCount: linagoraApps.apps.length, itemBuilder: (context, index) { return AppListDashboardItem(linagoraApps.apps[index]); diff --git a/lib/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart b/lib/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart index 6aaeab115f..60fbb384f6 100644 --- a/lib/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart +++ b/lib/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart @@ -4,7 +4,8 @@ import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/utils/style_utils.dart'; import 'package:core/presentation/views/button/icon_button_web.dart'; -import 'package:core/utils/build_utils.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'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; @@ -18,7 +19,6 @@ import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_displa import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_method_action_define.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; -import 'package:tmail_ui_user/main/utils/app_utils.dart'; class MailBoxFolderTileBuilder { @@ -94,7 +94,7 @@ class MailBoxFolderTileBuilder { Widget _buildMailboxItem(BuildContext context) { if (mailboxDisplayed == MailboxDisplayed.mailbox) { - if (BuildUtils.isWeb) { + if (PlatformInfo.isWeb) { return StatefulBuilder( builder: (context, setState) { return InkWell( @@ -194,7 +194,7 @@ class MailBoxFolderTileBuilder { icon: SvgPicture.asset( _mailboxNode.expandMode == ExpandMode.EXPAND ? _imagePaths.icExpandFolder - : _imagePaths.icCollapseFolder, + : DirectionUtils.isDirectionRTLByLanguage(context) ? _imagePaths.icBack : _imagePaths.icCollapseFolder, colorFilter: _mailboxNode.item.allowedToDisplay ? AppColor.primaryColor.asFilter() : AppColor.colorIconUnSubscribedMailbox.asFilter(), @@ -213,7 +213,7 @@ class MailBoxFolderTileBuilder { const SizedBox(width: 32), Transform( transform: Matrix4.translationValues( - AppUtils.isDirectionRTL(context) ? 0.0 : -4.0, + DirectionUtils.isDirectionRTLByLanguage(context) ? 0.0 : -4.0, 0.0, 0.0 ), @@ -223,16 +223,13 @@ class MailBoxFolderTileBuilder { } Widget _buildTrailingItemForMailboxView(BuildContext context) { - if (BuildUtils.isWeb) { + if (PlatformInfo.isWeb) { if (isHoverItem) { return _buildMenuIcon(context); } else if (_mailboxNode.item.getCountUnReadEmails().isNotEmpty && _mailboxNode.item.matchCountingRules()) { return Padding( - padding: EdgeInsets.only( - right: AppUtils.isDirectionRTL(context) ? 0 : 10, - left: AppUtils.isDirectionRTL(context) ? 10 : 0, - ), + padding: const EdgeInsetsDirectional.only(start: 10), child: _buildCounter(), ); } else { @@ -241,10 +238,7 @@ class MailBoxFolderTileBuilder { } else { if (_mailboxNode.hasChildren()) { return Padding( - padding: EdgeInsets.only( - right: AppUtils.isDirectionRTL(context) ? 0 : 12, - left: AppUtils.isDirectionRTL(context) ? 12 : 0, - ), + padding: const EdgeInsetsDirectional.only(start: 12), child: Row( children: [ if (_mailboxNode.item.getCountUnReadEmails().isNotEmpty @@ -256,10 +250,7 @@ class MailBoxFolderTileBuilder { } else if (_mailboxNode.item.getCountUnReadEmails().isNotEmpty && _mailboxNode.item.matchCountingRules()) { return Padding( - padding: EdgeInsets.only( - right: AppUtils.isDirectionRTL(context) ? 0 : 12, - left: AppUtils.isDirectionRTL(context) ? 12 : 0, - ), + padding: const EdgeInsetsDirectional.only(start: 12), child: _buildCounter(), ); } else { @@ -269,7 +260,7 @@ class MailBoxFolderTileBuilder { } Widget _buildLeadingIcon() { - if (BuildUtils.isWeb) { + if (PlatformInfo.isWeb) { return _buildLeadingIconTeamMailboxes(); } else { return allSelectMode == SelectMode.ACTIVE @@ -346,17 +337,14 @@ class MailBoxFolderTileBuilder { Widget _buildMailboxIcon() { return SvgPicture.asset(_mailboxNode.item.getMailboxIcon(_imagePaths), - width: BuildUtils.isWeb ? 20 : 24, - height: BuildUtils.isWeb ? 20 : 24, + width: PlatformInfo.isWeb ? 20 : 24, + height: PlatformInfo.isWeb ? 20 : 24, fit: BoxFit.fill); } Widget _buildMenuIcon(BuildContext context) { return Padding( - padding: EdgeInsets.only( - right: AppUtils.isDirectionRTL(context) ? 0 : 8, - left: AppUtils.isDirectionRTL(context) ? 8 : 0, - ), + padding: const EdgeInsetsDirectional.only(start: 8), child: InkWell( onTapDown: (detail) { final screenSize = MediaQuery.of(_context).size; @@ -384,8 +372,8 @@ class MailBoxFolderTileBuilder { _mailboxNode.selectMode == SelectMode.ACTIVE ? _imagePaths.icSelected : _imagePaths.icUnSelected, - width: BuildUtils.isWeb ? 20 : 24, - height: BuildUtils.isWeb ? 20 : 24, + width: PlatformInfo.isWeb ? 20 : 24, + height: PlatformInfo.isWeb ? 20 : 24, fit: BoxFit.fill) ); } diff --git a/lib/features/mailbox/presentation/widgets/user_information_widget_builder.dart b/lib/features/mailbox/presentation/widgets/user_information_widget_builder.dart index a731fec321..b0de09f18b 100644 --- a/lib/features/mailbox/presentation/widgets/user_information_widget_builder.dart +++ b/lib/features/mailbox/presentation/widgets/user_information_widget_builder.dart @@ -4,13 +4,13 @@ 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'; -import 'package:flutter/foundation.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'; -import 'package:get/get_utils/src/platform/platform.dart'; -import 'package:model/model.dart'; +import 'package:model/user/user_profile.dart'; +import 'package:tmail_ui_user/features/base/widget/material_text_button.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; -import 'package:tmail_ui_user/main/utils/app_utils.dart'; typedef OnSubtitleClick = void Function(); @@ -18,8 +18,9 @@ class UserInformationWidgetBuilder extends StatelessWidget { final ImagePaths _imagePaths; final UserProfile? _userProfile; final String? subtitle; - final EdgeInsets? titlePadding; + final EdgeInsetsGeometry? titlePadding; final OnSubtitleClick? onSubtitleClick; + final EdgeInsetsGeometry? padding; const UserInformationWidgetBuilder( this._imagePaths, @@ -29,16 +30,14 @@ class UserInformationWidgetBuilder extends StatelessWidget { this.subtitle, this.titlePadding, this.onSubtitleClick, + this.padding, } ) : super(key: key); @override Widget build(BuildContext context) { - return Container( - key: const Key('user_information_widget'), - color: Colors.transparent, - padding: EdgeInsets.zero, - margin: EdgeInsets.zero, + return Padding( + padding: padding ?? const EdgeInsetsDirectional.only(start: 16, end: 4, top: 16, bottom: 16), child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [ (AvatarBuilder() ..text(_userProfile != null ? _userProfile!.getAvatarText() : '') @@ -47,62 +46,40 @@ class UserInformationWidgetBuilder extends StatelessWidget { ..addBoxShadows([const BoxShadow( color: AppColor.colorShadowBgContentEmail, spreadRadius: 1, blurRadius: 1, offset: Offset(0, 0.5))]) - ..size(GetPlatform.isWeb ? 48 : 56)) + ..size(PlatformInfo.isWeb ? 48 : 56)) .build(), + const SizedBox(width: 16), Expanded(child: Column( - mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ - Padding( - padding: titlePadding ?? EdgeInsets.only( - left: AppUtils.isDirectionRTL(context) ? 0 : 16, - right: AppUtils.isDirectionRTL(context) ? 16 : 0, - top: 10 - ), - child: Text( - _userProfile != null ? '${_userProfile?.email}'.withUnicodeCharacter : '', - maxLines: 1, - overflow: CommonTextStyle.defaultTextOverFlow, - softWrap: CommonTextStyle.defaultSoftWrap, - style: const TextStyle(fontSize: 17, color: AppColor.colorNameEmail, fontWeight: FontWeight.w600) - ) + Text( + _userProfile != null ? '${_userProfile?.email}'.withUnicodeCharacter : '', + maxLines: 1, + overflow: CommonTextStyle.defaultTextOverFlow, + softWrap: CommonTextStyle.defaultSoftWrap, + style: const TextStyle( + fontSize: 17, + color: AppColor.colorNameEmail, + fontWeight: FontWeight.w600 + ) ), - subtitle != null - ? Padding( - padding: EdgeInsets.only( - left: AppUtils.isDirectionRTL(context) ? 0 : 10, - right: AppUtils.isDirectionRTL(context) ? 10 : 0 - ), - child: Material( - borderRadius: BorderRadius.circular(20), - color: Colors.transparent, - child: Align( - alignment: Alignment.centerLeft, - child: TextButton( - onPressed: () => onSubtitleClick?.call(), - child: Text( - AppLocalizations.of(context).manage_account, - style: const TextStyle(fontSize: 14, color: AppColor.colorTextButton), - ), - ) - ) - ) - ) - : const SizedBox.shrink() + const SizedBox(height: 10), + if (subtitle != null) + MaterialTextButton( + label: AppLocalizations.of(context).manage_account, + onTap: onSubtitleClick, + borderRadius: 20, + padding: const EdgeInsetsDirectional.symmetric(horizontal: 8, vertical: 8), + customStyle: const TextStyle(fontSize: 14, color: AppColor.colorTextButton), + ) ])), - if (!kIsWeb) - Transform( - transform: Matrix4.translationValues( - AppUtils.isDirectionRTL(context) ? -14.0 : 14.0, - 0.0, - 0.0 - ), - child: IconButton( - icon: SvgPicture.asset( - AppUtils.isDirectionRTL(context) ? _imagePaths.icBack : _imagePaths.icCollapseFolder, - fit: BoxFit.fill, - colorFilter: AppColor.colorCollapseMailbox.asFilter()), - onPressed: () => {})) + if (PlatformInfo.isMobile) + SvgPicture.asset( + DirectionUtils.isDirectionRTLByLanguage(context) ? _imagePaths.icBack : _imagePaths.icCollapseFolder, + fit: BoxFit.fill, + colorFilter: AppColor.colorCollapseMailbox.asFilter() + ), + const SizedBox(width: 16), ]), ); } diff --git a/lib/features/mailbox_creator/presentation/mailbox_creator_view.dart b/lib/features/mailbox_creator/presentation/mailbox_creator_view.dart index 5893de1141..fd7fe29c24 100644 --- a/lib/features/mailbox_creator/presentation/mailbox_creator_view.dart +++ b/lib/features/mailbox_creator/presentation/mailbox_creator_view.dart @@ -181,7 +181,7 @@ class MailboxCreatorView extends GetWidget { IconButton( color: AppColor.primaryColor, icon: SvgPicture.asset( - _imagePaths.icCollapseFolder, + DirectionUtils.isDirectionRTLByLanguage(context) ? _imagePaths.icBack : _imagePaths.icCollapseFolder, colorFilter: AppColor.colorCollapseMailbox.asFilter(), fit: BoxFit.fill), onPressed: () => controller.selectMailboxLocation(context)) diff --git a/lib/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_list_dashboard_item.dart b/lib/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_list_dashboard_item.dart index c64ff856cc..b095237c65 100644 --- a/lib/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_list_dashboard_item.dart +++ b/lib/features/mailbox_dashboard/presentation/widgets/app_dashboard/app_list_dashboard_item.dart @@ -22,14 +22,14 @@ class AppListDashboardItem extends StatelessWidget { final imagePaths = Get.find(); return SloganBuilder( sizeLogo: 32, - paddingText: const EdgeInsets.only(left: 12), + paddingText: const EdgeInsetsDirectional.only(start: 12), text: app.appName, textAlign: TextAlign.center, textStyle: const TextStyle(fontSize: 17, fontWeight: FontWeight.w500, color: AppColor.colorNameEmail), logo: !app.iconName.endsWith('svg') ? imagePaths.getConfigurationImagePath(app.iconName) : null, logoSVG: app.iconName.endsWith('svg') ? imagePaths.getConfigurationImagePath(app.iconName) : null, onTapCallback: () => _openApp(context, app), - padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 20), + padding: const EdgeInsetsDirectional.symmetric(vertical: 12, horizontal: 20), hoverColor: AppColor.colorBgMailboxSelected ); } diff --git a/lib/features/manage_account/presentation/mailbox_visibility/widgets/mailbox_visibility_folder_tile_builder.dart b/lib/features/manage_account/presentation/mailbox_visibility/widgets/mailbox_visibility_folder_tile_builder.dart index ffbdc24e95..52f8028644 100644 --- a/lib/features/manage_account/presentation/mailbox_visibility/widgets/mailbox_visibility_folder_tile_builder.dart +++ b/lib/features/manage_account/presentation/mailbox_visibility/widgets/mailbox_visibility_folder_tile_builder.dart @@ -2,6 +2,7 @@ import 'package:core/presentation/extensions/color_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'; +import 'package:core/utils/direction_utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:model/mailbox/expand_mode.dart'; @@ -62,7 +63,7 @@ class MailBoxVisibilityFolderTileBuilder extends StatelessWidget { icon: SvgPicture.asset( _mailboxNode.expandMode == ExpandMode.EXPAND ? _imagePaths.icExpandFolder - : _imagePaths.icCollapseFolder, + : DirectionUtils.isDirectionRTLByLanguage(context) ? _imagePaths.icBack : _imagePaths.icCollapseFolder, colorFilter: _mailboxNode.item.allowedToDisplay ? AppColor.primaryColor.asFilter() : AppColor.colorIconUnSubscribedMailbox.asFilter(), diff --git a/lib/features/manage_account/presentation/menu/settings/settings_view.dart b/lib/features/manage_account/presentation/menu/settings/settings_view.dart index 10c23d7550..bc90407a69 100644 --- a/lib/features/manage_account/presentation/menu/settings/settings_view.dart +++ b/lib/features/manage_account/presentation/menu/settings/settings_view.dart @@ -3,6 +3,7 @@ import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/utils/style_utils.dart'; import 'package:core/presentation/views/button/icon_button_web.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'; @@ -136,7 +137,7 @@ class SettingsView extends GetWidget { padding: const EdgeInsets.symmetric(horizontal: 4), child: Row(mainAxisSize: MainAxisSize.min, children: [ SvgPicture.asset( - AppUtils.isDirectionRTL(context) + DirectionUtils.isDirectionRTLByLanguage(context) ? _imagePaths.icCollapseFolder : _imagePaths.icBack, colorFilter: AppColor.colorTextButton.asFilter(), diff --git a/lib/features/manage_account/presentation/menu/widgets/setting_first_level_tile_builder.dart b/lib/features/manage_account/presentation/menu/widgets/setting_first_level_tile_builder.dart index faaa31a7b2..34bf50ebc5 100644 --- a/lib/features/manage_account/presentation/menu/widgets/setting_first_level_tile_builder.dart +++ b/lib/features/manage_account/presentation/menu/widgets/setting_first_level_tile_builder.dart @@ -2,6 +2,7 @@ import 'package:core/presentation/extensions/color_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'; +import 'package:core/utils/direction_utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:get/get.dart'; @@ -85,7 +86,7 @@ class SettingFirstLevelTileBuilder extends StatelessWidget { left: AppUtils.isDirectionRTL(context) ? SettingsUtils.getHorizontalPadding(context, _responsiveUtils) : 0, ), icon: SvgPicture.asset( - AppUtils.isDirectionRTL(context) ? _imagePath.icBack : _imagePath.icCollapseFolder, + DirectionUtils.isDirectionRTLByLanguage(context) ? _imagePath.icBack : _imagePath.icCollapseFolder, fit: BoxFit.fill, colorFilter: AppColor.colorCollapseMailbox.asFilter()), onPressed: clickAction diff --git a/lib/features/search/email/presentation/search_email_view.dart b/lib/features/search/email/presentation/search_email_view.dart index 6be31d523e..2a68e2b0db 100644 --- a/lib/features/search/email/presentation/search_email_view.dart +++ b/lib/features/search/email/presentation/search_email_view.dart @@ -31,7 +31,6 @@ import 'package:tmail_ui_user/features/thread/domain/state/search_more_email_sta import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/features/thread/presentation/widgets/email_tile_builder.dart' if (dart.library.html) 'package:tmail_ui_user/features/thread/presentation/widgets/email_tile_web_builder.dart'; -import 'package:tmail_ui_user/main/utils/app_utils.dart'; class SearchEmailView extends GetWidget with AppLoaderMixin { @@ -111,7 +110,7 @@ class SearchEmailView extends GetWidget children: [ buildIconWeb( icon: SvgPicture.asset( - AppUtils.isDirectionRTL(context) ? _imagePaths.icCollapseFolder : _imagePaths.icBack, + DirectionUtils.isDirectionRTLByLanguage(context) ? _imagePaths.icCollapseFolder : _imagePaths.icBack, colorFilter: AppColor.colorTextButton.asFilter(), fit: BoxFit.fill ), diff --git a/lib/features/sending_queue/presentation/widgets/app_bar_sending_queue_widget.dart b/lib/features/sending_queue/presentation/widgets/app_bar_sending_queue_widget.dart index d78098b00a..61f63c2f8f 100644 --- a/lib/features/sending_queue/presentation/widgets/app_bar_sending_queue_widget.dart +++ b/lib/features/sending_queue/presentation/widgets/app_bar_sending_queue_widget.dart @@ -4,6 +4,7 @@ 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'; import 'package:core/utils/app_logger.dart'; +import 'package:core/utils/direction_utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; @@ -11,7 +12,6 @@ import 'package:model/mailbox/select_mode.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/model/sending_email.dart'; import 'package:tmail_ui_user/features/sending_queue/presentation/utils/sending_queue_utils.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; -import 'package:tmail_ui_user/main/utils/app_utils.dart'; class AppBarSendingQueueWidget extends StatelessWidget { @@ -65,7 +65,7 @@ class AppBarSendingQueueWidget extends StatelessWidget { mainAxisSize: MainAxisSize.min, children: [ SvgPicture.asset( - AppUtils.isDirectionRTL(context) ? imagePaths.icCollapseFolder : imagePaths.icBack, + DirectionUtils.isDirectionRTLByLanguage(context) ? imagePaths.icCollapseFolder : imagePaths.icBack, colorFilter: AppColor.colorTextButton.asFilter(), fit: BoxFit.fill ),