diff options
4 files changed, 36 insertions, 15 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 9dbec6da2bc2..6a37099d0b7d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -39,6 +39,7 @@ import android.view.WindowInsets; import android.view.accessibility.AccessibilityEvent; import android.widget.FrameLayout; import android.widget.TextView; + import com.android.internal.logging.MetricsLogger; import com.android.keyguard.KeyguardStatusView; import com.android.systemui.AutoReinflateContainer; @@ -2291,6 +2292,12 @@ public class NotificationPanelView extends PanelView implements setLaunchingAffordance(false); } + @Override + public void setAlpha(float alpha) { + super.setAlpha(alpha); + mNotificationStackScroller.setParentFadingOut(alpha != 1.0f); + } + /** * Set whether we are currently launching an affordance. This is currently only set when * launched via a camera gesture. diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index e3ce1e27f3e6..073994f8a5ce 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -3865,6 +3865,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mScrimController.forceHideScrims(true /* hide */); updateMediaMetaData(false, true); mNotificationPanel.setAlpha(1); + mStackScroller.setParentFadingOut(true); mNotificationPanel.animate() .alpha(0) .setStartDelay(FADE_KEYGUARD_START_DELAY) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java index ddded49d2e36..21d03fd8443a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java @@ -53,7 +53,7 @@ public class BrightnessMirrorController { public void showMirror() { mBrightnessMirror.setVisibility(View.VISIBLE); - mStackScroller.setFadedOut(true); + mStackScroller.setFadingOut(true); mScrimBehind.animateViewAlpha(0.0f, TRANSITION_DURATION_OUT, Interpolators.ALPHA_OUT); outAnimation(mNotificationPanel.animate()) .withLayer(); @@ -67,7 +67,7 @@ public class BrightnessMirrorController { @Override public void run() { mBrightnessMirror.setVisibility(View.INVISIBLE); - mStackScroller.setFadedOut(false); + mStackScroller.setFadingOut(false); } }); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index 70d4aec0f8df..f7a2d2b173c0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -333,7 +333,8 @@ public class NotificationStackScrollLayout extends ViewGroup private PorterDuffXfermode mSrcMode = new PorterDuffXfermode(PorterDuff.Mode.SRC); private boolean mPulsing; private boolean mDrawBackgroundAsSrc; - private boolean mFadedOut; + private boolean mFadingOut; + private boolean mParentFadingOut; private boolean mGroupExpandedForMeasure; private View mForcedScroll; private float mBackgroundFadeAmount = 1.0f; @@ -470,7 +471,8 @@ public class NotificationStackScrollLayout extends ViewGroup } private void updateSrcDrawing() { - mBackgroundPaint.setXfermode(mDrawBackgroundAsSrc && !mFadedOut ? mSrcMode : null); + mBackgroundPaint.setXfermode(mDrawBackgroundAsSrc && (!mFadingOut && !mParentFadingOut) + ? mSrcMode : null); invalidate(); } @@ -1871,7 +1873,7 @@ public class NotificationStackScrollLayout extends ViewGroup } private void applyCurrentBackgroundBounds() { - if (!mFadedOut) { + if (!mFadingOut) { mScrimController.setExcludedBackgroundArea(mCurrentBounds); } invalidate(); @@ -3610,22 +3612,33 @@ public class NotificationStackScrollLayout extends ViewGroup updateNotificationAnimationStates(); } - public void setFadedOut(boolean fadingOut) { - if (fadingOut != mFadedOut) { - mFadedOut = fadingOut; - if (fadingOut) { - mScrimController.setExcludedBackgroundArea(null); - } else { - applyCurrentBackgroundBounds(); - } - updateSrcDrawing(); + public void setFadingOut(boolean fadingOut) { + if (fadingOut != mFadingOut) { + mFadingOut = fadingOut; + updateFadingState(); + } + } + + public void setParentFadingOut(boolean fadingOut) { + if (fadingOut != mParentFadingOut) { + mParentFadingOut = fadingOut; + updateFadingState(); } } + private void updateFadingState() { + if (mFadingOut || mParentFadingOut || mAmbientState.isDark()) { + mScrimController.setExcludedBackgroundArea(null); + } else { + applyCurrentBackgroundBounds(); + } + updateSrcDrawing(); + } + @Override public void setAlpha(@FloatRange(from = 0.0, to = 1.0) float alpha) { super.setAlpha(alpha); - setFadedOut(alpha != 1.0f); + setFadingOut(alpha != 1.0f); } /** |