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

Commit 84936114 authored by Nate Myren's avatar Nate Myren Committed by Android (Google) Code Review
Browse files

Merge "Only track mic usage when call is alive"

parents e35f0322 bfdd97f8
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);
    }

@@ -1995,7 +1996,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(),
@@ -2009,11 +2010,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);
    }

    /**