Add:Android sleep timer setting to disable audio fade out #320

This commit is contained in:
advplyr 2023-02-04 17:39:41 -06:00
parent 5e98a4ff2f
commit 39909a398e
3 changed files with 32 additions and 7 deletions

View file

@ -102,7 +102,8 @@ data class DeviceSettings(
var autoSleepTimer: Boolean,
var autoSleepTimerStartTime: String,
var autoSleepTimerEndTime: String,
var sleepTimerLength: Long // Time in milliseconds
var sleepTimerLength: Long, // Time in milliseconds
var disableSleepTimerFadeOut: Boolean
) {
companion object {
// Static method to get default device settings
@ -119,7 +120,8 @@ data class DeviceSettings(
autoSleepTimer = false,
autoSleepTimerStartTime = "22:00",
autoSleepTimerEndTime = "06:00",
sleepTimerLength = 900000L // 15 minutes
sleepTimerLength = 900000L, // 15 minutes
disableSleepTimerFadeOut = false
)
}
}

View file

@ -108,10 +108,16 @@ class SleepTimerManager constructor(private val playerNotificationService: Playe
clearSleepTimer()
sleepTimerFinishedAt = System.currentTimeMillis()
} else if (sleepTimeSecondsRemaining <= 60) {
// Start fading out audio
val volume = sleepTimeSecondsRemaining / 60F
Log.d(tag, "SLEEP VOLUME FADE $volume | ${sleepTimeSecondsRemaining}s remaining")
setVolume(volume)
if (DeviceManager.deviceData.deviceSettings?.disableSleepTimerFadeOut == true) {
// Set volume to 1 in case setting was enabled while fading
setVolume(1f)
} else {
// Start fading out audio down to 10% volume
val percentToReduce = 1 - (sleepTimeSecondsRemaining / 60F)
val volume = 1f - (percentToReduce * 0.9f)
Log.d(tag, "SLEEP VOLUME FADE $volume | ${sleepTimeSecondsRemaining}s remaining")
setVolume(volume)
}
}
}
}