From c8eed6a3619ac45f129da426b4cc2d01a877d923 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Thu, 3 Dec 2015 04:38:07 -0800 Subject: [PATCH] RTL support added for ToolbarAndroid via "rtl" property Summary: Closes https://github.com/facebook/react-native/pull/4378 Reviewed By: svcscm Differential Revision: D2715052 Pulled By: mkonicek fb-gh-sync-id: e24f5db230cd7329911797794e5ef150f6195c4a --- .../ToolbarAndroid/ToolbarAndroid.android.js | 12 ++++++++++++ .../react/views/toolbar/ReactToolbarManager.java | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/Libraries/Components/ToolbarAndroid/ToolbarAndroid.android.js b/Libraries/Components/ToolbarAndroid/ToolbarAndroid.android.js index eb904d867a..2658361a94 100644 --- a/Libraries/Components/ToolbarAndroid/ToolbarAndroid.android.js +++ b/Libraries/Components/ToolbarAndroid/ToolbarAndroid.android.js @@ -125,6 +125,17 @@ var ToolbarAndroid = React.createClass({ * Sets the toolbar title color. */ titleColor: ReactPropTypes.string, + /** + * Used to set the toolbar direction to RTL. + * In addition to this property you need to add + * + * android:supportsRtl="true" + * + * to your application AndroidManifest.xml and then call + * `setLayoutDirection(LayoutDirection.RTL)` in your MainActivity + * `onCreate` method. + */ + rtl: ReactPropTypes.bool, /** * Used to locate this view in end-to-end tests. */ @@ -180,6 +191,7 @@ var toolbarAttributes = { logo: true, navIcon: true, overflowIcon: true, + rtl: true, subtitle: true, subtitleColor: true, title: true, diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/toolbar/ReactToolbarManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/toolbar/ReactToolbarManager.java index f55d6d8694..36aac87e73 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/toolbar/ReactToolbarManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/toolbar/ReactToolbarManager.java @@ -18,6 +18,7 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Color; import android.os.SystemClock; +import android.util.LayoutDirection; import android.view.MenuItem; import android.view.View; @@ -64,6 +65,11 @@ public class ReactToolbarManager extends ViewGroupManager { view.setOverflowIconSource(overflowIcon); } + @ReactProp(name = "rtl") + public void setRtl(ReactToolbar view, boolean rtl) { + view.setLayoutDirection(rtl ? LayoutDirection.LTR : LayoutDirection.RTL); + } + @ReactProp(name = "subtitle") public void setSubtitle(ReactToolbar view, @Nullable String subtitle) { view.setSubtitle(subtitle);