Skip to content

Commit 700e82f

Browse files
MengjueWFacebook Github Bot 2
authored andcommitted
Provide I18n Module in OSS 3/3
Summary: expose context for I18nManagerModule and I18nUtil Reviewed By: dmmiller Differential Revision: D3575706 fbshipit-source-id: d432d3762df13f9a1b33a32eff306f88e49fe852
1 parent 0df569d commit 700e82f

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

ReactAndroid/src/main/java/com/facebook/react/uimanager/BUCK

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ android_library(
1818
react_native_target('java/com/facebook/react/animation:animation'),
1919
react_native_target('java/com/facebook/react/bridge:bridge'),
2020
react_native_target('java/com/facebook/react/common:common'),
21+
react_native_target('java/com/facebook/react/modules/i18nmanager:i18nmanager'),
2122
react_native_target('java/com/facebook/react/touch:touch'),
2223
react_native_target('java/com/facebook/react/uimanager/annotations:annotations'),
2324
],

ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.List;
1515

1616
import com.facebook.csslayout.CSSLayoutContext;
17+
import com.facebook.csslayout.CSSDirection;
1718
import com.facebook.infer.annotation.Assertions;
1819
import com.facebook.react.animation.Animation;
1920
import com.facebook.react.bridge.Arguments;
@@ -23,6 +24,7 @@
2324
import com.facebook.react.bridge.ReadableMap;
2425
import com.facebook.react.bridge.UiThreadUtil;
2526
import com.facebook.react.bridge.WritableArray;
27+
import com.facebook.react.modules.i18nmanager.I18nUtil;
2628
import com.facebook.react.uimanager.debug.NotThreadSafeViewHierarchyUpdateDebugListener;
2729
import com.facebook.react.uimanager.events.EventDispatcher;
2830
import com.facebook.systrace.Systrace;
@@ -40,20 +42,24 @@ public class UIImplementation {
4042
private final UIViewOperationQueue mOperationsQueue;
4143
private final NativeViewHierarchyOptimizer mNativeViewHierarchyOptimizer;
4244
private final int[] mMeasureBuffer = new int[4];
45+
private final ReactApplicationContext mReactContext;
4346

4447
public UIImplementation(ReactApplicationContext reactContext, List<ViewManager> viewManagers) {
4548
this(reactContext, new ViewManagerRegistry(viewManagers));
4649
}
4750

4851
private UIImplementation(ReactApplicationContext reactContext, ViewManagerRegistry viewManagers) {
4952
this(
53+
reactContext,
5054
viewManagers,
5155
new UIViewOperationQueue(reactContext, new NativeViewHierarchyManager(viewManagers)));
5256
}
5357

5458
protected UIImplementation(
59+
ReactApplicationContext reactContext,
5560
ViewManagerRegistry viewManagers,
5661
UIViewOperationQueue operationsQueue) {
62+
mReactContext = reactContext;
5763
mViewManagers = viewManagers;
5864
mOperationsQueue = operationsQueue;
5965
mNativeViewHierarchyOptimizer = new NativeViewHierarchyOptimizer(
@@ -63,6 +69,10 @@ protected UIImplementation(
6369

6470
protected ReactShadowNode createRootShadowNode() {
6571
ReactShadowNode rootCSSNode = new ReactShadowNode();
72+
I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
73+
if (sharedI18nUtilInstance.isRTL(mReactContext)) {
74+
rootCSSNode.setDirection(CSSDirection.RTL);
75+
}
6676
rootCSSNode.setViewClassName("Root");
6777
return rootCSSNode;
6878
}

0 commit comments

Comments
 (0)