Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cb2fdb8b authored by Petar Šegina's avatar Petar Šegina
Browse files

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
parent 2a791ee4
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -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;