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

Commit 47e4e9cd authored by Matt Casey's avatar Matt Casey Committed by Automerger Merge Worker
Browse files

Merge "Move ScrollView scroll capture to the center" into sc-dev am:...

Merge "Move ScrollView scroll capture to the center" into sc-dev am: 07056eaa am: ade30615 am: 911b72b2

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14752211

Change-Id: I05890761f41cb6ba1d84bff4e21cfec6032b576d
parents ce6435e3 911b72b2
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -125,10 +125,19 @@ public class ScrollViewCaptureHelper implements ScrollCaptureViewHelper<ViewGrou
                view.getScrollX() - contentView.getLeft(),
                view.getScrollY() - contentView.getTop());

        Rect input = new Rect(requestedContentBounds);

        // Expand input rect to get the requested rect to be in the center
        int remainingHeight = view.getHeight() - view.getPaddingTop()
                - view.getPaddingBottom() - input.height();
        if (remainingHeight > 0) {
            input.inset(0, -remainingHeight / 2);
        }

        // requestRect is now local to contentView as requestedContentBounds
        // contentView (and each parent in turn if possible) will be scrolled
        // (if necessary) to make all of requestedContent visible, (if possible!)
        contentView.requestRectangleOnScreen(new Rect(requestedContentBounds), true);
        contentView.requestRectangleOnScreen(input, true);

        // update new offset between starting and current scroll position
        scrollDelta = view.getScrollY() - mStartScrollY;
+8 −4
Original line number Diff line number Diff line
@@ -164,7 +164,8 @@ public class ScrollViewCaptureHelperTest {
        assertRectEquals(request, scrollResult.requestedArea);
        assertRectEquals(request, scrollResult.availableArea);
        assertRequestedRectCompletelyVisible(startScrollY, request, getVisibleRect(mContent));
        assertEquals(CAPTURE_HEIGHT, scrollResult.scrollDelta);
        assertEquals(CAPTURE_HEIGHT + (WINDOW_HEIGHT - CAPTURE_HEIGHT) / 2,
                scrollResult.scrollDelta);
    }

    @Test
@@ -182,7 +183,8 @@ public class ScrollViewCaptureHelperTest {
        assertRectEquals(request, scrollResult.requestedArea);
        assertRectEquals(request, scrollResult.availableArea);
        assertRequestedRectCompletelyVisible(startScrollY, request, getVisibleRect(mContent));
        assertEquals(-CAPTURE_HEIGHT, scrollResult.scrollDelta);
        assertEquals(-CAPTURE_HEIGHT - (WINDOW_HEIGHT - CAPTURE_HEIGHT) / 2,
                scrollResult.scrollDelta);
    }

    @Test
@@ -201,7 +203,8 @@ public class ScrollViewCaptureHelperTest {
        assertRectEquals(request, scrollResult.requestedArea);
        assertRectEquals(request, scrollResult.availableArea);
        assertRequestedRectCompletelyVisible(startScrollY, request, getVisibleRect(mContent));
        assertEquals(CAPTURE_HEIGHT, scrollResult.scrollDelta);
        assertEquals(CAPTURE_HEIGHT + (WINDOW_HEIGHT - CAPTURE_HEIGHT) / 2,
                scrollResult.scrollDelta);

    }

@@ -220,7 +223,8 @@ public class ScrollViewCaptureHelperTest {
        assertRectEquals(request, scrollResult.requestedArea);
        assertRectEquals(request, scrollResult.availableArea);
        assertRequestedRectCompletelyVisible(startScrollY, request, getVisibleRect(mContent));
        assertEquals(-CAPTURE_HEIGHT, scrollResult.scrollDelta);
        assertEquals(-CAPTURE_HEIGHT - (WINDOW_HEIGHT - CAPTURE_HEIGHT) / 2,
                scrollResult.scrollDelta);
    }

    @Test