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

Commit 7f2c104f authored by Andrey Epin's avatar Andrey Epin Committed by Automerger Merge Worker
Browse files

Merge "ResolverDrawerLayout to request layout when needed." into tm-qpr-dev...

Merge "ResolverDrawerLayout to request layout when needed." into tm-qpr-dev am: d238f79f am: 3d11dbc7

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19142926



Change-Id: If93e8e16e02dc1059f10088a4f9faf7eef458441
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 14d9bd69 3d11dbc7
Loading
Loading
Loading
Loading
+25 −13
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ public class ResolverDrawerLayout extends ViewGroup {
    /**
     * Max width of the whole drawer layout
     */
    private int mMaxWidth;
    private final int mMaxWidth;

    /**
     * Max total visible height of views not marked always-show when in the closed/initial state
@@ -187,9 +187,11 @@ public class ResolverDrawerLayout extends ViewGroup {
    }

    public void setSmallCollapsed(boolean smallCollapsed) {
        if (mSmallCollapsed != smallCollapsed) {
            mSmallCollapsed = smallCollapsed;
            requestLayout();
        }
    }

    public boolean isSmallCollapsed() {
        return mSmallCollapsed;
@@ -200,10 +202,11 @@ public class ResolverDrawerLayout extends ViewGroup {
    }

    public void setShowAtTop(boolean showOnTop) {
        if (mShowAtTop != showOnTop) {
            mShowAtTop = showOnTop;
        invalidate();
            requestLayout();
        }
    }

    public boolean getShowAtTop() {
        return mShowAtTop;
@@ -220,6 +223,9 @@ public class ResolverDrawerLayout extends ViewGroup {
    public void setCollapsibleHeightReserved(int heightPixels) {
        final int oldReserved = mCollapsibleHeightReserved;
        mCollapsibleHeightReserved = heightPixels;
        if (oldReserved != mCollapsibleHeightReserved) {
            requestLayout();
        }

        final int dReserved = mCollapsibleHeightReserved - oldReserved;
        if (dReserved != 0 && mIsDragging) {
@@ -255,7 +261,7 @@ public class ResolverDrawerLayout extends ViewGroup {

        if (getShowAtTop()) {
            // Keep the drawer fully open.
            mCollapseOffset = 0;
            setCollapseOffset(0);
            return false;
        }

@@ -264,9 +270,9 @@ public class ResolverDrawerLayout extends ViewGroup {
            if (remainClosed && (oldCollapsibleHeight < mCollapsibleHeight
                    && mCollapseOffset == oldCollapsibleHeight)) {
                // Stay closed even at the new height.
                mCollapseOffset = mCollapsibleHeight;
                setCollapseOffset(mCollapsibleHeight);
            } else {
                mCollapseOffset = Math.min(mCollapseOffset, mCollapsibleHeight);
                setCollapseOffset(Math.min(mCollapseOffset, mCollapsibleHeight));
            }
            final boolean isCollapsedNew = mCollapseOffset != 0;
            if (isCollapsedOld != isCollapsedNew) {
@@ -274,11 +280,18 @@ public class ResolverDrawerLayout extends ViewGroup {
            }
        } else {
            // Start out collapsed at first unless we restored state for otherwise
            mCollapseOffset = mOpenOnLayout ? 0 : mCollapsibleHeight;
            setCollapseOffset(mOpenOnLayout ? 0 : mCollapsibleHeight);
        }
        return true;
    }

    private void setCollapseOffset(float collapseOffset) {
        if (mCollapseOffset != collapseOffset) {
            mCollapseOffset = collapseOffset;
            requestLayout();
        }
    }

    private int getMaxCollapsedHeight() {
        return (isSmallCollapsed() ? mMaxCollapsedHeightSmall : mMaxCollapsedHeight)
                + mCollapsibleHeightReserved;
@@ -420,8 +433,7 @@ public class ResolverDrawerLayout extends ViewGroup {

            case MotionEvent.ACTION_POINTER_DOWN: {
                final int pointerIndex = ev.getActionIndex();
                final int pointerId = ev.getPointerId(pointerIndex);
                mActivePointerId = pointerId;
                mActivePointerId = ev.getPointerId(pointerIndex);
                mInitialTouchX = ev.getX(pointerIndex);
                mInitialTouchY = mLastTouchY = ev.getY(pointerIndex);
            }
@@ -924,7 +936,7 @@ public class ResolverDrawerLayout extends ViewGroup {
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        final int sourceWidth = MeasureSpec.getSize(widthMeasureSpec);
        int widthSize = sourceWidth;
        int heightSize = MeasureSpec.getSize(heightMeasureSpec);
        final int heightSize = MeasureSpec.getSize(heightMeasureSpec);

        // Single-use layout; just ignore the mode and use available space.
        // Clamp to maxWidth.