diff options
Diffstat (limited to 'telecomm/java/android/telecom/ConnectionService.java')
-rwxr-xr-x | telecomm/java/android/telecom/ConnectionService.java | 59 |
1 files changed, 48 insertions, 11 deletions
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java index 56cba1d3f913..b1ccb533e83d 100755 --- a/telecomm/java/android/telecom/ConnectionService.java +++ b/telecomm/java/android/telecom/ConnectionService.java @@ -1880,6 +1880,7 @@ public abstract class ConnectionService extends Service { mConferenceById.put(callId, conference); mIdByConference.put(conference, callId); + conference.addListener(mConferenceListener); ParcelableConference parcelableConference = new ParcelableConference.Builder( request.getAccountHandle(), conference.getState()) @@ -1987,8 +1988,10 @@ public abstract class ConnectionService extends Service { connection.setAudioModeIsVoip(true); } connection.setTelecomCallId(callId); + PhoneAccountHandle phoneAccountHandle = connection.getPhoneAccountHandle() == null + ? request.getAccountHandle() : connection.getPhoneAccountHandle(); if (connection.getState() != Connection.STATE_DISCONNECTED) { - addConnection(request.getAccountHandle(), callId, connection); + addConnection(phoneAccountHandle, callId, connection); } Uri address = connection.getAddress(); @@ -2004,7 +2007,7 @@ public abstract class ConnectionService extends Service { callId, request, new ParcelableConnection( - request.getAccountHandle(), + phoneAccountHandle, connection.getState(), connection.getConnectionCapabilities(), connection.getConnectionProperties(), @@ -2487,6 +2490,42 @@ public abstract class ConnectionService extends Service { } /** + * Ask some other {@code ConnectionService} to create a {@code RemoteConference} given an + * incoming request. This is used by {@code ConnectionService}s that are registered with + * {@link PhoneAccount#CAPABILITY_ADHOC_CONFERENCE_CALLING}. + * + * @param connectionManagerPhoneAccount See description at + * {@link #onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)}. + * @param request Details about the incoming conference call. + * @return The {@code RemoteConference} object to satisfy this call, or {@code null} to not + * handle the call. + */ + public final @Nullable RemoteConference createRemoteIncomingConference( + @Nullable PhoneAccountHandle connectionManagerPhoneAccount, + @Nullable ConnectionRequest request) { + return mRemoteConnectionManager.createRemoteConference(connectionManagerPhoneAccount, + request, true); + } + + /** + * Ask some other {@code ConnectionService} to create a {@code RemoteConference} given an + * outgoing request. This is used by {@code ConnectionService}s that are registered with + * {@link PhoneAccount#CAPABILITY_ADHOC_CONFERENCE_CALLING}. + * + * @param connectionManagerPhoneAccount See description at + * {@link #onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)}. + * @param request Details about the outgoing conference call. + * @return The {@code RemoteConference} object to satisfy this call, or {@code null} to not + * handle the call. + */ + public final @Nullable RemoteConference createRemoteOutgoingConference( + @Nullable PhoneAccountHandle connectionManagerPhoneAccount, + @Nullable ConnectionRequest request) { + return mRemoteConnectionManager.createRemoteConference(connectionManagerPhoneAccount, + request, false); + } + + /** * Indicates to the relevant {@code RemoteConnectionService} that the specified * {@link RemoteConnection}s should be merged into a conference call. * <p> @@ -2678,15 +2717,15 @@ public abstract class ConnectionService extends Service { return null; } /** - * Create a {@code Connection} given an incoming request. This is used to attach to existing - * incoming conference call. + * Create a {@code Conference} given an incoming request. This is used to attach to an incoming + * conference call initiated via + * {@link TelecomManager#addNewIncomingConference(PhoneAccountHandle, Bundle)}. * * @param connectionManagerPhoneAccount See description at * {@link #onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)}. - * @param request Details about the incoming call. - * @return The {@code Connection} object to satisfy this call, or {@code null} to + * @param request Details about the incoming conference call. + * @return The {@code Conference} object to satisfy this call, or {@code null} to * not handle the call. - * @hide */ public @Nullable Conference onCreateIncomingConference( @Nullable PhoneAccountHandle connectionManagerPhoneAccount, @@ -2771,7 +2810,6 @@ public abstract class ConnectionService extends Service { * @param connectionManagerPhoneAccount See description at * {@link #onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)}. * @param request The incoming connection request. - * @hide */ public void onCreateIncomingConferenceFailed( @Nullable PhoneAccountHandle connectionManagerPhoneAccount, @@ -2792,7 +2830,6 @@ public abstract class ConnectionService extends Service { * @param connectionManagerPhoneAccount See description at * {@link #onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)}. * @param request The outgoing connection request. - * @hide */ public void onCreateOutgoingConferenceFailed( @Nullable PhoneAccountHandle connectionManagerPhoneAccount, @@ -2841,7 +2878,8 @@ public abstract class ConnectionService extends Service { /** * Create a {@code Conference} given an outgoing request. This is used to initiate new - * outgoing conference call. + * outgoing conference call requested via + * {@link TelecomManager#startConference(List, Bundle)}. * * @param connectionManagerPhoneAccount The connection manager account to use for managing * this call. @@ -2861,7 +2899,6 @@ public abstract class ConnectionService extends Service { * @param request Details about the outgoing call. * @return The {@code Conference} object to satisfy this call, or the result of an invocation * of {@link Connection#createFailedConnection(DisconnectCause)} to not handle the call. - * @hide */ public @Nullable Conference onCreateOutgoingConference( @Nullable PhoneAccountHandle connectionManagerPhoneAccount, |