summaryrefslogtreecommitdiffstats
path: root/telecomm/java/android/telecom/ConnectionService.java
diff options
context:
space:
mode:
authorIhab Awad <ihab@google.com>2014-09-30 09:17:03 -0700
committerIhab Awad <ihab@google.com>2014-09-30 16:46:39 -0700
commit50e3506533478fa273cbc92c2919470d1889f1ed (patch)
tree2427095ce136a68b7ee48827bd9bac8bed934dcd /telecomm/java/android/telecom/ConnectionService.java
parent9cf01b63cb0023aec0e05b1ce050ff572532b876 (diff)
downloadframeworks_base-50e3506533478fa273cbc92c2919470d1889f1ed.zip
frameworks_base-50e3506533478fa273cbc92c2919470d1889f1ed.tar.gz
frameworks_base-50e3506533478fa273cbc92c2919470d1889f1ed.tar.bz2
Refine implementation of GSM conferences (1/3)
Bug: 17684223 Change-Id: I05d05b594803ea2c1da4247111b70ad5f870ac46
Diffstat (limited to 'telecomm/java/android/telecom/ConnectionService.java')
-rw-r--r--telecomm/java/android/telecom/ConnectionService.java28
1 files changed, 21 insertions, 7 deletions
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java
index ed9251b..efd311e 100644
--- a/telecomm/java/android/telecom/ConnectionService.java
+++ b/telecomm/java/android/telecom/ConnectionService.java
@@ -360,6 +360,14 @@ public abstract class ConnectionService extends Service {
}
@Override
+ public void onConferenceableConnectionsChanged(
+ Conference conference, List<Connection> conferenceableConnections) {
+ mAdapter.setConferenceableConnections(
+ mIdByConference.get(conference),
+ createConnectionIdList(conferenceableConnections));
+ }
+
+ @Override
public void onDestroyed(Conference conference) {
removeConference(conference);
}
@@ -638,19 +646,25 @@ public abstract class ConnectionService extends Service {
private void conference(String callId1, String callId2) {
Log.d(this, "conference %s, %s", callId1, callId2);
- Connection connection1 = findConnectionForAction(callId1, "conference");
- if (connection1 == getNullConnection()) {
- Log.w(this, "Connection1 missing in conference request %s.", callId1);
- return;
- }
-
Connection connection2 = findConnectionForAction(callId2, "conference");
if (connection2 == getNullConnection()) {
Log.w(this, "Connection2 missing in conference request %s.", callId2);
return;
}
- onConference(connection1, connection2);
+ Connection connection1 = findConnectionForAction(callId1, "conference");
+ if (connection1 == getNullConnection()) {
+ Conference conference1 = findConferenceForAction(callId1, "addConnection");
+ if (conference1 == getNullConference()) {
+ Log.w(this,
+ "Connection1 or Conference1 missing in conference request %s.",
+ callId1);
+ } else {
+ conference1.onMerge(connection2);
+ }
+ } else {
+ onConference(connection1, connection2);
+ }
}
private void splitFromConference(String callId) {