mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Work around crash when default colors are null
Summary: Work around crash in Android TextInput when default colors are null. This likely indicates that the Context is corrupted in some way, so this is not a permanent solution. Changelog: [Internal] Raise soft exception is default platform text color isn't defined Reviewed By: mdvacca Differential Revision: D20351080 fbshipit-source-id: d912c9348272c2f3a3b8d571d465d482060efe5a
This commit is contained in:
committed by
Facebook Github Bot
parent
08c338eebf
commit
3cc69d2e2b
+16
-1
@@ -9,6 +9,8 @@ package com.facebook.react.views.textinput;
|
||||
|
||||
import static com.facebook.react.uimanager.UIManagerHelper.getReactContext;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
@@ -35,6 +37,7 @@ import com.facebook.react.bridge.JSApplicationIllegalArgumentException;
|
||||
import com.facebook.react.bridge.JavaOnlyArray;
|
||||
import com.facebook.react.bridge.JavaOnlyMap;
|
||||
import com.facebook.react.bridge.ReactContext;
|
||||
import com.facebook.react.bridge.ReactSoftException;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.bridge.ReadableNativeMap;
|
||||
@@ -496,7 +499,19 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
@ReactProp(name = ViewProps.COLOR, customType = "Color")
|
||||
public void setColor(ReactEditText view, @Nullable Integer color) {
|
||||
if (color == null) {
|
||||
view.setTextColor(DefaultStyleValuesUtil.getDefaultTextColor(view.getContext()));
|
||||
ColorStateList defaultContextTextColor =
|
||||
DefaultStyleValuesUtil.getDefaultTextColor(view.getContext());
|
||||
|
||||
if (defaultContextTextColor != null) {
|
||||
view.setTextColor(defaultContextTextColor);
|
||||
} else {
|
||||
Context c = view.getContext();
|
||||
ReactSoftException.logSoftException(
|
||||
TAG,
|
||||
new IllegalStateException(
|
||||
"Could not get default text color from View Context: "
|
||||
+ (c != null ? c.getClass().getCanonicalName() : "null")));
|
||||
}
|
||||
} else {
|
||||
view.setTextColor(color);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user