Fix audio focus from firing on user-input

Stop an issue where audio focus would resume playback after it was paused deliberately by the user.
This commit is contained in:
OxygenCobalt 2021-01-04 20:37:26 -07:00
parent 700a448f5e
commit d5f28cf374
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47

View file

@ -532,6 +532,8 @@ class PlaybackService : Service(), Player.EventListener, PlaybackStateManager.Ca
.setOnAudioFocusChangeListener(this) .setOnAudioFocusChangeListener(this)
.build() .build()
private var pauseWasFromAudioFocus = false
fun requestFocus() { fun requestFocus() {
AudioManagerCompat.requestAudioFocus(audioManager, request) AudioManagerCompat.requestAudioFocus(audioManager, request)
} }
@ -553,14 +555,17 @@ class PlaybackService : Service(), Player.EventListener, PlaybackStateManager.Ca
if (player.volume == VOLUME_DUCK && playbackManager.isPlaying) { if (player.volume == VOLUME_DUCK && playbackManager.isPlaying) {
player.volume = VOLUME_DUCK player.volume = VOLUME_DUCK
animateVolume(VOLUME_DUCK, VOLUME_FULL) animateVolume(VOLUME_DUCK, VOLUME_FULL)
} else { } else if (pauseWasFromAudioFocus) {
playbackManager.setPlayingStatus(true) playbackManager.setPlayingStatus(true)
} }
pauseWasFromAudioFocus = false
} }
} }
private fun onLoss() { private fun onLoss() {
if (settingsManager.doAudioFocus) { if (settingsManager.doAudioFocus && playbackManager.isPlaying) {
pauseWasFromAudioFocus = true
playbackManager.setPlayingStatus(false) playbackManager.setPlayingStatus(false)
} }
} }