Merge "Ensure TeleComm tracks carrier privileged apps using mic" into sc-dev
diff --git a/src/com/android/server/telecom/InCallController.java b/src/com/android/server/telecom/InCallController.java
index fb7deb7..9765c0e 100644
--- a/src/com/android/server/telecom/InCallController.java
+++ b/src/com/android/server/telecom/InCallController.java
@@ -59,6 +59,7 @@
import com.android.internal.annotations.VisibleForTesting;
// TODO: Needed for move to system service: import com.android.internal.R;
import com.android.internal.telecom.IInCallService;
+import com.android.internal.util.ArrayUtils;
import com.android.internal.util.IndentingPrintWriter;
import com.android.server.telecom.SystemStateHelper.SystemStateListener;
import com.android.server.telecom.ui.NotificationChannelManager;
@@ -960,6 +961,9 @@
private static final int IN_CALL_SERVICE_TYPE_NON_UI = 4;
private static final int IN_CALL_SERVICE_TYPE_COMPANION = 5;
+ private static final int[] LIVE_CALL_STATES = { CallState.ACTIVE, CallState.PULLING,
+ CallState.DISCONNECTING };
+
/** The in-call app implementations, see {@link IInCallService}. */
private final Map<InCallServiceInfo, IInCallService> mInCallServices = new ArrayMap<>();
@@ -997,7 +1001,7 @@
/**
* {@code true} if InCallController is tracking a managed, not external call which is using the
- * microphone, {@code false} otherwise.
+ * microphone, and is not muted {@code false} otherwise.
*/
private boolean mIsCallUsingMicrophone = false;
@@ -2232,8 +2236,8 @@
*/
private boolean isTrackingManagedAliveCall() {
return mCallIdMapper.getCalls().stream().anyMatch(c -> !c.isExternalCall()
- && !c.isSelfManaged() && c.isAlive() && c.getState() != CallState.ON_HOLD
- && c.getState() != CallState.AUDIO_PROCESSING && c.getState() != CallState.DIALING);
+ && !c.isSelfManaged() && c.isAlive() && ArrayUtils.contains(LIVE_CALL_STATES,
+ c.getState()));
}
private boolean carrierPrivilegedUsingMicDuringVoipCall() {