Merge "Update the APIs to fix the build" into klp-dev
diff --git a/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java b/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java
index 6badaaf..8cdcb7a 100644
--- a/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java
+++ b/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java
@@ -102,6 +102,8 @@
== TelephonyManager.CALL_STATE_OFFHOOK) {
mLockPatternUtils.resumeCall();
} else {
+ final boolean bypassHandler = true;
+ KeyguardUpdateMonitor.getInstance(mContext).reportEmergencyCallAction(bypassHandler);
Intent intent = new Intent(ACTION_EMERGENCY_DIAL);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardFaceUnlockView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardFaceUnlockView.java
index 3e499b2..c2cd32f 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardFaceUnlockView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardFaceUnlockView.java
@@ -295,6 +295,13 @@
}
}
}
+
+ @Override
+ public void onEmergencyCallAction() {
+ if (mBiometricUnlock != null) {
+ mBiometricUnlock.stop();
+ }
+ }
};
@Override
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
index dcec654..f4bbf9a 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -91,6 +91,7 @@
private static final int MSG_SET_CURRENT_CLIENT_ID = 315;
protected static final int MSG_SET_PLAYBACK_STATE = 316;
protected static final int MSG_USER_INFO_CHANGED = 317;
+ protected static final int MSG_REPORT_EMERGENCY_CALL_ACTION = 318;
private static KeyguardUpdateMonitor sInstance;
@@ -181,6 +182,9 @@
case MSG_USER_INFO_CHANGED:
handleUserInfoChanged(msg.arg1);
break;
+ case MSG_REPORT_EMERGENCY_CALL_ACTION:
+ handleReportEmergencyCallAction();
+ break;
}
}
};
@@ -758,6 +762,18 @@
}
}
+ /**
+ * Handle {@link #MSG_REPORT_EMERGENCY_CALL_ACTION}
+ */
+ private void handleReportEmergencyCallAction() {
+ for (int i = 0; i < mCallbacks.size(); i++) {
+ KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
+ if (cb != null) {
+ cb.onEmergencyCallAction();
+ }
+ }
+ }
+
public boolean isKeyguardVisible() {
return mKeyguardIsVisible;
}
@@ -902,6 +918,22 @@
handleSimStateChange(new SimArgs(IccCardConstants.State.READY));
}
+ /**
+ * Report that the emergency call button has been pressed and the emergency dialer is
+ * about to be displayed.
+ *
+ * @param bypassHandler runs immediately.
+ *
+ * NOTE: Must be called from UI thread if bypassHandler == true.
+ */
+ public void reportEmergencyCallAction(boolean bypassHandler) {
+ if (!bypassHandler) {
+ mHandler.obtainMessage(MSG_REPORT_EMERGENCY_CALL_ACTION).sendToTarget();
+ } else {
+ handleReportEmergencyCallAction();
+ }
+ }
+
public CharSequence getTelephonyPlmn() {
return mTelephonyPlmn;
}
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
index 30b43f5..b0511e5 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
@@ -131,4 +131,8 @@
*/
public void onMusicPlaybackStateChanged(int playbackState, long eventTime) { }
+ /**
+ * Called when the emergency call button is pressed.
+ */
+ void onEmergencyCallAction() { }
}