Add Display size customization page

Consolidates UI sizing into three percentage sliders surfaced through a
new Settings -> Interface -> Display size page: UI scale (50-150%),
Card size (50-150%), Spacing (25-175%). Each persists immediately via
DataStore; the rest of the app reflects them through
LocalInterfaceCustomization and a root-level LocalDensity override in
MainContent.

The page mirrors HomeSettingsPage's two-column shell: a fixed-width
settings panel on the left, HomePageContent rendering live preview rows
on the right. The page snapshots its own density on entry so the slider
rail stays fixed while UI scale changes the rest of the app.

Includes a one-shot AppUpgradeHandler migration block for installs at or
before 0.6.4-31-g0 that resets the three new percent fields to their
defaults.
This commit is contained in:
Justin Visser 2026-05-26 10:48:16 +02:00
parent 81e5f31401
commit 8fb301c2bb
12 changed files with 551 additions and 11 deletions

View file

@ -193,6 +193,9 @@ message InterfacePreferences {
bool show_logos = 13;
SearchPreferences search_preferences = 14;
repeated DisplayToggle display_toggles = 15;
int32 ui_scale_percent = 16;
int32 card_size_percent = 17;
int32 spacing_percent = 18;
}
message AdvancedPreferences {