Fixed resume after non manual pause.

This commit is contained in:
Koen J
2026-02-10 13:24:21 +01:00
parent 6492278e7d
commit 7b76ba1539
@@ -456,26 +456,19 @@ class MediaPlaybackService : Service() {
val audioFocusLossDuration = _audioFocusLossTime_ms?.let { System.currentTimeMillis() - it } val audioFocusLossDuration = _audioFocusLossTime_ms?.let { System.currentTimeMillis() - it }
_audioFocusLossTime_ms = null _audioFocusLossTime_ms = null
Log.i(TAG, "Audio focus gained (restartPlaybackAfterLoss = ${Settings.instance.playback.restartPlaybackAfterLoss}, _audioFocusLossTime_ms = $_audioFocusLossTime_ms, audioFocusLossDuration = ${audioFocusLossDuration})"); Log.i(TAG, "Audio focus gained (restartPlaybackAfterLoss = ${Settings.instance.playback.restartPlaybackAfterLoss}, _audioFocusLossTime_ms = $_audioFocusLossTime_ms, audioFocusLossDuration = ${audioFocusLossDuration})");
if (Settings.instance.playback.restartPlaybackAfterLoss == 1) { if (audioFocusLossDuration == null) return@OnAudioFocusChangeListener
if (audioFocusLossDuration != null && audioFocusLossDuration < 1000 * 10) { when (Settings.instance.playback.restartPlaybackAfterLoss) {
MediaControlReceiver.onPlayReceived.emit() 1 -> if (audioFocusLossDuration < 10_000) MediaControlReceiver.onPlayReceived.emit()
} 2 -> if (audioFocusLossDuration < 30_000) MediaControlReceiver.onPlayReceived.emit()
} else if (Settings.instance.playback.restartPlaybackAfterLoss == 2) { 3 -> MediaControlReceiver.onPlayReceived.emit()
if (audioFocusLossDuration != null && audioFocusLossDuration < 1000 * 30) {
MediaControlReceiver.onPlayReceived.emit()
}
} else if (Settings.instance.playback.restartPlaybackAfterLoss == 3) {
MediaControlReceiver.onPlayReceived.emit()
} }
} }
AudioManager.AUDIOFOCUS_LOSS_TRANSIENT -> { AudioManager.AUDIOFOCUS_LOSS_TRANSIENT -> {
_audioFocusLossTime_ms = if (isPlaying) { val wasPlaying = isPlaying
System.currentTimeMillis() _audioFocusLossTime_ms = if (wasPlaying) System.currentTimeMillis() else null
} else {
null
}
_hasFocus = false; _hasFocus = false;
_isTransientLoss = true; _isTransientLoss = true;
@@ -488,11 +481,8 @@ class MediaPlaybackService : Service() {
_isTransientLoss = true; _isTransientLoss = true;
} }
AudioManager.AUDIOFOCUS_LOSS -> { AudioManager.AUDIOFOCUS_LOSS -> {
_audioFocusLossTime_ms = if (isPlaying) { val wasPlaying = isPlaying
System.currentTimeMillis() _audioFocusLossTime_ms = if (wasPlaying) System.currentTimeMillis() else null
} else {
null
}
MediaControlReceiver.onPauseReceived.emit(); MediaControlReceiver.onPauseReceived.emit();
abandonAudioFocus(); abandonAudioFocus();