diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index 2a69c1e663bbc..a31036f3301f0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -29,6 +29,7 @@ import android.view.WindowManagerGlobal; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardUpdateMonitor; +import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.DejankUtils; import com.android.keyguard.LatencyTracker; @@ -97,12 +98,26 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb private boolean mDeviceWillWakeUp; private boolean mDeferScrimFadeOut; + private final KeyguardUpdateMonitorCallback mUpdateMonitorCallback = + new KeyguardUpdateMonitorCallback() { + @Override + public void onEmergencyCallAction() { + + // Since we won't get a setOccluded call we have to reset the view manually such that + // the bouncer goes away. + if (mOccluded) { + reset(false /* hideBouncerWhenShowing */); + } + } + }; + public StatusBarKeyguardViewManager(Context context, ViewMediatorCallback callback, LockPatternUtils lockPatternUtils) { mContext = context; mViewMediatorCallback = callback; mLockPatternUtils = lockPatternUtils; mStatusBarWindowManager = Dependency.get(StatusBarWindowManager.class); + KeyguardUpdateMonitor.getInstance(context).registerCallback(mUpdateMonitorCallback); } public void registerStatusBar(StatusBar statusBar,