Merge "Add adhoc conference APIs to RemoteConnection and RemoteConnectionService."

This commit is contained in:
Grace Jia
2020-08-13 18:06:19 +00:00
committed by Gerrit Code Review
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;
/**
@@ -591,6 +591,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);
}