Add new EPI method for when only the suppression reason has changed

This also fixes the 'unsuitable output' logic incorrectly overriding
the `@PlayWhenReadyChangeReason` when only the playback **suppression**
state has changed.

PiperOrigin-RevId: 743148739
This commit is contained in:
ibaker 2025-04-02 08:30:32 -07:00 committed by Copybara-Service
parent 9e80d6d263
commit 0517cea4d2

View File

@ -1560,7 +1560,7 @@ import java.util.concurrent.CopyOnWriteArraySet;
}
this.scrubbingModeEnabled = scrubbingModeEnabled;
internalPlayer.setScrubbingModeEnabled(scrubbingModeEnabled);
updatePlayWhenReady(playbackInfo.playWhenReady, playbackInfo.playWhenReadyChangeReason);
maybeUpdatePlaybackSuppressionReason();
}
@Override
@ -2740,6 +2740,10 @@ import java.util.concurrent.CopyOnWriteArraySet;
}
}
private void maybeUpdatePlaybackSuppressionReason() {
updatePlayWhenReady(playbackInfo.playWhenReady, playbackInfo.playWhenReadyChangeReason);
}
private void updatePlayWhenReady(
boolean playWhenReady, @Player.PlayWhenReadyChangeReason int playWhenReadyChangeReason) {
@PlaybackSuppressionReason
@ -2901,10 +2905,10 @@ import java.util.concurrent.CopyOnWriteArraySet;
if (isSelectedOutputSuitableForPlayback) {
if (playbackInfo.playbackSuppressionReason
== Player.PLAYBACK_SUPPRESSION_REASON_UNSUITABLE_AUDIO_OUTPUT) {
updatePlayWhenReady(playbackInfo.playWhenReady, PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST);
maybeUpdatePlaybackSuppressionReason();
}
} else {
updatePlayWhenReady(playbackInfo.playWhenReady, PLAY_WHEN_READY_CHANGE_REASON_USER_REQUEST);
maybeUpdatePlaybackSuppressionReason();
}
}