Line 1: |
Line 1: |
| + | [[Category:FeatureLanded|Notification System]] |
| == Summary == | | == Summary == |
− | This adds a simple notification system for sugar that can be used in activities and by the system/ | + | This adds a simple messages notification system for sugar that can be used by the system, journal and activities notifications. |
| | | |
| == Owner == | | == Owner == |
− | * Name: [[User:AcountName|SAMdroid]] | + | * Name: [[User:SAMdroid|SAMdroid]] |
| * Email: sam.parkinson3@gmail.com | | * Email: sam.parkinson3@gmail.com |
| + | |
| + | * Name: [[User:tch|tch]] |
| + | * Email: tch@sugarlabs.org |
| | | |
| == Current status == | | == Current status == |
− | * Targeted release: Soon | + | * Targeted release: 0.102 |
| * Last updated: 8th of Feb | | * Last updated: 8th of Feb |
| * Percentage of completion: 90% | | * Percentage of completion: 90% |
| | | |
| == Detailed Description == | | == Detailed Description == |
− | Based off http://wiki.sugarlabs.org/go/Design_Team/Proposals/Notifications
| + | [[File:Notifications-001.png | thumb | center | 640px | |
− | See some pictures:
| + | |
− | http://pbrd.co/1ez277u
| + | When a notification is received it displays a pulsing icon, that is specified as part of |
− | http://pbrd.co/1izNT4O
| + | |
| + | the notification, at the top left corner of the screen. This icon stays in there for just |
| + | |
| + | a few seconds.]] |
| + | |
| + | [[File:Notifications-002.png | thumb | center | 640px | |
| + | |
| + | The received notification can be found at the activities tray. It is represented by a button with a |
| + | |
| + | notification badge.]] |
| + | |
| + | [[File:Notifications-003.png | thumb | center | 640px | |
| + | |
| + | The button's palette displays, at the bottom of the palette, all the notifications that are related to the same entity. |
| + | |
| + | Entities can be basically anything, ie., the journal, activities or even scripts running in background.]] |
| + | |
| + | [[File:Notifications-004.png | thumb | center | 640px | |
| + | |
| + | Every notification must belong to an entity. If one notification is sent, that notification |
| + | |
| + | should create a new icon if and only if there is not a previous icon for the same entity.]] |
| + | |
| + | [[File:Notifications-005.png | thumb | center | 640px | |
| + | |
| + | If one entity receives more than 5 notifications, scrolling will be used to limit the space.]] |
| + | |
| + | [[File:Notifications-006.png | thumb | center | 640px | |
| + | |
| + | The notification summary and body are limited in width, only 70 characters will be displayed.]] |
| | | |
| == Benefit to Sugar == | | == Benefit to Sugar == |
− | This would be nice for chat, calenders... | + | This would be nice for chat, calenders, and any other kind of even that the user should be aware |
− | It would help bring us into line with the other desktop environs. | + | of. It would help bring us into line with the other desktop environs. |
| | | |
| == Scope == | | == Scope == |
− | The stuff in the shell is done. It probably needs to be improved. | + | The current implementation covers most the building blocks that are required for journal, activities |
− | | + | and system message notifications. At the moment, only system messages are implemented, using these |
− | I haven't mad any activities use it, so yeah.
| + | same building blocks. |
| | | |
| ==UI Design== | | ==UI Design== |
− | http://wiki.sugarlabs.org/go/Design_Team/Proposals/Notifications
| + | [[Design Team/Proposals/Notifications]] |
| | | |
| == How To Test == | | == How To Test == |
− | Here is an example activity: https://git.sugarlabs.org/~samdroid/hello-world/hello-notification-world
| + | For system notifications you can run this script, ie., from Terminal activity: |
− | This shows you a notification after a delay.
| |
− | | |
− | The docs for using notifications in activities are https://github.com/SAMdroid-apps/sugar-toolkit-gtk3/blob/bfadc8648bb0c594d9b12160affdd2c2c8819164/src/sugar3/activity/activity.py#L641
| |
− | | |
− | For system notifications you can run this code: | |
| | | |
| import dbus | | import dbus |
Line 44: |
Line 72: |
| notify_obj = bus.get_object(BUS_NAME,OBJ_PATH) | | notify_obj = bus.get_object(BUS_NAME,OBJ_PATH) |
| notifications = dbus.Interface(notify_obj,IFACE_NAME) | | notifications = dbus.Interface(notify_obj,IFACE_NAME) |
− | notifications.Notify("HelloWorld", 0, '', "Summary", "Body", [], {'x-sugar-icon-name': 'activity-journal'}, -1) | + | notifications.Notify("Software Update", 0, "", "New activities are available!", "Please check your activities list", [], {'x-sugar-icon-name': 'module-updater'}, -1) |
− | #You can change the icon above | + | |
| + | From activities you can use this simplified method, (Gtk3 is required): |
| + | |
| + | self.notify_user('This is the summary','This is a much longer body... describing something...') |
| | | |
| == User Experience == | | == User Experience == |
− | I think this is usable?
| + | These messages notifications should not distract the user, as they are displayed in each notification area. |
| | | |
| == Contingency Plan == | | == Contingency Plan == |
| WORK HARDER | | WORK HARDER |
− |
| |
− | == Documentation ==
| |
− | I've added the doc strings.
| |
| | | |
| == Comments and Discussion == | | == Comments and Discussion == |
| | | |
| http://lists.sugarlabs.org/archive/sugar-devel/2014-February/047096.html | | http://lists.sugarlabs.org/archive/sugar-devel/2014-February/047096.html |