Loading telecomm/java/android/telecom/Connection.java +15 −0 Original line number Diff line number Diff line Loading @@ -766,6 +766,21 @@ public abstract class Connection extends Conferenceable { public static final String EXTRA_REMOTE_PHONE_ACCOUNT_HANDLE = "android.telecom.extra.REMOTE_PHONE_ACCOUNT_HANDLE"; /** * The Telecom call ID of the conference an existing connection should be added to. This is * required when {@link com.android.services.telephony.TelephonyConnectionService} adds a * {@link Conference} to Telecom using the * {@link ConnectionService#addExistingConnection(PhoneAccountHandle, Connection, Conference)} * API. That API specifies a parent conference associated with the new existing connection * being added, and there is no equivalent as part of the {@link RemoteConnectionService} API. * This extra key is used to stack the ID of the conference to which the existing connection * will be added so that Telecom can link it up correctly when the {@link RemoteConference} * is added to Telecom by the connection manager. * @hide */ public static final String EXTRA_ADD_TO_CONFERENCE_ID = "android.telecom.extra.ADD_TO_CONFERENCE_ID"; /** * Extra key set from a {@link ConnectionService} when using the remote connection APIs * (e.g. {@link RemoteConnectionService#createRemoteConnection(PhoneAccountHandle, Loading telecomm/java/android/telecom/RemoteConnectionService.java +19 −7 Original line number Diff line number Diff line Loading @@ -239,13 +239,9 @@ final class RemoteConnectionService { conference.addConnection(c); } } if (conference.getConnections().size() == 0) { // A conference was created, but none of its connections are ones that have been // created by, and therefore being tracked by, this remote connection service. It // is of no interest to us. Log.d(this, "addConferenceCall - skipping"); return; } // We used to skip adding empty conferences; however in the world of IMS conference // calls we need to add them to the remote connection service because they will always // start with no participants. conference.setState(parcel.getState()); conference.setConnectionCapabilities(parcel.getConnectionCapabilities()); Loading Loading @@ -379,6 +375,8 @@ final class RemoteConnectionService { @Override public void addExistingConnection(String callId, ParcelableConnection connection, Session.Info sessionInfo) { Log.i(RemoteConnectionService.this, "addExistingConnection: callId=%s, conn=%s", callId, connection); String callingPackage = mOurConnectionServiceImpl.getApplicationContext(). getOpPackageName(); int callingTargetSdkVersion = mOurConnectionServiceImpl.getApplicationInfo() Loading @@ -390,6 +388,20 @@ final class RemoteConnectionService { Bundle newExtras = new Bundle(); newExtras.putParcelable(Connection.EXTRA_REMOTE_PHONE_ACCOUNT_HANDLE, connection.getPhoneAccount()); if (connection.getParentCallId() != null) { RemoteConference parentConf = mConferenceById.get(connection.getParentCallId()); // If there is a parent being set, we need to stash the conference ID here. // Telephony can add an existing connection while specifying a parent conference. // There is no equivalent version of that operation as part of the remote connection // API, so we will stash the pre-defined parent's ID in the extras. When the // connectionmanager copies over the extras from the remote connection to the // actual one, it'll get passed to Telecom so that it can make the association. if (parentConf != null) { newExtras.putString(Connection.EXTRA_ADD_TO_CONFERENCE_ID, parentConf.getId()); Log.i(this, "addExistingConnection: stash parent of %s as %s", connection.getParentCallId(), parentConf.getId()); } } remoteConnection.putExtras(newExtras); mConnectionById.put(callId, remoteConnection); remoteConnection.registerCallback(new RemoteConnection.Callback() { Loading Loading
telecomm/java/android/telecom/Connection.java +15 −0 Original line number Diff line number Diff line Loading @@ -766,6 +766,21 @@ public abstract class Connection extends Conferenceable { public static final String EXTRA_REMOTE_PHONE_ACCOUNT_HANDLE = "android.telecom.extra.REMOTE_PHONE_ACCOUNT_HANDLE"; /** * The Telecom call ID of the conference an existing connection should be added to. This is * required when {@link com.android.services.telephony.TelephonyConnectionService} adds a * {@link Conference} to Telecom using the * {@link ConnectionService#addExistingConnection(PhoneAccountHandle, Connection, Conference)} * API. That API specifies a parent conference associated with the new existing connection * being added, and there is no equivalent as part of the {@link RemoteConnectionService} API. * This extra key is used to stack the ID of the conference to which the existing connection * will be added so that Telecom can link it up correctly when the {@link RemoteConference} * is added to Telecom by the connection manager. * @hide */ public static final String EXTRA_ADD_TO_CONFERENCE_ID = "android.telecom.extra.ADD_TO_CONFERENCE_ID"; /** * Extra key set from a {@link ConnectionService} when using the remote connection APIs * (e.g. {@link RemoteConnectionService#createRemoteConnection(PhoneAccountHandle, Loading
telecomm/java/android/telecom/RemoteConnectionService.java +19 −7 Original line number Diff line number Diff line Loading @@ -239,13 +239,9 @@ final class RemoteConnectionService { conference.addConnection(c); } } if (conference.getConnections().size() == 0) { // A conference was created, but none of its connections are ones that have been // created by, and therefore being tracked by, this remote connection service. It // is of no interest to us. Log.d(this, "addConferenceCall - skipping"); return; } // We used to skip adding empty conferences; however in the world of IMS conference // calls we need to add them to the remote connection service because they will always // start with no participants. conference.setState(parcel.getState()); conference.setConnectionCapabilities(parcel.getConnectionCapabilities()); Loading Loading @@ -379,6 +375,8 @@ final class RemoteConnectionService { @Override public void addExistingConnection(String callId, ParcelableConnection connection, Session.Info sessionInfo) { Log.i(RemoteConnectionService.this, "addExistingConnection: callId=%s, conn=%s", callId, connection); String callingPackage = mOurConnectionServiceImpl.getApplicationContext(). getOpPackageName(); int callingTargetSdkVersion = mOurConnectionServiceImpl.getApplicationInfo() Loading @@ -390,6 +388,20 @@ final class RemoteConnectionService { Bundle newExtras = new Bundle(); newExtras.putParcelable(Connection.EXTRA_REMOTE_PHONE_ACCOUNT_HANDLE, connection.getPhoneAccount()); if (connection.getParentCallId() != null) { RemoteConference parentConf = mConferenceById.get(connection.getParentCallId()); // If there is a parent being set, we need to stash the conference ID here. // Telephony can add an existing connection while specifying a parent conference. // There is no equivalent version of that operation as part of the remote connection // API, so we will stash the pre-defined parent's ID in the extras. When the // connectionmanager copies over the extras from the remote connection to the // actual one, it'll get passed to Telecom so that it can make the association. if (parentConf != null) { newExtras.putString(Connection.EXTRA_ADD_TO_CONFERENCE_ID, parentConf.getId()); Log.i(this, "addExistingConnection: stash parent of %s as %s", connection.getParentCallId(), parentConf.getId()); } } remoteConnection.putExtras(newExtras); mConnectionById.put(callId, remoteConnection); remoteConnection.registerCallback(new RemoteConnection.Callback() { Loading