Repository navigation
feat(alarm): add iOS 26 phone wake alarm - #2702
Closed
rodrigosa7 wants to merge 4 commits into
Closed
rodrigosa7 wants to merge 4 commits into
rodrigosa7 wants to merge 4 commits into
Conversation
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
Adds an opt-in iOS 26+ phone wake alarm using AlarmKit. It reads the shared wake schedule from #2700: the usual time, selected weekdays, and per-day overrides. The phone alarm is independent of the strap buzz and wind-down nudge. AlarmKit authorization is requested when the user turns it on; denied or failed changes are shown in the alarm screen. Schedule replacements retain the previous alarm until the new weekly alarms are installed, and the app reconciles them on foreground. When the phone alarm is current, NOOP removes the strap alarm's duplicate ordinary backup notification; that backup remains available if the phone schedule is missing or cannot be updated.
The screen now keeps weekday selection in the shared schedule even when the strap switch is off, and it only exposes per-day time editors for selected days. New copy is localized in the existing string catalog. Earlier iOS versions retain the existing alarm UI and behavior.
This is the scheduled wake portion of #1613. It does not add light-sleep detection or move the alarm earlier from live heart rate; dependable overnight background BLE and the cross-platform detector remain separate work. Analysis migration required: no — this changes UI and system alarm scheduling, not derived analysis values.
This branch is based on the still-open #2700 and its three shared-schedule commits. The draft PR therefore includes those commits until #2700 merges; its new feature commit is
feat(alarm): add iOS 26 phone wake alarm.Type of change
How it was tested
xcodegen generatecompleted.xcodebuild -project Strand.xcodeproj -scheme NOOPiOS -destination 'generic/platform=iOS Simulator' ... buildpassed.xcodebuild -project Strand.xcodeproj -scheme Strand -destination 'platform=macOS' ... buildpassed.git diff --check, plist lint, and string-catalog JSON validation passed.Checklist
swift testinPackages/<name>) — no package touchedandroid/(./gradlew testFullDebugUnitTest) — Android unchangedStrandDesigntokens — no hardcoded colors, fonts, or spacingdocs/CONTRIBUTING.mdStrand.xcodeproj/) or any secrets/keystoresRelated issues
Refs #2701. Depends on #2700. Related: #1613.
Apple references: AlarmKit scheduling,
NSAlarmKitUsageDescription, andAlarmManager.