Add:Android sleep timer setting to disable vibrate on reset #552

This commit is contained in:
advplyr 2023-02-04 17:52:31 -06:00
parent 39909a398e
commit 2f243787ce
3 changed files with 30 additions and 9 deletions

View file

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

View file

@ -156,8 +156,10 @@ class SleepTimerManager constructor(private val playerNotificationService: Playe
playerNotificationService.clientEventEmitter?.onSleepTimerSet(0, false)
}
// Vibrate when extending sleep timer by shaking
private fun vibrate() {
// Vibrate when resetting sleep timer
private fun vibrateFeedback() {
if (DeviceManager.deviceData.deviceSettings?.disableSleepTimerResetFeedback == true) return
val context = playerNotificationService.getContext()
val vibrator:Vibrator
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
@ -207,7 +209,7 @@ class SleepTimerManager constructor(private val playerNotificationService: Playe
private fun resetChapterTimer() {
this.getChapterEndTime()?.let { chapterEndTime ->
Log.d(tag, "Resetting stopped sleep timer to end of chapter $chapterEndTime")
vibrate()
vibrateFeedback()
setSleepTimer(chapterEndTime, true)
play()
}
@ -232,7 +234,7 @@ class SleepTimerManager constructor(private val playerNotificationService: Playe
resetChapterTimer()
} else {
Log.d(tag, "Resetting stopped sleep timer to length $sleepTimerLength")
vibrate()
vibrateFeedback()
setSleepTimer(sleepTimerLength, false)
play()
}
@ -242,14 +244,14 @@ class SleepTimerManager constructor(private val playerNotificationService: Playe
// Does not apply to chapter sleep timers and timer must be running for at least 3 seconds
if (sleepTimerLength > 0L && sleepTimerElapsed > 3000L) {
Log.d(tag, "Resetting running sleep timer to length $sleepTimerLength")
vibrate()
vibrateFeedback()
setSleepTimer(sleepTimerLength, false)
} else if (sleepTimerLength == 0L) {
// When navigating to previous chapters make sure this is still the end of the current chapter
this.getChapterEndTime()?.let { chapterEndTime ->
if (chapterEndTime != sleepTimerEndTime) {
Log.d(tag, "Resetting chapter sleep timer to end of chapter $chapterEndTime from $sleepTimerEndTime")
vibrate()
vibrateFeedback()
setSleepTimer(chapterEndTime, true)
play()
}