diff --git a/packages/SystemUI/res/values/bools.xml b/packages/SystemUI/res/values/bools.xml index c67ac8d34aa66..8221d78fbfd79 100644 --- a/packages/SystemUI/res/values/bools.xml +++ b/packages/SystemUI/res/values/bools.xml @@ -18,6 +18,13 @@ false + false + + + true + + + false diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java index cd1c722780f32..3298406fb1095 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java @@ -632,6 +632,7 @@ public final class NotificationPanelViewController extends PanelViewController { private int mScreenCornerRadius; private boolean mQSAnimatingHiddenFromCollapsed; private boolean mUseLargeScreenShadeHeader; + private boolean mEnableQsClipping; private int mQsClipTop; private int mQsClipBottom; @@ -1149,6 +1150,8 @@ public final class NotificationPanelViewController extends PanelViewController { mSplitShadeFullTransitionDistance = mResources.getDimensionPixelSize(R.dimen.split_shade_full_transition_distance); + + mEnableQsClipping = mResources.getBoolean(R.bool.qs_enable_clipping); } private void onSplitShadeEnabledChanged() { @@ -2680,8 +2683,10 @@ public final class NotificationPanelViewController extends PanelViewController { mQsTranslationForFullShadeTransition = qsTranslation; updateQsFrameTranslation(); float currentTranslation = mQsFrame.getTranslationY(); - mQsClipTop = (int) (top - currentTranslation - mQsFrame.getTop()); - mQsClipBottom = (int) (bottom - currentTranslation - mQsFrame.getTop()); + mQsClipTop = mEnableQsClipping + ? (int) (top - currentTranslation - mQsFrame.getTop()) : 0; + mQsClipBottom = mEnableQsClipping + ? (int) (bottom - currentTranslation - mQsFrame.getTop()) : 0; mQsVisible = qsVisible; mQs.setQsVisible(mQsVisible); mQs.setFancyClipping( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java index 9f932238007a2..84907686835b0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -249,6 +249,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump private Callback mCallback; private boolean mWallpaperSupportsAmbientMode; private boolean mScreenOn; + private boolean mTransparentScrimBackground; // Scrim blanking callbacks private Runnable mPendingFrameCallback; @@ -341,6 +342,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump mScrimBehind.setDefaultFocusHighlightEnabled(false); mNotificationsScrim.setDefaultFocusHighlightEnabled(false); mScrimInFront.setDefaultFocusHighlightEnabled(false); + mTransparentScrimBackground = notificationsScrim.getResources() + .getBoolean(R.bool.notification_scrim_transparent); updateScrims(); mKeyguardUpdateMonitor.registerCallback(mKeyguardVisibilityCallback); } @@ -777,13 +780,16 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump float behindFraction = getInterpolatedFraction(); behindFraction = (float) Math.pow(behindFraction, 0.8f); if (mClipsQsScrim) { - mBehindAlpha = 1; - mNotificationsAlpha = behindFraction * mDefaultScrimAlpha; + mBehindAlpha = mTransparentScrimBackground ? 0 : 1; + mNotificationsAlpha = + mTransparentScrimBackground ? 0 : behindFraction * mDefaultScrimAlpha; } else { - mBehindAlpha = behindFraction * mDefaultScrimAlpha; + mBehindAlpha = + mTransparentScrimBackground ? 0 : behindFraction * mDefaultScrimAlpha; // Delay fade-in of notification scrim a bit further, to coincide with the // view fade in. Otherwise the empty panel can be quite jarring. - mNotificationsAlpha = MathUtils.constrainedMap(0f, 1f, 0.3f, 0.75f, + mNotificationsAlpha = mTransparentScrimBackground + ? 0 : MathUtils.constrainedMap(0f, 1f, 0.3f, 0.75f, mPanelExpansionFraction); } mBehindTint = mState.getBehindTint();