Replace stream operation with simple iteration
Although the stream approach is elegant, we already have a simple loop iterating over the rectangles which we can reuse for finding the starting rectangle and save the overhead of the stream / additional iteration over the rectangles. Test: manual - verify smart select still works Change-Id: I4e4195ded4268a7c18ad1b0bc352a9c273396932
This commit is contained in:
@@ -374,21 +374,21 @@ final class SmartSelectSprite {
|
||||
final List<RoundedRectangleShape> shapes = new LinkedList<>();
|
||||
final List<Animator> 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;
|
||||
|
||||
Reference in New Issue
Block a user