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: https://github.com/facebook/react-native/pull/24069

Differential Revision: D14541569

Pulled By: cpojer

fbshipit-source-id: 5c104d8bd666e1270d5410216c7f2efa6152692a
This commit is contained in:
Dulmandakh
2019-03-20 11:21:12 -07:00
committed by Facebook Github Bot
parent 7fce997ea5
commit b3c74967ca
4 changed files with 24 additions and 23 deletions

View File

@@ -315,10 +315,10 @@ public abstract class ReactBaseTextShadowNode extends LayoutShadowNode {
private int getTextAlign() {
int textAlign = mTextAlign;
if (getLayoutDirection() == YogaDirection.RTL) {
if (textAlign == Gravity.RIGHT) {
textAlign = Gravity.LEFT;
} else if (textAlign == Gravity.LEFT) {
textAlign = Gravity.RIGHT;
if (textAlign == Gravity.END) {
textAlign = Gravity.START;
} else if (textAlign == Gravity.START) {
textAlign = Gravity.END;
}
}
return textAlign;
@@ -364,7 +364,7 @@ public abstract class ReactBaseTextShadowNode extends LayoutShadowNode {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mJustificationMode = Layout.JUSTIFICATION_MODE_INTER_WORD;
}
mTextAlign = Gravity.LEFT;
mTextAlign = Gravity.START;
} else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mJustificationMode = Layout.JUSTIFICATION_MODE_NONE;
@@ -373,9 +373,9 @@ public abstract class ReactBaseTextShadowNode extends LayoutShadowNode {
if (textAlign == null || "auto".equals(textAlign)) {
mTextAlign = Gravity.NO_GRAVITY;
} else if ("left".equals(textAlign)) {
mTextAlign = Gravity.LEFT;
mTextAlign = Gravity.START;
} else if ("right".equals(textAlign)) {
mTextAlign = Gravity.RIGHT;
mTextAlign = Gravity.END;
} else if ("center".equals(textAlign)) {
mTextAlign = Gravity.CENTER_HORIZONTAL;
} else {

View File

@@ -76,10 +76,10 @@ public class ReactTextShadowNode extends ReactBaseTextShadowNode {
Layout.Alignment alignment = Layout.Alignment.ALIGN_NORMAL;
switch (getTextAlign()) {
case Gravity.LEFT:
case Gravity.START:
alignment = Layout.Alignment.ALIGN_NORMAL;
break;
case Gravity.RIGHT:
case Gravity.END:
alignment = Layout.Alignment.ALIGN_OPPOSITE;
break;
case Gravity.CENTER_HORIZONTAL:
@@ -179,10 +179,10 @@ public class ReactTextShadowNode extends ReactBaseTextShadowNode {
private int getTextAlign() {
int textAlign = mTextAlign;
if (getLayoutDirection() == YogaDirection.RTL) {
if (textAlign == Gravity.RIGHT) {
textAlign = Gravity.LEFT;
} else if (textAlign == Gravity.LEFT) {
textAlign = Gravity.RIGHT;
if (textAlign == Gravity.END) {
textAlign = Gravity.START;
} else if (textAlign == Gravity.START) {
textAlign = Gravity.END;
}
}
return textAlign;

View File

@@ -164,10 +164,10 @@ public class TextAttributeProps {
public int getTextAlign() {
int textAlign = mTextAlign;
if (getLayoutDirection() == YogaDirection.RTL) {
if (textAlign == Gravity.RIGHT) {
textAlign = Gravity.LEFT;
} else if (textAlign == Gravity.LEFT) {
textAlign = Gravity.RIGHT;
if (textAlign == Gravity.END) {
textAlign = Gravity.START;
} else if (textAlign == Gravity.START) {
textAlign = Gravity.END;
}
}
return textAlign;
@@ -210,7 +210,7 @@ public class TextAttributeProps {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mJustificationMode = Layout.JUSTIFICATION_MODE_INTER_WORD;
}
mTextAlign = Gravity.LEFT;
mTextAlign = Gravity.START;
} else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mJustificationMode = Layout.JUSTIFICATION_MODE_NONE;
@@ -219,9 +219,9 @@ public class TextAttributeProps {
if (textAlign == null || "auto".equals(textAlign)) {
mTextAlign = Gravity.NO_GRAVITY;
} else if ("left".equals(textAlign)) {
mTextAlign = Gravity.LEFT;
mTextAlign = Gravity.START;
} else if ("right".equals(textAlign)) {
mTextAlign = Gravity.RIGHT;
mTextAlign = Gravity.END;
} else if ("center".equals(textAlign)) {
mTextAlign = Gravity.CENTER_HORIZONTAL;
} else {

View File

@@ -7,6 +7,7 @@
package com.facebook.react.views.textinput;
import android.annotation.TargetApi;
import android.graphics.PorterDuff;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
@@ -478,7 +479,7 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
view.setJustificationMode(Layout.JUSTIFICATION_MODE_INTER_WORD);
}
view.setGravityHorizontal(Gravity.LEFT);
view.setGravityHorizontal(Gravity.START);
} else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
view.setJustificationMode(Layout.JUSTIFICATION_MODE_NONE);
@@ -487,9 +488,9 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
if (textAlign == null || "auto".equals(textAlign)) {
view.setGravityHorizontal(Gravity.NO_GRAVITY);
} else if ("left".equals(textAlign)) {
view.setGravityHorizontal(Gravity.LEFT);
view.setGravityHorizontal(Gravity.START);
} else if ("right".equals(textAlign)) {
view.setGravityHorizontal(Gravity.RIGHT);
view.setGravityHorizontal(Gravity.END);
} else if ("center".equals(textAlign)) {
view.setGravityHorizontal(Gravity.CENTER_HORIZONTAL);
} else {