From 6310ad1e9441d532f930eb89e38300dbd973a919 Mon Sep 17 00:00:00 2001 From: Sunny Luo Date: Thu, 28 Mar 2019 22:13:08 +0800 Subject: [PATCH 1/2] Prevent crash when setting underlineColorAndroid --- .../react/views/textinput/ReactTextInputManager.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java index 5788161bd28512..b17fa9836a1ff0 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java @@ -27,6 +27,7 @@ import android.view.View; import android.view.inputmethod.EditorInfo; import android.widget.TextView; +import com.facebook.common.logging.FLog; import com.facebook.infer.annotation.Assertions; import com.facebook.react.bridge.JSApplicationIllegalArgumentException; import com.facebook.react.bridge.ReactContext; @@ -464,9 +465,14 @@ public void setUnderlineColor(ReactEditText view, @Nullable Integer underlineCol // Drawable.mutate() can sometimes crash due to an AOSP bug: // See https://code.google.com/p/android/issues/detail?id=191754 for more info Drawable background = view.getBackground(); - Drawable drawableToMutate = background.getConstantState() != null ? - background.mutate() : - background; + Drawable drawableToMutate = background; + if (background.getConstantState() != null) { + try { + drawableToMutate = background.mutate(); + } catch (NullPointerException e) { + FLog.e(TAG, "NullPointerException when setting underlineColorAndroid for TextInput", e); + } + } if (underlineColor == null) { drawableToMutate.clearColorFilter(); From 0d2efb4e2aac1092003874a239914fd994070d14 Mon Sep 17 00:00:00 2001 From: Sunny Luo Date: Tue, 2 Apr 2019 09:51:27 +0800 Subject: [PATCH 2/2] Add TAG --- .../facebook/react/views/textinput/ReactTextInputManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java index b17fa9836a1ff0..60392088f26a6a 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java @@ -65,7 +65,7 @@ */ @ReactModule(name = ReactTextInputManager.REACT_CLASS) public class ReactTextInputManager extends BaseViewManager { - + public static final String TAG = ReactTextInputManager.class.getSimpleName(); protected static final String REACT_CLASS = "AndroidTextInput"; private static final int[] SPACING_TYPES = {