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
diff --git a/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java b/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java
index 899a761..f3068b1 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 @@
* {@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 @@
mLockPatternUtils = lockPatternUtils;
mWindowController = controller;
+ mUpdateMonitor.registerInfoCallback(this);
+
mKeyguardScreenCallback = new KeyguardScreenCallback() {
public void goToLockScreen() {
@@ -588,6 +591,25 @@
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