Scrolling on the most recent task upon Overview start
Fixes this problem:
1. Open a single task in Recents
2. Dismiss via Clear-all
3. Start a task
4. Press Home
5. Press square button
get Recents revealing Clear All button
Bug: 79117932
Test: Manual
Change-Id: I47bcc50cb72f1757025d2abac0196460e0bb3f36
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index a8e38a1..ad85d9e 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -21,8 +21,8 @@
import static com.android.launcher3.anim.Interpolators.ACCEL_2;
import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;
import static com.android.launcher3.anim.Interpolators.LINEAR;
-import static com.android.quickstep.TaskUtils.checkCurrentOrManagedUserId;
import static com.android.launcher3.util.SystemUiController.UI_STATE_OVERVIEW;
+import static com.android.quickstep.TaskUtils.checkCurrentOrManagedUserId;
import android.animation.Animator;
import android.animation.AnimatorSet;
@@ -1038,14 +1038,7 @@
}
updateClearAllButtonAlpha();
- if (!mShowEmptyMessage) return;
-
- // The icon needs to be centered. Need to scoll to horizontal 0 because with Clear-All
- // space on the right, it's not guaranteed that after deleting all tasks, the horizontal
- // scroll position will be zero.
- scrollTo(0, 0);
-
- if (hasValidSize && mEmptyTextLayout == null) {
+ if (mShowEmptyMessage && hasValidSize && mEmptyTextLayout == null) {
int availableWidth = mLastMeasureSize.x - mEmptyMessagePadding - mEmptyMessagePadding;
mEmptyTextLayout = StaticLayout.Builder.obtain(mEmptyMessage, 0, mEmptyMessage.length(),
mEmptyMessagePaint, availableWidth)
@@ -1072,7 +1065,7 @@
mTempRect.set(mInsets.left + getPaddingLeft(), mInsets.top + getPaddingTop(),
mInsets.right + getPaddingRight(), mInsets.bottom + getPaddingBottom());
canvas.save();
- canvas.translate((mTempRect.left - mTempRect.right) / 2,
+ canvas.translate(getScrollX() + (mTempRect.left - mTempRect.right) / 2,
(mTempRect.top - mTempRect.bottom) / 2);
mEmptyIcon.draw(canvas);
canvas.translate(mEmptyMessagePadding,
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index 87ee076..990132d 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -92,7 +92,6 @@
@ViewDebug.ExportedProperty(category = "launcher")
protected int mCurrentPage;
- private int mChildCountOnLastLayout;
@ViewDebug.ExportedProperty(category = "launcher")
protected int mNextPage = INVALID_PAGE;
@@ -543,18 +542,19 @@
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
mIsLayoutValid = true;
- if (getChildCount() == 0) {
+ final int childCount = getChildCount();
+ boolean pageScrollChanged = false;
+ if (mPageScrolls == null || childCount != mPageScrolls.length) {
+ mPageScrolls = new int[childCount];
+ pageScrollChanged = true;
+ }
+
+ if (childCount == 0) {
return;
}
if (DEBUG) Log.d(TAG, "PagedView.onLayout()");
- final int childCount = getChildCount();
- boolean pageScrollChanged = false;
- if (mPageScrolls == null || childCount != mChildCountOnLastLayout) {
- mPageScrolls = new int[childCount];
- pageScrollChanged = true;
- }
if (getPageScrolls(mPageScrolls, true, SIMPLE_SCROLL_LOGIC)) {
pageScrollChanged = true;
}
@@ -591,7 +591,6 @@
if (mScroller.isFinished() && pageScrollChanged) {
setCurrentPage(getNextPage());
}
- mChildCountOnLastLayout = childCount;
}
/**