build(uhr): alarms, ringing, timer, stopwatch, world clock, bedtime, settings, widgets
- exact alarms via setAlarmClock, rescheduled on boot/time/zone change and app update - foreground ringing service: alarm-stream audio with gradual volume, vibration, full-screen screen with slide to snooze/stop, silence-after, missed notification - timers and stopwatch keep timestamps only; live countdown/chronometer notifications - world clock offline from the time zone database (no network permission at all) - own alarm tone, own analog face and launcher icon - next-ring logic unit-tested incl. DST gaps and zone changes; screenshot tests Co-Authored-By: Claude Opus 5.5 <[email protected]>
@@ -0,0 +1,26 @@
|
||||
# Build log: Uhr
|
||||
|
||||
App in `uhr/`, same stack as `wetter/`. Screenshots: `./gradlew :app:recordRoborazziDebug` → `replica/uhr/clone-screens/` (fixed palette, not wallpaper colours).
|
||||
Device checks on a Pixel 10 Pro XL (Android 16) via a debug-only activity that saves a real alarm/timer through the repository.
|
||||
|
||||
| ID | date | status | missing | harder than expected |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| slice | 2026-10-17 | done | – | verified on device: exact alarm registered (RTC_WAKEUP, policy_permission), rang at 15:12:00 with alarm-stream audio, heads-up while unlocked, full-screen screen on tap, snooze moved it to +10 min, stop from the snoozed notification disabled the one-time alarm |
|
||||
| S01 Alarm list | 2026-10-17 | done | – | – |
|
||||
| S02 Expanded card | 2026-10-17 | done | – | label editing saves on dismiss |
|
||||
| S03 Time picker | 2026-10-17 | done | – | – |
|
||||
| S04 Sound picker | 2026-10-17 | done | – | own file not device-tested |
|
||||
| S05 Pause alarm | 2026-10-17 | done | – | – |
|
||||
| S06 Clock | 2026-10-17 | done | reorder cities | city names offline via ICU exemplar cities |
|
||||
| S07 Add city | 2026-10-17 | done | – | – |
|
||||
| S08 Timer | 2026-10-17 | done | label edit UI | verified on device: 5 s timer rang in the background, stopped from the notification |
|
||||
| S09 Stopwatch | 2026-10-17 | done | – | – |
|
||||
| S10 Bedtime | 2026-10-17 | partial | sunrise alarm, sleep sounds | – |
|
||||
| S11 Ringing | 2026-10-17 | done | – | – |
|
||||
| S12 Timer ringing | 2026-10-17 | done | – | shares the ringing screen |
|
||||
| S13 Settings | 2026-10-17 | done | timer sound picker, home time zone | – |
|
||||
| S14 Screensaver | – | not started | | |
|
||||
| S15 Notifications | 2026-10-17 | done | – | upcoming, snoozed, missed, timers (live countdown), stopwatch (live) |
|
||||
| S16 Widgets | 2026-10-17 | partial | style options, world clock widget, picker previews; **not checked on the launcher** | live clocks via TextClock/AnalogClock RemoteViews |
|
||||
|
||||
Not verified yet: alarm after reboot, after a time zone change, with battery saver, over the lock screen with the screen off (expected full screen there).
|
||||
|
After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 138 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 161 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 119 KiB |
|
After Width: | Height: | Size: 111 KiB |
|
After Width: | Height: | Size: 141 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 115 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 143 KiB |
@@ -1,57 +1,57 @@
|
||||
feature,area,priority,original,clone,notes
|
||||
Alarm list with on/off switch and next-ring text,alarm,must,yes,no,
|
||||
Add alarm with time picker (dial and keyboard),alarm,must,yes,no,
|
||||
Expandable alarm card (edit in place),alarm,must,yes,no,
|
||||
Repeat days chips,alarm,must,yes,no,
|
||||
Alarm label,alarm,must,yes,no,
|
||||
Delete alarm with undo,alarm,must,yes,no,
|
||||
Vibrate toggle,alarm,must,yes,no,
|
||||
Alarm sound picker with preview (system ringtones),alarm,must,yes,no,
|
||||
Own audio file as alarm sound,alarm,should,yes,no,
|
||||
Pause alarm until date,alarm,should,yes,no,
|
||||
Skip next occurrence (dismiss early),alarm,should,yes,no,from notification
|
||||
Exact scheduling that survives reboot time change and Doze,alarm,must,yes,no,AlarmManager.setAlarmClock
|
||||
Full-screen ringing screen over lock screen,ringing,must,yes,no,
|
||||
Slide control snooze/stop,ringing,must,yes,no,
|
||||
Snooze length setting,settings,must,yes,no,
|
||||
Silence after setting,settings,must,yes,no,
|
||||
Gradually increase volume,settings,should,yes,no,
|
||||
Alarm volume setting,settings,should,yes,no,
|
||||
Volume buttons behaviour (snooze/stop/volume/none),settings,should,yes,no,
|
||||
Start week on,settings,could,yes,no,
|
||||
Upcoming alarm notification with dismiss now,notifications,should,yes,no,
|
||||
Missed alarm notification,notifications,should,yes,no,
|
||||
Snoozed notification with dismiss,notifications,must,yes,no,
|
||||
World clock: local time and date,clock,must,yes,no,
|
||||
World clock: add city via search,clock,must,yes,no,
|
||||
World clock: reorder and swipe to delete,clock,should,yes,no,
|
||||
Analog or digital clock style,clock,should,yes,no,
|
||||
Show seconds,clock,could,yes,no,
|
||||
Automatic home clock when travelling,clock,could,yes,no,
|
||||
Timer keypad h m s,timer,must,yes,no,
|
||||
Run several timers at once,timer,must,yes,no,
|
||||
Timer ring progress +1:00 pause reset delete,timer,must,yes,no,
|
||||
Timer labels,timer,could,yes,no,
|
||||
Timer runs in background with notification,timer,must,yes,no,
|
||||
Timer ringing screen,timer,must,yes,no,
|
||||
Timer sound and vibrate settings,settings,should,yes,no,
|
||||
Stopwatch start stop reset,stopwatch,must,yes,no,
|
||||
Stopwatch laps,stopwatch,must,yes,no,
|
||||
Stopwatch running notification,stopwatch,should,yes,no,
|
||||
Bedtime schedule with wake-up alarm,bedtime,should,yes,no,
|
||||
Bedtime reminder notification,bedtime,should,yes,no,
|
||||
Sunrise alarm (brightening screen),bedtime,could,yes,no,
|
||||
Sleep sounds with timer,bedtime,could,yes,no,own CC0 sounds
|
||||
Screensaver / bedside clock with night mode,display,could,yes,no,DreamService
|
||||
Digital clock widget,widgets,must,yes,no,
|
||||
Analog clock widget,widgets,should,yes,no,
|
||||
World clock widget,widgets,could,yes,no,
|
||||
Next alarm widget,widgets,should,yes,no,
|
||||
Widget style options (theme colours opacity),widgets,should,yes,no,like Wetter
|
||||
Theme system/light/dark and dynamic colour,display,must,yes,no,
|
||||
Expressive design (bottom bar pill cards shapes),display,must,yes,no,
|
||||
Streaming alarm sounds (YouTube Music Spotify Calm),alarm,could,yes,skip,partner accounts
|
||||
Google Assistant Routine,alarm,could,yes,skip,Google service
|
||||
Bedtime mode greyscale and DND,bedtime,could,yes,skip,Digital Wellbeing privileges
|
||||
Sleep tracking cough and snore,bedtime,could,yes,skip,system privileges + Pixel hardware
|
||||
Calendar upcoming events card,bedtime,could,yes,skip,Google Calendar
|
||||
feature,area,priority,original,clone,notes
|
||||
Alarm list with on/off switch and next-ring text,alarm,must,yes,yes,
|
||||
Add alarm with time picker (dial and keyboard),alarm,must,yes,yes,
|
||||
Expandable alarm card (edit in place),alarm,must,yes,yes,
|
||||
Repeat days chips,alarm,must,yes,yes,
|
||||
Alarm label,alarm,must,yes,yes,
|
||||
Delete alarm with undo,alarm,must,yes,yes,
|
||||
Vibrate toggle,alarm,must,yes,yes,
|
||||
Alarm sound picker with preview (system ringtones),alarm,must,yes,yes,
|
||||
Own audio file as alarm sound,alarm,should,yes,partial,picker works; file loss falls back to default; not device-tested
|
||||
Pause alarm until date,alarm,should,yes,yes,
|
||||
Skip next occurrence (dismiss early),alarm,should,yes,yes,from notification
|
||||
Exact scheduling that survives reboot time change and Doze,alarm,must,yes,yes,AlarmManager.setAlarmClock
|
||||
Full-screen ringing screen over lock screen,ringing,must,yes,yes,
|
||||
Slide control snooze/stop,ringing,must,yes,yes,
|
||||
Snooze length setting,settings,must,yes,yes,
|
||||
Silence after setting,settings,must,yes,yes,
|
||||
Gradually increase volume,settings,should,yes,yes,
|
||||
Alarm volume setting,settings,should,yes,yes,
|
||||
Volume buttons behaviour (snooze/stop/volume/none),settings,should,yes,yes,
|
||||
Start week on,settings,could,yes,yes,
|
||||
Upcoming alarm notification with dismiss now,notifications,should,yes,yes,
|
||||
Missed alarm notification,notifications,should,yes,yes,
|
||||
Snoozed notification with dismiss,notifications,must,yes,yes,
|
||||
World clock: local time and date,clock,must,yes,yes,
|
||||
World clock: add city via search,clock,must,yes,yes,
|
||||
World clock: reorder and swipe to delete,clock,should,yes,partial,swipe to delete only
|
||||
Analog or digital clock style,clock,should,yes,yes,
|
||||
Show seconds,clock,could,yes,yes,
|
||||
Automatic home clock when travelling,clock,could,yes,no,
|
||||
Timer keypad h m s,timer,must,yes,yes,
|
||||
Run several timers at once,timer,must,yes,yes,
|
||||
Timer ring progress +1:00 pause reset delete,timer,must,yes,yes,
|
||||
Timer labels,timer,could,yes,partial,stored and shown; no UI to edit yet
|
||||
Timer runs in background with notification,timer,must,yes,yes,
|
||||
Timer ringing screen,timer,must,yes,yes,
|
||||
Timer sound and vibrate settings,settings,should,yes,partial,vibrate setting only; sound uses default
|
||||
Stopwatch start stop reset,stopwatch,must,yes,yes,
|
||||
Stopwatch laps,stopwatch,must,yes,yes,
|
||||
Stopwatch running notification,stopwatch,should,yes,yes,
|
||||
Bedtime schedule with wake-up alarm,bedtime,should,yes,yes,
|
||||
Bedtime reminder notification,bedtime,should,yes,yes,
|
||||
Sunrise alarm (brightening screen),bedtime,could,yes,no,
|
||||
Sleep sounds with timer,bedtime,could,yes,no,own CC0 sounds
|
||||
Screensaver / bedside clock with night mode,display,could,yes,no,DreamService
|
||||
Digital clock widget,widgets,must,yes,yes,
|
||||
Analog clock widget,widgets,should,yes,yes,
|
||||
World clock widget,widgets,could,yes,no,
|
||||
Next alarm widget,widgets,should,yes,yes,
|
||||
Widget style options (theme colours opacity),widgets,should,yes,no,like Wetter
|
||||
Theme system/light/dark and dynamic colour,display,must,yes,yes,
|
||||
Expressive design (bottom bar pill cards shapes),display,must,yes,yes,
|
||||
Streaming alarm sounds (YouTube Music Spotify Calm),alarm,could,yes,skip,partner accounts
|
||||
Google Assistant Routine,alarm,could,yes,skip,Google service
|
||||
Bedtime mode greyscale and DND,bedtime,could,yes,skip,Digital Wellbeing privileges
|
||||
Sleep tracking cough and snore,bedtime,could,yes,skip,system privileges + Pixel hardware
|
||||
Calendar upcoming events card,bedtime,could,yes,skip,Google Calendar
|
||||
|
||||
|