14
14
import java .util .List ;
15
15
16
16
import com .facebook .csslayout .CSSLayoutContext ;
17
+ import com .facebook .csslayout .CSSDirection ;
17
18
import com .facebook .infer .annotation .Assertions ;
18
19
import com .facebook .react .animation .Animation ;
19
20
import com .facebook .react .bridge .Arguments ;
23
24
import com .facebook .react .bridge .ReadableMap ;
24
25
import com .facebook .react .bridge .UiThreadUtil ;
25
26
import com .facebook .react .bridge .WritableArray ;
27
+ import com .facebook .react .modules .i18nmanager .I18nUtil ;
26
28
import com .facebook .react .uimanager .debug .NotThreadSafeViewHierarchyUpdateDebugListener ;
27
29
import com .facebook .react .uimanager .events .EventDispatcher ;
28
30
import com .facebook .systrace .Systrace ;
@@ -40,20 +42,24 @@ public class UIImplementation {
40
42
private final UIViewOperationQueue mOperationsQueue ;
41
43
private final NativeViewHierarchyOptimizer mNativeViewHierarchyOptimizer ;
42
44
private final int [] mMeasureBuffer = new int [4 ];
45
+ private final ReactApplicationContext mReactContext ;
43
46
44
47
public UIImplementation (ReactApplicationContext reactContext , List <ViewManager > viewManagers ) {
45
48
this (reactContext , new ViewManagerRegistry (viewManagers ));
46
49
}
47
50
48
51
private UIImplementation (ReactApplicationContext reactContext , ViewManagerRegistry viewManagers ) {
49
52
this (
53
+ reactContext ,
50
54
viewManagers ,
51
55
new UIViewOperationQueue (reactContext , new NativeViewHierarchyManager (viewManagers )));
52
56
}
53
57
54
58
protected UIImplementation (
59
+ ReactApplicationContext reactContext ,
55
60
ViewManagerRegistry viewManagers ,
56
61
UIViewOperationQueue operationsQueue ) {
62
+ mReactContext = reactContext ;
57
63
mViewManagers = viewManagers ;
58
64
mOperationsQueue = operationsQueue ;
59
65
mNativeViewHierarchyOptimizer = new NativeViewHierarchyOptimizer (
@@ -63,6 +69,10 @@ protected UIImplementation(
63
69
64
70
protected ReactShadowNode createRootShadowNode () {
65
71
ReactShadowNode rootCSSNode = new ReactShadowNode ();
72
+ I18nUtil sharedI18nUtilInstance = I18nUtil .getInstance ();
73
+ if (sharedI18nUtilInstance .isRTL (mReactContext )) {
74
+ rootCSSNode .setDirection (CSSDirection .RTL );
75
+ }
66
76
rootCSSNode .setViewClassName ("Root" );
67
77
return rootCSSNode ;
68
78
}
0 commit comments