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

Commit 3ddad675 authored by Vlad Popa's avatar Vlad Popa
Browse files

Adjust the APC active state

Some mute events like master mute and stream mute should not affect the
active state of the AudioPlaybackConfiguration.

Test: atest android.media.audio.cts.AudioPlaybackConfigurationTest
Bug: 246846130
Change-Id: Id7c94fd44cf714d65ef8ae21734af4c2c02ff873
parent d1b90dae
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -569,6 +569,17 @@ public final class AudioPlaybackConfiguration implements Parcelable {
        }
    }

    private boolean isMuteAffectingActiveState() {
        if (mMutedState == PLAYER_MUTE_INVALID) {
            // mute state is not set, therefore it will not affect the active state
            return false;
        }

        return (mMutedState & PLAYER_MUTE_CLIENT_VOLUME) != 0
                || (mMutedState & PLAYER_MUTE_VOLUME_SHAPER) != 0
                || (mMutedState & PLAYER_MUTE_PLAYBACK_RESTRICTED) != 0;
    }

    /**
     * @hide
     * Returns true if the player is considered "active", i.e. actively playing with unmuted
@@ -580,8 +591,7 @@ public final class AudioPlaybackConfiguration implements Parcelable {
    public boolean isActive() {
        switch (mPlayerState) {
            case PLAYER_STATE_STARTED:
                return mMutedState == 0
                        || mMutedState == PLAYER_MUTE_INVALID;  // only send true if not muted
                return !isMuteAffectingActiveState();
            case PLAYER_STATE_UNKNOWN:
            case PLAYER_STATE_RELEASED:
            case PLAYER_STATE_IDLE: