Skip to content

Standardize settings and add native macOS settings window - #66

Merged
austin-smith merged 2 commits into
mainfrom
standardize-settings-page
Jul 14, 2026
Merged

austin-smith merged 2 commits into
mainfrom
standardize-settings-page

Conversation

@austin-smith

Copy link
Copy Markdown
Owner

What Changed

  • Reorganized the settings page into Appearance, Sound & Haptics, Gameplay, Help, and About sections. The Appearance rows (Table, Cards, App Icon) drill into focused pages and show the current selection as a trailing preview.
  • Added three settings: Haptic feedback (iOS), Show game stats, and Show stock count — all default-on. Haptics are gated centrally in HapticManager, the stats strip hides as a whole (including Golf's Match tile), and stock counts hide in both stock presentations while accessibility values keep reporting exact counts.
  • Replaced the macOS settings sheet with a native Settings scene: General, Appearance, Rules, and About panes with fitted sizes, so ⌘, opens the standard settings window and pane switches get the system's animated resize.
  • Settings rows are shared between the iOS sheet and the macOS panes (SoundSettingsRows, GameplaySettingsRows, TableSettingsRows, CardsSettingsRows).
  • Rules & Scoring gained a game picker — it defaults to the game in play but any variant's rules, scoring, and terms can be browsed from anywhere, which the settings window made necessary.
  • Navigation cleanups: Rules & Scoring and the app icon picker are pushes inside the iOS settings stack instead of stacked sheets; About appears in settings on both platforms; the About copy wraps at the About window's column width in any host.

Why

The settings page had grown into a flat list with uneven sections, nested sheets, and no macOS-native behavior — resizing the sheet on every navigation with no animation. This restructures it around standard platform patterns and adds the three requested visibility/feedback settings (#54, #55, #57).

Validation

  • Full unit suite via the AGENTS.md test workflow: 541 tests, 0 failures, 10 skipped.
  • Debug builds green for iOS Simulator and macOS destinations after each change.
  • Manually exercised on iPhone 17 Pro simulator and macOS: settings navigation, all new toggles (stats strip, stock count, hint button), settings window panes, rules game picker, and About wrapping.

UI Changes

  • iOS: settings top level now shows Appearance rows with live previews (color swatch, card style thumbnail, app icon) and grouped toggle sections with subtitles.
  • macOS: settings open in the standard settings window with toolbar panes instead of a sheet; background color swatches are fixed at 32pt; Rules & Scoring header is a single left-aligned cluster.

Closes #54, closes #55, closes #57.

reorganize settings into appearance, sound & haptics, gameplay, help,
and about sections with live previews on appearance rows. add haptic
feedback, show game stats, and show stock count settings. replace
nested sheets with navigation pushes and give the macos sheet a
navigation stack.
replace the macos settings sheet with a settings scene: general,
appearance, rules, and about panes with fitted sizes so pane switches
get the system's animated resize. share settings rows between the ios
sheet and the panes, add a game picker to rules & scoring, and wrap
the about copy to the about window's column width.
@austin-smith
austin-smith merged commit 35367a7 into main Jul 14, 2026
2 checks passed
@austin-smith
austin-smith deleted the standardize-settings-page branch July 14, 2026 06:48
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.

Add setting to hide stock count Add haptic feedback setting Add setting to hide the game stats header

1 participant