Customize which ratings to display (#1407)

## Description
Adds a setting, Settings->Advanced->"Customize which ratings to
display", which allows for toggling parental, community, or critic
ratings to be displayed in the quick details.

This doesn't apply to discover yet.

### Related issues
Related to #1020

### Testing
Emulator

## Screenshots

### Just community rating
<img width="1280" height="720" alt="ratings Large"
src="https://github.com/user-attachments/assets/d6f9ad8a-6cc5-4680-9d2f-66d16a44b41e"
/>


## AI or LLM usage
None
This commit is contained in:
Damontecres 2026-05-20 12:40:58 -04:00 • committed by GitHub
parent 45d466d76f
commit 366483599c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 333 additions and 206 deletions

View file

@ -516,6 +516,25 @@ sealed interface AppPreference<Pref, T> {
summaryOff = R.string.disabled,
)
val DisplayTogglesPref =
AppMultiChoicePreference<AppPreferences, DisplayToggle>(
title = R.string.display_toggles_title,
summary = R.string.display_toggles_summary,
defaultValue = DisplayToggle.entries.filterNot { it == DisplayToggle.UNRECOGNIZED },
allValues = DisplayToggle.entries.filterNot { it == DisplayToggle.UNRECOGNIZED },
displayValues = R.array.display_toggle_types,
displayValuesSubtitles = R.array.display_toggle_types_subtitles,
getter = {
it.interfacePreferences.displayTogglesList
},
setter = { prefs, value ->
prefs.updateInterfacePreferences {
clearDisplayToggles()
addAllDisplayToggles(value)
}
},
)
val InstalledVersion =
AppClickablePreference<AppPreferences>(
title = R.string.installed_version,
@ -1058,8 +1077,8 @@ val basicPreferences =
preferences =
listOf(
AppPreference.SignInAuto,
AppPreference.PlayThemeMusic,
AppPreference.RememberSelectedTab,
AppPreference.PlayThemeMusic,
AppPreference.SubtitleStyle,
AppPreference.ThemeColors,
AppPreference.ScreensaverSettings,
@ -1172,13 +1191,13 @@ val advancedPreferences =
preferences =
listOf(
AppPreference.ShowClock,
AppPreference.BackdropStylePref,
AppPreference.ShowLogos,
AppPreference.ManageMedia,
AppPreference.CombineContinueNext,
AppPreference.DisplayTogglesPref,
// Temporarily disabled, see https://github.com/damontecres/Wholphin/pull/127#issuecomment-3478058418
// AppPreference.NavDrawerSwitchOnFocus,
AppPreference.ControllerTimeout,
AppPreference.BackdropStylePref,
AppPreference.SlideshowDuration,
AppPreference.SlideshowPlayVideos,
),
@ -1190,6 +1209,7 @@ val advancedPreferences =
preferences =
listOf(
AppPreference.OneClickPause,
AppPreference.ControllerTimeout,
AppPreference.CinemaMode,
AppPreference.GlobalContentScale,
AppPreference.SkipSegments,
@ -1337,6 +1357,7 @@ data class AppMultiChoicePreference<Pref, T>(
override val getter: (prefs: Pref) -> List<T>,
override val setter: (prefs: Pref, value: List<T>) -> Pref,
@param:StringRes val summary: Int? = null,
@param:ArrayRes val displayValuesSubtitles: Int? = null,
) : AppPreference<Pref, List<T>>
data class AppClickablePreference<Pref>(