Provide I18n Module in OSS 3/3

Summary: expose context for I18nManagerModule and I18nUtil

Reviewed By: dmmiller

Differential Revision: D3575706

fbshipit-source-id: d432d3762df13f9a1b33a32eff306f88e49fe852
This commit is contained in:
Mengjue Wang 2016-07-20 15:25:57 -07:00 committed by Facebook Github Bot 2
parent 0df569dc7f
commit 700e82f663
2 changed files with 11 additions and 0 deletions

View File

@ -18,6 +18,7 @@ android_library(
react_native_target('java/com/facebook/react/animation:animation'), react_native_target('java/com/facebook/react/animation:animation'),
react_native_target('java/com/facebook/react/bridge:bridge'), react_native_target('java/com/facebook/react/bridge:bridge'),
react_native_target('java/com/facebook/react/common:common'), react_native_target('java/com/facebook/react/common:common'),
react_native_target('java/com/facebook/react/modules/i18nmanager:i18nmanager'),
react_native_target('java/com/facebook/react/touch:touch'), react_native_target('java/com/facebook/react/touch:touch'),
react_native_target('java/com/facebook/react/uimanager/annotations:annotations'), react_native_target('java/com/facebook/react/uimanager/annotations:annotations'),
], ],

View File

@ -14,6 +14,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import com.facebook.csslayout.CSSLayoutContext; import com.facebook.csslayout.CSSLayoutContext;
import com.facebook.csslayout.CSSDirection;
import com.facebook.infer.annotation.Assertions; import com.facebook.infer.annotation.Assertions;
import com.facebook.react.animation.Animation; import com.facebook.react.animation.Animation;
import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.Arguments;
@ -23,6 +24,7 @@ import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.UiThreadUtil; import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.bridge.WritableArray; import com.facebook.react.bridge.WritableArray;
import com.facebook.react.modules.i18nmanager.I18nUtil;
import com.facebook.react.uimanager.debug.NotThreadSafeViewHierarchyUpdateDebugListener; import com.facebook.react.uimanager.debug.NotThreadSafeViewHierarchyUpdateDebugListener;
import com.facebook.react.uimanager.events.EventDispatcher; import com.facebook.react.uimanager.events.EventDispatcher;
import com.facebook.systrace.Systrace; import com.facebook.systrace.Systrace;
@ -40,6 +42,7 @@ public class UIImplementation {
private final UIViewOperationQueue mOperationsQueue; private final UIViewOperationQueue mOperationsQueue;
private final NativeViewHierarchyOptimizer mNativeViewHierarchyOptimizer; private final NativeViewHierarchyOptimizer mNativeViewHierarchyOptimizer;
private final int[] mMeasureBuffer = new int[4]; private final int[] mMeasureBuffer = new int[4];
private final ReactApplicationContext mReactContext;
public UIImplementation(ReactApplicationContext reactContext, List<ViewManager> viewManagers) { public UIImplementation(ReactApplicationContext reactContext, List<ViewManager> viewManagers) {
this(reactContext, new ViewManagerRegistry(viewManagers)); this(reactContext, new ViewManagerRegistry(viewManagers));
@ -47,13 +50,16 @@ public class UIImplementation {
private UIImplementation(ReactApplicationContext reactContext, ViewManagerRegistry viewManagers) { private UIImplementation(ReactApplicationContext reactContext, ViewManagerRegistry viewManagers) {
this( this(
reactContext,
viewManagers, viewManagers,
new UIViewOperationQueue(reactContext, new NativeViewHierarchyManager(viewManagers))); new UIViewOperationQueue(reactContext, new NativeViewHierarchyManager(viewManagers)));
} }
protected UIImplementation( protected UIImplementation(
ReactApplicationContext reactContext,
ViewManagerRegistry viewManagers, ViewManagerRegistry viewManagers,
UIViewOperationQueue operationsQueue) { UIViewOperationQueue operationsQueue) {
mReactContext = reactContext;
mViewManagers = viewManagers; mViewManagers = viewManagers;
mOperationsQueue = operationsQueue; mOperationsQueue = operationsQueue;
mNativeViewHierarchyOptimizer = new NativeViewHierarchyOptimizer( mNativeViewHierarchyOptimizer = new NativeViewHierarchyOptimizer(
@ -63,6 +69,10 @@ public class UIImplementation {
protected ReactShadowNode createRootShadowNode() { protected ReactShadowNode createRootShadowNode() {
ReactShadowNode rootCSSNode = new ReactShadowNode(); ReactShadowNode rootCSSNode = new ReactShadowNode();
I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance();
if (sharedI18nUtilInstance.isRTL(mReactContext)) {
rootCSSNode.setDirection(CSSDirection.RTL);
}
rootCSSNode.setViewClassName("Root"); rootCSSNode.setViewClassName("Root");
return rootCSSNode; return rootCSSNode;
} }