Merge "Fix issue where conference gets logged when no CEP is enabled." am: 603547b079 am: 9abf783910 am: 890e0ad4d8
am: 54d7c877dd
Change-Id: If31df37c11eebb379987bcbfdbc4f6aee7c6dc8a
diff --git a/src/com/android/server/telecom/CallLogManager.java b/src/com/android/server/telecom/CallLogManager.java
index 86d3cc1..79b7774 100755
--- a/src/com/android/server/telecom/CallLogManager.java
+++ b/src/com/android/server/telecom/CallLogManager.java
@@ -214,6 +214,14 @@
return false;
}
+ // A conference call which had no children should not be logged; this case will occur on IMS
+ // when no conference event package data is received. We will have logged the participants
+ // as they merge into the conference, so we should not log the conference itself.
+ if (call.isConference() && !call.hadChildren() &&
+ !call.hasProperty(Connection.PROPERTY_REMOTELY_HOSTED)) {
+ return false;
+ }
+
// A child call of a conference which was remotely hosted; these didn't originate on this
// device and should not be logged.
if (call.getParentCall() != null && call.hasProperty(Connection.PROPERTY_REMOTELY_HOSTED)) {
diff --git a/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java b/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java
index becac11..d53c73c 100644
--- a/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java
@@ -792,7 +792,7 @@
@SmallTest
@Test
- public void testLogConferenceWithNoChildren() {
+ public void testDoNotLogConferenceWithNoChildren() {
Call fakeCall = makeFakeCall(
DisconnectCause.LOCAL, // disconnectCauseCode
true, // isConference
@@ -808,7 +808,7 @@
);
when(fakeCall.hadChildren()).thenReturn(false);
- assertTrue(mCallLogManager.shouldLogDisconnectedCall(fakeCall, CallState.DISCONNECTED,
+ assertFalse(mCallLogManager.shouldLogDisconnectedCall(fakeCall, CallState.DISCONNECTED,
false /* isCanceled */));
}