From 37d2ee43904320733d5d53c5bff33cc03619b937 Mon Sep 17 00:00:00 2001 From: Daniyil Yakovlev Date: Mon, 4 Dec 2023 21:22:18 +0200 Subject: [PATCH] fix: flip arrow in iOS navigation tile for RTL languages --- .../tiles/platforms/ios_settings_tile.dart | 4 +++- lib/src/utils/platform_utils.dart | 20 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/src/tiles/platforms/ios_settings_tile.dart b/lib/src/tiles/platforms/ios_settings_tile.dart index 1763f0a..7a92d33 100644 --- a/lib/src/tiles/platforms/ios_settings_tile.dart +++ b/lib/src/tiles/platforms/ios_settings_tile.dart @@ -171,7 +171,9 @@ class IOSSettingsTileState extends State { data: IconTheme.of(context) .copyWith(color: theme.themeData.leadingIconsColor), child: Icon( - CupertinoIcons.chevron_forward, + PlatformUtils.languageIsRTL(context) + ? CupertinoIcons.chevron_back + : CupertinoIcons.chevron_forward, size: 18 * scaleFactor, ), ), diff --git a/lib/src/utils/platform_utils.dart b/lib/src/utils/platform_utils.dart index 826b7ad..8ff6935 100644 --- a/lib/src/utils/platform_utils.dart +++ b/lib/src/utils/platform_utils.dart @@ -48,4 +48,24 @@ class PlatformUtils { return DevicePlatform.windows; } } + + static bool languageIsRTL(BuildContext context) { + const rtlLanguages = [ + "ar", + "arc", + "dv", + "fa", + "ha", + "he", + "khw", + "ks", + "ku", + "ps", + "ur", + "yi" + ]; + final language = Localizations.localeOf(context).languageCode.toLowerCase(); + + return rtlLanguages.contains(language); + } }