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
This commit is contained in:
Grace Jia
2020-08-04 12:52:09 -07:00
parent bad5c4ec49
commit 9a09c67075
7 changed files with 149 additions and 7 deletions

View File

@@ -31,9 +31,9 @@ import com.android.internal.telecom.RemoteServiceCallback;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.List;
import java.util.UUID;
/**
@@ -573,6 +573,38 @@ final class RemoteConnectionService {
}
}
RemoteConference createRemoteConference(
PhoneAccountHandle connectionManagerPhoneAccount,
ConnectionRequest request,
boolean isIncoming) {
final String id = UUID.randomUUID().toString();
try {
if (mConferenceById.isEmpty()) {
mOutgoingConnectionServiceRpc.addConnectionServiceAdapter(mServant.getStub(),
null /*Session.Info*/);
}
RemoteConference conference = new RemoteConference(id, mOutgoingConnectionServiceRpc);
mOutgoingConnectionServiceRpc.createConference(connectionManagerPhoneAccount,
id,
request,
isIncoming,
false /* isUnknownCall */,
null /*Session.info*/);
conference.registerCallback(new RemoteConference.Callback() {
@Override
public void onDestroyed(RemoteConference conference) {
mConferenceById.remove(id);
maybeDisconnectAdapter();
}
});
conference.putExtras(request.getExtras());
return conference;
} catch (RemoteException e) {
return RemoteConference.failure(
new DisconnectCause(DisconnectCause.ERROR, e.toString()));
}
}
private boolean hasConnection(String callId) {
return mConnectionById.containsKey(callId);
}