From dce0bb62ce4e1afbdacd2b4a8ee2e02a1563e852 Mon Sep 17 00:00:00 2001 From: Steven Ross Date: Wed, 5 Oct 2011 11:52:52 -0400 Subject: [PATCH] Killing Facelock when a phonecall comes in This needs to actively listen for phonecall callbacks, or calls that come in while Facelock is active will drop. Change-Id: I818433e5de9085f0357f61d6a04b395e58871396 --- .../policy/impl/LockPatternKeyguardView.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java b/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java index 899a7610b40c1..f3068b1a2aac2 100644 --- a/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java +++ b/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java @@ -76,7 +76,8 @@ import java.io.IOException; * {@link com.android.internal.policy.impl.KeyguardViewManager} * via its {@link com.android.internal.policy.impl.KeyguardViewCallback}, as appropriate. */ -public class LockPatternKeyguardView extends KeyguardViewBase implements Handler.Callback { +public class LockPatternKeyguardView extends KeyguardViewBase implements Handler.Callback, + KeyguardUpdateMonitor.InfoCallback { private static final int TRANSPORT_USERACTIVITY_TIMEOUT = 10000; @@ -266,6 +267,8 @@ public class LockPatternKeyguardView extends KeyguardViewBase implements Handler mLockPatternUtils = lockPatternUtils; mWindowController = controller; + mUpdateMonitor.registerInfoCallback(this); + mKeyguardScreenCallback = new KeyguardScreenCallback() { public void goToLockScreen() { @@ -588,6 +591,25 @@ public class LockPatternKeyguardView extends KeyguardViewBase implements Handler post(mRecreateRunnable); } + //Ignore these events; they are implemented only because they come from the same interface + @Override + public void onRefreshBatteryInfo(boolean showBatteryInfo, boolean pluggedIn, int batteryLevel) + {} + @Override + public void onTimeChanged() {} + @Override + public void onRefreshCarrierInfo(CharSequence plmn, CharSequence spn) {} + @Override + public void onRingerModeChanged(int state) {} + @Override + public void onClockVisibilityChanged() {} + + //We need to stop faceunlock when a phonecall comes in + @Override + public void onPhoneStateChanged(int phoneState) { + if(phoneState == TelephonyManager.CALL_STATE_RINGING) stopAndUnbindFromFaceLock(); + } + @Override protected boolean dispatchHoverEvent(MotionEvent event) { // Do not let the screen to get locked while the user is disabled and touch