Update notification guide 92/112492/7
authorMyungki Lee <mk5004.lee@samsung.com>
Fri, 3 Feb 2017 10:27:54 +0000 (19:27 +0900)
committerMyungki Lee <mk5004.lee@samsung.com>
Mon, 6 Feb 2017 13:33:18 +0000 (22:33 +0900)
PS3: Reviewed and added wearable support info
PS5: Further review

Change-Id: Ie6c4a214cac0fd3edfd61b3beb3dcbacf6c1a1c1
Signed-off-by: Myungki Lee <mk5004.lee@samsung.com>
org.tizen.guides/html/images/active_notification_2.png [new file with mode: 0755]
org.tizen.guides/html/images/notification_indicator.png [new file with mode: 0755]
org.tizen.guides/html/images/notification_lockscreen.png [new file with mode: 0755]
org.tizen.guides/html/images/status_message.png [new file with mode: 0755]
org.tizen.guides/html/native/notification/noti_n.htm

diff --git a/org.tizen.guides/html/images/active_notification_2.png b/org.tizen.guides/html/images/active_notification_2.png
new file mode 100755 (executable)
index 0000000..ce97ccd
Binary files /dev/null and b/org.tizen.guides/html/images/active_notification_2.png differ
diff --git a/org.tizen.guides/html/images/notification_indicator.png b/org.tizen.guides/html/images/notification_indicator.png
new file mode 100755 (executable)
index 0000000..b7977bd
Binary files /dev/null and b/org.tizen.guides/html/images/notification_indicator.png differ
diff --git a/org.tizen.guides/html/images/notification_lockscreen.png b/org.tizen.guides/html/images/notification_lockscreen.png
new file mode 100755 (executable)
index 0000000..7bf4cf9
Binary files /dev/null and b/org.tizen.guides/html/images/notification_lockscreen.png differ
diff --git a/org.tizen.guides/html/images/status_message.png b/org.tizen.guides/html/images/status_message.png
new file mode 100755 (executable)
index 0000000..d6f74e5
Binary files /dev/null and b/org.tizen.guides/html/images/status_message.png differ
index 8fe379d..adb2fb7 100644 (file)
        <script type="text/javascript" src="../../scripts/common.js" charset="utf-8"></script>
        <script type="text/javascript" src="../../scripts/core.js" charset="utf-8"></script>
        <script type="text/javascript" src="../../scripts/search.js" charset="utf-8"></script>
-  <title>Notifications</title> 
- </head> 
+  <title>Notifications</title>
+ </head>
  <body onload="prettyPrint()" style="overflow: auto;">
+
  <div id="toc-navigation">
        <div id="profile">
-               <p><img alt="Mobile native" src="../../images/mobile_s_n.png"/></p>
+               <p><img alt="Mobile native" src="../../images/mobile_s_n.png"/> <img alt="Wearable native" src="../../images/wearable_s_n.png"/></p>
        </div>
-       
+
        <div id="toc_border"><div id="toc">
                <p class="toc-title">Dependencies</p>
                <ul class="toc">
                        <li>Tizen 2.4 and Higher for Mobile</li>
+                       <li>Tizen 3.0 and Higher for Wearable</li>
                </ul>
                <p class="toc-title">Content</p>
                <ul class="toc">
-                       <li><a href="#type">Notification Types</a></li>
+                       <li><a href="#type">Notification Display Types</a></li>
                        <li><a href="#layout">Notification Layouts</a></li>
                        <li><a href="#prerequisites">Prerequisites</a></li>
                        <li>Set-up
                                </ul>
                        </li>
                        <li><a href="#bar">Displaying the Progress Bar</a></li>
+                       <li><a href="#input_box">Creating an Active Notification with Text Input</a></li>
+                       <li><a href="#template">Using a Notification Template</a></li>
                </ul>
                <p class="toc-title">Related Info</p>
                <ul class="toc">
                        <li><a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html">Notification API for Mobile Native</a></li>
