diff options
4 files changed, 39 insertions, 10 deletions
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java index 436145ec0692..3244eb43c8c4 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java @@ -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 diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java b/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java index b7f9f6bc0e4a..1afc885cb70d 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java @@ -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 + ")"); } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java index d806afa91dd1..fd3f70148a69 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java @@ -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); } } diff --git a/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java b/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java index ef14d1cb7f63..3b6bf96f206c 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java @@ -1212,10 +1212,13 @@ public class QuickSettingsController { mVisible = qsVisible; mQs.setQsVisible(qsVisible); mQs.setFancyClipping( + mDisplayLeftInset, clipTop, + mDisplayRightInset, clipBottom, radius, - qsVisible && !mSplitShadeEnabled); + qsVisible && !mSplitShadeEnabled, + mIsFullWidth); } |