From d5f28cf37455a2e2a948ffb841ee2497420aa5c9 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Mon, 4 Jan 2021 20:37:26 -0700 Subject: [PATCH] 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. --- .../java/org/oxycblt/auxio/playback/PlaybackService.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackService.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackService.kt index a5540d99e..e014ea113 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackService.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackService.kt @@ -532,6 +532,8 @@ class PlaybackService : Service(), Player.EventListener, PlaybackStateManager.Ca .setOnAudioFocusChangeListener(this) .build() + private var pauseWasFromAudioFocus = false + fun requestFocus() { AudioManagerCompat.requestAudioFocus(audioManager, request) } @@ -553,14 +555,17 @@ class PlaybackService : Service(), Player.EventListener, PlaybackStateManager.Ca if (player.volume == VOLUME_DUCK && playbackManager.isPlaying) { player.volume = VOLUME_DUCK animateVolume(VOLUME_DUCK, VOLUME_FULL) - } else { + } else if (pauseWasFromAudioFocus) { playbackManager.setPlayingStatus(true) } + + pauseWasFromAudioFocus = false } } private fun onLoss() { - if (settingsManager.doAudioFocus) { + if (settingsManager.doAudioFocus && playbackManager.isPlaying) { + pauseWasFromAudioFocus = true playbackManager.setPlayingStatus(false) } }