Adds option to dim the screensaver (#1834)

## Description
Adds a new sceensaver setting to add dimming. A larger value is darker

This works with or without the in-app screensaver. If dimming is
enabled, the screen be will be dimmed after inactivity. If both dimming
and the in-app screensaver are enabled, the screensaver will show dimmed
after inactivity.

### Related issues
Closes #1179

### Testing
Emulator

## Screenshots
N/A, it's just darker

## AI or LLM usage
None
This commit is contained in:
Damontecres 2026-08-17 22:53:40 -04:00 • committed by GitHub
parent 197af604d6
commit c4264a3263
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 144 additions and 9 deletions

View file

@ -1338,6 +1338,14 @@ val screensaverPreferences =
ScreensaverPreference.Start,
),
),
PreferenceGroup(
title = R.string.dim_screen,
preferences =
listOf(
ScreensaverPreference.DimToggle,
ScreensaverPreference.DimPercentage,
),
),
)
data class AppSwitchPreference<Pref>(

View file

@ -176,6 +176,37 @@ object ScreensaverPreference {
},
)
val DimToggle =
AppSwitchPreference<AppPreferences>(
title = R.string.dim_after_delay,
defaultValue = AppPreference.ShowClock.defaultValue,
getter = { it.interfacePreferences.screensaverPreference.dimEnabled },
setter = { prefs, value ->
prefs.updateScreensaverPreferences { dimEnabled = value }
},
summaryOn = R.string.yes,
summaryOff = R.string.no,
)
val DimPercentage =
AppSliderPreference<AppPreferences>(
title = R.string.dim_percentage,
defaultValue = 75,
min = 0,
max = 95,
interval = 5,
getter = {
it.interfacePreferences.screensaverPreference.dimPercent
.toLong()
},
setter = { prefs, value ->
prefs.updateScreensaverPreferences { dimPercent = value.toInt() }
},
summarizer = { value ->
value?.let { "$value%" }
},
)
val Start =
AppClickablePreference<AppPreferences>(
title = R.string.start_screensaver,