Skip to content

Add optional Smooth/Snappy scrolling for Spotlight Home - #71

Draft
ghbarker wants to merge 2 commits into
varunsalian:webdav-syncfrom
ghbarker:codex/upstream-tv-motion
Draft

ghbarker wants to merge 2 commits into
varunsalian:webdav-syncfrom
ghbarker:codex/upstream-tv-motion

Conversation

@ghbarker

@ghbarker ghbarker commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Add an optional Smooth/Snappy picker for Spotlight Home scrolling. Snappy remains the default and preserves Android TV's immediate reveal and tvOS's 220 ms reveal; Smooth uses a 260 ms glide. Reduced motion disables the animation and off-TV timing stays unchanged.

The picker is added within the existing Appearance/Display section and settings search. Existing menu groups, labels and relative order are preserved: no settings rearrangement is included. Only Spotlight scroll-follow opts into this policy; this does not migrate Collections, other layouts or shared scroll wrappers. The preference is local to the active profile and installation, follows profile activation/reset/rollback, and is excluded from automatic WebDAV appearance synchronization.

Based independently on webdav-sync at 077f2e79, preserving the owner's newer Spotlight performance, loading and hero behavior.

Flutter 3.44.8 / Dart 3.12.2: behavioral red-before-green checks exercise actual DPAD intermediate frames and repeated movement. 163 related tests pass, including profile races, mounted-consumer refresh, picker navigation, reduced motion, tvOS/off-TV compatibility and WebDAV appearance exclusions. Analysis matches upstream's 16 informational diagnostics with no warnings or errors. Three reproduced upstream failures (a Windows golden and two source guards) are documented in the verification note and excluded from this selection.

The earlier fork fix was accepted on AM9; this independently ported upstream implementation has not yet been validated on a physical device. Keep draft until that gate is completed.

Independent review rejected 12 distinct behavioral mutations. Six additional regression tests are now committed, bringing the final related suite to 169 passing tests; analysis of the additional tests is clean. Settings groups and relative row order were independently checked.

Combined validation with the other ten proposed slices: 304 focused/integration tests passed and an Android release build succeeded with Flutter 3.44.8 / Dart 3.12.2 / JDK 17. The test and build source trees match. The existing Windows Spotlight golden is excluded from that selection. A separate clean upstream full-suite run has 6,044 passes, 12 skips, 55 failing user tests and one failing teardown hook; this is not a full-suite or GitHub CI pass. Physical-device validation of the upstream ports remains outstanding.

Promote six behavioral tests covering delayed and failing writes, queued warm/profile-generation ownership, and live motion changes on focused Spotlight cards. Correct the upstream source-guard failure description and record the 169-test regression selection.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant