Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample...

42
Ajou Univrsity Notification Sample Application (Tizen Ver. 2.3) Notification Sample Application Tizen Ver. 2.3 Native Application Development 2015.05.23 Ajou University

Transcript of Notification Sample Application...2015.05.23 Ajou University Ajou Univrsity Notification Sample...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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