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
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java
index bf8f8e4..d203d19 100644
--- a/telecomm/java/android/telecom/ConnectionService.java
+++ b/telecomm/java/android/telecom/ConnectionService.java
@@ -1770,10 +1770,28 @@
*/
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 @@
connection.getStatusHints(),
connection.getDisconnectCause(),
emptyList,
- connection.getExtras());
+ connection.getExtras(),
+ conferenceId);
mAdapter.addExistingConnection(id, parcelableConnection);
}
}