Add reminders push notification support
Bug #1273311 reported by
David Planella
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu Notes app |
Fix Released
|
Medium
|
Michael Zanetti |
Bug Description
In order to provide system integration, we should ensure reminders are not just static notes when the app is running, but that there is notification when a reminder is due.
One option is to use the Alarms API, but a more robust would be to use push notifications, which would cater for getting notified even if reminders have been created outside of the Reminders app - e.g. the web or any other client.
Related branches
lp://staging/~mzanetti/reminders-app/offline-mode
- David Planella: Approve
- Ubuntu Phone Apps Jenkins Bot: Approve (continuous-integration)
- Nicholas Skaggs (community): Needs Fixing
-
Diff: 6031 lines (+3029/-938)68 files modified3rdParty/libthrift/CMakeLists.txt (+1/-1)
CMakeLists.txt (+5/-1)
debian/control (+4/-1)
manifest.json.in (+4/-0)
push-helper.apparmor (+11/-0)
push-helper.json (+3/-0)
reminders.apparmor (+5/-2)
src/CMakeLists.txt (+2/-0)
src/app/preferences.cpp (+10/-0)
src/app/preferences.h (+5/-0)
src/app/qml/components/EditTagsDialog.qml (+3/-8)
src/app/qml/components/NotebooksDelegate.qml (+95/-78)
src/app/qml/components/NotesDelegate.qml (+51/-53)
src/app/qml/components/PageWithBottomEdge.qml (+4/-1)
src/app/qml/components/RemindersDelegate.qml (+67/-56)
src/app/qml/components/StatusBar.qml (+42/-0)
src/app/qml/components/TagsDelegate.qml (+72/-60)
src/app/qml/reminders.qml (+157/-73)
src/app/qml/ui/AccountSelectorPage.qml (+16/-3)
src/app/qml/ui/EditNoteView.qml (+8/-0)
src/app/qml/ui/NotePage.qml (+3/-8)
src/app/qml/ui/NoteView.qml (+0/-6)
src/app/qml/ui/NotebooksPage.qml (+4/-13)
src/app/qml/ui/NotesPage.qml (+9/-18)
src/app/qml/ui/RemindersPage.qml (+1/-0)
src/app/qml/ui/SetReminderView.qml (+53/-27)
src/app/qml/ui/TagsPage.qml (+1/-0)
src/libqtevernote/CMakeLists.txt (+2/-1)
src/libqtevernote/evernoteconnection.cpp (+35/-17)
src/libqtevernote/evernoteconnection.h (+3/-6)
src/libqtevernote/jobs/createnotebookjob.cpp (+9/-5)
src/libqtevernote/jobs/createnotebookjob.h (+5/-3)
src/libqtevernote/jobs/createnotejob.cpp (+27/-15)
src/libqtevernote/jobs/createnotejob.h (+4/-5)
src/libqtevernote/jobs/createtagjob.cpp (+8/-5)
src/libqtevernote/jobs/createtagjob.h (+5/-3)
src/libqtevernote/jobs/evernotejob.cpp (+112/-49)
src/libqtevernote/jobs/evernotejob.h (+2/-0)
src/libqtevernote/jobs/savenotebookjob.cpp (+8/-7)
src/libqtevernote/jobs/savenotebookjob.h (+2/-1)
src/libqtevernote/jobs/savenotejob.cpp (+56/-45)
src/libqtevernote/jobs/savetagjob.cpp (+8/-7)
src/libqtevernote/jobs/savetagjob.h (+2/-1)
src/libqtevernote/note.cpp (+197/-37)
src/libqtevernote/note.h (+41/-9)
src/libqtevernote/notebook.cpp (+142/-8)
src/libqtevernote/notebook.h (+44/-5)
src/libqtevernote/notebooks.cpp (+41/-0)
src/libqtevernote/notebooks.h (+8/-1)
src/libqtevernote/notes.cpp (+23/-1)
src/libqtevernote/notes.h (+6/-0)
src/libqtevernote/notesstore.cpp (+922/-253)
src/libqtevernote/notesstore.h (+50/-11)
src/libqtevernote/resource.cpp (+4/-3)
src/libqtevernote/tag.cpp (+157/-16)
src/libqtevernote/tag.h (+45/-7)
src/libqtevernote/tags.cpp (+45/-0)
src/libqtevernote/tags.h (+8/-1)
src/libqtevernote/userstore.cpp (+9/-4)
src/libqtevernote/userstore.h (+1/-1)
src/libqtevernote/utils/enmldocument.cpp (+2/-2)
src/libqtevernote/utils/organizeradapter.cpp (+172/-0)
src/libqtevernote/utils/organizeradapter.h (+40/-0)
src/push-helper/CMakeLists.txt (+26/-0)
src/push-helper/core.cpp (+60/-0)
src/push-helper/core.h (+25/-0)
src/push-helper/main.cpp (+32/-0)
tests/autopilot/reminders/tests/test_reminders.py (+5/-0)
Changed in reminders-app: | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in reminders-app: | |
assignee: | nobody → Michael Zanetti (mzanetti) |
tags: | added: rtm14 |
tags: | added: ota-future |
Changed in reminders-app: | |
milestone: | none → 2014-11-27 |
Changed in reminders-app: | |
status: | Triaged → Confirmed |
Changed in reminders-app: | |
status: | Confirmed → In Progress |
Changed in reminders-app: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
So, I spent some times to think about the implementation of Alarm API. We have to choose some things:
- Do we add alarm for every reminder, whatever the way has been created? Or we add alarm only for reminders created on device?
If we want to add alarm for every reminder we do it in the backend: at every sync we check which reminders have the alarm yet and we activate the misses.
Also, we need to sync the notes in background: if a user creates a note on the web, he wants the alarm rings also if he didn't open the app since a while
- When we want alarms ring? 10 minutes before the deadline? The day before? And if the reminder is set for a day, but without an hour? When has to ring the alarm? At midnight? At noon?