summaryrefslogtreecommitdiff
path: root/telecomm/java/android/telecom/RemoteConnectionManager.java
diff options
context:
space:
mode:
authorGrace Jia <xiaotonj@google.com>2020-08-04 12:52:09 -0700
committerGrace Jia <xiaotonj@google.com>2020-08-11 19:26:33 +0000
commit9a09c670759c50ce8f84b40f62ceef9b5dc00132 (patch)
treee518672aeaf9ec9afe0ed0af19557bc6244164ce /telecomm/java/android/telecom/RemoteConnectionManager.java
parentbad5c4ec49a6dfc6c0c73dedba6cd5c0a9b27f9b (diff)
Add adhoc conference APIs to RemoteConnection and
RemoteConnectionService. Plumb through the adhoc conference APIs via these new APIs. Bug: 159944852 Test: atest CtsTelecomTestCases:RemoteConnectionTest Change-Id: Icfa27e0616dd35ba350f7a491e5c95337a286b9d
Diffstat (limited to 'telecomm/java/android/telecom/RemoteConnectionManager.java')
-rw-r--r--telecomm/java/android/telecom/RemoteConnectionManager.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/telecomm/java/android/telecom/RemoteConnectionManager.java b/telecomm/java/android/telecom/RemoteConnectionManager.java
index 0322218d75dc..f3c7bd83ed4b 100644
--- a/telecomm/java/android/telecom/RemoteConnectionManager.java
+++ b/telecomm/java/android/telecom/RemoteConnectionManager.java
@@ -73,6 +73,37 @@ public class RemoteConnectionManager {
return null;
}
+ /**
+ * Ask a {@code RemoteConnectionService} to create a {@code RemoteConference}.
+ * @param connectionManagerPhoneAccount See description at
+ * {@link ConnectionService#onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)}.
+ * @param request Details about the incoming conference call.
+ * @param isIncoming {@code true} if it's an incoming conference.
+ * @return
+ */
+ public RemoteConference createRemoteConference(
+ PhoneAccountHandle connectionManagerPhoneAccount,
+ ConnectionRequest request,
+ boolean isIncoming) {
+ PhoneAccountHandle accountHandle = request.getAccountHandle();
+ if (accountHandle == null) {
+ throw new IllegalArgumentException("accountHandle must be specified.");
+ }
+
+ ComponentName componentName = request.getAccountHandle().getComponentName();
+ if (!mRemoteConnectionServices.containsKey(componentName)) {
+ throw new UnsupportedOperationException("accountHandle not supported: "
+ + componentName);
+ }
+
+ RemoteConnectionService remoteService = mRemoteConnectionServices.get(componentName);
+ if (remoteService != null) {
+ return remoteService.createRemoteConference(
+ connectionManagerPhoneAccount, request, isIncoming);
+ }
+ return null;
+ }
+
public void conferenceRemoteConnections(RemoteConnection a, RemoteConnection b) {
if (a.getConnectionService() == b.getConnectionService()) {
try {