Repository navigation
Add iPhone training favorites and interactive controls - #2761
Open
AlexSchmidt1999 wants to merge 5 commits into
Open
AlexSchmidt1999 wants to merge 5 commits into
AlexSchmidt1999 wants to merge 5 commits into
Conversation
AlexSchmidt1999
marked this pull request as ready for review
October 10, 2026 12:47
This was referenced Oct 10, 2026
Author
|
I am using NOOP 12.1.0 Release build 456 on my iPhone 17 Pro Max, and the app runs very smoothly in everyday use. This PR is included in that combined build, together with my other Apple changes and the performance fixes from #2724 by @UtkuDenizAltiok and #2705 by @kavemang. The installed source is d67cceb5. Both Apple builds and the local app, analytics, database and Python test suites passed for this combined build. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR does
Three configurable favorites start a sport recording or an existing Lift Log program. A medium Home Screen widget and a Lock Screen widget share Start, Pause, Resume, and End actions with training Live Activities. Configure opens the favorites submenu directly.
End first shows a confirmation tied to the session and valid for 30 seconds. Stale actions cannot end another session. Lift actions save completed sets without completing open sets or changing the program template. Activities end after saving succeeds, and failures retain the session for retry.
An app-owned coordinator reuses accepted live-HR receipts and the existing ten-minute limit. Protection arms after the first sample and pauses only while the sensor remains connected. Disconnecting lets the workout continue. Reconnecting gives a new window without counting the connection as a sample. New samples do not resume paused sessions. Notifications are planned ahead with a buffer because a suspended app cannot run an exact timer.
The existing Lift banner update limits, pulse gating, and strap-step diagnostics are retained. Timers render natively from dates, and the UI uses the existing sport icons and StrandDesign tokens. The new controls are iPhone-only. Shared code still builds on macOS.
This PR is stacked on the durable training save and pause changes. It needs a rebase after that PR merges. Review this feature without the dependency. Phone-away history enrichment also requires the offline recording changes.
Type of change
How it was tested
Tests cover the 599/600-second boundary, unchanged fresh HR, no first sample, disconnect/reconnect, restoration, and session/token/expiry validation. Fork builds were tested on an iPhone for Pause/Resume and end confirmation. Controlled strap reconnection, long suspension, and large-text widgets still need device verification.
The focused macOS tests and iOS Release build passed on this PR head. Source hygiene and iOS translation checks passed too.
Checklist
Installed-source update, October 16
The training lifecycle banks the latest manual-workout checkpoint before background reconciliation. The tab shell receives its repository through the explicit action reference used by the installed build and the shell update in #2803.
Review head:
16294302a24a. A local merge of the PRs reproduces the installed iPhone commitf88a1e12: 1,182 of 1,183 Apple product files are byte-identical; the remaining file uses the existingNoopMetrics.space3token for the same 12-point spacing. The combined macOS build and iPhone Release build pass, including widgets and Watch components. The macOS run completes 2,352 app tests with three skipped and zero failures.