Wholphin/app
Justin Visser 94e2adf354 Add unit tests and migrate legacy per-row spacing on decode
Restores TestHomeRowSamples.kt (sample-data + sanity tests that
survived an earlier soft-reset on disk but never got staged). Updates
the RecentlyAdded sample to use the new cardSizeMultiplier and
spacingMultiplier fields.

Adds InterfaceHelpersTest.kt covering:
- Int.withinBoundsOrDefault (in-range, below-min, above-max, boundary
  equality) for both CardSize and Spacing preferences.
- resolveCardHeight (newly extracted pure helper underneath the
  composable resolvedCardHeight): sentinel 0, legacy 172, explicit
  per-row override, multiplier path.
- InterfaceCustomization.cardHeightDp / spacingDp math.
- migrateLegacyRowSpacing: absent / default / non-default / snapping /
  clamping / does-not-overwrite-existing-multiplier.

Adds migrateLegacyRowSpacing in HomeSettingsService and wires it into
decode(): when a row's raw JSON still carries the legacy "spacing"
field (from before this PR deleted the absolute spacing data field),
translate the value into the new spacingMultiplier so users keep the
same visual gap after upgrade.

Extracts resolveCardHeight as a pure helper from the @Composable
resolvedCardHeight so the resolution math is testable without the
Compose runtime.
2026-05-26 12:11:36 +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 Add unit tests and migrate legacy per-row spacing on decode 2026-05-26 12:11:36 +02:00
.gitignore Set update URL (#8) 2025-10-15 17:17:16 -04:00
build.gradle.kts Remove dependency on livedata libraries (#1453) 2026-05-25 08:27:19 -04:00
proguard-rules.pro Fix proguard for guava cache (#1445) 2026-05-23 21:21:51 -04:00