1414import java .util .List ;
1515
1616import com .facebook .csslayout .CSSLayoutContext ;
17+ import com .facebook .csslayout .CSSDirection ;
1718import com .facebook .infer .annotation .Assertions ;
1819import com .facebook .react .animation .Animation ;
1920import com .facebook .react .bridge .Arguments ;
2324import com .facebook .react .bridge .ReadableMap ;
2425import com .facebook .react .bridge .UiThreadUtil ;
2526import com .facebook .react .bridge .WritableArray ;
27+ import com .facebook .react .modules .i18nmanager .I18nUtil ;
2628import com .facebook .react .uimanager .debug .NotThreadSafeViewHierarchyUpdateDebugListener ;
2729import com .facebook .react .uimanager .events .EventDispatcher ;
2830import 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