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

Commit 145bd08e authored by Shawn Lee's avatar Shawn Lee Committed by Automerger Merge Worker
Browse files

Merge "Fixed QS tiles incorrectly clipping in landscape shade" into udc-dev...

Merge "Fixed QS tiles incorrectly clipping in landscape shade" into udc-dev am: 8687d973 am: 3a44b00a

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



Change-Id: I9e16f315acd33c3a7f1a8a746f8022488dd63be0
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 253bc536 3a44b00a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -131,7 +131,8 @@ public interface QS extends FragmentBase {
    /**
     * A rounded corner clipping that makes QS feel as if it were behind everything.
     */
    void setFancyClipping(int top, int bottom, int cornerRadius, boolean visible);
    void setFancyClipping(int leftInset, int top, int rightInset, int bottom, int cornerRadius,
            boolean visible, boolean fullWidth);

    /**
     * @return if quick settings is fully collapsed currently
+27 −5
Original line number Diff line number Diff line
@@ -38,7 +38,9 @@ import java.io.PrintWriter;
 */
public class QSContainerImpl extends FrameLayout implements Dumpable {

    private int mFancyClippingLeftInset;
    private int mFancyClippingTop;
    private int mFancyClippingRightInset;
    private int mFancyClippingBottom;
    private final float[] mFancyClippingRadii = new float[] {0, 0, 0, 0, 0, 0, 0, 0};
    private  final Path mFancyClippingPath = new Path();
@@ -53,6 +55,7 @@ public class QSContainerImpl extends FrameLayout implements Dumpable {
    private boolean mQsDisabled;
    private int mContentHorizontalPadding = -1;
    private boolean mClippingEnabled;
    private boolean mIsFullWidth;

    public QSContainerImpl(Context context, AttributeSet attrs) {
        super(context, attrs);
@@ -237,7 +240,8 @@ public class QSContainerImpl extends FrameLayout implements Dumpable {
    /**
     * Clip QS bottom using a concave shape.
     */
    public void setFancyClipping(int top, int bottom, int radius, boolean enabled) {
    public void setFancyClipping(int leftInset, int top, int rightInset, int bottom, int radius,
            boolean enabled, boolean fullWidth) {
        boolean updatePath = false;
        if (mFancyClippingRadii[0] != radius) {
            mFancyClippingRadii[0] = radius;
@@ -246,10 +250,18 @@ public class QSContainerImpl extends FrameLayout implements Dumpable {
            mFancyClippingRadii[3] = radius;
            updatePath = true;
        }
        if (mFancyClippingLeftInset != leftInset) {
            mFancyClippingLeftInset = leftInset;
            updatePath = true;
        }
        if (mFancyClippingTop != top) {
            mFancyClippingTop = top;
            updatePath = true;
        }
        if (mFancyClippingRightInset != rightInset) {
            mFancyClippingRightInset = rightInset;
            updatePath = true;
        }
        if (mFancyClippingBottom != bottom) {
            mFancyClippingBottom = bottom;
            updatePath = true;
@@ -258,6 +270,10 @@ public class QSContainerImpl extends FrameLayout implements Dumpable {
            mClippingEnabled = enabled;
            updatePath = true;
        }
        if (mIsFullWidth != fullWidth) {
            mIsFullWidth = fullWidth;
            updatePath = true;
        }

        if (updatePath) {
            updateClippingPath();
@@ -281,15 +297,21 @@ public class QSContainerImpl extends FrameLayout implements Dumpable {
            return;
        }

        mFancyClippingPath.addRoundRect(0, mFancyClippingTop, getWidth(),
        int clippingLeft = mIsFullWidth ? -mFancyClippingLeftInset : 0;
        int clippingRight = mIsFullWidth ? getWidth() + mFancyClippingRightInset : getWidth();
        mFancyClippingPath.addRoundRect(clippingLeft, mFancyClippingTop, clippingRight,
                mFancyClippingBottom, mFancyClippingRadii, Path.Direction.CW);
        invalidate();
    }

    @Override
    public void dump(PrintWriter pw, String[] args) {
        pw.println(getClass().getSimpleName() + " updateClippingPath: top("
                + mFancyClippingTop + ") bottom(" + mFancyClippingBottom  + ") mClippingEnabled("
                + mClippingEnabled + ")");
        pw.println(getClass().getSimpleName() + " updateClippingPath: "
                + "leftInset(" + mFancyClippingLeftInset + ") "
                + "top(" + mFancyClippingTop + ") "
                + "rightInset(" + mFancyClippingRightInset + ") "
                + "bottom(" + mFancyClippingBottom  + ") "
                + "mClippingEnabled(" + mClippingEnabled + ") "
                + "mIsFullWidth(" + mIsFullWidth + ")");
    }
}
+6 −3
Original line number Diff line number Diff line
@@ -18,9 +18,10 @@ import static android.app.StatusBarManager.DISABLE2_QUICK_SETTINGS;

import static com.android.systemui.media.dagger.MediaModule.QS_PANEL;
import static com.android.systemui.media.dagger.MediaModule.QUICK_QS_PANEL;
import static com.android.systemui.statusbar.disableflags.DisableFlagsLogger.DisableState;
import static com.android.systemui.statusbar.StatusBarState.KEYGUARD;
import static com.android.systemui.statusbar.StatusBarState.SHADE_LOCKED;
import static com.android.systemui.statusbar.disableflags.DisableFlagsLogger.DisableState;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.content.res.Configuration;
@@ -395,9 +396,11 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
    }

    @Override
    public void setFancyClipping(int top, int bottom, int cornerRadius, boolean visible) {
    public void setFancyClipping(int leftInset, int top, int rightInset, int bottom,
            int cornerRadius, boolean visible, boolean fullWidth) {
        if (getView() instanceof QSContainerImpl) {
            ((QSContainerImpl) getView()).setFancyClipping(top, bottom, cornerRadius, visible);
            ((QSContainerImpl) getView()).setFancyClipping(leftInset, top, rightInset, bottom,
                    cornerRadius, visible, fullWidth);
        }
    }

+4 −1
Original line number Diff line number Diff line
@@ -1230,10 +1230,13 @@ public class QuickSettingsController {
            mVisible = qsVisible;
            mQs.setQsVisible(qsVisible);
            mQs.setFancyClipping(
                    mDisplayLeftInset,
                    clipTop,
                    mDisplayRightInset,
                    clipBottom,
                    radius,
                    qsVisible && !mSplitShadeEnabled);
                    qsVisible && !mSplitShadeEnabled,
                    mIsFullWidth);

        }