From df2b9e14d67b0cfbbde7b0f5a5aebb091f670614 Mon Sep 17 00:00:00 2001 From: Alex Chau Date: Wed, 18 Aug 2021 18:39:46 +0100 Subject: [PATCH] Fix animation problem when swipeing up app to screen edge and release - Consider scroll diff between currentPage and primary scroll when calculating adjacent page offset - Removed setEnableFreeScroll call in onPrepareGestureAnimation that calls setCurrentPage and causes jumping Fixes: 197012570 Fixes: 195740577 Test: Swipe up from app to end of screen, adjacent task should come from screen edge, and app should snap smoothly to position Test: Swipe up from app, scroll immediately, free scroll should be enabled Test: Swipe up immediately after quick switch, task thumbnails are loaded Change-Id: Id88266634183dfcb18d5ba8a803883b7d6f50ab4 Merged-In: I1964b8c3bd82b22396340d2352833b2aee73a6fc (cherry picked from commit 8ebd11af143b09c5892810d6f8d2e1dfda888864) --- .../src/com/android/quickstep/views/RecentsView.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index fa4d6a1003..11a4884827 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -1764,8 +1764,6 @@ public abstract class RecentsView -1) { // When there is a midpoint reference task, adjacent tasks have less distance to travel - // to reach offscreen. Offset the task position to the task's starting point. - int midpointScroll = getScrollForPage(midpointIndex); + // to reach offscreen. Offset the task position to the task's starting point, and offset + // by current page's scroll diff. + int midpointScroll = getScrollForPage(midpointIndex) + + mOrientationHandler.getPrimaryScroll(this) - getScrollForPage(mCurrentPage); + getPersistentChildPosition(midpointIndex, midpointScroll, taskPosition); float midpointStart = mOrientationHandler.getStart(taskPosition);