Wholphin/app
Justin Visser 6cef3fbce7 Switch display size to five symmetric levels
The discrete tick-slider UI lands Default at the slider's mid-point,
which matches how every other size control on a TV (volume, brightness,
font-size sliders) works. The previous four-level asymmetric layout
(two shrink steps, one growth step) was a discrete-picker decision
that didn't translate well once the UI became a slider: at four slots
Default sat at slot 2 of 4, off-centre.

DisplaySizeLevel proto enum gains EXTRA_LARGE = 4. The Kotlin enum
ordering already iterates UNRECOGNIZED last so existing UNRECOGNIZED
clamps still work. The string-array and individual level string
resources gain the Extra large entry.

Percentages are re-tuned to be symmetric around Default with growth
headroom slightly larger than shrink headroom (matches the demand
signal from the upstream discussion thread):

- Text:    XS 82  S 92  Default 100  L 110  XL 120
- Card:    XS 78  S 90  Default 100  L 115  XL 130
- Spacing: XS 75  S 88  Default 100  L 118  XL 135

The scaledSp lookup is regenerated for the new percentages and gains
an XL column. The formula fallback (rounded integer math) handles any
base sp not in the table.

Tests assert the new Card LARGE (115%) and Spacing LARGE (118%)
percentages against the dp math.
2026-05-28 14:23:20 +02:00
..
config Add experimental MPV player backend (#161) 2025-11-16 18:46:25 -05:00
schemas/com.github.damontecres.wholphin.data.AppDatabase Support configuring interface language per user (#1406) 2026-05-24 09:55:08 -04:00
src Switch display size to five symmetric levels 2026-05-28 14:23:20 +02:00
.gitignore Set update URL (#8) 2025-10-15 17:17:16 -04:00
build.gradle.kts Workaround for resource shrinking w/ split ABIs 2026-05-27 13:56:18 -04:00
proguard-rules.pro Fix proguard for guava cache (#1445) 2026-05-23 21:21:51 -04:00