Skip to content

Adopt Liquid Glass UI and improve touchpad input - #126

Open
koboshchan wants to merge 7 commits into
hugeBlack:mainfrom
koboshchan:main
Open

koboshchan wants to merge 7 commits into
hugeBlack:mainfrom
koboshchan:main

Conversation

@koboshchan

@koboshchan koboshchan commented Oct 29, 2026 •

Copy link
Copy Markdown

Updates the app for iOS 26 with native navigation, forms, and Liquid Glass sign-in and streaming controls. Adds a layered Icon Composer version of the existing icon while preserving the artwork and raster fallback.

Touchpad mode adds a persistent cursor momentum toggle and tap-then-drag, with mouse-button release on cancellation, disconnect, and app lifecycle changes.

Tested on device: streaming, login and input work.

Use NavigationStack, system lists, tab navigation and sheets for account and host flows. Add accessible empty states and toolbar labels while preserving existing authentication, refresh and connection methods. Set iOS 26 deployment minimum for native glass APIs.

Verified unsigned Release iphoneos build and Debug simulator build. Simulator XCTest passed login navigation (upstream debug-only account), Friends tab, Settings presentation, picker interaction and dismissal. Real Parsec login/streaming not exercised.
Replace custom settings controls with Form pickers, sliders and toggles bound to the same settings store. Keep all original choices and ranges. Present stream actions in a compact glass panel and label keyboard/menu controls for accessibility; preserve stream controller and action implementations.

Verified Release iphoneos build and simulator navigation/settings XCTest. Inspected light/dark login and settings screenshots. Live streaming, controller input and audio require device verification.
Keep touchpad cursor glide enabled by default. Add a native settings toggle and honor it both at finger release and while a glide is active, without changing two-finger scroll momentum.

Validation: unsigned Release iphoneos build passed; extracted Swift momentum logic checks passed for on/off, active-glide cutoff, scroll preservation, direct mode, and captured-pointer exclusions.
Arm a nearby second touch after a successful click and hold left mouse before its first drag movement. Preserve stationary double taps, existing long-press dragging, two-finger input and the cursor momentum preference. Flush held input on cancellation, backgrounding, disconnection and navigation; never glide after a held drag.

Validation: unsigned Release iphoneos build passed; deterministic production-source Swift regression checks cover click ordering, tap/double tap, recognizer failure, long press, lifecycle cancellation, right click/scroll transitions, momentum on/off, direct and captured-pointer modes. Live device streaming not tested.
Extract the production touch handlers into a Swift harness with platform and transport doubles. Exercise tap and double tap, drag press/move/release ordering, long-press recognizer failure, cancellation/lifecycle cleanup, two-finger input, momentum and cursor-mode exclusions. Run with python3 Tests/tap_drag_regression.py on macOS; real-device streaming remains a separate smoke test.
Preserve the original cobalt extrusion and magenta face as separate flat artwork layers. Add light, dark and tinted treatments, with system-rendered glass highlights and shadows. Wire the document into the target while retaining the unchanged raster catalog.

Verified Release device and Debug simulator builds, all six Icon Composer renditions at iOS 26 design generation, and production-source touch regression coverage.
Explain primary-icon precedence, preserved raster artwork, and the application ictool command for reviewing all six system appearances.
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