From eb701c636095791d6a6171836c0837a2dad7f02b Mon Sep 17 00:00:00 2001 From: Vadim Tryshev Date: Mon, 14 May 2018 16:00:15 -0700 Subject: [PATCH] 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 --- .../android/quickstep/views/RecentsView.java | 13 +++---------- src/com/android/launcher3/PagedView.java | 17 ++++++++--------- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index a8e38a1ab0..ad85d9ed43 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; 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 @@ public abstract class RecentsView extends PagedView impl } 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 @@ public abstract class RecentsView extends PagedView impl 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 87ee076f36..990132df58 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -92,7 +92,6 @@ public abstract class PagedView extends ViewGrou @ViewDebug.ExportedProperty(category = "launcher") protected int mCurrentPage; - private int mChildCountOnLastLayout; @ViewDebug.ExportedProperty(category = "launcher") protected int mNextPage = INVALID_PAGE; @@ -543,18 +542,19 @@ public abstract class PagedView extends ViewGrou @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 @@ public abstract class PagedView extends ViewGrou if (mScroller.isFinished() && pageScrollChanged) { setCurrentPage(getNextPage()); } - mChildCountOnLastLayout = childCount; } /**