From 96de161304e2e1f9a15be983e75e5850fa8a5c7b Mon Sep 17 00:00:00 2001 From: Kevin Gozali Date: Tue, 6 Sep 2016 17:45:37 -0700 Subject: [PATCH] enable RTL layout by default for all apps Summary: We're now enabling RTL layout by default assuming the app has the proper localized assets. Previously, this was disabled by default to minimize surprise. Apps that don't want this RTL support can still manually disable them by using `RCTI18nUtil.allowRTL(false)` (iOS) or `I18nUtil.allowRTL(false)` (android) in the apps start-up logic, as outlined in the blog post: http://facebook.github.io/react-native/blog/2016/08/19/right-to-left-support-for-react-native-apps.html iOS Util function: https://github.com/facebook/react-native/blob/f0fb228ec76ed49e6ed6d786d888e8113b8959a2/React/Modules/RCTI18nUtil.m#L53 Android Util function: https://github.com/facebook/react-native/blob/380830e4aa212fb934d3fe82d971cb8a316671f8/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nUtil.java#L63 Differential Revision: D3825054 fbshipit-source-id: 88b355fef9e3847939a414f80d2285979e27af08 --- React/Modules/RCTI18nUtil.m | 9 ++++++--- .../com/facebook/react/modules/i18nmanager/I18nUtil.java | 5 +++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/React/Modules/RCTI18nUtil.m b/React/Modules/RCTI18nUtil.m index 40367574f..443c99302 100644 --- a/React/Modules/RCTI18nUtil.m +++ b/React/Modules/RCTI18nUtil.m @@ -42,12 +42,15 @@ /** * Should be used very early during app start up * Before the bridge is initialized + * @return whether the app allows RTL layout, default is true */ - (BOOL)isRTLAllowed { - BOOL rtlStatus = [[NSUserDefaults standardUserDefaults] - boolForKey:@"RCTI18nUtil_allowRTL"]; - return rtlStatus; + NSNumber *value = [[NSUserDefaults standardUserDefaults] objectForKey:@"RCTI18nUtil_allowRTL"]; + if (value == nil) { + return YES; + } + return [value boolValue]; } - (void)allowRTL:(BOOL)rtlStatus diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nUtil.java b/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nUtil.java index b6d8e7546..181e37f83 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nUtil.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nUtil.java @@ -32,7 +32,7 @@ public class I18nUtil { } public static I18nUtil getInstance() { - if(sharedI18nUtilInstance == null) { + if (sharedI18nUtilInstance == null) { sharedI18nUtilInstance = new I18nUtil(); } return sharedI18nUtilInstance; @@ -55,9 +55,10 @@ public class I18nUtil { /** * Should be used very early during app start up * Before the bridge is initialized + * @return whether the app allows RTL layout, default is true */ private boolean isRTLAllowed(Context context) { - return isPrefSet(context, KEY_FOR_PREFS_ALLOWRTL, false); + return isPrefSet(context, KEY_FOR_PREFS_ALLOWRTL, true); } public void allowRTL(Context context, boolean allowRTL) {