Skip to content

Add iPhone training favorites and interactive controls - #11

Closed
AlexSchmidt1999 wants to merge 12 commits into
codex/training-pause-guardfrom
codex/training-widgets
Closed

AlexSchmidt1999 wants to merge 12 commits into
codex/training-pause-guardfrom
codex/training-widgets

Conversation

@AlexSchmidt1999

@AlexSchmidt1999 AlexSchmidt1999 commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

iPhone Settings now configures three training favorites (Strength, Running, empty by default), selecting a sport or an existing Lift Log program. A medium Home Screen widget and configurable Lock Screen widget share Start/Pause/Resume/End intents with the new workout Live Activity and existing Lift activity. End requires a session-bound token confirmed within 30 seconds; completed Lift sets are saved without changing program templates.

Normal workouts and Lift Log pause after ten minutes without a fresh accepted live pulse. Protection arms only after the first sample; reconnection does not resume automatically. Existing clocks, persistence, App Group snapshots and Lift Activity update limits are reused. Widget/Activity actions run through one app-owned path with no training screen required. The new UI uses design tokens and translated strings. Apple platforms only.

Local reminders are opt-in and scheduled in advance with a 30-second allowance. A suspended process cannot execute an exact timer; restoration checks the persisted deadline before accepting new pulse data. Native Activity clocks avoid one-second app updates. The device checklist documents these limits.

The training widget is listed first in the NOOP gallery and its visibility is now confirmed on the owner's iPhone. Idle favorites use equal tiles and sport icons; active training prioritizes elapsed time and distinct session controls. Workout and Lift activities use the same muted action buttons, prioritize end confirmation and preserve native date-driven clocks. Compact Lock Screen controls retain complete VoiceOver labels. iOS build 437 updates the app and extensions together. Workout Live Activities now reuse the same workout-type glyph component as the app and favorite tiles, carrying the raw sport independently of the localized name; older snapshots remain readable. Lift keeps its existing in-app dumbbell icon. Favorites are configured under More → Settings → Training favorites.

Validation for this presentation change: macOS app build, iOS Release device app/widgets/watch build, four-bundle unsigned binary policy, translation coverage, source hygiene and source policy passed. Local SwiftUI layout renders cover idle, active, paused and end confirmation, small widget dimensions and long German exercise names. Additional renders at standard iOS font sizes pass the 160-point Live Activity height check. These Mac renders do not reproduce iOS vibrancy, Always-On or larger accessibility sizes; the device checklist includes those cases. The training foundation is unchanged; its 15 focused tests and the earlier 338 Tools tests passed before this presentation change. The sport-icon follow-up passed a new snapshot backward-compatibility test within 20 targeted snapshot/sync tests on macOS, and the combined iOS Release build 438 compiled the app, widgets and watch targets.

NOOP 12.0.0 build 438 was verified installed and launched over Wi-Fi with the existing bundle ID. The latest combined test build is now 439, also verified installed and launched; its centered widget tiles and fitted glyphs are tracked separately in #13. It combines this widget/icon work with the separate Today sync-layout follow-up. Hardware widget/Activity actions and longer WHOOP sync behavior remain subject to device testing.

Baseline review: separate review commits update the project hash for the iOS build counter. The latest baseline also records the additional UI use of the already-inventoried SF Symbol stop.fill; no endpoint, permission, dependency, signing configuration or workflow was added. The owner explicitly authorized local source-built testing while GitHub checks run. Caching a GitHub artifact for trusted automatic renewal still requires review and approval of its exact completed security run.

Stacked on the training pause/save foundation for a combined fork test build. No upstream PR is requested yet.

GitHub checks for the current PR head run independently. The local installation follow-up is paused; this PR does not authorize automatic upgrades or an upstream merge.

@AlexSchmidt1999

Copy link
Copy Markdown
Owner Author

Closing this older fork test PR. Its full head (e1d0a30e5b7e) is included in the combined test branch. New test-version work continues in #28. The branch and commits are kept.

The relevant changes are now submitted for upstream review in #2761.

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.

2 participants