Skip to content

Commit

Permalink
Prevent a crash when no cursor drawable is set
Browse files Browse the repository at this point in the history
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
Gabriel Peal authored and facebook-github-bot committed Nov 21, 2017
1 parent d7ab949 commit 1e18d90
Showing 1 changed file with 5 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 1e18d90

Please sign in to comment.