From cc5179f0e3725a5f3c140fc57d719e18b7aa104f Mon Sep 17 00:00:00 2001 From: Yorke Lee Date: Wed, 3 Sep 2014 15:01:18 -0700 Subject: Use TelecommManager APIs to detect if we are in a call Bug: 17335666 Change-Id: I5f443c76041e51a2eca903db924fb26031dde055 --- core/java/com/android/internal/widget/LockPatternUtils.java | 9 ++++++++- packages/Keyguard/src/com/android/keyguard/EmergencyButton.java | 5 ++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index 2114ff6..c84708e 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -1449,7 +1449,7 @@ public class LockPatternUtils { } int textId; - if (getTelecommManager().isInCall()) { + if (isInCall()) { // show "return to call" text and show phone icon textId = R.string.lockscreen_return_to_call; int phoneCallIcon = showIcon ? R.drawable.stat_sys_phone_call : 0; @@ -1470,6 +1470,13 @@ public class LockPatternUtils { getTelecommManager().showInCallScreen(false); } + /** + * @return {@code true} if there is a call currently in progress, {@code false} otherwise. + */ + public boolean isInCall() { + return getTelecommManager().isInCall(); + } + private TelecommManager getTelecommManager() { return (TelecommManager) mContext.getSystemService(Context.TELECOMM_SERVICE); } diff --git a/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java b/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java index 73b11f3..e0507a8 100644 --- a/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java +++ b/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java @@ -99,8 +99,7 @@ public class EmergencyButton extends Button { // TODO: implement a shorter timeout once new PowerManager API is ready. // should be the equivalent to the old userActivity(EMERGENCY_CALL_TIMEOUT) mPowerManager.userActivity(SystemClock.uptimeMillis(), true); - if (TelephonyManager.getDefault().getCallState() - == TelephonyManager.CALL_STATE_OFFHOOK) { + if (mLockPatternUtils.isInCall()) { mLockPatternUtils.resumeCall(); } else { final boolean bypassHandler = true; @@ -115,7 +114,7 @@ public class EmergencyButton extends Button { private void updateEmergencyCallButton(State simState, int phoneState) { boolean enabled = false; - if (phoneState == TelephonyManager.CALL_STATE_OFFHOOK) { + if (mLockPatternUtils.isInCall()) { enabled = true; // always show "return to call" if phone is off-hook } else if (mLockPatternUtils.isEmergencyCallCapable()) { boolean simLocked = KeyguardUpdateMonitor.getInstance(mContext).isSimLocked(); -- cgit v1.1