Permalink
Browse files

Prevent a crash when no cursor drawable is set

Summary:
React Native 0.43 added additional functionality to setSelectionColor that also tints the cursor drawable of the View. However, some views may not have a cursor drawable set in which case, the code will crash when attempting to load a drawable with resource id 0.

We encountered this in our RN 0.45 upgrade in the Airbnb app.

lelandrichardson
Closes #14789

Differential Revision: D6386076

Pulled By: shergin

fbshipit-source-id: faa5a1edb3be8d08988f46205c0f22d17b63b5bc
  • Loading branch information...
gpeal authored and facebook-github-bot committed Nov 21, 2017
1 parent d7ab949 commit 1e18d907bfb8cc5f4f2e1a1ede0dd98aec40ab11
@@ -332,6 +332,11 @@ private void setCursorColor(ReactEditText view, @Nullable Integer color) {
cursorDrawableResField.setAccessible(true);
int drawableResId = cursorDrawableResField.getInt(view);
// The view has no cursor drawable.
if (drawableResId == 0) {
return;
}
Drawable drawable = ContextCompat.getDrawable(view.getContext(), drawableResId);
if (color != null) {
drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);

0 comments on commit 1e18d90

Please sign in to comment.