summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/system-current.txt1
-rw-r--r--telecomm/java/android/telecom/TelecomManager.java22
-rw-r--r--telecomm/java/com/android/internal/telecom/ITelecomService.aidl5
3 files changed, 27 insertions, 1 deletions
diff --git a/api/system-current.txt b/api/system-current.txt
index 1df486125923..c91a9678f1d0 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -32707,6 +32707,7 @@ package android.telecom {
public class TelecomManager {
method public void acceptRingingCall();
+ method public void acceptRingingCall(int);
method public void addNewIncomingCall(android.telecom.PhoneAccountHandle, android.os.Bundle);
method public void addNewUnknownCall(android.telecom.PhoneAccountHandle, android.os.Bundle);
method public void cancelMissedCallsNotification();
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index b07b018f5a19..4916a6634087 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -1024,7 +1024,9 @@ public class TelecomManager {
* If there is a ringing incoming call, this method accepts the call on behalf of the user.
* TODO: L-release - need to convert all invocation of ITelecmmService#answerRingingCall to use
* this method (clockwork & gearhead).
- *
+ * If the incoming call is a video call, the call will be answered with the same video state as
+ * the incoming call requests. This means, for example, that an incoming call requesting
+ * {@link VideoProfile#STATE_BIDIRECTIONAL} will be answered, accepting that state.
* @hide
*/
@SystemApi
@@ -1039,6 +1041,24 @@ public class TelecomManager {
}
/**
+ * If there is a ringing incoming call, this method accepts the call on behalf of the user,
+ * with the specified video state.
+ *
+ * @param videoState The desired video state to answer the call with.
+ * @hide
+ */
+ @SystemApi
+ public void acceptRingingCall(int videoState) {
+ try {
+ if (isServiceConnected()) {
+ getTelecomService().acceptRingingCallWithVideoState(videoState);
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#acceptRingingCallWithVideoState", e);
+ }
+ }
+
+ /**
* Silences the ringer if a ringing call exists.
*/
public void silenceRinger() {
diff --git a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
index 2e07759f09f1..856e21043a8d 100644
--- a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
+++ b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
@@ -178,6 +178,11 @@ interface ITelecomService {
void acceptRingingCall();
/**
+ * @see TelecomServiceImpl#acceptRingingCallWithVideoState(int)
+ */
+ void acceptRingingCallWithVideoState(int videoState);
+
+ /**
* @see TelecomServiceImpl#cancelMissedCallsNotification
*/
void cancelMissedCallsNotification(String callingPackage);