+                       <li><a href="../../../../org.tizen.native.wearable.apireference/group__NOTIFICATION__MODULE.html">Notification API for Wearable Native</a></li>
                        <li><a href="https://developer.tizen.org/development/sample/native/AppFW/Notification_Manager" target="_blank">Notification Manager Sample Description</a></li>
                        <li><a href="https://developer.tizen.org/development/sample/native/AppFW/Notification_Service" target="_blank">Notification Service Sample Description</a></li>
                </ul>
 <h1>Notifications</h1>
   <p>An application can use notifications to keep the user informed of important information.</p>
   
-  <p>This feature is supported in mobile applications only.</p>
 <p>The main features of the Notification API include:</p>
 <ul>
        <li>Creating a notification
-       <p>You can <a href="#create">create a notification</a>. There are 3 <a href="#type">notification types</a> and 4 <a href="#layout">notification layouts</a> you can choose from.</p></li>
+       <p>You can <a href="#create">create a notification</a>. There are 5 <a href="#type">notification display types</a> and 4 <a href="#layout">notification layouts</a> you can choose from.</p></li>
        <li>Setting notification attributes
        <p>You can <a href="#set">set notification attributes</a>, such as the notification text, timestamp, and various display and LED options.</p></li>
        <li>Posting a notification
-       <p>You can <a href="#post">post a simple notification</a> using the <span style="font-family: Courier New,Courier,monospace">notification_post(</span>) function, which accepts a notification handle as a parameter.</p>
+       <p>You can <a href="#post">post a simple notification</a> using the <span style="font-family: Courier New,Courier,monospace">notification_post()</span> function, which accepts a notification handle as a parameter.</p>
        <p>The posted notification has a default notification icon and the application name as the title.</p></li>
        <li>Updating notification content
-       <p>You can <a href="#update">update the content of a notification</a> using the <span style="font-family: Courier New,Courier,monospace">notification_update(</span>) function.</p></li>
+       <p>You can <a href="#update">update the content of a notification</a> using the <span style="font-family: Courier New,Courier,monospace">notification_update()</span> function.</p></li>
        <li>Deleting a notification
        <p>You can <a href="#delete">delete notifications</a> when no longer needed.</p></li>
-       <li>Displaying the progress bar
-       <p>You can <a href="#bar">create, display, and update a progress bar</a> in a notification.</p></li>
-</ul> 
+       <li>Using advanced notification features
+       <ul><li>You can <a href="#bar">create, display, and update a progress bar</a> in a notification.</li>
+       <li>You can <a href="#input_box">create and active notification with a text input field</a>.</li>
+       <li>You can <a href="#template">create a template</a> that can be reused in multiple notifications.</li></ul></li>
+</ul>
 
-<h2 id="type" name="type">Notification Types</h2>
-<p>Tizen provides notifications by using a combination of any of the following notification types:</p>
+<h2 id="type" name="type">Notification Display Types</h2>
+<p>Tizen provides notifications by using a combination of any of the following notification display types:</p>
 
 <ul><li>Quick panel</li>
 <li>Active notification</li>
-<li>Indicator</li> 
+<li>Indicator</li>
+<li>Lock screen</li>
+<li>Status message</li>
 </ul>
 
-<p>You can specify the message for the quick panel, active notification, or indicator.</p>
+<p>The notification display type determines where and how the notification message is displayed.</p>
 
-<h3 id="quick_panel" name="quick_panel">Notifications on the Quick Panel</h3>
+<h3 id="quick_panel" name="quick_panel">Quick Panel Notifications</h3>
 
 <p>The display area for quick panel notifications can be one of the following:</p>
-<ul><li>Notification area 
+<ul><li>Notification area
 <p>The notification area is the reserved space for displaying all notifications, except the on-going notifications.</p></li>
-<li>On-going area 
+<li>On-going area
 <p>The on-going area is the application screen area and is only used to display notifications for the currently running application.</p></li></ul>
 
-   <p class="figure">Figure: Notification and on-going areas</p> 
+   <p class="figure">Figure: Notification and on-going areas</p>
    <p align="center"><img alt="Notification and on-going areas" src="../../images/notification.png" /></p>
 
 <h3 id="active_notification" name="active_notification">Active Notifications</h3>
