mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-08 15:50:16 +02:00
The three v1 free sliders (UI scale, Card size, Spacing) become two discrete enum-based controls (Card size, Spacing) and a new Text size control, each selecting one of four DisplaySizeLevel values (Extra small / Small / Default / Large). UI scale is dropped entirely; the density override at the MainContent root goes with it. Proto: replaces ui_scale_percent / card_size_percent / spacing_percent with text_size_level / card_size_level / spacing_level on InterfacePreferences. DisplaySizeLevel enum is ordered DEFAULT = 0 so proto-zero-default lands new installs and any unset upgrader on DEFAULT for free; no upgrade-reset block needed, no serializer default-setting needed. AppPreference UiScale / CardSize / Spacing slider objects become three AppChoicePreference<AppPreferences, DisplaySizeLevel> entries (TextSize, CardSize, Spacing). DisplaySizeLevels.kt holds the user-facing display order and the three per-control percent-mapping extensions (textPercent / cardPercent / spacingPercent). InterfaceCustomization stores the three level fields and exposes cardSizePercent / spacingPercent as derived getters off the levels, so every consumer of cardHeightDp / episodeCardHeightDp / spacingDp stays unchanged. DisplaySizePage keeps the preview infrastructure (sample-item viewmodel, HomePageContent-based canvas, fake nav rail, two-column layout) and swaps the slider column for three ChoicePreference selectors bound to the new AppPreferences. The density-override wrap on the preview pane is removed. InterfaceHelpersTest withinBoundsOrDefault now exercises SkipForward since CardSize / Spacing are no longer AppSliderPreference. The two InterfaceCustomization scaling tests assert against cardSizeLevel = LARGE (116%) and spacingLevel = LARGE (125%). |
||
|---|---|---|
| .. | ||
| config | ||
| schemas/com.github.damontecres.wholphin.data.AppDatabase | ||
| src | ||
| .gitignore | ||
| build.gradle.kts | ||
| proguard-rules.pro | ||