summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java39
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);
}
/**