-<p>Active notifications can be used to show a notification on the upper side of the screen.</p>
-<p>You can add several buttons for user interaction.</p>
+<p>An active notification is displayed on the upper side of the screen. You can add several buttons for user interaction.</p>
 
-   <p class="figure">Figure: Active notification</p> 
+   <p class="figure">Figure: Active notification</p>
    <p align="center"><img alt="Active notification" src="../../images/active_notification.png" /></p>
    
+<h3 id="indicator" name="indicator">Indicator Notifications</h3>
+<p>The indicator type notification is displayed for a few seconds in the indicator area. Only a simple string and icon can be displayed.</p>
+
+   <p class="figure">Figure: Notification on the ticker and the indicator</p>
+   <p align="center"><img alt="Notification on the ticker and the indicator" src="../../images/notification_indicator.png" /></p>
+
+<h3 id="lockscreen" name="lockscreen">Lock Screen Notifications</h3>
+<p>You can display a notification on the lock screen. The notification content can be displayed or hidden.</p>
+
+   <p class="figure">Figure: Notification on the lock screen</p>
+   <p align="center"><img alt="Notification on the lock screen" src="../../images/notification_lockscreen.png" /></p>
+
+<h3 id="status_message" name="status_message">Status Message Notifications</h3>
+<p>A status message type notification can be used like a pop-up. It is displayed for a few seconds and then disappears.</p>
+
+   <p class="figure">Figure: Status message</p>
+   <p align="center"><img alt="Status message" src="../../images/status_message.png" /></p>
+
 <h2 id="layout" name="layout">Notification Layouts</h2>
 <p>The following notification layouts are provided:</p>
-<ul><li><span style="font-family: Courier New,Courier,monospace">NOTIFICATION_LY_NOTI_EVENT_SINGLE</span> 
+<ul><li><span style="font-family: Courier New,Courier,monospace">NOTIFICATION_LY_NOTI_EVENT_SINGLE</span>
 <p>Layout for a single event notification.</p></li>
-<li><span style="font-family: Courier New,Courier,monospace">NOTIFICATION_LY_NOTI_EVENT_MULTIPLE</span> 
+<li><span style="font-family: Courier New,Courier,monospace">NOTIFICATION_LY_NOTI_EVENT_MULTIPLE</span>
 <p>Layout for a multiple event notification.</p></li>
-<li><span style="font-family: Courier New,Courier,monospace">NOTIFICATION_LY_NOTI_THUMBNAIL</span> 
+<li><span style="font-family: Courier New,Courier,monospace">NOTIFICATION_LY_NOTI_THUMBNAIL</span>
 <p>Layout for a notification displaying images.</p></li>
-<li><span style="font-family: Courier New,Courier,monospace">NOTIFICATION_LY_ONGOING_PROGRESS</span> 
+<li><span style="font-family: Courier New,Courier,monospace">NOTIFICATION_LY_ONGOING_PROGRESS</span>
 <p>Layout for an ongoing notification displaying progress.</p></li></ul>
 
-   <p class="figure">Figure: Notification layouts</p> 
+   <p class="figure">Figure: Notification layouts</p>
    <p align="center"><img alt="Notification layouts" src="../../images/notification_layout_desc.png" /></p>
 
 <h2 id="prerequisites">Prerequisites</h2>
 <p>To enable your application to use the notification functionality:</p>
 <ol>
 
