Fix issue where conference gets logged when no CEP is enabled.
When CEP is not enabled, the conference itself would be logged.
This corrects that by ensuring that if a conference had no children we
will not attempt to log it.
Bug: 139299700
Test: Manual test with CEP override.
Change-Id: I24428438ad72d77879383349253bbf88a0cd567b
diff --git a/src/com/android/server/telecom/CallLogManager.java b/src/com/android/server/telecom/CallLogManager.java
index 7e2b572..b1b2058 100755
--- a/src/com/android/server/telecom/CallLogManager.java
+++ b/src/com/android/server/telecom/CallLogManager.java
@@ -215,6 +215,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 5be30fb..ffd56fa 100644
--- a/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java
@@ -785,7 +785,7 @@
@SmallTest
@Test
- public void testLogConferenceWithNoChildren() {
+ public void testDoNotLogConferenceWithNoChildren() {
Call fakeCall = makeFakeCall(
DisconnectCause.LOCAL, // disconnectCauseCode
true, // isConference
@@ -801,7 +801,7 @@
);
when(fakeCall.hadChildren()).thenReturn(false);
- assertTrue(mCallLogManager.shouldLogDisconnectedCall(fakeCall, CallState.DISCONNECTED,
+ assertFalse(mCallLogManager.shouldLogDisconnectedCall(fakeCall, CallState.DISCONNECTED,
false /* isCanceled */));
}