summaryrefslogtreecommitdiffstats
path: root/telecomm
diff options
context:
space:
mode:
authorYorke Lee <yorkelee@google.com>2014-09-12 17:58:48 -0700
committerYorke Lee <yorkelee@google.com>2014-09-14 09:54:23 -0700
commit2ae312e30652a4d0019b17825b58d558c4483a58 (patch)
tree7fd8660d59d945ab1fa0fdf5e73503f43f460b2e /telecomm
parentc68f27625bfd18d945ab214983ae05206b6f3bfa (diff)
downloadframeworks_base-2ae312e30652a4d0019b17825b58d558c4483a58.zip
frameworks_base-2ae312e30652a4d0019b17825b58d558c4483a58.tar.gz
frameworks_base-2ae312e30652a4d0019b17825b58d558c4483a58.tar.bz2
Pipe TelephonyManager.getCallState through TelecommManager
* Add TelecommManager.getCallState (hidden API) * Make TelephonyManager.getCallState call through to TelecommManager, to be consistent with TelephonyManager.ACTION_PHONE_STATE_CHANGED broadcasts for overall call state. Telephony continues to manage call states for individual subscriptions. Bug: 17378767 Change-Id: Ia5e8b21df801ed3af4f6e14c110a72c92f077f88
Diffstat (limited to 'telecomm')
-rw-r--r--telecomm/java/android/telecom/TelecomManager.java27
-rw-r--r--telecomm/java/com/android/internal/telecom/ITelecomService.aidl5
2 files changed, 31 insertions, 1 deletions
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index 1f5be6e..c69a17c 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -20,6 +20,7 @@ import android.content.Context;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.telephony.TelephonyManager;
import android.util.Log;
import com.android.internal.telecom.ITelecomService;
@@ -661,12 +662,36 @@ public class TelecomManager {
return getTelecomService().isInCall();
}
} catch (RemoteException e) {
- Log.e(TAG, "RemoteException attempting to get default phone app.", e);
+ Log.e(TAG, "RemoteException calling isInCall().", e);
}
return false;
}
/**
+ * Returns one of the following constants that represents the current state of Telecom:
+ *
+ * {@link TelephonyManager#CALL_STATE_RINGING}
+ * {@link TelephonyManager#CALL_STATE_OFFHOOK}
+ * {@link TelephonyManager#CALL_STATE_IDLE}
+ *
+ * <p>
+ * Requires permission: {@link android.Manifest.permission#READ_PHONE_STATE}
+ * </p>
+ * @hide
+ */
+ @SystemApi
+ public int getCallState() {
+ try {
+ if (isServiceConnected()) {
+ return getTelecomService().getCallState();
+ }
+ } catch (RemoteException e) {
+ Log.d(TAG, "RemoteException calling getCallState().", e);
+ }
+ return TelephonyManager.CALL_STATE_IDLE;
+ }
+
+ /**
* Returns whether there currently exists is a ringing incoming-call.
*
* @hide
diff --git a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
index 4edce53..4875cc3 100644
--- a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
+++ b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
@@ -139,6 +139,11 @@ interface ITelecomService {
boolean isRinging();
/**
+ * @see TelecomServiceImpl#getCallState
+ */
+ int getCallState();
+
+ /**
* @see TelecomServiceImpl#endCall
*/
boolean endCall();