mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-09 16:11:20 +02:00
Customize TV guide display (#443)
Adds a view options button for the TV guide to allow some basic customization: * Show details header * Adjust how channels are sorted * Toggle color coding for programs Related to #250 Closes #288 Fixes #439
This commit is contained in:
parent
0d8800863b
commit
6edcfb1067
10 changed files with 456 additions and 23 deletions
|
|
@ -784,6 +784,51 @@ sealed interface AppPreference<Pref, T> {
|
|||
}
|
||||
},
|
||||
)
|
||||
|
||||
val LiveTvShowHeader =
|
||||
AppSwitchPreference<AppPreferences>(
|
||||
title = R.string.show_details,
|
||||
defaultValue = true,
|
||||
getter = { it.interfacePreferences.liveTvPreferences.showHeader },
|
||||
setter = { prefs, value ->
|
||||
prefs.updateLiveTvPreferences { showHeader = value }
|
||||
},
|
||||
summaryOn = R.string.enabled,
|
||||
summaryOff = R.string.disabled,
|
||||
)
|
||||
val LiveTvFavoriteChannelsBeginning =
|
||||
AppSwitchPreference<AppPreferences>(
|
||||
title = R.string.favorite_channels_at_beginning,
|
||||
defaultValue = true,
|
||||
getter = { it.interfacePreferences.liveTvPreferences.favoriteChannelsAtBeginning },
|
||||
setter = { prefs, value ->
|
||||
prefs.updateLiveTvPreferences { favoriteChannelsAtBeginning = value }
|
||||
},
|
||||
summaryOn = R.string.enabled,
|
||||
summaryOff = R.string.disabled,
|
||||
)
|
||||
val LiveTvChannelSortByWatched =
|
||||
AppSwitchPreference<AppPreferences>(
|
||||
title = R.string.sort_channels_recently_watched,
|
||||
defaultValue = false,
|
||||
getter = { it.interfacePreferences.liveTvPreferences.sortByRecentlyWatched },
|
||||
setter = { prefs, value ->
|
||||
prefs.updateLiveTvPreferences { sortByRecentlyWatched = value }
|
||||
},
|
||||
summaryOn = R.string.enabled,
|
||||
summaryOff = R.string.disabled,
|
||||
)
|
||||
val LiveTvColorCodePrograms =
|
||||
AppSwitchPreference<AppPreferences>(
|
||||
title = R.string.color_code_programs,
|
||||
defaultValue = true,
|
||||
getter = { it.interfacePreferences.liveTvPreferences.colorCodePrograms },
|
||||
setter = { prefs, value ->
|
||||
prefs.updateLiveTvPreferences { colorCodePrograms = value }
|
||||
},
|
||||
summaryOn = R.string.enabled,
|
||||
summaryOff = R.string.disabled,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -948,6 +993,14 @@ val advancedPreferences =
|
|||
)
|
||||
}
|
||||
|
||||
val liveTvPreferences =
|
||||
listOf(
|
||||
AppPreference.LiveTvShowHeader,
|
||||
AppPreference.LiveTvFavoriteChannelsBeginning,
|
||||
AppPreference.LiveTvChannelSortByWatched,
|
||||
AppPreference.LiveTvColorCodePrograms,
|
||||
)
|
||||
|
||||
data class AppSwitchPreference<Pref>(
|
||||
@get:StringRes override val title: Int,
|
||||
override val defaultValue: Boolean,
|
||||
|
|
|
|||
|
|
@ -98,6 +98,19 @@ class AppPreferencesSerializer
|
|||
.apply {
|
||||
resetSubtitles()
|
||||
}.build()
|
||||
|
||||
liveTvPreferences =
|
||||
LiveTvPreferences
|
||||
.newBuilder()
|
||||
.apply {
|
||||
showHeader = AppPreference.LiveTvShowHeader.defaultValue
|
||||
favoriteChannelsAtBeginning =
|
||||
AppPreference.LiveTvFavoriteChannelsBeginning.defaultValue
|
||||
sortByRecentlyWatched =
|
||||
AppPreference.LiveTvChannelSortByWatched.defaultValue
|
||||
colorCodePrograms =
|
||||
AppPreference.LiveTvColorCodePrograms.defaultValue
|
||||
}.build()
|
||||
}.build()
|
||||
|
||||
advancedPreferences =
|
||||
|
|
@ -155,6 +168,11 @@ inline fun AppPreferences.updateSubtitlePreferences(block: SubtitlePreferences.B
|
|||
subtitlesPreferences = subtitlesPreferences.toBuilder().apply(block).build()
|
||||
}
|
||||
|
||||
inline fun AppPreferences.updateLiveTvPreferences(block: LiveTvPreferences.Builder.() -> Unit): AppPreferences =
|
||||
updateInterfacePreferences {
|
||||
liveTvPreferences = liveTvPreferences.toBuilder().apply(block).build()
|
||||
}
|
||||
|
||||
inline fun AppPreferences.updateAdvancedPreferences(block: AdvancedPreferences.Builder.() -> Unit): AppPreferences =
|
||||
update {
|
||||
advancedPreferences = advancedPreferences.toBuilder().apply(block).build()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue