settings: Live notifications — one switch each, and each hides only its own - #2419
Open
UtkuDenizAltiok wants to merge 3 commits into
Open
UtkuDenizAltiok wants to merge 3 commits into
UtkuDenizAltiok wants to merge 3 commits into
Conversation
NOOP shows three things on the Lock Screen and in the Dynamic Island: the live heart rate, a Lift Log
session and a strap sync. Two had switches, at the foot of the Strap card; the Lift Log banner had none
and followed the live heart rate switch ("a user who turned Live Activities off meant all of them"), so
turning off the everyday heart-rate banner also took away the gym banner and the Lock Screen light-up a
strap step sends through it.
The Lift Log banner now has its own switch (UnitPrefs.liftLiveActivityEnabled, default on), and the three
sit together in a small "Lock Screen & Dynamic Island" section after Strap (iOS only). Each decides only
what is shown: the heart rate is still measured, recorded and scored with its banner off. Same keys and
strings for the two existing switches; four new strings in all ten languages.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
UtkuDenizAltiok
added a commit
to UtkuDenizAltiok/noop
that referenced
this pull request
Sep 23, 2026
…switch touch only its own Tester feedback on the section: the switches said "in Dynamic Island" while each shows on the Lock Screen too, and the captions were long. The section is now "Live notifications" (Lock Screen and Dynamic Island, said once, with a line that a switch only hides one), and the rows are "Live heart rate", "Lift Log session" and "Strap sync", each with a one-line caption; the two titles reuse strings already translated. The nine replaced strings leave the catalog; six short ones arrive in all ten languages. These three are every Live Activity NOOP has (NOOPActivityAttributes, LiftActivityAttributes, SyncActivityAttributes); nothing else posts to the Dynamic Island. Each switch now affects only its own banner. The live heart rate banner stood aside for any Lift Log session and any sync, and a sync banner was held back for any session, even when the banner they made room for was switched off, which left the Lock Screen with nothing. They now make room only for a banner whose switch is on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
UtkuDenizAltiok
added a commit
to UtkuDenizAltiok/noop
that referenced
this pull request
Sep 23, 2026
…rist opened, build 90394a7
ryanbr#2422 replaces it with a better one: the live heart rate banner makes room only for another NOOP banner actually on screen (not for any session or any sync, which in the background shows no banner and used to end it every 15 minutes). Keeping this PR's switch-aware version as well would give two rules for one decision, and a conflict between the two PRs. The sync banner's hold-back during a session stays here. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
UtkuDenizAltiok
added a commit
to UtkuDenizAltiok/noop
that referenced
this pull request
Sep 23, 2026
UtkuDenizAltiok
added a commit
to UtkuDenizAltiok/noop
that referenced
this pull request
Sep 23, 2026
…yanbr#2422; ryanbr#2419 trimmed; rule 49; build 26fbca0
UtkuDenizAltiok
added a commit
to UtkuDenizAltiok/noop
that referenced
this pull request
Sep 23, 2026
UtkuDenizAltiok
added a commit
to UtkuDenizAltiok/noop
that referenced
this pull request
Sep 23, 2026
UtkuDenizAltiok
added a commit
to UtkuDenizAltiok/noop
that referenced
this pull request
Sep 24, 2026
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
NOOP has three live notifications — Live Activities, shown on the Lock Screen and in the Dynamic Island: the live heart rate, a Lift Log session and a strap sync (
NOOPActivityAttributes,LiftActivityAttributes,SyncActivityAttributes; nothing else in the app posts one). Two had a switch, at the foot of the Strap card, worded "… in Dynamic Island". The Lift Log banner had none: it followed the live heart rate switch (its comment: "a user who turned Live Activities off meant all of them"). So someone who did not want their heart rate on the Lock Screen all day — at a desk, in bed, on a bus — lost the gym banner too, and the Lock Screen light-up a strap double-tap sends through it.Now:
UnitPrefs.liftLiveActivityEnabled, keyliveActivity.lift.enabled, default on, read default-true like its siblings), checked where the controller checked the live heart rate one;holdsBackNewBanner). The live heart rate banner's own make-room rule is fixed, more broadly, in live HR: show only a heart rate the strap is measuring, and keep the banner until its switch turns it off #2422 (it makes room only for a banner actually on screen).A switch decides only what is shown: the heart rate is still measured, recorded and scored, a session still runs and buzzes, a sync still runs. The two existing keys are unchanged, so current settings carry over.
Type of change
How it was tested
54e70c3c, every step passed: WhoopStore 611 · StrandAnalytics 2048 · StrandImport 327 · doc lint · i18n · parity ledger, ratchet, governance (124) · macOSStrandTests2,120 (only the two locale-dependentTodayCarryOverTests) · iOS build. The head's last commit only restoresmain's two lines for the heart-rate banner's make-room rule and removes the helper they used (now live HR: show only a heart rate the strap is measuring, and keep the banner until its switch turns it off #2422's).Checklist
NoopMetrics.rowSpacing,NoopMetrics.space1,StrandFont,StrandPalette)docs/CONTRIBUTING.mdStrand.xcodeproj/) or any secrets/keystoresRelated issues
Refs #336 (the live heart rate switch)
🤖 Generated with Claude Code