Merge "launcher: fix animation for quick switch + recents" into sc-v2-dev am: 3b151d630c am: deb17f413b
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15853747
Change-Id: Ic7746f14e6f86d554860f38ec11a62cdcafeb599
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index e25a8bc..8ec600d 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -443,6 +443,7 @@
protected float mTaskViewsSecondarySplitTranslation = 0;
// Progress from 0 to 1 where 0 is a carousel and 1 is a 2 row grid.
private float mGridProgress = 0;
+ private boolean mShowAsGridLastOnLayout = false;
private final IntSet mTopRowIdSet = new IntSet();
// The GestureEndTarget that is still in progress.
@@ -2095,11 +2096,14 @@
.displayOverviewTasksAsGrid(mActivity.getDeviceProfile())) {
TaskView runningTaskView = getRunningTaskView();
float runningTaskPrimaryGridTranslation = 0;
- if (runningTaskView != null && indexOfChild(runningTaskView) != getNextPage()) {
- // Apply the gird translation to running task unless it's being snapped to.
+ if (runningTaskView != null) {
+ // Apply the grid translation to running task unless it's being snapped to
+ // and removes the current translation applied to the running task.
runningTaskPrimaryGridTranslation = mOrientationHandler.getPrimaryValue(
runningTaskView.getGridTranslationX(),
- runningTaskView.getGridTranslationY());
+ runningTaskView.getGridTranslationY())
+ - runningTaskView.getPrimaryNonGridTranslationProperty().get(
+ runningTaskView);
}
for (TaskViewSimulator tvs : taskViewSimulators) {
if (animatorSet == null) {
@@ -3556,6 +3560,8 @@
return;
}
+ mShowAsGridLastOnLayout = showAsGrid();
+
super.onLayout(changed, left, top, right, bottom);
updateEmptyStateUi(changed);
@@ -4377,7 +4383,7 @@
return getScrollForPage(mDisallowScrollToClearAll ? indexOfChild(
getTaskViewAt(getTaskViewCount() - 1)) : indexOfChild(mClearAllButton));
} else {
- TaskView focusedTaskView = showAsGrid() ? getFocusedTaskView() : null;
+ TaskView focusedTaskView = mShowAsGridLastOnLayout ? getFocusedTaskView() : null;
return getScrollForPage(focusedTaskView != null ? indexOfChild(focusedTaskView)
: mTaskViewStartIndex);
}
@@ -4389,7 +4395,7 @@
protected int computeMaxScroll() {
if (getTaskViewCount() > 0) {
if (mIsRtl) {
- TaskView focusedTaskView = showAsGrid() ? getFocusedTaskView() : null;
+ TaskView focusedTaskView = mShowAsGridLastOnLayout ? getFocusedTaskView() : null;
return getScrollForPage(focusedTaskView != null ? indexOfChild(focusedTaskView)
: mTaskViewStartIndex);
} else {