Repository navigation
settings: Live notifications — one switch each, and each hides only its own - #2419
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>
…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>
…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>
…yanbr#2422; ryanbr#2419 trimmed; rule 49; build 26fbca0
|
Landed on main. Your three commits are there unchanged as A few things in here are better than usual, so worth naming. The catalog diff is honest. The removed strings really are unused. Four have no reference left. The fifth, "Live heart rate in Dynamic Island", appears twice in historical AppChangelog prose, where it is a quoted phrase inside sentences that are their own catalog entries rather than a use of the removed key. The i18n audit agrees.
Deferring the heart-rate banner's make-room rule to #2422 was the right call, and it has since merged. That change replaced the imperative update with The one correction. On the rebase, for next time. Your base predates two changes to the live-HR #336 stays open, and referencing it the way you did was right: it asks for the live-HR switch, which already existed, so this generalises the pattern rather than answering that request. |
…2437 ryanbr#2444), ryanbr#2446 fixed upstream; logs+backup analysed (BACKLOG A background re-score, B ryanbr#2371 answered); fork tidied; build 0ad5ba9 shipped
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