diff --git a/core/java/android/widget/SmartSelectSprite.java b/core/java/android/widget/SmartSelectSprite.java index 93177cf7c8a9a..37ede60f243e6 100644 --- a/core/java/android/widget/SmartSelectSprite.java +++ b/core/java/android/widget/SmartSelectSprite.java @@ -374,21 +374,21 @@ final class SmartSelectSprite { final List shapes = new LinkedList<>(); final List cornerAnimators = new LinkedList<>(); - final RectF centerRectangle = destinationRectangles - .stream() - .filter((r) -> contains(r, start)) - .findFirst() - .orElseThrow(() -> new IllegalArgumentException( - "Center point is not inside any of the rectangles!")); + RectF centerRectangle = null; int startingOffset = 0; for (RectF rectangle : destinationRectangles) { - if (rectangle.equals(centerRectangle)) { + if (contains(rectangle, start)) { + centerRectangle = rectangle; break; } startingOffset += rectangle.width(); } + if (centerRectangle == null) { + throw new IllegalArgumentException("Center point is not inside any of the rectangles!"); + } + startingOffset += start.x - centerRectangle.left; final float centerRectangleHalfHeight = centerRectangle.height() / 2;