Implement Alarm Snooze functionality
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu Clock App |
Fix Released
|
Critical
|
Nekhelesh Ramananthan | ||
Ubuntu UX |
Fix Released
|
Medium
|
Unassigned | ||
indicator-datetime (Ubuntu) |
Fix Released
|
Undecided
|
Charles Kerr |
Bug Description
----- Background Info -----
Currently the snap notification shown when an alarm is triggered shows the buttons "Ok" and "Show" which both does the same thing which is to dismiss the alarm. Since Snap notifications require a minimum of 2 buttons, the only choice is to implement the "Snooze" functionality and replace the "Show" button with "Snooze".
However "Snooze" was decided to be implemented as part of the SDK Alarms API which is worked on by zsombor. As per the blueprint at [1], the snooze functionality was to be implemented in revision 0.2 (post-RTM). However we require a solution to the above issue before RTM.
----- Proposed Solution -----
It was decided after discussing with Mirco Mueller, Giorgio Venturi and Daniela Ferrai to implement the Snooze functionality as a workaround in the Indicator-datetime by dismissing the notification and showing it again after the snooze duration. The full design spec is described below.
1. Provide a settings option in dbus to set the snooze duration that the clock app can expose in the settings page to allow the user to choose the snooze duration. This is shown in [2]. The snooze duration options will be 2, 4, 5 and 10 minutes.
2. On pressing the "Ok" button in the snap notification, the alarm will be dismissed permanently for the day.
3. If the user pressed "Snooze", then indicator-datetime should dismiss the snap notification and show it again after the snooze duration. This process will be repeated until the alarm timeout defined by the user in the clock app settings. By default that timeout is 30 minutes.
This will require a Go/No-Go decision from Charles Kerr regarding the implementation in indicator-datetime since as mentioned above this will be a workaround and workaround are not permanent solutions.
[1] https:/
[2] https:/
Related branches
- Jussi Pakkanen (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 849 lines (+476/-39)21 files modifieddata/com.canonical.indicator.datetime.AlarmProperties.xml (+8/-0)
data/com.canonical.indicator.datetime.gschema.xml.in (+8/-0)
include/datetime/planner-aggregate.h (+52/-0)
include/datetime/planner-snooze.h (+56/-0)
include/datetime/planner.h (+3/-2)
include/datetime/settings-live.h (+1/-0)
include/datetime/settings-shared.h (+1/-0)
include/datetime/settings.h (+1/-0)
include/datetime/snap.h (+2/-2)
src/CMakeLists.txt (+3/-0)
src/exporter.cpp (+1/-0)
src/main.cpp (+16/-16)
src/planner-aggregate.cpp (+106/-0)
src/planner-snooze.cpp (+115/-0)
src/planner.cpp (+54/-0)
src/settings-live.cpp (+12/-0)
src/snap.cpp (+11/-13)
tests/manual (+10/-0)
tests/manual-test-snap.cpp (+5/-5)
tests/test-exporter.cpp (+10/-1)
tests/test-settings.cpp (+1/-0)
- PS Jenkins bot: Approve (continuous-integration)
- Alan Pope 🍺🐧🐱 🦄 (community): Approve
- Charles Kerr (community): Approve
- Ubuntu Phone Apps Jenkins Bot: Approve (continuous-integration)
-
Diff: 517 lines (+273/-134)4 files modifiedapp/alarm/AlarmSettingsPage.qml (+224/-134)
backend/modules/Alarm/Settings/alarmsettings.cpp (+30/-0)
backend/modules/Alarm/Settings/alarmsettings.h (+18/-0)
debian/changelog (+1/-0)
description: | updated |
Changed in indicator-datetime (Ubuntu): | |
assignee: | nobody → Charles Kerr (charlesk) |
Changed in indicator-datetime (Ubuntu): | |
status: | Confirmed → In Progress |
Changed in ubuntu-clock-app: | |
assignee: | nobody → Nekhelesh Ramananthan (nik90) |
Changed in ubuntu-clock-app: | |
status: | Triaged → In Progress |
Changed in ubuntu-ux: | |
status: | New → Fix Committed |
Changed in ubuntu-ux: | |
assignee: | nobody → Giorgio Venturi (giorgio-venturi) |
importance: | Undecided → Medium |
status: | Fix Committed → Fix Released |
Changed in ubuntu-clock-app: | |
status: | Fix Committed → Fix Released |
Status changed to 'Confirmed' because the bug affects multiple users.