Skip to content

Commit b3c7496

Browse files
dulmandakhfacebook-github-bot
authored andcommitted
improve RTL (#24069)
Summary: Google recommends to use Gravity.START and Gravity.END instead of Gravity.LEFT and Gravity.RIGHT to support RTL better. [Android] [Changed] - Improve RTL support Pull Request resolved: #24069 Differential Revision: D14541569 Pulled By: cpojer fbshipit-source-id: 5c104d8bd666e1270d5410216c7f2efa6152692a
1 parent 7fce997 commit b3c7496

File tree

4 files changed

+24
-23
lines changed

4 files changed

+24
-23
lines changed

ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -315,10 +315,10 @@ public ReactBaseTextShadowNode() {
315315
private int getTextAlign() {
316316
int textAlign = mTextAlign;
317317
if (getLayoutDirection() == YogaDirection.RTL) {
318-
if (textAlign == Gravity.RIGHT) {
319-
textAlign = Gravity.LEFT;
320-
} else if (textAlign == Gravity.LEFT) {
321-
textAlign = Gravity.RIGHT;
318+
if (textAlign == Gravity.END) {
319+
textAlign = Gravity.START;
320+
} else if (textAlign == Gravity.START) {
321+
textAlign = Gravity.END;
322322
}
323323
}
324324
return textAlign;
@@ -364,7 +364,7 @@ public void setTextAlign(@Nullable String textAlign) {
364364
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
365365
mJustificationMode = Layout.JUSTIFICATION_MODE_INTER_WORD;
366366
}
367-
mTextAlign = Gravity.LEFT;
367+
mTextAlign = Gravity.START;
368368
} else {
369369
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
370370
mJustificationMode = Layout.JUSTIFICATION_MODE_NONE;
@@ -373,9 +373,9 @@ public void setTextAlign(@Nullable String textAlign) {
373373
if (textAlign == null || "auto".equals(textAlign)) {
374374
mTextAlign = Gravity.NO_GRAVITY;
375375
} else if ("left".equals(textAlign)) {
376-
mTextAlign = Gravity.LEFT;
376+
mTextAlign = Gravity.START;
377377
} else if ("right".equals(textAlign)) {
378-
mTextAlign = Gravity.RIGHT;
378+
mTextAlign = Gravity.END;
379379
} else if ("center".equals(textAlign)) {
380380
mTextAlign = Gravity.CENTER_HORIZONTAL;
381381
} else {

ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,10 @@ public long measure(
7676

7777
Layout.Alignment alignment = Layout.Alignment.ALIGN_NORMAL;
7878
switch (getTextAlign()) {
79-
case Gravity.LEFT:
79+
case Gravity.START:
8080
alignment = Layout.Alignment.ALIGN_NORMAL;
8181
break;
82-
case Gravity.RIGHT:
82+
case Gravity.END:
8383
alignment = Layout.Alignment.ALIGN_OPPOSITE;
8484
break;
8585
case Gravity.CENTER_HORIZONTAL:
@@ -179,10 +179,10 @@ private void initMeasureFunction() {
179179
private int getTextAlign() {
180180
int textAlign = mTextAlign;
181181
if (getLayoutDirection() == YogaDirection.RTL) {
182-
if (textAlign == Gravity.RIGHT) {
183-
textAlign = Gravity.LEFT;
184-
} else if (textAlign == Gravity.LEFT) {
185-
textAlign = Gravity.RIGHT;
182+
if (textAlign == Gravity.END) {
183+
textAlign = Gravity.START;
184+
} else if (textAlign == Gravity.START) {
185+
textAlign = Gravity.END;
186186
}
187187
}
188188
return textAlign;

ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -164,10 +164,10 @@ public float getEffectiveLineHeight() {
164164
public int getTextAlign() {
165165
int textAlign = mTextAlign;
166166
if (getLayoutDirection() == YogaDirection.RTL) {
167-
if (textAlign == Gravity.RIGHT) {
168-
textAlign = Gravity.LEFT;
169-
} else if (textAlign == Gravity.LEFT) {
170-
textAlign = Gravity.RIGHT;
167+
if (textAlign == Gravity.END) {
168+
textAlign = Gravity.START;
169+
} else if (textAlign == Gravity.START) {
170+
textAlign = Gravity.END;
171171
}
172172
}
173173
return textAlign;
@@ -210,7 +210,7 @@ public void setTextAlign(@Nullable String textAlign) {
210210
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
211211
mJustificationMode = Layout.JUSTIFICATION_MODE_INTER_WORD;
212212
}
213-
mTextAlign = Gravity.LEFT;
213+
mTextAlign = Gravity.START;
214214
} else {
215215
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
216216
mJustificationMode = Layout.JUSTIFICATION_MODE_NONE;
@@ -219,9 +219,9 @@ public void setTextAlign(@Nullable String textAlign) {
219219
if (textAlign == null || "auto".equals(textAlign)) {
220220
mTextAlign = Gravity.NO_GRAVITY;
221221
} else if ("left".equals(textAlign)) {
222-
mTextAlign = Gravity.LEFT;
222+
mTextAlign = Gravity.START;
223223
} else if ("right".equals(textAlign)) {
224-
mTextAlign = Gravity.RIGHT;
224+
mTextAlign = Gravity.END;
225225
} else if ("center".equals(textAlign)) {
226226
mTextAlign = Gravity.CENTER_HORIZONTAL;
227227
} else {

ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
package com.facebook.react.views.textinput;
99

10+
import android.annotation.TargetApi;
1011
import android.graphics.PorterDuff;
1112
import android.graphics.Typeface;
1213
import android.graphics.drawable.Drawable;
@@ -478,7 +479,7 @@ public void setTextAlign(ReactEditText view, @Nullable String textAlign) {
478479
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
479480
view.setJustificationMode(Layout.JUSTIFICATION_MODE_INTER_WORD);
480481
}
481-
view.setGravityHorizontal(Gravity.LEFT);
482+
view.setGravityHorizontal(Gravity.START);
482483
} else {
483484
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
484485
view.setJustificationMode(Layout.JUSTIFICATION_MODE_NONE);
@@ -487,9 +488,9 @@ public void setTextAlign(ReactEditText view, @Nullable String textAlign) {
487488
if (textAlign == null || "auto".equals(textAlign)) {
488489
view.setGravityHorizontal(Gravity.NO_GRAVITY);
489490
} else if ("left".equals(textAlign)) {
490-
view.setGravityHorizontal(Gravity.LEFT);
491+
view.setGravityHorizontal(Gravity.START);
491492
} else if ("right".equals(textAlign)) {
492-
view.setGravityHorizontal(Gravity.RIGHT);
493+
view.setGravityHorizontal(Gravity.END);
493494
} else if ("center".equals(textAlign)) {
494495
view.setGravityHorizontal(Gravity.CENTER_HORIZONTAL);
495496
} else {

0 commit comments

Comments
 (0)