diff --git a/app/src/main/java/com/github/damontecres/dolphin/preferences/AppPreference.kt b/app/src/main/java/com/github/damontecres/dolphin/preferences/AppPreference.kt index e4b155e0..83d70cc5 100644 --- a/app/src/main/java/com/github/damontecres/dolphin/preferences/AppPreference.kt +++ b/app/src/main/java/com/github/damontecres/dolphin/preferences/AppPreference.kt @@ -175,6 +175,18 @@ sealed interface AppPreference { 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, ), ), ) diff --git a/app/src/main/java/com/github/damontecres/dolphin/preferences/AppPreferencesSerializer.kt b/app/src/main/java/com/github/damontecres/dolphin/preferences/AppPreferencesSerializer.kt index 7f76e819..77e1bf0f 100644 --- a/app/src/main/java/com/github/damontecres/dolphin/preferences/AppPreferencesSerializer.kt +++ b/app/src/main/java/com/github/damontecres/dolphin/preferences/AppPreferencesSerializer.kt @@ -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() + } diff --git a/app/src/main/proto/DolphinDataStore.proto b/app/src/main/proto/DolphinDataStore.proto index ae464089..c88f9e0c 100644 --- a/app/src/main/proto/DolphinDataStore.proto +++ b/app/src/main/proto/DolphinDataStore.proto @@ -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; } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 15167e96..cbb907e6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -42,4 +42,5 @@ Video Audio Genres + Play theme music