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:
Родитель
08c338eebf
Коммит
3cc69d2e2b
|
@ -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);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче