notification sample application...2015.05.23 ajou university ajou univrsity notification sample...
TRANSCRIPT
![Page 1: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/1.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Notification Sample Application
Tizen Ver. 2.3 Native Application Development
2015.05.23
Ajou University
![Page 2: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/2.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Notification Sample Application
organization
![Page 3: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/3.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Start Native Development
![Page 4: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/4.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Creating Sample Application
New > Tizen Native
Project > Sample>
Notification Manager
Sample Application
Write project name and
Click finish button.
![Page 5: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/5.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Structure
The Notification Manager Sample application demonstrates how you can present a notification to user: create simple or ongoing notifications, remove notification, create notification with action by App Control or App Id, increase and decrease badge number. The UI part demonstrates use of genlist/list API, tabcontrol and entry. The business logic source code shows work with system app_control callback.
model main.cutils view
notification-control.c
notification.c
ongoing-notirication.c
ui-utils.c
tab-view.c
layout-view.c
window.c
main-app.c
![Page 6: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/6.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
/src/model/
• This module has a role of
– getting (ongoing) notification information
– deleting all (ongoing) notifications
– setting arguments to service
– increase/decrease badge count by one
• using libraries: <stdbool.h>, <notification.h>,
<badge.h>, <Eina.h>, <math.h>, <stdio.h>, <stdlib.h>
model
notification-control.c
notification.c
ongoing-notirication.c
![Page 7: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/7.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
/src/utils/ & /src/view/
• This module has a role of
– adding naviframe or layout widget to parent widget.
• using libraries: <Evas.h>, <Elementary.h>
utils
ui-utils.c
view
tab-view.c
layout-view.c
window.c
• This module has a role of
– adding new layout to application main window
– adding new tab to application main window
– creating/destroying application main window
– lower/raise application window
– setting content/getting window layout
• using libraries: <Evas.h>, <Elementary.h>
![Page 8: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/8.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
/src/
• main function
• using libraries: <tizen.h>, “main-app.h”
main.c
main-app.c • creating/destroying application instance
• running notification manager application
• using libraries: <Evas.h>, “main-app.h”, “view/window.h”,
view/, utils/, model/, <notification.h>, <app.h>,
<efl_extension.h>
![Page 9: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/9.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Application Processlooking for execution process
![Page 10: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/10.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Application Process
• Start main function
define app_data
Runs the application's main loop until
ui_app_exit() is called.
![Page 11: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/11.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Application Process
• Making User Interfaceadd new window
add new naviframe
add tab view
![Page 12: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/12.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Application Process
• Making User Interface– tab_view_add() process
add new layout
add tab element to naviframe (parent)
![Page 13: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/13.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Application Process
• Making User Interface– tab_view_add() process
tab information is added
![Page 14: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/14.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Application Process
• Making User Interface– tab_view_switch_cb() process
check pressed toolbar is currently active or not
change pressed_toolbar_ item information
![Page 15: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/15.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Application Process
• Making User Interface– tab_view_switch_cb() process
if current state is ONGOING_NOTIFICATION, change it to NOTIFICATION
change tab content for NOTIFICATION
content switch function
content creation function
![Page 16: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/16.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Application Process
• Making User Interface– _tab_view_create_tab_content() process
add list to layoutfor filling content
call another function again to fill list
![Page 17: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/17.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Application Process
• Making User Interface– _tab_view_fill_list() process
append list item
![Page 18: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/18.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Application Process
• Making User Interface– _tab_view_fill_list() process
returns contents information for notification list
name: data name,callback:
![Page 19: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/19.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Application Process
• Process based on stack
main main
app_run()
_on_create_cb()
tab_view_add()
creates window, naviframe
creates layout, tab elements
![Page 20: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/20.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Application Process
• Process based on stack
…
tab_view_add()
_tab_view_fill() tab information (Notification, Ongoing Notification) is added
_tab_view_switch_cb()
_tab_view_create_tab_content()
_tab_view_switch_content()
creates tab content
switches tab content when tab is changed
![Page 21: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/21.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Notification FunctionsHow to use notification API
![Page 22: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/22.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
• Notification • Ongoing Notification
Notification Functions
![Page 23: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/23.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
• Notification
“Notify“ Process
Here this function contains list of notification tab and each of connected callback functions when clicking the list content. “Notify” calls ‘notify_cb’ function.
![Page 24: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/24.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
“Notify“ Process
• notify_cb() function
It creates a notification by calling ‘create_notification()’, sets launch arguments, and posts the notification by ‘notification_post()’ function which is in <notification.h> API.
![Page 25: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/25.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
“Notify“ Process
• create_notification() function
It makes a notification by calling ‘notification_create()’ in Notification API. Then it customizes its image, title text, content text, and sound.
![Page 26: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/26.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
“Notify“ Process
• launch_arguments_set() function (in ‘notification-control.c’)
It creates a notification by calling ‘create_notification()’, sets launch arguments, and posts the notification by ‘notification_post()’ function which is in <notification.h> API.
....
This is setting various launch arguments such as argument, package name, uri text, mime text, operation, array result and array key for the notification options.
“AppMessage”
![Page 27: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/27.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
“Notify“ Process
• snprintf() function
It sets result messages.
![Page 28: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/28.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
“Notify“ Process
• return position of the ‘notify_cb()’ callback function?– tab-view.c
It prints out result messages.
![Page 29: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/29.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
“Notify“ Process
• layout_view_add() function (layout-view.c)
It prints out result messages.
gets naviframe by parent, adds new layout and fill it with notification information
![Page 30: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/30.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
“Notify“ Process
• layout_view_add() function in detail– _layout_view_fill()
In newly generated layout, you can see it fills notification information’s ‘result_text’ information which is filled in ‘notify_cb’ function.
![Page 31: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/31.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
“Notify“ Process
• completed layout
layout
title
scroller
box
content
![Page 32: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/32.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
“Notify“ Process
“notify” notification
“TitleText”
“AlertText”
images/mainmenu.png”
no sound
![Page 33: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/33.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
• Ongoing Notification
“OngoingNotification(%)“ Process
Same with notification tab, this function contains list of ongoing notification tab and each of connected callback functions when clicking the list content. “OngoingNotification” calls ‘ongoing_notification_cb’ function.
![Page 34: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/34.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
“OngoingNotification(%)“ Process
• ongoing_notification_cb() function
The only difference between notification and ongoing notification when making is a parameter in ‘notification_create’ function.
NOTIFICATION_TYPE_NOTI
NOTIFICATION_TYPE_ONGOING
![Page 35: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/35.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
“OngoingNotification(%)“ Process
• ongoing_notification_cb() function Process
notification exists
creates ongoing
notification
increase progress 10%
progress is full
progress value = 0
![Page 36: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/36.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Removing notification
• ‘remove notification’ callback function structure
choose appropriate parameter for some notifications in which you want to delete
![Page 37: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/37.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Badge FunctionsHow to use notification API
![Page 38: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/38.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Badge
• A badge is an image displayed on the application icon, which informs the user about notifications and events
• There are various functions to control badges:
– creates a badge
– removes the badge
– sets badge count
– gets badge count
– sets the display option
– gets the display option
![Page 39: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/39.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Badge
• In this example, badge was created when tab view was added (in tab_view_add() function, slide 19 page )
• It is controlled by two functions
get_package_name()
![Page 40: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/40.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Badge
• By using pointer to the parameter, you can get the number of current badges by ‘badge_get_count()’ function
• ‘increase_badge()’ function simply increase one by calling ‘badge_set_count()’ and using count value which is brought from ‘badge_get_count()’ function
• It is controlled by two functions
![Page 41: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/41.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Badge
• ‘decrease_badge()’ function is also similar with increasing one
• It brings current the number of badges and if there are badges more than one, the function decreases it
• It is controlled by two functions
![Page 42: Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application organization Ajou Univrsity](https://reader036.vdocuments.net/reader036/viewer/2022071212/602619f96d369327a663ee15/html5/thumbnails/42.jpg)
Ajou Univrsity
Notification Sample Application (Tizen Ver. 2.3)
Summary
• In Notification Sample Application,– It uses
• Notification API
• Badge API
• EFL API (Eina, Elementary)
– You can learn• how to use notification, badge API
– ongoing notification, increasing/decreasing badge
• how to make tab gui
• how to make list gui
• how to add new layout dynamically