From a9d7fcdbf2917c7c9a9af932951b5efc077e41c1 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Thu, 18 May 2017 01:08:12 +0200 Subject: [PATCH] Reset Keyguard when clicking emergency call button Test: Open bouncer, click emergency call Test: Open Camera, click on the lock icon on the bottom right, click emergency call. Change-Id: Id03ee738ddadd52f689a8531539dc3e9abe345b3 Fixes: 37195733 --- .../phone/StatusBarKeyguardViewManager.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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,