Notification for Unity Next

Registered by kevin gunn

This blueprint is meant to capture the feature & effort of Notifications for Unity Next UI. Note, this is slightly different than in the past original release of NotifyOSD from Ubuntu for a few reasons. First, the Notification module is being split into a front end/ui & a back end/service. Secondly all UI rendering where possible will be achieved by using Qt/QML. Thirdly Notification UI will be incorporated into the Unity Next shell rather than being an independent component.

Note: as testing is of specific interest it is covered under a separate, but related blueprint (client-1303-unity-ui-testing)

Acceptance criteria

Acceptance criteria for March / ubuntu-13.04-month-5:
#1) have the basic source structure for Action/NotificationRenderer landed in the unity/phablet code base
#2) have some NotificationRenderer rendering at least a mocked out Notification

Acceptance criteria for April / ubuntu-13.04-month-6:
#1) have the basic source structure for Notification ui components (& cooresponding test) landed in the unity/phablet code base, user should be able to run notification on phone shell on desktop & phone (ideally backed by notification services as well if possible/depends on back end) - no mods should be required when swapping out notification backend for test that drives the ui (api contract)

Acceptance criteria for May / ubuntu-13.05:
#1) Integrated with shell on Mir
#2) 100% test coverage maintained

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Unity Team
Direction:
Needs approval
Assignee:
Mirco Müller
Definition:
Approved
Series goal:
Accepted for saucy
Implementation:
Implemented
Milestone target:
milestone icon ubuntu-13.10
Started by
kevin gunn
Completed by
kevin gunn

Related branches

Sprints

Whiteboard

>> "[macslow] create unit-tested Qt & QML bindings: TODO"
>>> Why is the public and well-known API of libnotify not good
>>> enough?

There's two sides to this:
* apps-facing API - which can be libnotify, but needs to be bound into
QML - probably as part of the SDK - I didn't mean that to be part of
the above task
* shell-facing API - IIUC that's the frontend/backend API - and that
needs to be bound into QML for the shell to get the notification data
from the dispatcher and render them - those bindings should be part of
the foundations API set

From previous discussions ----snip----
--- backend --- (C++ w/ some qml, but it's up to Jussi)

NotificationSource/Action (talk DBus/libnotify)
  NotificationHandler
    queue (of Notifications)
    displayed_queue (of Notifications passed to the NotificationRenderer)

--- frontend --- (all QML)
    NotificationRenderer
      signal statusChanged()
      bool DisplayNotification(Notification n)

-------snip---------

Prototype for the Notification and Action classes:
http://collabedit.com/x685v

Apr 16 2013, kgunn: update http://www.youtube.com/watch?v=7OH6T0ixhyA

(?)

Work Items

Work items:
Work items for ubuntu-13.04-month-6: DONE
[macslow] create source structure in unity/phablet: DONE
[macslow] create a qml notification with a matching calling test(mock notif), test should pass in text, icon etc, notifiction render should rely on ubuntu shape to render a basic notifcation (bubble with buttons): DONE

Work items for ubuntu-13.05:
[macslow] Expand notification to wire up actions/events back to test: DONE
[macslow] Expand notification for different states (ephem, interact, snap): DONE
[macslow] create unit-tested Qt & QML bindings for rendering: DONE
[macslow] create an infrastructure of differently laid out notifications: DONE
[macslow] integrate the notifications into the shell as a new top-level element in the UI: DONE

Work items for ubuntu-13.07:
[macslow] add autopilot tests: DONE

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.