diff options
3 files changed, 20 insertions, 13 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java index 1e7c44cdba2f..ea434fc5b344 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java @@ -53,6 +53,7 @@ import com.android.systemui.statusbar.phone.ScrimController.ScrimVisibility; import com.android.systemui.statusbar.policy.AccessibilityController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.KeyguardMonitor; +import com.android.systemui.statusbar.policy.OnHeadsUpChangedListener; import com.android.systemui.statusbar.policy.UserInfoController.OnUserInfoChangedListener; import java.lang.annotation.Retention; @@ -67,7 +68,8 @@ import javax.inject.Named; public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChangedListener, StatusBarStateController.StateListener, ConfigurationController.ConfigurationListener, UnlockMethodCache.OnUnlockMethodChangedListener, - NotificationWakeUpCoordinator.WakeUpListener, ViewTreeObserver.OnPreDrawListener { + NotificationWakeUpCoordinator.WakeUpListener, ViewTreeObserver.OnPreDrawListener, + OnHeadsUpChangedListener { private static final int STATE_LOCKED = 0; private static final int STATE_LOCK_OPEN = 1; @@ -82,6 +84,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange private final KeyguardMonitor mKeyguardMonitor; private final KeyguardBypassController mBypassController; private final NotificationWakeUpCoordinator mWakeUpCoordinator; + private final HeadsUpManagerPhone mHeadsUpManager; private int mLastState = 0; private boolean mForceUpdate; @@ -94,7 +97,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange private boolean mDocked; private int mIconColor; private float mDozeAmount; - private boolean mBouncerShowing; + private boolean mBouncerShowingScrimmed; private boolean mWakeAndUnlockRunning; private boolean mKeyguardShowing; private boolean mShowingLaunchAffordance; @@ -155,7 +158,8 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange KeyguardBypassController bypassController, NotificationWakeUpCoordinator wakeUpCoordinator, KeyguardMonitor keyguardMonitor, - @Nullable DockManager dockManager) { + @Nullable DockManager dockManager, + HeadsUpManagerPhone headsUpManager) { super(context, attrs); mContext = context; mUnlockMethodCache = UnlockMethodCache.getInstance(context); @@ -167,6 +171,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange mWakeUpCoordinator = wakeUpCoordinator; mKeyguardMonitor = keyguardMonitor; mDockManager = dockManager; + mHeadsUpManager = headsUpManager; } @Override @@ -296,11 +301,13 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange boolean onAodNotPulsingOrDocked = mDozing && (!mPulsing || mDocked); boolean invisible = onAodNotPulsingOrDocked || mWakeAndUnlockRunning || mShowingLaunchAffordance; - if (mBypassController.getBypassEnabled() - && mStatusBarStateController.getState() == StatusBarState.KEYGUARD - && !mWakeUpCoordinator.getNotificationsFullyHidden() - && !mBouncerShowing) { - invisible = true; + if (mBypassController.getBypassEnabled() && !mBouncerShowingScrimmed) { + if (mHeadsUpManager.isHeadsUpGoingAway() + || mHeadsUpManager.hasPinnedHeadsUp() + || (mStatusBarStateController.getState() == StatusBarState.KEYGUARD + && !mWakeUpCoordinator.getNotificationsFullyHidden())) { + invisible = true; + } } boolean wasInvisible = getVisibility() == INVISIBLE; if (invisible != wasInvisible) { @@ -408,8 +415,8 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange } } - public void setBouncerShowing(boolean bouncerShowing) { - mBouncerShowing = bouncerShowing; + public void setBouncerShowingScrimmed(boolean bouncerShowing) { + mBouncerShowingScrimmed = bouncerShowing; if (mBypassController.getBypassEnabled()) { update(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 9d1043850426..b87a692b933d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -3576,7 +3576,7 @@ public class StatusBar extends SystemUI implements DemoMode, mBouncerShowing = bouncerShowing; mKeyguardBypassController.setBouncerShowing(bouncerShowing); mPulseExpansionHandler.setBouncerShowing(bouncerShowing); - mStatusBarWindow.setBouncerShowing(bouncerShowing); + mStatusBarWindow.setBouncerShowingScrimmed(isBouncerShowingScrimmed()); if (mStatusBarView != null) mStatusBarView.setBouncerShowing(bouncerShowing); updateHideIconsForBouncer(true /* animate */); mCommandQueue.recomputeDisableFlags(mDisplayId, true /* animate */); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java index a82e14efca2f..667521bf6588 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java @@ -525,9 +525,9 @@ public class StatusBarWindowView extends FrameLayout { mBypassController = bypassController; } - public void setBouncerShowing(boolean bouncerShowing) { + public void setBouncerShowingScrimmed(boolean bouncerShowing) { if (mLockIcon != null) { - mLockIcon.setBouncerShowing(bouncerShowing); + mLockIcon.setBouncerShowingScrimmed(bouncerShowing); } } |