Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 593336d0 authored by Nate Myren's avatar Nate Myren Committed by Automerger Merge Worker
Browse files

Only track mic usage when call is alive am: 59591a84

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/services/Telecomm/+/12618185

Change-Id: Ib5b706846ee48f8197d1bd16c3073c3558d8e658
parents e51756fa 59591a84
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -1139,6 +1139,7 @@ public class InCallController extends CallsManagerListenerBase {

    @Override
    public void onCallStateChanged(Call call, int oldState, int newState) {
        maybeTrackMicrophoneUse(isMuted());
        updateCall(call);
    }

@@ -1977,7 +1978,7 @@ public class InCallController extends CallsManagerListenerBase {
     */
    private void maybeTrackMicrophoneUse(boolean isMuted) {
        boolean wasTrackingManagedCall = mIsCallUsingMicrophone;
        mIsCallUsingMicrophone = isTrackingManagedCall() && !isMuted;
        mIsCallUsingMicrophone = isTrackingManagedAliveCall() && !isMuted;
        if (wasTrackingManagedCall != mIsCallUsingMicrophone) {
            if (mIsCallUsingMicrophone) {
                mAppOpsManager.startOp(AppOpsManager.OP_PHONE_CALL_MICROPHONE, myUid(),
@@ -1991,11 +1992,12 @@ public class InCallController extends CallsManagerListenerBase {

    /**
     * @return {@code true} if InCallController is tracking a managed call (i.e. not self managed
     * and not external).
     * and not external) that is active.
     */
    private boolean isTrackingManagedCall() {
    private boolean isTrackingManagedAliveCall() {
        return mCallIdMapper.getCalls().stream().anyMatch(c -> !c.isExternalCall()
            && !c.isSelfManaged());
            && !c.isSelfManaged() && c.isAlive() && c.getState() != CallState.ON_HOLD
                && c.getState() != CallState.AUDIO_PROCESSING);
    }

    /**