fix: turn the screen on when an alarm or timer goes off

SystemUI launches a full-screen intent only when a notification is first
posted, never on an update. The alarm service went foreground with a
placeholder that had none and added it in the update, so a locked phone
could ring behind a black screen. The placeholder now carries it.

Timers had no full-screen screen at all. A finished timer now opens
TimerRingActivity over the lock screen with Stop and +1 min, posted
under a second notification id so the expiry is a fresh post. It only
does so while the timer is sounding, so it never covers a ringing
alarm's screen or wakes the display for an already auto-silenced timer.

Fixes #15
This commit is contained in:
makiolaj committed 2026-10-21 14:16:47 +02:00
1 parent 2f39b00398
commit badd7aaa54
12 files changed
+519 -19

No files matched your search

+12
View File
@@ -183,6 +183,18 @@
android:taskAffinity=""
android:turnScreenOn="true" />
<!-- The timer's ring screen: the alarm's window settings, opened by the
expired-timer notification's full-screen intent (issue #15). -->
<activity
android:name=".ui.ring.TimerRingActivity"
android:exported="false"
android:excludeFromRecents="true"
android:launchMode="singleTask"
android:showOnLockScreen="true"
android:showWhenLocked="true"
android:taskAffinity=""
android:turnScreenOn="true" />
<!-- The ring itself. systemExempted per D17: not mediaPlayback (an alarm
is not the user's media session) and emphatically not shortService,
which caps at ~3 minutes against a 10-minute ring window. -->