Add preference for theme music

This commit is contained in:
Damontecres 2025-10-03 18:37:35 -04:00
parent f8efffa3c2
commit 6f18f780eb
No known key found for this signature in database
4 changed files with 30 additions and 0 deletions

View file

@ -175,6 +175,18 @@ sealed interface AppPreference<T> {
summaryOff = R.string.disabled,
)
val PlayThemeMusic =
AppSwitchPreference(
title = R.string.play_theme_music,
defaultValue = true,
getter = { it.interfacePreferences.playThemeSongs },
setter = { prefs, value ->
prefs.updateInterfacePreferences { playThemeSongs = value }
},
summaryOn = R.string.enabled,
summaryOff = R.string.disabled,
)
// val PlaybackDebugInfo =
// AppSwitchPreference(
// title = R.string.playback_debug_info,
@ -232,6 +244,7 @@ val basicPreferences =
AppPreference.SeekBarSteps,
AppPreference.HomePageItems,
AppPreference.RewatchNextUp,
AppPreference.PlayThemeMusic,
),
),
)

View file

@ -33,6 +33,12 @@ class AppPreferencesSerializer
maxItemsPerRow = AppPreference.HomePageItems.defaultValue.toInt()
enableRewatchingNextUp = AppPreference.RewatchNextUp.defaultValue
}.build()
interfacePreferences =
InterfacePreferences
.newBuilder()
.apply {
playThemeSongs = AppPreference.PlayThemeMusic.defaultValue
}.build()
}.build()
override suspend fun readFrom(input: InputStream): AppPreferences {
@ -60,3 +66,8 @@ inline fun AppPreferences.updateHomePagePreferences(block: HomePagePreferences.B
update {
homePagePreferences = homePagePreferences.toBuilder().apply(block).build()
}
inline fun AppPreferences.updateInterfacePreferences(block: InterfacePreferences.Builder.() -> Unit): AppPreferences =
update {
interfacePreferences = interfacePreferences.toBuilder().apply(block).build()
}

View file

@ -15,6 +15,10 @@ message HomePagePreferences{
bool enable_rewatching_next_up = 2;
}
message InterfacePreferences {
bool play_theme_songs = 1;
}
message AppPreferences {
// The currently signed in server and user IDs, mostly for restoring a session
string current_server_id = 1;
@ -22,4 +26,5 @@ message AppPreferences {
PlaybackPreferences playback_preferences = 3;
HomePagePreferences home_page_preferences = 4;
InterfacePreferences interface_preferences = 5;
}

View file

@ -42,4 +42,5 @@
<string name="video">Video</string>
<string name="audio">Audio</string>
<string name="genres">Genres</string>
<string name="play_theme_music">Play theme music</string>
</resources>