Add ability to add existing connection AND set parent at the same time.

This is useful for IMS conferences where we want to add a connection and
set it as a child of a conference at the same time.

Test: Manual
Bug: 37581781
Change-Id: Id09c8296ffe18893c5642d403c6a69ad6c9765e2
This commit is contained in:
Tyler Gunn
2017-05-09 14:34:57 -07:00
parent e943a3cbe7
commit 78da7816da
3 changed files with 80 additions and 2 deletions

View File

@@ -1770,10 +1770,28 @@ public abstract class ConnectionService extends Service {
*/
public final void addExistingConnection(PhoneAccountHandle phoneAccountHandle,
Connection connection) {
addExistingConnection(phoneAccountHandle, connection, null /* conference */);
}
/**
* Adds a connection created by the {@link ConnectionService} and informs telecom of the new
* connection.
*
* @param phoneAccountHandle The phone account handle for the connection.
* @param connection The connection to add.
* @param conference The parent conference of the new connection.
* @hide
*/
public final void addExistingConnection(PhoneAccountHandle phoneAccountHandle,
Connection connection, Conference conference) {
String id = addExistingConnectionInternal(phoneAccountHandle, connection);
if (id != null) {
List<String> emptyList = new ArrayList<>(0);
String conferenceId = null;
if (conference != null) {
conferenceId = mIdByConference.get(conference);
}
ParcelableConnection parcelableConnection = new ParcelableConnection(
phoneAccountHandle,
@@ -1794,7 +1812,8 @@ public abstract class ConnectionService extends Service {
connection.getStatusHints(),
connection.getDisconnectCause(),
emptyList,
connection.getExtras());
connection.getExtras(),
conferenceId);
mAdapter.addExistingConnection(id, parcelableConnection);
}
}