Skip to content

Let low, high and predicted low alarms play through silent mode - #2591

Merged
ps2 merged 1 commit into
next-devfrom
glucose-alerts-through-silent
Oct 17, 2026
Merged

ps2 merged 1 commit into
next-devfrom
glucose-alerts-through-silent

Conversation

@ps2

@ps2 ps2 commented Oct 17, 2026

Copy link
Copy Markdown
Collaborator

Low, high and predicted low go out as time-sensitive notifications, whose sound the ring/silent switch mutes, so on a silenced phone only urgent low was audible (#2481). iOS offers no way to read the switch, so detecting it isn't an option.

Each of these alarms now has a Play Through Silent Mode toggle next to its sound. When it's on and the alert isn't muted, Loop plays the sound once in-process through the .playback audio session at the current volume, with vibration, and leaves the notification silent so the sound isn't heard twice. It is on by default for low and predicted low and off for high. Urgent low is unchanged.

CriticalAlertAudioPlayer.play gains a boostVolume parameter; with it off the sound plays once without the volume boost or looping.

Built and installed on an iPhone with the other alert changes.

Low, high and predicted low go out as time-sensitive notifications,
whose sound the ring/silent switch mutes, so on a silenced phone only
urgent low was audible (#2481). iOS offers no way to read
the switch, so detecting it isn't an option.

Each of these alarms now has a Play Through Silent Mode toggle next to
its sound. When it's on and the alert isn't muted, Loop plays the sound
once in-process through the .playback audio session at the current
volume, with vibration, and leaves the notification silent so the sound
isn't heard twice. It is on by default for low and predicted low and
off for high. Urgent low is unchanged.
@ps2
ps2 merged commit 7d50261 into next-dev Oct 17, 2026
ps2 added a commit to LoopKit/LoopWorkspace that referenced this pull request Oct 19, 2026
Loop: issue reports to the LoopKit developers (LoopKit/Loop#2585), even
alarm loudness (LoopKit/Loop#2589), stop AlarmKit alarms after a relaunch
(LoopKit/Loop#2590), alarms play through silent mode (LoopKit/Loop#2591),
carb entry sync identifier (LoopKit/Loop#2587).

LoopKit: watch glucose duplicate crash (LoopKit/LoopKit#655), chart
back-gesture (LoopKit/LoopKit#656, LoopKit/LoopKit#658), iOS 17.6 and
watchOS 10.6 (LoopKit/LoopKit#659), previous pump's reservoir values
(LoopKit/LoopKit#657), carb entry sync identifier (LoopKit/LoopKit#654).

LibreLoop: not-an-Abbott-product notice (LoopKit/LibreLoop#25), iOS 17.6
(LoopKit/LibreLoop#26), backfilled readings in Recent Readings
(LoopKit/LibreLoop#27).

LibreTransmitter: forward the newest trend reading (LoopKit/LibreTransmitter#58).

EversenseKit and MixpanelService: iOS 17.6 (LoopKit/EversenseKit#7,
LoopKit/MixpanelService#9).
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.

1 participant