From d20bde3f2ee5cce4dbe3baa01ed70a4bb7f20340 Mon Sep 17 00:00:00 2001 From: Alexander Andersson Date: Thu, 10 Mar 2016 03:01:37 -0800 Subject: [PATCH] Add missing textAlignVertical support on android textview Summary:Add missing implementation of `textAlignVertical` style prop for `Text`-component. According to the [docs](https://facebook.github.io/react-native/docs/text.html#style) it should be implemented but was only added for `TextInput` in https://github.com/facebook/react-native/commit/f453e14c8f91d00a8205e6bb06094c85281b38be. Closes https://github.com/facebook/react-native/pull/6105 Differential Revision: D3029783 Pulled By: dmmiller fb-gh-sync-id: 29bcd50a7280c890707f811bcfc7a3d5c5be5142 shipit-source-id: 29bcd50a7280c890707f811bcfc7a3d5c5be5142 --- .../react/views/text/ReactTextView.java | 22 ++++++++ .../views/text/ReactTextViewManager.java | 23 ++++++-- .../textinput/ReactTextInputPropertyTest.java | 55 +++++++++++++------ 3 files changed, 78 insertions(+), 22 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java index 8c7e7f948d..5a4cebbecf 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java @@ -13,6 +13,7 @@ import android.content.Context; import android.graphics.drawable.Drawable; import android.text.Layout; import android.text.Spanned; +import android.view.Gravity; import android.widget.TextView; import com.facebook.react.uimanager.ReactCompoundView; @@ -20,9 +21,14 @@ import com.facebook.react.uimanager.ReactCompoundView; public class ReactTextView extends TextView implements ReactCompoundView { private boolean mContainsImages; + private int mDefaultGravityHorizontal; + private int mDefaultGravityVertical; public ReactTextView(Context context) { super(context); + mDefaultGravityHorizontal = + getGravity() & (Gravity.HORIZONTAL_GRAVITY_MASK | Gravity.RELATIVE_HORIZONTAL_GRAVITY_MASK); + mDefaultGravityVertical = getGravity() & Gravity.VERTICAL_GRAVITY_MASK; } public void setText(ReactTextUpdate update) { @@ -150,4 +156,20 @@ public class ReactTextView extends TextView implements ReactCompoundView { } } } + + /* package */ void setGravityHorizontal(int gravityHorizontal) { + if (gravityHorizontal == 0) { + gravityHorizontal = mDefaultGravityHorizontal; + } + setGravity( + (getGravity() & ~Gravity.HORIZONTAL_GRAVITY_MASK & + ~Gravity.RELATIVE_HORIZONTAL_GRAVITY_MASK) | gravityHorizontal); + } + + /* package */ void setGravityVertical(int gravityVertical) { + if (gravityVertical == 0) { + gravityVertical = mDefaultGravityVertical; + } + setGravity((getGravity() & ~Gravity.VERTICAL_GRAVITY_MASK) | gravityVertical); + } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java index 2bffd39695..a1813a32af 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java @@ -58,18 +58,33 @@ public class ReactTextViewManager extends BaseViewManager