-<li>To use the <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html">Notification</a> API, the application has to request permission by adding the following privilege to the <span style="font-family: Courier New,Courier,monospace">tizen-manifest.xml</span> file:
+<li>To use the Notification API (in <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html">mobile</a> and <a href="../../../../org.tizen.native.wearable.apireference/group__NOTIFICATION__MODULE.html">wearable</a> applications), the application has to request permission by adding the following privilege to the <span style="font-family: Courier New,Courier,monospace">tizen-manifest.xml</span> file:
 <pre class="prettyprint">
 &lt;privileges&gt;
 &nbsp;&nbsp;&nbsp;&lt;privilege&gt;http://tizen.org/privilege/notification&lt;/privilege&gt;
@@ -147,19 +171,19 @@ free(shared_path);
 
 
 
- <h2 id="create" name="create">Creating a Notification</h2>
+<h2 id="create" name="create">Creating a Notification</h2>
 
 <p>Initialize a notification handle by calling the <span style="font-family: Courier New,Courier,monospace">notification_create()</span> function.</p>
-<p>The parameter is the notification type, whose possible values are listed in the <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#ga0809cf2728f6e60d54ba8ddf9aa7db20">_notification_type</a> enumeration.</p>
+<p>The parameter is the notification type, whose possible values are listed in the <span style="font-family: Courier New,Courier,monospace">_notification_type</span> enumeration (in <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#ga0809cf2728f6e60d54ba8ddf9aa7db20">mobile</a> and <a href="../../../../org.tizen.native.wearable.apireference/group__NOTIFICATION__MODULE.html#ga0809cf2728f6e60d54ba8ddf9aa7db20">wearable</a> applications).</p>
 <pre class="prettyprint">
-notification = notification_create(NOTIFICATION_TYPE_ONGOING);
+notification = notification_create(NOTIFICATION_TYPE_NOTI);
 if (notification != NULL)
 &nbsp;&nbsp;&nbsp;&nbsp;/* Notification was initialized successfully */
 </pre>
 
 
 
- <h2 id="set" name="set">Setting Notification Attributes</h2>
+<h2 id="set" name="set">Setting Notification Attributes</h2>
 
 <p>You can set the following attributes for a notification:</p>
 
@@ -167,7 +191,7 @@ if (notification != NULL)
 <li id="text">Notification text:
 
 <p>To set the text (title and content string) to display in the notification view, use the <span style="font-family: Courier New,Courier,monospace">notification_set_text()</span> function.</p>
-<p>The second parameter defines the notification type, whose possible values are listed in the <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#ga1b932c18e0430b4cd3a09da98d1fb41b">_notification_text_type</a> enumeration.</p>
+<p>The second parameter defines the notification type, whose possible values are listed in the <span style="font-family: Courier New,Courier,monospace">_notification_text_type</span> enumeration (in <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#ga1b932c18e0430b4cd3a09da98d1fb41b">mobile</a> and <a href="../../../../org.tizen.native.wearable.apireference/group__NOTIFICATION__MODULE.html#ga1b932c18e0430b4cd3a09da98d1fb41b">wearable</a> applications).</p>
 <pre class="prettyprint">
 int ret =0;
 ret = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_TITLE, &quot;text&quot;,
@@ -176,6 +200,7 @@ ret = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_TITLE, &quot;te
 if (ret != NOTIFICATION_ERROR_NONE)
 &nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
 </pre>
+<p>To <a href="../internationalization/resource_localization_n.htm">implement multi-language support</a>, define the text string key (<span style="font-family: Courier New,Courier,monospace">msgid</span> field in the <span style="font-family: Courier New,Courier,monospace">.po</span> file) as the fourth parameter.</p>
 </li>
 
 <li id="timestamp">Notification timestamp:
@@ -183,7 +208,8 @@ if (ret != NOTIFICATION_ERROR_NONE)
 <p>To set the timestamp to display in the notification text, use the <span style="font-family: Courier New,Courier,monospace">notification_set_time_to_text()</span> function.</p>
 <p>The second parameter defines the notification text type in which the timestamp is shown. Its values are listed in the <span style="font-family: Courier New,Courier,monospace">_notification_text_type</span> enumeration.</p>
 <pre class="prettyprint">
-ret = notification_set_time_to_text(notification, NOTIFICATION_TEXT_TYPE_CONTENT, time(NULL));
+ret = notification_set_time_to_text(notification, NOTIFICATION_TEXT_TYPE_CONTENT,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time(NULL));
 if (ret != NOTIFICATION_ERROR_NONE)
 &nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
 </pre>
@@ -192,7 +218,7 @@ if (ret != NOTIFICATION_ERROR_NONE)
 <li id="image">Notification image:
 
 <p>To set the image to display in the notification view, use the <span style="font-family: Courier New,Courier,monospace">notification_set_image()</span> function.</p>
-<p>The second parameter defines the notification image type, whose possible values are listed in the <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#gaa285a3f74abc58d1cb0b78f0bfd09ed5">_notification_image_type</a> enumeration.</p>
+<p>The second parameter defines the notification image type, whose possible values are listed in the <span style="font-family: Courier New,Courier,monospace">_notification_image_type</span> enumeration (in <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#gaa285a3f74abc58d1cb0b78f0bfd09ed5">mobile</a> and <a href="../../../../org.tizen.native.wearable.apireference/group__NOTIFICATION__MODULE.html#gaa285a3f74abc58d1cb0b78f0bfd09ed5">wearable</a> applications).</p>
 <pre class="prettyprint">
 ret = notification_set_image(notification, NOTIFICATION_IMAGE_TYPE_ICON, image_path);
 if (ret != NOTIFICATION_ERROR_NONE)
@@ -203,10 +229,11 @@ if (ret != NOTIFICATION_ERROR_NONE)
 <li id="display">Notification display options:
 
 <p>To set how applications display the notification, use the <span style="font-family: Courier New,Courier,monospace">notification_set_display_applist()</span> function.</p>
-<p>The second parameter defines the notification display option, whose possible values are listed in the <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#gaf7944456661e023a3bac1f430eb680a2">_notification_display_applist</a> enumeration. You can set multiple options with the &quot;|&quot; pipe operation.</p>
+<p>The second parameter defines the notification display option, whose possible values are listed in the <span style="font-family: Courier New,Courier,monospace">_notification_display_applist</span> enumeration (in <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#gaf7944456661e023a3bac1f430eb680a2">mobile</a> and <a href="../../../../org.tizen.native.wearable.apireference/group__NOTIFICATION__MODULE.html#gaf7944456661e023a3bac1f430eb680a2">wearable</a> applications). You can set multiple options with the &quot;|&quot; pipe operation.</p>
 <pre class="prettyprint">
 ret = notification_set_display_applist(notification,
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_DISPLAY_APP_NOTIFICATION_TRAY | NOTIFICATION_DISPLAY_APP_TICKER);
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_DISPLAY_APP_NOTIFICATION_TRAY
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| NOTIFICATION_DISPLAY_APP_TICKER);
 if (ret != NOTIFICATION_ERROR_NONE)
 &nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
 </pre>
@@ -217,7 +244,7 @@ if (ret != NOTIFICATION_ERROR_NONE)
 <p>To set the LED options for a notification, use the <span style="font-family: Courier New,Courier,monospace">notification_set_led()</span> and <span style="font-family: Courier New,Courier,monospace">notification_set_led_time_period()</span> functions:</p>
 <ul>
 <li>
-<p>The <span style="font-family: Courier New,Courier,monospace">notification_set_led()</span> function sets the LED operation. The second parameter defines the LED notification, whose values are listed in the <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#gaa96099d9bff211107f6b200eeb92e1d9">_notification_led_op</a> enumeration.</p>
+<p>The <span style="font-family: Courier New,Courier,monospace">notification_set_led()</span> function sets the LED operation. The second parameter defines the LED notification, whose values are listed in the <span style="font-family: Courier New,Courier,monospace">_notification_led_op</span> enumeration (in <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#gaa96099d9bff211107f6b200eeb92e1d9">mobile</a> and <a href="../../../../org.tizen.native.wearable.apireference/group__NOTIFICATION__MODULE.html#gaa96099d9bff211107f6b200eeb92e1d9">wearable</a> applications).</p>
 </li>
 <li>
 
@@ -237,7 +264,7 @@ if (ret != NOTIFICATION_ERROR_NONE)
 <li id="prop">Notification properties:
 
 <p>To set a notification property, use the <span style="font-family: Courier New,Courier,monospace">notification_set_property()</span> function.</p>
-<p>The second parameter defines the notification property, whose possible values are listed in the <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#ga70f1e4c6f3d36e09d0a9bdff7d6807c3">_notification_property</a> enumeration. You can set multiple properties with the &quot;|&quot; pipe operation.</p>
+<p>The second parameter defines the notification property, whose possible values are listed in the <span style="font-family: Courier New,Courier,monospace">_notification_property</span> enumeration (in <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#ga70f1e4c6f3d36e09d0a9bdff7d6807c3">mobile</a> and <a href="../../../../org.tizen.native.wearable.apireference/group__NOTIFICATION__MODULE.html#ga70f1e4c6f3d36e09d0a9bdff7d6807c3">wearable</a> applications). You can set multiple properties with the &quot;|&quot; pipe operation.</p>
 <pre class="prettyprint">
 ret = notification_set_property(notification, NOTIFICATION_PROP_DISABLE_APP_LAUNCH);
 if (ret != NOTIFICATION_ERROR_NONE)
@@ -249,10 +276,10 @@ if (ret != NOTIFICATION_ERROR_NONE)
 <p>To add a button on the active notification, use the <span style="font-family: Courier New,Courier,monospace">notification_add_button()</span> and <span style="font-family: Courier New,Courier,monospace">notification_set_event_handler()</span> functions:</p>
 <ul>
 <li>
-<p>The <span style="font-family: Courier New,Courier,monospace">notification_add_button()</span> adds the button. The second parameter defines the button index, whose possible values are listed in the <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#ga2b8eaa47c666ec055def59c32eab419b">_notification_button_index</a> enumeration.</p>
+<p>The <span style="font-family: Courier New,Courier,monospace">notification_add_button()</span> adds the button. The second parameter defines the button index, whose possible values are listed in the <span style="font-family: Courier New,Courier,monospace">_notification_button_index</span> enumeration (in <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#ga2b8eaa47c666ec055def59c32eab419b">mobile</a> and <a href="../../../../org.tizen.native.wearable.apireference/group__NOTIFICATION__MODULE.html#ga2b8eaa47c666ec055def59c32eab419b">wearable</a> applications).</p>
 </li>
 <li>
-<p>The <span style="font-family: Courier New,Courier,monospace">notification_set_event_handler()</span> function defines the application control that launches the application at the button click. The third parameter defines the app control handle, whose possible values are listed in the <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#ga38d5cdc16c56dbe88d821995f82b0799">_notification_event_type</a> enumeration.</p>
+<p>The <span style="font-family: Courier New,Courier,monospace">notification_set_event_handler()</span> function defines the application control that launches the application at the button click. The third parameter defines the app control handle, whose possible values are listed in the <span style="font-family: Courier New,Courier,monospace">_notification_event_type</span> enumeration (in <a href="../../../../org.tizen.native.mobile.apireference/group__NOTIFICATION__MODULE.html#ga38d5cdc16c56dbe88d821995f82b0799">mobile</a> and <a href="../../../../org.tizen.native.wearable.apireference/group__NOTIFICATION__MODULE.html#ga38d5cdc16c56dbe88d821995f82b0799">wearable</a> applications).</p>
 
 <pre class="prettyprint">
 noti_err = notification_add_button(noti, NOTIFICATION_BUTTON_1);
@@ -263,7 +290,9 @@ app_control_h app_control = NULL;
 
 app_control_create(&amp;app_control);
 app_control_set_app_id(app_control, &quot;org.tizen.app&quot;);
-noti_err  = notification_set_event_handler(noti, NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_1, app_control);
+noti_err = notification_set_event_handler(noti,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_1,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;app_control);
 if (noti_err != NOTIFICATION_ERROR_NONE)
 &nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
 
@@ -274,7 +303,7 @@ app_control_destroy(app_control);
 </li>
 </ul>
 
- <h2 id="post" name="post">Posting a Notification</h2>
+<h2 id="post" name="post">Posting a Notification</h2>
 
 <p>To post a notification to the database, use the <span style="font-family: Courier New,Courier,monospace">notification_post()</span> function:</p>
 <pre class="prettyprint">
@@ -283,7 +312,7 @@ if (ret != NOTIFICATION_ERROR_NONE)
 &nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
 </pre>
 
- <h2 id="update" name="update">Updating Notification Content</h2>
+<h2 id="update" name="update">Updating Notification Content</h2>
 
 <p>To update the content of a notification, use the <span style="font-family: Courier New,Courier,monospace">notification_update()</span> function. The function works only for ongoing notifications.</p>
 <pre class="prettyprint">
@@ -292,9 +321,9 @@ if (ret != NOTIFICATION_ERROR_NONE)
 &nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
 </pre>
 
- <h2 id="delete" name="delete">Deleting a Notification</h2>
+<h2 id="delete" name="delete">Deleting a Notification</h2>
 
-<p>To delete a notification:</p>                       
+<p>To delete a notification:</p>
 <ol><li>To delete a notification from the database, use the <span style="font-family: Courier New,Courier,monospace">notification_delete()</span> function:
 
 <pre class="prettyprint">
@@ -309,7 +338,7 @@ if (ret != NOTIFICATION_ERROR_NONE)
 &nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
 </pre></li></ol>
 
- <h2 id="bar" name="bar">Displaying the Progress Bar</h2>
+<h2 id="bar" name="bar">Displaying the Progress Bar</h2>
 
 <p>To display the progress bar and update the progress data:</p>
 
@@ -369,8 +398,309 @@ Eina_Bool timeout_func(void *data)
 }
 </pre></li></ol>
 
-    <p class="figure">Figure: Progress bar</p> 
-  <p align="center"><img alt="Progress bar" src="../../images/notification_bar_sd.png" /></p>
+   <p class="figure">Figure: Progress bar</p>
+   <p align="center"><img alt="Progress bar" src="../../images/notification_bar_sd.png" /></p>
+
+<h2 id="input_box" name="input_box">Creating an Active Notification with Text Input</h2>
+
+<p>To create an active notification and an input text field, with which the user can directly reply to the notification:</p>
+
+<ol><li>To create an active notification, add the <span style="font-family: Courier New,Courier,monospace">NOTIFICATION_DISPLAY_APP_ACTIVE</span> type to the display application list.
+<p>You can create up to 3 buttons, and each button must have an application control that can handle the event.</p>
+<pre class="prettyprint">
+notification_h notification = NULL;
+app_control_h app_control = NULL;
+
+/* Create a new notification */
+notification = notification_create(NOTIFICATION_TYPE_NOTI);
+if (noti == NULL)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+/* Set notification attributes */
+int ret = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_TITLE, &quot;text&quot;,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_image(notification, NOTIFICATION_IMAGE_TYPE_ICON, image_path);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_add_button(notification, NOTIFICATION_BUTTON_1);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_BUTTON_1, &quot;button1&quot;,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_add_button(notification, NOTIFICATION_BUTTON_2);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_BUTTON_2, &quot;button2&quot;,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_add_button(notification, NOTIFICATION_BUTTON_3);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_BUTTON_3, &quot;button3&quot;,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_display_applist(notification, NOTIFICATION_DISPLAY_APP_ACTIVE);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+/* Button 1 */
+app_control = NULL;
+
+ret = app_control_create(&amp;app_control);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = app_control_set_app_id(app_control, &quot;appid&quot;);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_event_handler(notification,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_1,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;app_control);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = app_control_destroy(app_control);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+/* Button 2 */
+app_control = NULL;
+
+ret = app_control_create(&amp;app_control);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = app_control_set_app_id(app_control, &quot;appid&quot;);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_event_handler(notification,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_2,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;app_control);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = app_control_destroy(app_control);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+/* Button 3 */
+app_control = NULL;
+
+ret = app_control_create(&amp;app_control);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = app_control_set_app_id(app_control, &quot;appid&quot;);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_event_handler(notification,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_3,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;app_control);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = app_control_destroy(app_control);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+/* Post a notification */
+ret = notification_post(notification);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+if (notification)
+&nbsp;&nbsp;&nbsp;&nbsp;notification_free(notification);
+</pre></li>
+
+<li>To allow the user to reply to the active notification directly, set a text input field.
+<p>Set the text field size, and add the settings for the placeholder text and input button. The field can be displayed directly on the active notification, or only when the button is pressed.</p>
+<pre class="prettyprint">
+/* Set notification attributes */
+
+ret = notification_set_text_input(notification, 160);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_text(notification,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_TEXT_TYPE_TEXT_INPUT_PLACEHOLDER,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Text message&quot;, NULL,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_VARIABLE_TYPE_NONE);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_text(notification,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_TEXT_TYPE_TEXT_INPUT_BUTTON,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Send&quot;, NULL,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_VARIABLE_TYPE_NONE);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+/* Text input button */
+app_control = NULL;
+
+ret = app_control_create(&amp;app_control);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = app_control_set_app_id(app_control, &quot;appid&quot;);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_event_handler(notification,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_EVENT_TYPE_CLICK_ON_TEXT_INPUT_BUTTON,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;app_control);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = app_control_destroy(app_control);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+/* Post a notification */
+</pre></li></ol>
+   <p class="figure">Figure: Text input box</p>
+   <p align="center"><img alt="Text input box" src="../../images/active_notification_2.png" /></p>
+
+<h2 id="template" name="template">Using a Notification Template</h2>
+
+<p>To create a template from an existing notification, and reuse that template in another notification:</p>
+
+<ol><li><p>Create a notification as usual.</p>
+<p>The following example creates an active notification with 2 buttons (<strong>accept</strong> and <strong>cancel</strong>), a background image, sound, led, and vibration:</p>
+
+<pre class="prettyprint">
+notification_h notification = NULL;
+app_control_h app_control = NULL;
+
+/* Create a new notification */
+notification = notification_create(NOTIFICATION_TYPE_NOTI);
+if (noti == NULL)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+/* Set notification attributes */
+int ret = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_TITLE, &quot;text&quot;,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_image(notification, NOTIFICATION_IMAGE_TYPE_ICON, image_path);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_image(notification, NOTIFICATION_IMAGE_TYPE_BACKGROUND,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image_path);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_sound(notification, NOTIFICATION_SOUND_TYPE_USER_DATA,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sound_path);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_led(notification, NOTIFICATION_LED_OP_ON, 100);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_led_time_period(notification, 100, 100);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_display_applist(notification,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_DISPLAY_APP_NOTIFICATION_TRAY
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| NOTIFICATION_DISPLAY_APP_ACTIVE);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_add_button(notification, NOTIFICATION_BUTTON_1);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_BUTTON_1,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;accept&quot;, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_add_button(notification, NOTIFICATION_BUTTON_2);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_BUTTON_2,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;cancel&quot;, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+/* Button 1 */
+app_control = NULL;
+
+ret = app_control_create(&amp;app_control);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = app_control_set_app_id(app_control, &quot;appid&quot;);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_event_handler(notification,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_1,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;app_control);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = app_control_destroy(app_control);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+/* Button 2 */
+app_control = NULL;
+
+ret = app_control_create(&amp;app_control);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = app_control_set_app_id(app_control, &quot;appid&quot;);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = notification_set_event_handler(notification,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_2,
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;app_control);
+if (ret != NOTIFICATION_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+
+ret = app_control_destroy(app_control);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+</pre></li>
+<li><p>To save the notification handle as a template and define a name for the template, use the <span style="font-family: Courier New,Courier,monospace">notification_save_as_template()</span> function:</p>
+<pre class="prettyprint">
+ret = notification_save_as_template(notification, &quot;CALL_ACCEPT&quot;);
+if (ret != APP_CONTROL_ERROR_NONE)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+</pre></li>
+<li><p>To use the template when creating a new notification, call the <span style="font-family: Courier New,Courier,monospace">notification_create_from_template()</span> function:</p>
+<pre class="prettyprint">
+notification_h notification = NULL;
+notification = notification_create_from_template(&quot;CALL_ACCEPT&quot;)
+if (noti == NULL)
+&nbsp;&nbsp;&nbsp;&nbsp;/* Error handling */
+</pre></li></ol>
 
 <script type="text/javascript" src="../../scripts/jquery.zclip.min.js"></script>
 <script type="text/javascript" src="../../scripts/showhide.js"></script>
@@ -394,4 +724,4 @@ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga
 </script>
 
 </body>
-</html>        
\ No newline at end of file
+</html>