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
This commit is contained in:
Vadim Tryshev 2018-05-14 16:00:15 -07:00
parent 98f4fc00ac
commit eb701c6360
2 changed files with 11 additions and 19 deletions
quickstep/src/com/android/quickstep/views
src/com/android/launcher3

View File

@ -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<T extends BaseActivity> 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<T extends BaseActivity> 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,

View File

@ -92,7 +92,6 @@ public abstract class PagedView<T extends View & PageIndicator> 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<T extends View & PageIndicator> 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<T extends View & PageIndicator> extends ViewGrou
if (mScroller.isFinished() && pageScrollChanged) {
setCurrentPage(getNextPage());
}
mChildCountOnLastLayout = childCount;
}
/**