Loading core/java/com/android/internal/view/ScrollViewCaptureHelper.java +10 −1 Original line number Diff line number Diff line Loading @@ -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; Loading core/tests/coretests/src/com/android/internal/view/ScrollViewCaptureHelperTest.java +8 −4 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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); } Loading @@ -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 Loading Loading
core/java/com/android/internal/view/ScrollViewCaptureHelper.java +10 −1 Original line number Diff line number Diff line Loading @@ -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; Loading
core/tests/coretests/src/com/android/internal/view/ScrollViewCaptureHelperTest.java +8 −4 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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); } Loading @@ -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 Loading