Merge "Don't create conferences with invalid calls" into lmp-dev
diff --git a/src/com/android/server/telecom/ConnectionServiceWrapper.java b/src/com/android/server/telecom/ConnectionServiceWrapper.java
index efa01e9..ce93177 100644
--- a/src/com/android/server/telecom/ConnectionServiceWrapper.java
+++ b/src/com/android/server/telecom/ConnectionServiceWrapper.java
@@ -198,6 +198,21 @@
}
ParcelableConference parcelableConference =
(ParcelableConference) args.arg2;
+
+ // Make sure that there's at least one valid call. For remote connections
+ // we'll get a add conference msg from both the remote connection service
+ // and from the real connection service.
+ boolean hasValidCalls = false;
+ for (String callId : parcelableConference.getConnectionIds()) {
+ if (mCallIdMapper.getCall(callId) != null) {
+ hasValidCalls = true;
+ }
+ }
+ if (!hasValidCalls) {
+ Log.d(this, "Attempting to add a conference with no valid calls");
+ break;
+ }
+
// need to create a new Call
Call conferenceCall = mCallsManager.createConferenceCall(
null, parcelableConference);
@@ -426,7 +441,6 @@
logIncoming("removeCall %s", callId);
if (mCallIdMapper.isValidCallId(callId) || mCallIdMapper.isValidConferenceId(callId)) {
mHandler.obtainMessage(MSG_REMOVE_CALL, callId).sendToTarget();
- mHandler.obtainMessage(MSG_REMOVE_CALL, callId);
}
}