Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb701c63 authored by Vadim Tryshev's avatar Vadim Tryshev
Browse files

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
parent 98f4fc00
Loading
Loading
Loading
Loading
+3 −10
Original line number Diff line number Diff line
@@ -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,
+8 −9
Original line number Diff line number Diff line
@@ -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) {
            return;
        }

        if (DEBUG) Log.d(TAG, "PagedView.onLayout()");
        final int childCount = getChildCount();

        boolean pageScrollChanged = false;
        if (mPageScrolls == null || childCount != mChildCountOnLastLayout) {
        if (mPageScrolls == null || childCount != mPageScrolls.length) {
            mPageScrolls = new int[childCount];
            pageScrollChanged = true;
        }

        if (childCount == 0) {
            return;
        }

        if (DEBUG) Log.d(TAG, "PagedView.onLayout()");

        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;
    }

    /**