Add Notification Test Sample 30/98430/3 submit/tizen_3.0/20161117.084949
authorjin0.kim <jin0.kim@samsung.com>
Thu, 17 Nov 2016 08:40:49 +0000 (17:10 +0830)
committerjin0.kim <jin0.kim@samsung.com>
Thu, 17 Nov 2016 08:47:38 +0000 (17:17 +0830)
Change-Id: If292119313ea9996bd75e4fcb84d23c3a83f16b6

27 files changed:
Notification_TestSample/.cproject [new file with mode: 0644]
Notification_TestSample/.project [new file with mode: 0644]
Notification_TestSample/.tproject [new file with mode: 0644]
Notification_TestSample/inc/notification/etc-notifications.h [new file with mode: 0755]
Notification_TestSample/inc/notification/notification-common.h [new file with mode: 0644]
Notification_TestSample/inc/notification/notification-defines.h [new file with mode: 0755]
Notification_TestSample/inc/notification/notifications.h [new file with mode: 0644]
Notification_TestSample/inc/notification/ongoing-notifications.h [new file with mode: 0644]
Notification_TestSample/inc/notification_testsample.h [new file with mode: 0755]
Notification_TestSample/inc/view.h [new file with mode: 0644]
Notification_TestSample/inc/view_defines.h [new file with mode: 0644]
Notification_TestSample/res/edje/noti.edc [new file with mode: 0755]
Notification_TestSample/res/edje/noti.edj [new file with mode: 0755]
Notification_TestSample/shared/res/images/icon1.png [new file with mode: 0644]
Notification_TestSample/shared/res/images/icon2.png [new file with mode: 0644]
Notification_TestSample/shared/res/images/mainmenu.png [new file with mode: 0644]
Notification_TestSample/shared/res/images/messages_btn_send.png [new file with mode: 0755]
Notification_TestSample/shared/res/images/noti_calendar.png [new file with mode: 0755]
Notification_TestSample/shared/res/images/thumbnail1.jpg [new file with mode: 0644]
Notification_TestSample/shared/res/notification-testsample.png [new file with mode: 0644]
Notification_TestSample/shared/res/sounds/sound.mp3 [new file with mode: 0644]
Notification_TestSample/src/main.c [new file with mode: 0755]
Notification_TestSample/src/notification/etc-notifications.c [new file with mode: 0755]
Notification_TestSample/src/notification/notifications.c [new file with mode: 0755]
Notification_TestSample/src/notification/ongoing-notifications.c [new file with mode: 0755]
Notification_TestSample/src/view.c [new file with mode: 0755]
Notification_TestSample/tizen-manifest.xml [new file with mode: 0644]

diff --git a/Notification_TestSample/.cproject b/Notification_TestSample/.cproject
new file mode 100644 (file)
index 0000000..c3858a6
--- /dev/null
@@ -0,0 +1,637 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+       <storageModule moduleId="org.eclipse.cdt.core.settings">
+               <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.debug.623840356">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.623840356" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactName="notification-testsample" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.623840356" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.app.debug">
+                                       <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.623840356." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug.789082172" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug">
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.1513861718" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder autoBuildTarget="all" buildPath="${workspace_loc:/NotificationManager}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.728564006" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.1562889175" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.1843741939" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.958069946" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.cpp.compiler.debugging.level.max" id="sbi.gnu.cpp.compiler.option.debugging.level.core.1304689426" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option defaultValue="false" id="sbi.gnu.cpp.compiler.option.misc.pic.core.297678407" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" valueType="boolean"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.468281428" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-3.0-device.core.private.20161028_1_llvm36.armel.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.828368370" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/aul/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/auth-fw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/call-manager&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/EGL&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/email-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/GLES&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/GLES2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/GLES3&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/KHR&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/msg-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/rua/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony-client&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ug-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vconf&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.1898593833" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-mthumb"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.include.paths.1979662586" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks.core.239953035" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1480463000" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1369315599" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+                                                               <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1065904963" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.c.debugging.level.max" id="sbi.gnu.c.compiler.option.debugging.level.core.1625170570" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option defaultValue="false" id="sbi.gnu.c.compiler.option.misc.pic.core.1289700766" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" valueType="boolean"/>
+                                                               <option id="sbi.gnu.c.compiler.option.1250562695" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-3.0-device.core.private.20161028_1_llvm36.armel.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1601601524" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/aul/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/auth-fw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/call-manager&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/EGL&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/email-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/GLES&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/GLES2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/GLES3&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/KHR&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/msg-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/rua/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony-client&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ug-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vconf&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vulkan&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.293706034" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-mthumb"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.include.paths.1651395889" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.core.1312267624" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1421791057" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1114561777" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.1190097251" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+                                                               <option defaultValue="false" id="sbi.gnu.cpp.linker.option.shared_flag.core.2095877856" name="Linker.Shared" superClass="sbi.gnu.cpp.linker.option.shared_flag.core" valueType="boolean"/>
+                                                               <option defaultValue="false" id="sbi.gnu.cpp.linker.option.noundefined.core.879054202" name="Report unresolved symbol references (-Wl,--no-undefined)" superClass="sbi.gnu.cpp.linker.option.noundefined.core" valueType="boolean"/>
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1749954949" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="-pie -lpthread "/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.2049080024" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.496484676" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
+                                                       <tool command="arm-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1272181041" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.256801543" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.232042945" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.152133104" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.953008194" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.cpp.923766897" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.757962707" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1469051548" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.1028761320" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shared"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+               </cconfiguration>
+               <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.release.1148513101">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.release.1148513101" moduleId="org.eclipse.cdt.core.settings" name="Release">
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactName="notificationmanager" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.release.1148513101" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.app.release">
+                                       <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.release.1148513101." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.release.687691478" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.release">
+                                                       <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.629758008" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder buildPath="${workspace_loc:/NotificationManager}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.1300703392" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.333403981" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.609862454" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.1250095982" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.cpp.compiler.debugging.level.none" id="sbi.gnu.cpp.compiler.option.debugging.level.core.37764030" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option defaultValue="false" id="sbi.gnu.cpp.compiler.option.misc.pic.core.1499285505" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" valueType="boolean"/>
+                                                               <option id="sbi.gnu.cpp.compiler.option.260836896" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-3.0-emulator.core.private.20160905_2_llvm36.i386.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.319873996" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/aul/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/auth-fw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/call-manager&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/email-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/msg-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/rua/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony-client&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ug-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vconf&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.687679131" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.include.paths.968054647" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1261033911" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1133013084" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+                                                       </tool>
+                                                       <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1341139138" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+                                                               <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.1455977851" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option defaultValue="gnu.c.debugging.level.default" id="sbi.gnu.c.compiler.option.debugging.level.core.1052810075" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+                                                               <option defaultValue="false" id="sbi.gnu.c.compiler.option.misc.pic.core.1891260970" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" valueType="boolean"/>
+                                                               <option id="sbi.gnu.c.compiler.option.916186759" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="mobile-3.0-emulator.core.private.20160905_2_llvm36.i386.core.app"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1343987867" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-agent&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/attach-panel&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/aul/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/auth-fw&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/badge&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/base&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/cairo&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/calendar-service2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/call-manager&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/chromium-ewk&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ckm&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/contacts-svc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/csr&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dali-toolkit&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dbus-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/device&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/dlog&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-buffer-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-con-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-file-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-imf-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-input-evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ecore-ipc-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ector-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/e_dbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/edje-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efl-extension&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/efreet-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eina-1/eina&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eio-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eldbus-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/elementary-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/email-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/emile-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eo-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/eom&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-client-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/feedback&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/fontconfig&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/freetype2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/geofence&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/gio-unix-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/glib-2.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/harfbuzz&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/iotcon&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/maps&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/media-content&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/messaging&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/metadata-editor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minicontrol&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/minizip&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/msg-service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/network&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/notification&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/nsd/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/phonenumber-utils&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/rua/&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/SDL2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/sensor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/service-adaptor&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/shortcut&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/storage&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/system&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/telephony-client&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/tzsh&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ug-1&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ui&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/vconf&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/web&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_service&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/widget_viewer_evas&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/wifi-direct&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/yaca&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/dbus-1.0/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/lib/glib-2.0/include&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.367810683" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value=" -fPIE"/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </option>
+                                                               <option id="gnu.c.compiler.option.include.paths.540612600" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.core.627100180" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="Native_API"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.530447134" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.611535173" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.494349497" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+                                                               <option defaultValue="false" id="sbi.gnu.cpp.linker.option.shared_flag.core.1002334075" name="Linker.Shared" superClass="sbi.gnu.cpp.linker.option.shared_flag.core" valueType="boolean"/>
+                                                               <option defaultValue="false" id="sbi.gnu.cpp.linker.option.noundefined.core.282850357" name="Report unresolved symbol references (-Wl,--no-undefined)" superClass="sbi.gnu.cpp.linker.option.noundefined.core" valueType="boolean"/>
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1470342027" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+                                                                       <listOptionValue builtIn="false" value="-pie -lpthread "/>
+                                                                       <listOptionValue builtIn="false" value="--sysroot=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-Xlinker --version-script=&quot;${PROJ_PATH}/.exportMap&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.paths.1677423231" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1543299353" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
+                                                       <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.871503607" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1590226076" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.1362173157" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+                                                       <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.1681660918" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.297584562" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+                                                       <tool id="org.tizen.nativecore.tool.ast.cpp.454040138" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.2048923727" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.po.compiler.2141764248" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.635432903" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shared"/>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+               </cconfiguration>
+       </storageModule>
+       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+               <project id="NotificationManager.org.tizen.nativecore.target.sbi.gcc45.app.2018545091" name="Tizen Native Application" projectType="org.tizen.nativecore.target.sbi.gcc45.app"/>
+       </storageModule>
+       <storageModule moduleId="scannerConfiguration">
+               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.release.1148513101">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.debug.623840356">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               </scannerConfigBuildInfo>
+       </storageModule>
+       <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+       <storageModule moduleId="refreshScope"/>
+</cproject>
diff --git a/Notification_TestSample/.project b/Notification_TestSample/.project
new file mode 100644 (file)
index 0000000..f4645be
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>Notification_TestSample</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+                       <triggers>full,incremental,</triggers>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.cdt.core.cnature</nature>
+               <nature>org.eclipse.cdt.core.ccnature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+       </natures>
+       <filteredResources>
+               <filter>
+                       <id>0</id>
+                       <name></name>
+                       <type>26</type>
+                       <matcher>
+                               <id>org.eclipse.ui.ide.multiFilter</id>
+                               <arguments>1.0-projectRelativePath-matches-false-false-*/.tpk</arguments>
+                       </matcher>
+               </filter>
+               <filter>
+                       <id>0</id>
+                       <name></name>
+                       <type>6</type>
+                       <matcher>
+                               <id>org.eclipse.ui.ide.multiFilter</id>
+                               <arguments>1.0-name-matches-false-false-project_def.prop</arguments>
+                       </matcher>
+               </filter>
+       </filteredResources>
+</projectDescription>
diff --git a/Notification_TestSample/.tproject b/Notification_TestSample/.tproject
new file mode 100644 (file)
index 0000000..56660b2
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tproject xmlns="http://www.tizen.org/tproject">
+    <platforms>
+        <platform>
+            <name>mobile-3.0</name>
+        </platform>
+    </platforms>
+    <package>
+        <blacklist/>
+        <resFallback autoGen="true"/>
+    </package>
+</tproject>
diff --git a/Notification_TestSample/inc/notification/etc-notifications.h b/Notification_TestSample/inc/notification/etc-notifications.h
new file mode 100755 (executable)
index 0000000..9839ea9
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_ETC_NOTIFICATIONS_H)
+#define _ETC_NOTIFICATIONS_H
+
+#include "notification/notification-common.h"
+
+const notification_data *etc_notification_list_get(int *size);
+void etc_notification_set_callbacks(launch_cb launch_func, badge_cb badge_func);
+
+#endif
diff --git a/Notification_TestSample/inc/notification/notification-common.h b/Notification_TestSample/inc/notification/notification-common.h
new file mode 100644 (file)
index 0000000..d031d01
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_NOTIFICATION_COMMON_H)
+#define _NOTIFICATION_COMMON_H
+
+#include <notification.h>
+#include <linux/limits.h>
+#include <stdlib.h>
+
+#define TEXT_SHORT_LEN 256
+#define TEXT_MAX_LEN 1024
+
+typedef struct _notification_data notification_data;
+typedef void (*notification_cb)(notification_data *);
+typedef bool (*badge_cb)(unsigned int *count, bool step);
+typedef void (*launch_cb)(notification_h notification, const char *argument, const char *pkgname,
+                                                       const char *uri_text, const char *mime_text, const char *operation,
+                                                       const char **array_result, const char **array_key);
+
+struct _notification_data {
+       char name[TEXT_SHORT_LEN];
+       notification_h notification;
+       int press_count;
+       double progress_value;
+       notification_cb callback;
+       char result_text[TEXT_MAX_LEN];
+};
+
+/**
+ * @brief Get shared resources folder absolute path
+ * @return Absolute path to shared resources folder
+ */
+static inline const char *get_shared_res_path(void)
+{
+       static char shared_res_folder_path[PATH_MAX] = { '\0' };
+       if (shared_res_folder_path[0] == '\0') {
+               char *resource_path_buf = app_get_shared_resource_path();
+               strncpy(shared_res_folder_path, resource_path_buf, PATH_MAX-1);
+               free(resource_path_buf);
+       }
+       return shared_res_folder_path;
+}
+
+#endif
diff --git a/Notification_TestSample/inc/notification/notification-defines.h b/Notification_TestSample/inc/notification/notification-defines.h
new file mode 100755 (executable)
index 0000000..edd35e9
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_NOTIFICATION_DEFINES_H)
+#define _NOTIFICATION_DEFINES_H
+
+#define SERVICE_DATA_TEXT APP_CONTROL_DATA_TEXT
+#define SERVICE_DATA_TO APP_CONTROL_DATA_TO
+#define MAIN_MENU_PATH "images/mainmenu.png"
+#define THUMBNAIL_PATH "images/thumbnail1.jpg"
+#define ICON1_PATH "images/icon1.png"
+#define ICON2_PATH "images/icon2.png"
+#define ICON3_PATH "images/messages_btn_send.png"
+#define SOUND_PATH "sounds/sound.mp3"
+#define SETTING_PKGNAME "org.tizen.setting"
+#define MESSAGE_PKGNAME "org.tizen.message"
+#define GALLERY_PKGNAME "org.tizen.gallery"
+
+#define MESSAGE_POST "message_post"
+#define RECEIVED_DATA "Received_data"
+
+static const char *result_1_text = "Hello there.";
+static const char *result_2_text = "WhoIsIt";
+
+/* Result message text constants */
+static const char *result_message = "ResultMessage =";
+static const char *result_message_success_text = "SUCCESS";
+static const char *result_message_failure_text = "FAILURE";
+static const char *notify_message_text = "The notify message is";
+static const char *launch_argument_text = "launchArgument is";
+static const char *badge_is_text = "Badge is";
+static const char *app_message_text = "AppMessage";
+static const char *ongoing_activity_progress_text = "Ongoing Activity Progress is";
+static const char *ongoing_by_app_control_text = "OngoingByAppControl";
+static const char *title_text = "Title";
+static const char *percentage_content_text = "Progress(%). Press count #";
+static const char *byte_content_text = "Progress(Byte). Press count #";
+static const char *text_content_text = "Text. Press count #";
+static const char *remove_ongoing_notification_text = "All Notifications have been removed.";
+static const char *remove_ongoing_notification_by_app_control_text = "OngoingNotificationByAppControl has been removed.";
+static const char *remove_ongoing_notification_by_app_id_text = "OngoingNotificationByAppId has been removed.";
+static const double percentage_max = 1.0;
+static const double percentage_increment = 0.1;
+static const double percentage_multiplier = 100;
+static const double byte_max = 7000000;
+static const double byte_increment = 78461;
+static const int invalid_argument = -1;
+static const char *alert_text = "Alert Text";
+static const char *long_length_text = "Actually on my way to pick my shoes up. See you.";
+static const char *notification_app = "NotificationApp";
+static const char *number_alert_text = "17 AlertText";
+static const char *first_line = "First line";
+static const char *other_columns = "Other columns";
+static const char *second_length = "Second long length sting";
+static const char *line_text = "line";
+static const char *app_control_to_me = "AppControl to me";
+static const char *notify_with_request = "New Notification arrived with NotificationRequest by AppId.";
+static const char *operation_id_is_text = "operationId is";
+static const char *uri_is_text = "uri is";
+static const char *target_app_id_text = "The target AppId is";
+static const char *app_id_is_text = "AppId is";
+static const char *icon_path_is_text = "Icon path is";
+static const char *remove_text = "Individual notification has been removed.";
+static const char *operation_id_text = "http://tizen.org/appcontrol/operation/notification_temporary";
+static const char *extra_data_tizen_org = "http://tizen.org/appcontrol/data/notification";
+static const char *uri_text = "mailto:test@tizen.org";
+static const char *sms_uri_text = "sms:1234567890";
+static const char *mime_text = "audio/mp4";
+static const char *app_control_request = "AppControlRequestReceived";
+static const char *req_id = "reqId:";
+static const char *operation_id = "operationId:";
+static const char *uri_data_text = "pUriData:";
+static const char *mime_type = "pMimeType:";
+static const char *extra_data = "ExtraData:";
+static const char *key_value = "(Key/Value):";
+static const char *Call = "call";
+static const char *Reply = "Reply";
+static const char *View = "View";
+static const char *Send = "Send";
+static const char *Setting = "Setting";
+static const char *Message = "Message";
+static const char *Gallery = "Gallery";
+
+
+#endif
diff --git a/Notification_TestSample/inc/notification/notifications.h b/Notification_TestSample/inc/notification/notifications.h
new file mode 100644 (file)
index 0000000..ef62d1d
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_NOTIFICATIONS_H)
+#define _NOTIFICATIONS_H
+
+#include "notification/notification-common.h"
+
+void notification_set_callbacks(launch_cb launch_func, badge_cb badge_func);
+notification_data *notification_list_get(int *size);
+void delete_all_notifications();
+
+#endif
diff --git a/Notification_TestSample/inc/notification/ongoing-notifications.h b/Notification_TestSample/inc/notification/ongoing-notifications.h
new file mode 100644 (file)
index 0000000..40a7360
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_ONGOING_NOTIFICATIONS_H)
+#define _ONGOING_NOTIFICATIONS_H
+
+#include "notification/notification-common.h"
+
+void ongoing_notification_set_callbacks(launch_cb launch_func, badge_cb badge_func);
+const notification_data *ongoing_notification_list_get(int *size);
+void delete_all_ongoing_notifications(void);
+
+#endif
diff --git a/Notification_TestSample/inc/notification_testsample.h b/Notification_TestSample/inc/notification_testsample.h
new file mode 100755 (executable)
index 0000000..4f15fdf
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_NOTIFICATIONMANAGER_H_)
+#define _NOTIFICATIONMANAGER_H_
+
+#include <app.h>
+#include <dlog.h>
+
+#if !defined(PACKAGE)
+#define PACKAGE "org.example.notification_testsample"
+#endif
+
+#ifdef  LOG_TAG
+#undef  LOG_TAG
+#endif
+#define LOG_TAG "notification_testsample"
+
+#endif
diff --git a/Notification_TestSample/inc/view.h b/Notification_TestSample/inc/view.h
new file mode 100644 (file)
index 0000000..9f60f1c
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_VIEW_H)
+#define _VIEW_H
+
+Eina_Bool view_create(void *user_data);
+Evas_Object *view_create_win(const char *pkg_name);
+Evas_Object *view_create_conformant(Evas_Object *win);
+Evas_Object *view_create_layout(Evas_Object *parent, const char *edj_file_name, const char *edj_group);
+Evas_Object *view_create_background(Evas_Object *parent, const char *part_name);
+Evas_Object *view_create_naviframe(Evas_Object *parent, const char *part_name);
+Evas_Object *view_create_toolbar(Evas_Object *parent);
+Evas_Object *view_create_list(Evas_Object *parent);
+bool view_display_notification(notification_data *notify_data);
+void view_rise_window(void);
+void view_destroy(void);
+
+#endif
diff --git a/Notification_TestSample/inc/view_defines.h b/Notification_TestSample/inc/view_defines.h
new file mode 100644 (file)
index 0000000..29ff9eb
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if !defined(_VIEW_DEFINES_H)
+#define _VIEW_DEFINES_H
+
+#define EDJ_NOTI "edje/noti.edj"
+#define GRP_NOTI "noti"
+#define PART_NOTI_TITLE "noti_title"
+#define PART_NOTI_TEXT_CONTENT "noti_content"
+
+#endif
diff --git a/Notification_TestSample/res/edje/noti.edc b/Notification_TestSample/res/edje/noti.edc
new file mode 100755 (executable)
index 0000000..1714480
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "../../inc/view_defines.h"
+
+styles {
+   style {
+      name: "text_content";
+               base: "font=Tizen font_size=25 color=#ffffff wrap=mixed ellipsis=0";
+   }
+}
+
+collections {
+   group {
+      name: GRP_NOTI;
+      parts {
+         part {
+            name: PART_NOTI_TITLE;
+            type: TEXT;
+            description {
+               state: "default" 0.0;
+               rel1 { relative: 0.05 0.1; }
+               rel2 { relative: 0.95 0.5; }
+               text {
+                  text: "";
+                  size: 30;
+                  align: 0.5 1.0;
+                  ellipsis: 1;
+               }
+            }
+         }
+
+         part {
+            name: PART_NOTI_TEXT_CONTENT;
+            type: TEXTBLOCK;
+            description {
+               state: "default" 0.0;
+               rel1 { relative: 0.05 0.5; }
+               rel2 { relative: 0.95 1.0; }
+               text {
+                  style: "text_content";
+                  align: 0.0 1.0;
+               }
+            }
+         }
+      }
+   }
+}
diff --git a/Notification_TestSample/res/edje/noti.edj b/Notification_TestSample/res/edje/noti.edj
new file mode 100755 (executable)
index 0000000..3617633
Binary files /dev/null and b/Notification_TestSample/res/edje/noti.edj differ
diff --git a/Notification_TestSample/shared/res/images/icon1.png b/Notification_TestSample/shared/res/images/icon1.png
new file mode 100644 (file)
index 0000000..09b6c5a
Binary files /dev/null and b/Notification_TestSample/shared/res/images/icon1.png differ
diff --git a/Notification_TestSample/shared/res/images/icon2.png b/Notification_TestSample/shared/res/images/icon2.png
new file mode 100644 (file)
index 0000000..fb37e30
Binary files /dev/null and b/Notification_TestSample/shared/res/images/icon2.png differ
diff --git a/Notification_TestSample/shared/res/images/mainmenu.png b/Notification_TestSample/shared/res/images/mainmenu.png
new file mode 100644 (file)
index 0000000..647c3f9
Binary files /dev/null and b/Notification_TestSample/shared/res/images/mainmenu.png differ
diff --git a/Notification_TestSample/shared/res/images/messages_btn_send.png b/Notification_TestSample/shared/res/images/messages_btn_send.png
new file mode 100755 (executable)
index 0000000..7d70cc0
Binary files /dev/null and b/Notification_TestSample/shared/res/images/messages_btn_send.png differ
diff --git a/Notification_TestSample/shared/res/images/noti_calendar.png b/Notification_TestSample/shared/res/images/noti_calendar.png
new file mode 100755 (executable)
index 0000000..4a0ab30
Binary files /dev/null and b/Notification_TestSample/shared/res/images/noti_calendar.png differ
diff --git a/Notification_TestSample/shared/res/images/thumbnail1.jpg b/Notification_TestSample/shared/res/images/thumbnail1.jpg
new file mode 100644 (file)
index 0000000..66e4aa1
Binary files /dev/null and b/Notification_TestSample/shared/res/images/thumbnail1.jpg differ
diff --git a/Notification_TestSample/shared/res/notification-testsample.png b/Notification_TestSample/shared/res/notification-testsample.png
new file mode 100644 (file)
index 0000000..647c3f9
Binary files /dev/null and b/Notification_TestSample/shared/res/notification-testsample.png differ
diff --git a/Notification_TestSample/shared/res/sounds/sound.mp3 b/Notification_TestSample/shared/res/sounds/sound.mp3
new file mode 100644 (file)
index 0000000..79ba4a4
Binary files /dev/null and b/Notification_TestSample/shared/res/sounds/sound.mp3 differ
diff --git a/Notification_TestSample/src/main.c b/Notification_TestSample/src/main.c
new file mode 100755 (executable)
index 0000000..c0dc02b
--- /dev/null
@@ -0,0 +1,320 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Elementary.h>
+#include <system_settings.h>
+#include <badge.h>
+
+#include "notification_testsample.h"
+#include "notification/notifications.h"
+#include "notification/ongoing-notifications.h"
+#include "notification/notification-defines.h"
+#include "notification/notification-common.h"
+#include "notification/etc-notifications.h"
+#include "view.h"
+
+static struct app_info {
+       int service_request_count;
+} s_info = {
+       .service_request_count = 0,
+};
+
+static bool badge_update_cb(unsigned int *count, bool step);
+static void notification_launch_cb(notification_h notification, const char *argument, const char *pkgname,
+                                                                       const char *uri_text, const char *mime_text, const char *operation,
+                                                                       const char **array_result, const char **array_key);
+static bool _create_notification_data(notification_data **notify_data);
+static void _free_strings_array(char **strings, int length);
+static bool _report_app_control_error(int err_code, const char *err_message);
+
+/**
+ * @brief Hook to take necessary actions before main event loop starts.
+ * Initialize UI resources and application's data.
+ * If this function returns true, the main loop of application starts.
+ * If this function returns false, the application is terminated.
+ */
+static bool app_create(void *user_data)
+{
+       int ret = badge_new(PACKAGE);
+       if (ret != BADGE_ERROR_NONE)
+               dlog_print(DLOG_ERROR, LOG_TAG, "badge_new() failed. Err = %d", ret);
+
+       notification_set_callbacks(notification_launch_cb, badge_update_cb);
+       ongoing_notification_set_callbacks(notification_launch_cb, badge_update_cb);
+       etc_notification_set_callbacks(notification_launch_cb, badge_update_cb);
+
+       return (bool)view_create(NULL);
+}
+
+/**
+ * @brief This callback function is called when another application
+ * sends a launch request to the application.
+ */
+static void app_control(app_control_h app_control, void *user_data)
+{
+       char *extra_data = NULL;
+       char *uri = NULL;
+       char *operation = NULL;
+       char *mime = NULL;
+       char **result_service_data = NULL;
+       char **result_service_data_to = NULL;
+       int length = 0;
+       char extra_data_to[TEXT_SHORT_LEN] = { '\0'};
+       char extra_data_text[TEXT_SHORT_LEN] = {'\0'};
+       notification_data *notify_data = NULL;
+       int ret;
+
+       ret = app_control_get_extra_data(app_control, MESSAGE_POST, &extra_data);
+       if (_report_app_control_error(ret, "app_control_get_extra_data() failed")) {
+               if (!_create_notification_data(&notify_data)) {
+                       view_rise_window();
+                       return;
+               }
+
+               _report_app_control_error(app_control_get_uri(app_control, &uri), "app_control_get_uri() failed");
+               _report_app_control_error(app_control_get_operation(app_control, &operation), "app_control_get_operation() failed");
+               _report_app_control_error(app_control_get_mime(app_control, &mime), "app_control_get_mime() failed");
+
+               ret = app_control_get_extra_data_array(app_control, SERVICE_DATA_TEXT, &result_service_data, &length);
+               if (_report_app_control_error(ret, "app_control_get_extra_data_array() failed")) {
+                       snprintf(extra_data_text, TEXT_SHORT_LEN, "# 1%s (%s | %s)<br>", key_value, SERVICE_DATA_TEXT, result_service_data[0]);
+                       _free_strings_array(result_service_data, length);
+               }
+
+               ret = app_control_get_extra_data_array(app_control, SERVICE_DATA_TO, &result_service_data_to, &length);
+               if (_report_app_control_error(ret, "app_control_get_extra_data_array() failed")) {
+                       snprintf(extra_data_to, TEXT_SHORT_LEN, "# 2%s (%s | %s)", key_value, SERVICE_DATA_TEXT, result_service_data_to[0]);
+                       _free_strings_array(result_service_data_to, length);
+               }
+
+               snprintf(notify_data->name, TEXT_SHORT_LEN, "%s", app_control_request);
+               snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s %i<br>%s %s<br>%s %s<br>%s %s<br><br>%s<br># 0%s (%s | %s)<br>%s%s",
+                               req_id, ++s_info.service_request_count, operation_id, operation, uri_data_text, uri,
+                               mime_type, mime, extra_data, key_value, extra_data_tizen_org, extra_data, extra_data_text, extra_data_to);
+
+               free(operation);
+               free(uri);
+               free(mime);
+               free(extra_data);
+
+               view_display_notification(notify_data);
+               free(notify_data);
+       }
+
+       view_rise_window();
+}
+
+/**
+ * @brief This callback function is called each time
+ * the application is completely obscured by another application
+ * and becomes invisible to the user.
+ */
+static void app_pause(void *user_data)
+{
+       /* Take necessary actions when application becomes invisible. */
+}
+
+/**
+ * @brief This callback function is called each time
+ * the application becomes visible to the user.
+ */
+static void app_resume(void *user_data)
+{
+       /* Take necessary actions when application becomes visible. */
+}
+
+/**
+ * @brief This callback function is called once after the main loop of the application exits.
+ */
+static void app_terminate(void *user_data)
+{
+       view_destroy();
+}
+
+/**
+ * @brief This function will be called when the language is changed.
+ */
+static void ui_app_lang_changed(app_event_info_h event_info, void *user_data)
+{
+       /* APP_EVENT_LANGUAGE_CHANGED */
+       char *locale = NULL;
+
+       system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+
+       if (locale != NULL) {
+               elm_language_set(locale);
+               free(locale);
+       }
+
+       return;
+}
+
+/**
+ * @brief Main function of the application.
+ */
+int main(int argc, char *argv[])
+{
+       int ret;
+
+       ui_app_lifecycle_callback_s event_callback = {0, };
+       app_event_handler_h handlers[5] = {NULL, };
+
+       event_callback.create = app_create;
+       event_callback.terminate = app_terminate;
+       event_callback.pause = app_pause;
+       event_callback.resume = app_resume;
+       event_callback.app_control = app_control;
+
+       /*
+        * If you want to handle more events,
+        * please check the application lifecycle guide.
+        */
+       ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, NULL);
+
+       ret = ui_app_main(argc, argv, &event_callback, NULL);
+       if (ret != APP_ERROR_NONE)
+               dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() failed. err = %d", ret);
+
+       return ret;
+}
+
+/**
+ * @brief Internal function which modifies the badge counter value.
+ * @param[out] count The badge counter value.
+ * @return This function returns 'true' if the badge counter was successfully updated,
+ * otherwise 'false' is returned.
+ */
+static bool badge_update_cb(unsigned int *count, bool step)
+{
+       int ret = badge_get_count(PACKAGE, count);
+       if (ret != BADGE_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "badge_get_count() failed. Err = %d", ret);
+               return false;
+       }
+
+       if (step) {
+               (*count)++;
+       } else if (*count > 0) {
+               (*count)--;
+       } else {
+               dlog_print(DLOG_ERROR, LOG_TAG, "Cannot decrease the badge counter.");
+               return false;
+       }
+
+       ret = badge_set_count(PACKAGE, *count);
+       if (ret != BADGE_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "badge_set_count() failed. Err = %d", ret);
+               return false;
+       }
+
+       return true;
+}
+
+/**
+ * @brief Internal function which sets the launch arguments for the application
+ * which is to be launched after notification is selected from the Notification Tray.
+ * @param[in] notification Notification handle.
+ * @param[in] argument Extra data.
+ * @param[in] pkgname Name of the package containing the application to be launched.
+ * @param[in] uri_text Uri text.
+ * @param[in] mime_text Mime information.
+ * @param[in] operation Operation to be performed.
+ * @param[in] array_result Array of extra data.
+ * @param[in] array_key The array of keys for extra data array items identification.
+ */
+static void notification_launch_cb(notification_h notification, const char *argument, const char *pkgname,
+                                                                       const char *uri_text, const char *mime_text, const char *operation,
+                                                                       const char **array_result, const char **array_key)
+{
+       int i = 0;
+       app_control_h service = NULL;
+       int ret = app_control_create(&service);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "app_control_create() failed. Err = %d", ret);
+               return;
+       }
+
+       if (uri_text)
+               app_control_set_uri(service, uri_text);
+
+       if (mime_text)
+               app_control_set_mime(service, mime_text);
+
+       if (pkgname)
+               app_control_set_app_id(service, pkgname);
+
+       if (argument)
+               app_control_add_extra_data(service, MESSAGE_POST, argument);
+
+       if (operation)
+               app_control_set_operation(service, operation);
+
+       if (array_result && array_key)
+               for (i = 0; array_key[i] && array_result[i]; i++)
+                       app_control_add_extra_data_array(service, array_key[i], &array_result[i], 1);
+
+       notification_set_launch_option(notification, NOTIFICATION_LAUNCH_OPTION_APP_CONTROL, service);
+       app_control_destroy(service);
+}
+
+/**
+ * @brief Internal function which allocates the memory for notification data structure.
+ * @param[out] notify_data The newly allocated notification data structure.
+ * @return This function returns 'true' if the notification data structure was
+ * successfully allocated, otherwise 'false' is returned.
+ */
+static bool _create_notification_data(notification_data **notify_data)
+{
+       *notify_data = (notification_data *)malloc(sizeof(notification_data));
+       if (!*notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "Memory allocation failed.");
+               return false;
+       }
+
+       return true;
+}
+
+/**
+ * @brief Internal function which frees all the strings stored in an array.
+ * @param[in] strings The array of strings to be freed.
+ * @param[in] length The length of the array.
+ */
+static void _free_strings_array(char **strings, int length)
+{
+       int i;
+
+       for (i = 0; i < length; i++)
+                       free(strings[i]);
+
+       free(strings);
+}
+
+/**
+ * @brief Internal function which supports checking and reporting errors
+ * spawned by app-control API functions.
+ * @param[in] err_code The error code spawned by app-control API function.
+ * @param[in] err_message The message to be logged in case err_code differs from
+ * APP_CONTROL_ERROR_NONE.
+ * @return This function returns 'true' if err_code is equal to APP_CONTROL_ERROR_NONE,
+ * otherwise 'false' is returned.
+ */
+static bool _report_app_control_error(int err_code, const char *err_message)
+{
+       if (err_code != APP_CONTROL_ERROR_NONE)
+               dlog_print(DLOG_ERROR, LOG_TAG, "%s. Err = %d", err_message, err_code);
+
+       return (err_code == APP_CONTROL_ERROR_NONE);
+}
diff --git a/Notification_TestSample/src/notification/etc-notifications.c b/Notification_TestSample/src/notification/etc-notifications.c
new file mode 100755 (executable)
index 0000000..4ac2052
--- /dev/null
@@ -0,0 +1,560 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* common header */
+#include <stdio.h>
+
+#include "notification_testsample.h"
+#include "notification/notifications.h"
+#include "notification/etc-notifications.h"
+#include "notification/notification-defines.h"
+
+#define NOFIFICATIONS_COUNT 7
+
+enum notification_item {
+       NOTIFICATION_ENTRY_TYPE = 0,
+       NOTIFICATION_BUTTON_TYPE,
+       NOTIFICATION_BUTTON_ENTRY_TYPE,
+       NOTIFICATION_FOR_LOCKSCREEN,
+       NOTIFICATION_FOR_INDICATOR,
+       NOTIFICATION_FOR_TICKER,
+       NOTIFICATION_FOR_APPLIST_ALL,
+       };
+
+
+static notification_h _create_notification(const char *icon_path, const char *title_text, const char *content_text, const char *sound_path);
+static bool _delete_notification(enum notification_item type);
+static bool _delete_notification_items(void);
+
+static void _notify_entry_type_noti_cb(notification_data *notify_data);
+static void _notify_button_type_noti_cb(notification_data *notify_data);
+static void _notify_button_entry_type_cb(notification_data *notify_data);
+static void _notify_for_lockscreen_cb(notification_data *notify_data);
+static void _notify_for_indicator_cb(notification_data *notify_data);
+static void _notify_for_ticker_cb(notification_data *notify_data);
+static void _notify_for_all_applist_cb(notification_data *notify_data);
+
+
+
+static struct noti_info {
+       launch_cb launch_func_cb;
+       badge_cb badge_func_cb;
+       notification_data noti[NOFIFICATIONS_COUNT];
+} s_info = {
+       .launch_func_cb = NULL,
+       .badge_func_cb = NULL,
+       .noti = {{ "Entry type Active notification", NULL, 0, 0, _notify_entry_type_noti_cb, },
+                               { "Button type Active notification", NULL, 0, 0, _notify_button_type_noti_cb, },
+                               { "Button-Entry type Active notification", NULL, 0, 0, _notify_button_entry_type_cb, },
+                               { "Notification for Lockscreen", NULL, 0, 0, _notify_for_lockscreen_cb , },
+                               { "Notification for Indicator", NULL, 0, 0, _notify_for_indicator_cb , },
+                               { "Notification for Ticker", NULL, 0, 0, _notify_for_ticker_cb , },
+                               { "Notification for All (except active notification)", NULL, 0, 0, _notify_for_all_applist_cb , },
+                       }
+};
+
+
+void etc_notification_set_callbacks(launch_cb launch_func, badge_cb badge_func)
+{
+       s_info.launch_func_cb = launch_func;
+       s_info.badge_func_cb = badge_func;
+}
+
+
+const notification_data *etc_notification_list_get(int *size)
+{
+       *size = NOFIFICATIONS_COUNT;
+       return s_info.noti;
+}
+
+
+static char *_get_image_path(char* icon_path)
+{
+       int size_of_buffer = 0;
+       char *full_icon_path = NULL;
+
+       if (icon_path) {
+               size_of_buffer = strlen(icon_path) + strlen(get_shared_res_path()) + 1;
+               full_icon_path = calloc(sizeof(char), size_of_buffer);
+
+               if (full_icon_path) {
+                       snprintf(full_icon_path, size_of_buffer, "%s%s", get_shared_res_path(), icon_path);
+               }
+       }
+
+       return full_icon_path;
+}
+
+
+app_control_h _create_app_control_by_contents(const char *pkgname, const char *operation, const char *uri_text)
+{
+       app_control_h service = NULL;
+       int app_control_err = APP_CONTROL_ERROR_NONE;
+
+       app_control_err = app_control_create(&service);
+       if (app_control_err != APP_CONTROL_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "app_control_create() failed. Err = %d", app_control_err);
+               return NULL;
+       }
+
+       if (pkgname)
+               app_control_set_app_id(service, pkgname);
+
+       if (operation)
+               app_control_set_operation(service, operation);
+
+       if (uri_text)
+               app_control_set_uri(service, uri_text);
+
+       return service;
+}
+
+
+static void _notify_entry_type_noti_cb(notification_data *notify_data)
+{
+       app_control_h app_control_for_body = NULL, app_control_for_text_input_button = NULL;
+       int noti_err = NOTIFICATION_ERROR_NONE;
+       int app_control_err = APP_CONTROL_ERROR_NONE;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notify_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       _delete_notification_items();
+
+       notify_data->notification = _create_notification(ICON1_PATH, title_text, long_length_text, NULL);
+       if (notify_data->notification == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_create_notification() failed.");
+               return;
+       }
+
+       notification_set_display_applist(notify_data->notification, NOTIFICATION_DISPLAY_APP_ACTIVE);
+
+       notification_set_text_input(notify_data->notification, 160);
+
+       /* make app_control for the body contents */
+       app_control_for_body = _create_app_control_by_contents(MESSAGE_PKGNAME, APP_CONTROL_OPERATION_COMPOSE, sms_uri_text);
+
+       notification_set_launch_option(notify_data->notification, NOTIFICATION_LAUNCH_OPTION_APP_CONTROL, app_control_for_body);
+
+       /* make app_control for the send button */
+       app_control_err = app_control_create(&app_control_for_text_input_button);
+       if (app_control_err != APP_CONTROL_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "app_control_create failed[%d]\n", app_control_err);
+               goto FINISH_OFF;
+       }
+
+       noti_err = notification_set_event_handler(notify_data->notification, NOTIFICATION_EVENT_TYPE_CLICK_ON_TEXT_INPUT_BUTTON, app_control_for_text_input_button);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_set_event_handler failed[%d]", noti_err);
+       }
+
+       notification_set_text(notify_data->notification, NOTIFICATION_TEXT_TYPE_TEXT_INPUT_BUTTON, Send, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+       notification_set_text(notify_data->notification, NOTIFICATION_TEXT_TYPE_TEXT_INPUT_PLACEHOLDER, "Text Messages", NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+
+
+       noti_err = notification_post(notify_data->notification);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_post failed[%d]", noti_err);
+       }
+
+
+FINISH_OFF:
+
+       if (app_control_for_body)
+               app_control_destroy(app_control_for_body);
+
+       if (app_control_for_text_input_button)
+               app_control_destroy(app_control_for_text_input_button);
+
+}
+
+
+static void _notify_button_type_noti_cb(notification_data *notify_data)
+{
+       int noti_err = NOTIFICATION_ERROR_NONE;
+
+       app_control_h app_control_for_button1 = NULL, app_control_for_button2 = NULL, app_control_for_button3 = NULL;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notify_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       _delete_notification_items();
+
+       /* create notification for active noti */
+       notify_data->notification = _create_notification(ICON2_PATH, title_text, long_length_text, NULL);
+       if (notify_data->notification == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_create_notification() failed.");
+               return;
+       }
+
+       notification_set_display_applist(notify_data->notification, NOTIFICATION_DISPLAY_APP_ACTIVE);
+
+
+       /* make app_control handle for button1 */
+       app_control_for_button1 = _create_app_control_by_contents(SETTING_PKGNAME, NULL, NULL);
+
+       noti_err = notification_set_event_handler(notify_data->notification, NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_1, app_control_for_button1);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_set_event_handler failed[%d]", noti_err);
+               goto FINISH_OFF;
+       }
+
+       notification_set_text(notify_data->notification, NOTIFICATION_TEXT_TYPE_BUTTON_1, Setting, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+
+
+       /* make app_control handle for button2 */
+       app_control_for_button2 = _create_app_control_by_contents(MESSAGE_PKGNAME, NULL, NULL);
+
+       noti_err = notification_set_event_handler(notify_data->notification, NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_2, app_control_for_button2);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_set_event_handler failed[%d]", noti_err);
+               goto FINISH_OFF;
+       }
+
+       notification_set_text(notify_data->notification, NOTIFICATION_TEXT_TYPE_BUTTON_2, Message, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+
+
+       /* make app_control handle for button3 */
+       app_control_for_button3 = _create_app_control_by_contents(GALLERY_PKGNAME, NULL, NULL);
+
+       noti_err = notification_set_event_handler(notify_data->notification, NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_3, app_control_for_button3);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_set_event_handler failed[%d]", noti_err);
+               goto FINISH_OFF;
+       }
+
+       notification_set_text(notify_data->notification, NOTIFICATION_TEXT_TYPE_BUTTON_3, Gallery, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+
+       /* post notification */
+       noti_err = notification_post(notify_data->notification);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_post failed[%d]", noti_err);
+       }
+
+
+FINISH_OFF:
+       if (app_control_for_button1)
+               app_control_destroy(app_control_for_button1);
+
+       if (app_control_for_button2)
+               app_control_destroy(app_control_for_button2);
+
+       if (app_control_for_button3)
+               app_control_destroy(app_control_for_button3);
+
+}
+
+
+static void _notify_button_entry_type_cb(notification_data *notify_data)
+{
+       app_control_h app_control_for_body = NULL, app_control_for_message = NULL, app_control_for_reply_button = NULL, app_control_for_setting_button = NULL;
+
+       int noti_err = NOTIFICATION_ERROR_NONE;
+       int size_of_buffer = 0;
+       char *full_icon_path = NULL;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notify_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       _delete_notification_items();
+
+       /* create notification for active noti */
+       notify_data->notification = _create_notification(ICON1_PATH, title_text, alert_text, NULL);
+       if (notify_data->notification == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_create_notification() failed.");
+               return;
+       }
+
+       notification_set_display_applist(notify_data->notification, NOTIFICATION_DISPLAY_APP_ACTIVE);
+
+
+       /* make app_control handle for the body contents */
+       app_control_for_body = _create_app_control_by_contents(MESSAGE_PKGNAME, APP_CONTROL_OPERATION_COMPOSE, sms_uri_text);
+
+       noti_err = notification_set_launch_option(notify_data->notification, NOTIFICATION_LAUNCH_OPTION_APP_CONTROL, app_control_for_body);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_set_launch_option failed[%d]", noti_err);
+               goto FINISH_OFF;
+       }
+
+
+       /* make app_control handle for button1 */
+       app_control_for_message = _create_app_control_by_contents(MESSAGE_PKGNAME, NULL, NULL);
+
+       noti_err = notification_set_event_handler(notify_data->notification, NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_1, app_control_for_message);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_set_event_handler failed[%d]", noti_err);
+               goto FINISH_OFF;
+       }
+
+       notification_set_text(notify_data->notification, NOTIFICATION_TEXT_TYPE_BUTTON_1, Message, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+
+
+       /* make app_control handle for button2 */
+       app_control_for_reply_button = _create_app_control_by_contents(NULL, NULL, NULL);
+
+       noti_err = notification_set_event_handler(notify_data->notification, NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_2, app_control_for_reply_button);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_set_event_handler failed[%d]", noti_err);
+               goto FINISH_OFF;
+       }
+
+       notification_set_text(notify_data->notification, NOTIFICATION_TEXT_TYPE_BUTTON_2, Reply, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+
+
+       /* make_app_control handle for button3 */
+       app_control_for_setting_button = _create_app_control_by_contents(SETTING_PKGNAME, NULL, NULL);
+
+       noti_err = notification_set_event_handler(notify_data->notification, NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_3, app_control_for_setting_button);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_set_event_handler failed[%d]", noti_err);
+               goto FINISH_OFF;
+       }
+
+       notification_set_text(notify_data->notification, NOTIFICATION_TEXT_TYPE_BUTTON_3, Setting, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+
+
+       /* set text input layout */
+       notification_set_text_input(notify_data->notification, 100);
+
+       noti_err = notification_set_event_handler(notify_data->notification, NOTIFICATION_EVENT_TYPE_CLICK_ON_TEXT_INPUT_BUTTON, app_control_for_reply_button);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_set_event_handler failed[%d]", noti_err);
+
+       }
+
+       notification_set_text(notify_data->notification, NOTIFICATION_TEXT_TYPE_TEXT_INPUT_BUTTON, Send, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+       notification_set_text(notify_data->notification, NOTIFICATION_TEXT_TYPE_TEXT_INPUT_PLACEHOLDER, "Text Messages", NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+
+       size_of_buffer = strlen(ICON3_PATH) + strlen(get_shared_res_path()) + 1;
+       full_icon_path = calloc(sizeof(char), size_of_buffer);
+       if (full_icon_path) {
+               snprintf(full_icon_path, size_of_buffer, "%s%s", get_shared_res_path(), ICON3_PATH);
+               notification_set_image(notify_data->notification, NOTIFICATION_IMAGE_TYPE_TEXT_INPUT_BUTTON, full_icon_path);
+               free(full_icon_path);
+       }
+
+
+       /* post notification */
+       noti_err = notification_post(notify_data->notification);
+       /* create notification for active noti */
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_post failed[%d]", noti_err);
+               goto FINISH_OFF;
+       }
+
+
+FINISH_OFF:
+
+       if (app_control_for_body)
+               app_control_destroy(app_control_for_body);
+
+       if (app_control_for_reply_button)
+               app_control_destroy(app_control_for_reply_button);
+
+       if (app_control_for_setting_button)
+               app_control_destroy(app_control_for_setting_button);
+
+}
+
+
+static void _notify_for_lockscreen_cb(notification_data *notify_data)
+{
+
+       int noti_err = NOTIFICATION_ERROR_NONE;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notify_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       /* create notification for active noti */
+       notify_data->notification = _create_notification(THUMBNAIL_PATH, title_text, alert_text, NULL);
+       if (notify_data->notification == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_create_notification() failed.");
+               return;
+       }
+
+       notification_set_display_applist(notify_data->notification, NOTIFICATION_DISPLAY_APP_LOCK);
+
+       /* post notification */
+       noti_err = notification_post(notify_data->notification);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_post failed[%d]", noti_err);
+       }
+}
+
+
+static void _notify_for_indicator_cb(notification_data *notify_data)
+{
+
+       int noti_err = NOTIFICATION_ERROR_NONE;
+       char *full_icon_path = NULL;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notify_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       _delete_notification(NOTIFICATION_FOR_INDICATOR);
+
+       /* create notification for active noti */
+       notify_data->notification = _create_notification(NULL, title_text, alert_text, NULL);
+       if (notify_data->notification == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_create_notification() failed.");
+               return;
+       }
+
+       notification_set_display_applist(notify_data->notification, NOTIFICATION_DISPLAY_APP_INDICATOR);
+       full_icon_path = _get_image_path(ICON1_PATH);
+       notification_set_image(notify_data->notification, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR, full_icon_path);
+
+       /* post notification */
+       noti_err = notification_post(notify_data->notification);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_post failed[%d]", noti_err);
+       }
+
+       if (full_icon_path) {
+               free(full_icon_path);
+       }
+}
+
+
+static void _notify_for_ticker_cb(notification_data *notify_data)
+{
+       int noti_err = NOTIFICATION_ERROR_NONE;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notify_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       _delete_notification(NOTIFICATION_FOR_TICKER);
+
+       /* create notification for active noti */
+       notify_data->notification = _create_notification(ICON1_PATH, title_text, alert_text, NULL);
+       if (notify_data->notification == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_create_notification() failed.");
+               return;
+       }
+
+       notification_set_display_applist(notify_data->notification, NOTIFICATION_DISPLAY_APP_TICKER);
+
+       /* post notification */
+       noti_err = notification_post(notify_data->notification);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_post failed[%d]", noti_err);
+       }
+}
+
+
+static void _notify_for_all_applist_cb(notification_data *notify_data)
+{
+       int noti_err = NOTIFICATION_ERROR_NONE;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notify_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       _delete_notification(NOTIFICATION_FOR_APPLIST_ALL);
+
+       /* create notification for active noti */
+       notify_data->notification = _create_notification(ICON1_PATH, title_text, alert_text, NULL);
+
+       notification_set_display_applist(notify_data->notification, NOTIFICATION_DISPLAY_APP_ALL);
+
+       /* post notification */
+       noti_err = notification_post(notify_data->notification);
+       if (noti_err != NOTIFICATION_ERROR_NONE) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_post failed[%d]", noti_err);
+       }
+}
+
+
+static notification_h _create_notification(const char *icon_path, const char *title_text, const char *content_text, const char *sound_path)
+{
+       int size_of_buffer = 0;
+       char *full_icon_path = NULL;
+       char *full_sound_path = NULL;
+
+       notification_h notify = notification_create(NOTIFICATION_TYPE_NOTI);
+       if (!notify) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_create(NOTIFICATION_TYPE_NOTI) failed.");
+               return NULL;
+       }
+
+       if (icon_path) {
+               size_of_buffer = strlen(icon_path) + strlen(get_shared_res_path()) + 1;
+               full_icon_path = calloc(sizeof(char), size_of_buffer);
+               if (full_icon_path) {
+                       snprintf(full_icon_path, size_of_buffer, "%s%s", get_shared_res_path(), icon_path);
+                       notification_set_image(notify, NOTIFICATION_IMAGE_TYPE_ICON, full_icon_path);
+                       free(full_icon_path);
+               }
+       }
+
+       if (sound_path) {
+               size_of_buffer = strlen(icon_path) + strlen(get_shared_res_path()) + 1;
+               full_sound_path = calloc(sizeof(char), size_of_buffer);
+               if (full_sound_path) {
+                       snprintf(full_sound_path, size_of_buffer, "%s%s", get_shared_res_path(), sound_path);
+                       notification_set_sound(notify, NOTIFICATION_SOUND_TYPE_USER_DATA, full_sound_path);
+                       free(full_sound_path);
+               }
+       }
+
+       notification_set_text(notify, NOTIFICATION_TEXT_TYPE_TITLE, title_text, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+       notification_set_text(notify, NOTIFICATION_TEXT_TYPE_CONTENT, content_text, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+
+       return notify;
+}
+
+
+static bool _delete_notification(enum notification_item type)
+{
+       int err = NOTIFICATION_ERROR_NONE;
+       notification_data *data = NULL;
+
+       if ((int)type < NOFIFICATIONS_COUNT)
+               data = &s_info.noti[type];
+
+       if (data && data->notification) {
+               err = notification_delete(data->notification);
+               data->notification = NULL;
+       }
+
+       return (err == NOTIFICATION_ERROR_NONE);
+}
+
+
+static bool _delete_notification_items(void)
+{
+       bool is_success;
+
+       is_success = _delete_notification(NOTIFICATION_ENTRY_TYPE);
+       is_success = _delete_notification(NOTIFICATION_BUTTON_TYPE) && is_success;
+       is_success = _delete_notification(NOTIFICATION_BUTTON_ENTRY_TYPE) && is_success;
+
+       return is_success;
+}
diff --git a/Notification_TestSample/src/notification/notifications.c b/Notification_TestSample/src/notification/notifications.c
new file mode 100755 (executable)
index 0000000..979dc6b
--- /dev/null
@@ -0,0 +1,397 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <notification.h>
+#include <stdio.h>
+#include "notification_testsample.h"
+#include "notification/notifications.h"
+#include "notification/notification-defines.h"
+
+#define NOFIFICATIONS_COUNT 8
+
+enum notification_item {NOTIFICATION = 0, NOTIFICATION_NORMAL = 1, NOTIFICATION_BY_APP_CONTROL = 2, NOTIFICATION_BY_APP_ID = 4};
+
+static void _notify_cb(notification_data *notify_data);
+static void _notify_normal_cb(notification_data *notify_data);
+static void _notify_by_app_control_cb(notification_data *notify_data);
+static void _remove_notification_cb(notification_data *notify_data);
+static void _notify_by_app_id_cb(notification_data *notify_data);
+static void _remove_notification_by_app_id_cb(notification_data *notify_data);
+static void _set_badge_number_by_app_id_cb(notification_data *notify_data);
+static void _remove_badge_number_by_app_id_cb(notification_data *notify_data);
+static notification_h _create_notification(const char *icon_path, const char *title_text, const char *content_text, const char *sound_path);
+static bool _delete_notification(enum notification_item type);
+static bool _delete_notification_items(void);
+static bool _delete_notification_by_app_id(void);
+
+static struct noti_info {
+       launch_cb launch_func_cb;
+       badge_cb badge_func_cb;
+       notification_data noti[NOFIFICATIONS_COUNT];
+} s_info = {
+       .launch_func_cb = NULL,
+       .badge_func_cb = NULL,
+       .noti = {{ "Notify", NULL, 0, 0, _notify_cb, },
+                               { "Notify(normal)", NULL, 0, 0, _notify_normal_cb, },
+                               { "NotifyByAppControl", NULL, 0, 0, _notify_by_app_control_cb, },
+                               { "RemoveNotification", NULL, 0, 0, _remove_notification_cb, },
+                               { "NotifyByAppId", NULL, 0, 0, _notify_by_app_id_cb, },
+                               { "RemoveNotificationByAppId", NULL, 0, 0, _remove_notification_by_app_id_cb, },
+                               { "SetBadgeNumberByAppId", NULL, 0, 0, _set_badge_number_by_app_id_cb, },
+                               { "RemoveBadgeNumberByAppId", NULL, 0, 0, _remove_badge_number_by_app_id_cb, },},
+};
+
+/**
+ * @brief Assigns the callback functions.
+ * @param[in] launch_func The callback function to be invoked on notification post.
+ * @param[in] badge_func The callback function to be invoked on badge counter modification request.
+ */
+void notification_set_callbacks(launch_cb launch_func, badge_cb badge_func)
+{
+       s_info.launch_func_cb = launch_func;
+       s_info.badge_func_cb = badge_func;
+}
+
+/**
+ * @brief Obtains the list of all supported notifications.
+ * @param[out] size The number is supported notifications.
+ * @return This function returns an array of all the supported notifications.
+ */
+notification_data *notification_list_get(int *size)
+{
+       *size = NOFIFICATIONS_COUNT;
+       return s_info.noti;
+}
+
+/**
+ * @brief Deletes all the posted notifications.
+ */
+void delete_all_notifications(void)
+{
+       _delete_notification(NOTIFICATION);
+       _delete_notification(NOTIFICATION_NORMAL);
+       _delete_notification(NOTIFICATION_BY_APP_CONTROL);
+       _delete_notification(NOTIFICATION_BY_APP_ID);
+}
+
+/**
+ * @brief Internal callback function which posts a common notification.
+ * This callback function is invoked when the user selects "Notify" item
+ * from the list in "Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _notify_cb(notification_data *notify_data)
+{
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notify_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       _delete_notification_items();
+
+       notify_data->notification = _create_notification(MAIN_MENU_PATH, title_text, alert_text, NULL);
+       if (notify_data->notification) {
+               if (s_info.launch_func_cb)
+                       s_info.launch_func_cb(notify_data->notification, app_message_text, PACKAGE, NULL, NULL, NULL, NULL, NULL);
+               notification_post(notify_data->notification);
+       }
+
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br><br>%s<br>%s<br><br>%s<br>%s<br>", result_message,
+                       (notify_data->notification) ? result_message_success_text : result_message_failure_text,
+                       notify_message_text, alert_text, launch_argument_text,
+                       app_message_text);
+}
+
+/**
+ * @brief Internal callback function which posts a normal notification.
+ * This callback function is invoked when the user selects "Notify(normal)" item
+ * from the list in "Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _notify_normal_cb(notification_data *notify_data)
+{
+       int size_of_buffer = 0;
+       char *full_thumbnail_path = NULL;
+       unsigned int count = 0;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notify_normal_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       _delete_notification_items();
+
+       notify_data->notification = _create_notification(ICON2_PATH, title_text, alert_text, SOUND_PATH);
+       if (notify_data->notification) {
+               if (s_info.launch_func_cb)
+                       s_info.launch_func_cb(notify_data->notification, app_message_text, PACKAGE, NULL, NULL, NULL, NULL, NULL);
+
+               size_of_buffer = strlen(THUMBNAIL_PATH) + strlen(get_shared_res_path()) + 1;
+               full_thumbnail_path = calloc(sizeof(char), size_of_buffer);
+               if (full_thumbnail_path) {
+                       snprintf(full_thumbnail_path, size_of_buffer, "%s%s", get_shared_res_path(), THUMBNAIL_PATH);
+                       notification_set_image(notify_data->notification, NOTIFICATION_IMAGE_TYPE_BACKGROUND, full_thumbnail_path);
+                       free(full_thumbnail_path);
+               }
+
+               notification_set_text(notify_data->notification, NOTIFICATION_TEXT_TYPE_INFO_2, second_length, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+               notification_set_text(notify_data->notification, NOTIFICATION_TEXT_TYPE_INFO_SUB_2, line_text, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+               notification_post(notify_data->notification);
+               if (s_info.badge_func_cb)
+                       s_info.badge_func_cb(&count, true);
+       }
+}
+
+/**
+ * @brief Internal callback function which posts a app-control notification.
+ * This callback function is invoked when the user selects "NotifyByAppControl" item
+ * from the list in "Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _notify_by_app_control_cb(notification_data *notify_data)
+{
+       const char *array_result[] = { result_1_text, result_2_text, NULL };
+       const char *array_key[] = { SERVICE_DATA_TEXT, SERVICE_DATA_TO, NULL };
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notify_by_app_control_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       _delete_notification_items();
+
+       notify_data->notification = _create_notification(ICON2_PATH, notification_app, app_control_to_me, NULL);
+       if (notify_data->notification) {
+               if (s_info.launch_func_cb)
+                       s_info.launch_func_cb(notify_data->notification, app_message_text, PACKAGE, uri_text, mime_text, operation_id_text, array_result, array_key);
+               notification_post(notify_data->notification);
+       }
+
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br><br>%s<br>%s<br><br>%s<br>%s<br><br>%s<br>%s<br>",
+                       result_message, (notify_data->notification) ? result_message_success_text : result_message_failure_text,
+                       notify_message_text, app_control_to_me, operation_id_is_text,
+                       operation_id_text, uri_is_text, uri_text);
+}
+
+/**
+ * @brief Internal callback function which removes the notification.
+ * This callback function is invoked when the user selects "RemoveNotification" item
+ * from the list in "Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _remove_notification_cb(notification_data *notify_data)
+{
+       bool is_success;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "remove_notification_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       is_success = _delete_notification_items();
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br><br>%s<br>", result_message,
+                       (is_success) ? result_message_success_text : result_message_failure_text, remove_text);
+}
+
+/**
+ * @brief Internal callback function which posts the notification by application ID.
+ * This callback function is invoked when the user selects "NotifyByAppId" item
+ * from the list in "Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _notify_by_app_id_cb(notification_data *notify_data)
+{
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notify_by_app_id_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       _delete_notification_by_app_id();
+
+       notify_data->notification = _create_notification(ICON2_PATH, title_text, notify_with_request, NULL);
+       if (notify_data->notification) {
+               if (s_info.launch_func_cb)
+                       s_info.launch_func_cb(notify_data->notification, app_message_text, SETTING_PKGNAME, NULL, NULL, NULL, NULL, NULL);
+               notification_post(notify_data->notification);
+       }
+
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br><br>%s<br>%s<br><br>%s<br>%s<br>", result_message,
+                       (notify_data->notification) ? result_message_success_text : result_message_failure_text,
+                       app_id_is_text, SETTING_PKGNAME, icon_path_is_text, ICON2_PATH);
+}
+
+/**
+ * @brief Internal callback function which removes the notification posted by application ID.
+ * This callback function is invoked when the user selects "RemoveNotificationByAppId" item
+ * from the list in "Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _remove_notification_by_app_id_cb(notification_data *notify_data)
+{
+       bool is_success;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "remove_notification_by_app_id_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       is_success = _delete_notification_by_app_id();
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br><br>%s<br><br>%s<br>%s<br>", result_message,
+                       (is_success) ? result_message_success_text : result_message_failure_text,
+                       remove_text, target_app_id_text, SETTING_PKGNAME);
+}
+
+/**
+ * @brief Internal callback function which sets the badge counter by application ID.
+ * This callback function is invoked when the user selects "SetBadgeNumberByAppId" item
+ * from the list in "Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _set_badge_number_by_app_id_cb(notification_data *notify_data)
+{
+       unsigned int count = 0;
+       bool is_success = false;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "set_badge_number_by_app_id_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       if (s_info.badge_func_cb)
+               is_success = s_info.badge_func_cb(&count, true);
+
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br><br>%s<br>%d<br><br>%s<br>%s<br>", result_message,
+                       (is_success) ? result_message_success_text : result_message_failure_text,
+                       badge_is_text, count, app_id_is_text, PACKAGE);
+}
+
+/**
+ * @brief Internal callback function which removes the badge by application ID.
+ * This callback function is invoked when the user selects "RemoveBadgeNumberByAppId" item
+ * from the list in "Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _remove_badge_number_by_app_id_cb(notification_data *notify_data)
+{
+       unsigned int count = 0;
+       bool is_success = false;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "remove_badge_number_by_app_id_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       if (s_info.badge_func_cb)
+               is_success = s_info.badge_func_cb(&count, false);
+
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br> <br>%s<br>%d<br> <br>%s<br>%s<br>", result_message,
+                       (is_success) ? result_message_success_text : result_message_failure_text, badge_is_text, count, app_id_is_text, PACKAGE);
+}
+
+/**
+ * @brief Internal function which creates the notification.
+ * @param[in] icon_path The path to the icon file to be added to the notification.
+ * @param[in] title_text The text to be set as a notification's title.
+ * @param[in] content_text The text to be set as a notification's content.
+ * @param[in] sound_path The path to the sound file to be played when notification arrives.
+ * @return The notification handle is returned or NULL on error.
+ */
+static notification_h _create_notification(const char *icon_path, const char *title_text, const char *content_text, const char *sound_path)
+{
+       int size_of_buffer = 0;
+       char *full_icon_path = NULL;
+       char *full_sound_path = NULL;
+
+       notification_h notify = notification_create(NOTIFICATION_TYPE_NOTI);
+       if (!notify) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_create(NOTIFICATION_TYPE_NOTI) failed.");
+               return NULL;
+       }
+
+       if (icon_path) {
+               size_of_buffer = strlen(icon_path) + strlen(get_shared_res_path()) + 1;
+               full_icon_path = calloc(sizeof(char), size_of_buffer);
+               if (full_icon_path) {
+                       snprintf(full_icon_path, size_of_buffer, "%s%s", get_shared_res_path(), icon_path);
+                       notification_set_image(notify, NOTIFICATION_IMAGE_TYPE_ICON, full_icon_path);
+                       free(full_icon_path);
+               }
+       }
+
+       if (sound_path) {
+               size_of_buffer = strlen(icon_path) + strlen(get_shared_res_path()) + 1;
+               full_sound_path = calloc(sizeof(char), size_of_buffer);
+               if (full_sound_path) {
+                       snprintf(full_sound_path, size_of_buffer, "%s%s", get_shared_res_path(), sound_path);
+                       notification_set_sound(notify, NOTIFICATION_SOUND_TYPE_USER_DATA, full_sound_path);
+                       free(full_sound_path);
+               }
+       }
+
+       notification_set_text(notify, NOTIFICATION_TEXT_TYPE_TITLE, title_text, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+       notification_set_text(notify, NOTIFICATION_TEXT_TYPE_CONTENT, content_text, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+
+       return notify;
+}
+
+/**
+ * @brief Internal function which deletes the notification of specified type.
+ * @param[in] type The type of notification to be deleted.
+ * @return This function returns 'true' on successful notification removal,
+ * otherwise 'false' is returned.
+ */
+static bool _delete_notification(enum notification_item type)
+{
+       int err = NOTIFICATION_ERROR_NONE;
+       notification_data *data = NULL;
+
+       if ((int)type < NOFIFICATIONS_COUNT)
+               data = &s_info.noti[type];
+
+       if (data && data->notification) {
+               err = notification_delete(data->notification);
+               data->notification = NULL;
+       }
+
+       return (err == NOTIFICATION_ERROR_NONE);
+}
+
+/**
+ * @brief Internal function which deletes all the common, normal and app-control
+ * notifications.
+ * @return This function returns 'true' on successful notifications removal,
+ * otherwise 'false' is returned.
+ */
+static bool _delete_notification_items(void)
+{
+       bool is_success;
+
+       is_success = _delete_notification(NOTIFICATION);
+       is_success = _delete_notification(NOTIFICATION_NORMAL) && is_success;
+       is_success = _delete_notification(NOTIFICATION_BY_APP_CONTROL) && is_success;
+
+       return is_success;
+}
+
+/**
+ * @brief Internal function which deletes the notification posted by application ID.
+ * @return This function returns 'true' on successful notification removal,
+ * otherwise 'false' is returned.
+ */
+static bool _delete_notification_by_app_id(void)
+{
+       return _delete_notification(NOTIFICATION_BY_APP_ID);
+}
diff --git a/Notification_TestSample/src/notification/ongoing-notifications.c b/Notification_TestSample/src/notification/ongoing-notifications.c
new file mode 100755 (executable)
index 0000000..4efd6cd
--- /dev/null
@@ -0,0 +1,458 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <notification.h>
+#include <badge.h>
+#include <math.h>
+#include <stdio.h>
+#include "notification_testsample.h"
+#include "notification/ongoing-notifications.h"
+#include "notification/notification-defines.h"
+
+#define NOFIFICATIONS_COUNT 8
+
+enum ongoing_notification {ONGOING_NOTIFICATION_PERCENT = 0, ONGOING_NOTIFICATION_BYTE = 1, ONGOING_NOTIFICATION_TEXT = 2,
+                                                       ONGOING_NOTIFICATION_BY_APP_CONTROL = 4, ONGOING_NOTIFICATION_BY_APP_ID = 6};
+
+static void _ongoing_notification_cb(notification_data *notify_data);
+static void _ongoing_notification_byte_cb(notification_data *notify_data);
+static void _ongoing_notification_text_cb(notification_data *notify_data);
+static void _remove_ongoing_notification_cb(notification_data *notify_data);
+static void _ongoing_notification_by_app_control_cb(notification_data *notify_data);
+static void _remove_notification_by_app_control_cb(notification_data *notify_data);
+static void _ongoing_notification_by_app_id_cb(notification_data *notify_data);
+static void _remove_ongoing_notification_by_app_id_cb(notification_data *notify_data);
+static notification_h _create_ongoing_notification(const char *image_path, const char *title_text);
+static bool _delete_ongoing_notification(enum ongoing_notification type);
+static void _notification_content_text_set(notification_h notification, const char *content_text, int press_count);
+
+static struct noti_info {
+       launch_cb launch_func_cb;
+       badge_cb badge_func_cb;
+       notification_data noti[NOFIFICATIONS_COUNT];
+} s_info = {
+       .launch_func_cb = NULL,
+       .badge_func_cb = NULL,
+       .noti = {{ "OngoingNotification(%)", NULL,  0, 0, _ongoing_notification_cb, },
+                               { "OngoingNotification(byte)", NULL,  0, 0, _ongoing_notification_byte_cb, },
+                               { "OngoingNotification(text)", NULL,  0, 0, _ongoing_notification_text_cb, },
+                               { "RemoveOngoingNotification", NULL,  0, 0, _remove_ongoing_notification_cb, },
+                               { "OngoingNotificationByAppControl", NULL,  0, 0, _ongoing_notification_by_app_control_cb, },
+                               { "RemoveNotificationByAppControl", NULL,  0, 0, _remove_notification_by_app_control_cb, },
+                               { "OngoingNotificationByAppId", NULL,  0, 0, _ongoing_notification_by_app_id_cb, },
+                               { "RemoveNotificationByAppId", NULL,  0, 0, _remove_ongoing_notification_by_app_id_cb, },},
+};
+
+/**
+ * @brief Assigns the callback functions.
+ * @param[in] launch_func The callback function to be invoked on ongoing notification post.
+ * @param[in] badge_func The callback function to be invoked on badge counter modification request.
+ */
+void ongoing_notification_set_callbacks(launch_cb launch_func, badge_cb badge_func)
+{
+       s_info.launch_func_cb = launch_func;
+       s_info.badge_func_cb = badge_func;
+}
+
+/**
+ * @brief Obtains the list of all supported ongoing notifications.
+ * @param[out] size The number is supported ongoing notifications.
+ * @return This function returns an array of all the supported ongoing notifications.
+ */
+const notification_data *ongoing_notification_list_get(int *size)
+{
+       *size = NOFIFICATIONS_COUNT;
+       return s_info.noti;
+}
+
+/**
+ * @brief Deletes all the posted ongoing notifications.
+ */
+void delete_all_ongoing_notifications(void)
+{
+       _delete_ongoing_notification(ONGOING_NOTIFICATION_PERCENT);
+       _delete_ongoing_notification(ONGOING_NOTIFICATION_BYTE);
+       _delete_ongoing_notification(ONGOING_NOTIFICATION_TEXT);
+       _delete_ongoing_notification(ONGOING_NOTIFICATION_BY_APP_CONTROL);
+       _delete_ongoing_notification(ONGOING_NOTIFICATION_BY_APP_ID);
+}
+
+/**
+ * @brief Internal callback function which posts a progress ongoing notification.
+ * This callback function is invoked when the user selects "OngoingNotification(%)" item
+ * from the list in "Ongoing Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _ongoing_notification_cb(notification_data *notify_data)
+{
+       char launch_argument[TEXT_SHORT_LEN] = {'\0'};
+       bool to_post = false;
+       int value;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_ongoing_notification_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       notify_data->press_count++;
+       if (!notify_data->notification) {
+               to_post = true;
+               notify_data->notification = _create_ongoing_notification(ICON2_PATH, notify_data->name);
+               if (!notify_data->notification)
+                       return;
+       }
+
+       notify_data->progress_value += percentage_increment;
+       if (notify_data->progress_value > percentage_max)
+               notify_data->progress_value = 0;
+
+       notification_set_progress(notify_data->notification, notify_data->progress_value);
+       _notification_content_text_set(notify_data->notification, percentage_content_text, notify_data->press_count);
+
+       value = round(percentage_multiplier * notify_data->progress_value);
+
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br> <br>%s<br>%s%d<br> <br>%s<br>%s = %d<br> <br>%s<br>%d<br>", result_message,
+                       (notify_data->notification) ? result_message_success_text : result_message_failure_text,
+                                       notify_message_text, percentage_content_text, notify_data->press_count, launch_argument_text, app_message_text, value,
+                                       ongoing_activity_progress_text, value);
+
+       snprintf(launch_argument, TEXT_SHORT_LEN, "%s = %d", app_message_text, value);
+
+       if (s_info.launch_func_cb)
+               s_info.launch_func_cb(notify_data->notification, launch_argument, PACKAGE, NULL, NULL, NULL, NULL, NULL);
+
+       if (to_post)
+               notification_post(notify_data->notification);
+       else
+               notification_update(notify_data->notification);
+}
+
+/**
+ * @brief Internal callback function which posts a byte ongoing notification.
+ * This callback function is invoked when the user selects "OngoingNotification(byte)" item
+ * from the list in "Ongoing Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _ongoing_notification_byte_cb(notification_data *notify_data)
+{
+       char launch_argument[TEXT_SHORT_LEN] = {'\0'};
+       bool to_post = false;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_ongoing_notification_byte_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       notify_data->press_count++;
+       if (!notify_data->notification) {
+               to_post = true;
+               notify_data->notification = _create_ongoing_notification(ICON2_PATH, notify_data->name);
+               if (!notify_data->notification)
+                       return;
+       }
+
+       if (notify_data->progress_value > byte_max)
+               notify_data->progress_value = 0;
+
+       notification_set_size(notify_data->notification, notify_data->progress_value);
+       _notification_content_text_set(notify_data->notification, byte_content_text, notify_data->press_count);
+
+       snprintf(launch_argument, TEXT_SHORT_LEN, "%s = %d", app_message_text, (int)round(notify_data->progress_value));
+
+       if (s_info.launch_func_cb)
+               s_info.launch_func_cb(notify_data->notification, launch_argument, PACKAGE, NULL, NULL, NULL, NULL, NULL);
+
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br><br>%s<br>%s%d<br> <br>%s<br>%s = %d<br><br>%s<br>%d<br>", result_message,
+                       (notify_data->notification) ? result_message_success_text : result_message_failure_text,
+                       notify_message_text, percentage_content_text, notify_data->press_count, launch_argument_text, app_message_text, (int)round(notify_data->progress_value),
+                       ongoing_activity_progress_text, (int)round(notify_data->progress_value));
+
+       notify_data->progress_value += byte_increment;
+       if (to_post)
+               notification_post(notify_data->notification);
+       else
+               notification_update(notify_data->notification);
+}
+
+/**
+ * @brief Internal callback function which posts a text ongoing notification.
+ * This callback function is invoked when the user selects "OngoingNotification(text)" item
+ * from the list in "Ongoing Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _ongoing_notification_text_cb(notification_data *notify_data)
+{
+       bool to_post = false;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_ongoing_notification_text_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       notify_data->press_count++;
+       if (!notify_data->notification) {
+               to_post = true;
+               notify_data->notification = _create_ongoing_notification(ICON2_PATH, notify_data->name);
+               if (!notify_data->notification)
+                       return;
+       }
+
+       notification_set_layout(notify_data->notification, NOTIFICATION_LY_ONGOING_EVENT);
+       _notification_content_text_set(notify_data->notification, text_content_text, notify_data->press_count);
+
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br><br>%s<br>%s%d<br><br>%s<br>%s<br>", result_message,
+                       (notify_data->notification) ? result_message_success_text : result_message_failure_text,
+                       notify_message_text, text_content_text, notify_data->press_count, launch_argument_text, app_message_text);
+
+       if (s_info.launch_func_cb)
+               s_info.launch_func_cb(notify_data->notification, app_message_text, PACKAGE, NULL, NULL, NULL, NULL, NULL);
+
+       if (to_post)
+               notification_post(notify_data->notification);
+       else
+               notification_update(notify_data->notification);
+}
+
+/**
+ * @brief Internal callback function which removes ongoing progress/byte/text notification.
+ * This callback function is invoked when the user selects "RemoveOngoingNotification" item
+ * from the list in "Ongoing Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _remove_ongoing_notification_cb(notification_data *notify_data)
+{
+       bool is_success;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_remove_ongoing_notification_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       is_success = _delete_ongoing_notification(ONGOING_NOTIFICATION_PERCENT);
+       is_success = _delete_ongoing_notification(ONGOING_NOTIFICATION_BYTE) && is_success;
+       is_success = _delete_ongoing_notification(ONGOING_NOTIFICATION_TEXT) && is_success;
+
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br><br>%s<br>", result_message,
+                       (is_success) ? result_message_success_text : result_message_failure_text, remove_ongoing_notification_text);
+}
+
+/**
+ * @brief Internal callback function which posts a ongoing notification by app-control.
+ * This callback function is invoked when the user selects "OngoingNotificationByAppControl" item
+ * from the list in "Ongoing Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _ongoing_notification_by_app_control_cb(notification_data *notify_data)
+{
+       int value;
+       bool to_post = false;
+       unsigned int count = 0;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_ongoing_notification_by_app_control_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       notify_data->press_count++;
+       if (!notify_data->notification) {
+               to_post = true;
+               notify_data->notification = _create_ongoing_notification(ICON1_PATH, notify_data->name);
+               if (!notify_data->notification)
+                       return;
+       }
+
+       notify_data->progress_value += percentage_increment;
+       if (notify_data->progress_value > percentage_max)
+               notify_data->progress_value = 0;
+
+       notification_set_progress(notify_data->notification, notify_data->progress_value);
+       _notification_content_text_set(notify_data->notification, percentage_content_text, notify_data->press_count);
+
+       if (s_info.badge_func_cb)
+               s_info.badge_func_cb(&count, true);
+
+       value = round(percentage_multiplier * notify_data->progress_value);
+
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br> <br>%s<br>%s%d<br> <br>%s<br>%s = %d<br> <br>%s<br>%d<br>", result_message,
+                       (notify_data->notification) ? result_message_success_text : result_message_failure_text,
+                       notify_message_text, percentage_content_text, notify_data->press_count, launch_argument_text, ongoing_by_app_control_text, value,
+                       ongoing_activity_progress_text, value);
+
+       if (s_info.launch_func_cb)
+               s_info.launch_func_cb(notify_data->notification, ongoing_by_app_control_text, PACKAGE, uri_text, mime_text, operation_id_text, NULL, NULL);
+
+       if (to_post)
+               notification_post(notify_data->notification);
+       else
+               notification_update(notify_data->notification);
+}
+
+/**
+ * @brief Internal callback function which removes the ongoing notification posted by app-control.
+ * This callback function is invoked when the user selects "RemoveNotificationByAppControl" item
+ * from the list in "Ongoing Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _remove_notification_by_app_control_cb(notification_data *notify_data)
+{
+       bool result;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_remove_notification_by_app_control_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       result = _delete_ongoing_notification(ONGOING_NOTIFICATION_BY_APP_CONTROL);
+       badge_remove(PACKAGE);
+
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br><br>%s<br>", result_message,
+                       (result) ? result_message_success_text : result_message_failure_text, remove_ongoing_notification_by_app_control_text);
+}
+
+/**
+ * @brief Internal callback function which posts ongoing notification by application ID.
+ * This callback function is invoked when the user selects "OngoingNotificationByAppId" item
+ * from the list in "Ongoing Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _ongoing_notification_by_app_id_cb(notification_data *notify_data)
+{
+       bool to_post = false;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_ongoing_notification_by_app_id_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       notify_data->press_count++;
+       if (!notify_data->notification) {
+               to_post = true;
+               notify_data->notification = _create_ongoing_notification(ICON1_PATH, notify_data->name);
+               if (!notify_data->notification)
+                       return;
+       }
+
+       if (notify_data->progress_value > byte_max)
+               notify_data->progress_value = 0;
+
+       notification_set_size(notify_data->notification, notify_data->progress_value);
+       _notification_content_text_set(notify_data->notification, byte_content_text,
+                       notify_data->press_count);
+
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br> <br>%s<br>%s%d<br> <br>%s<br>%s = %d<br> <br>%s<br>%d<br>", result_message,
+                       (notify_data->notification) ? result_message_success_text : result_message_failure_text,
+                       notify_message_text, byte_content_text, notify_data->press_count, launch_argument_text, app_message_text, (int)round(notify_data->progress_value),
+                       ongoing_activity_progress_text, (int)round(notify_data->progress_value));
+
+       if (s_info.launch_func_cb)
+               s_info.launch_func_cb(notify_data->notification, app_message_text, SETTING_PKGNAME, NULL, NULL, NULL, NULL, NULL);
+
+       notify_data->progress_value += byte_increment;
+       if (to_post)
+               notification_post(notify_data->notification);
+       else
+               notification_update(notify_data->notification);
+}
+
+/**
+ * @brief Internal callback function which removes ongoing notification posted by application ID.
+ * This callback function is invoked when the user selects "RemoveNotificationByAppId" item
+ * from the list in "Ongoing Notification" tab.
+ * @param[in] notify_data Pointer to the notification data.
+ */
+static void _remove_ongoing_notification_by_app_id_cb(notification_data *notify_data)
+{
+       bool result;
+
+       if (!notify_data) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "_ongoing_notification_by_app_id_cb() failed. Invalid input argument.");
+               return;
+       }
+
+       result = _delete_ongoing_notification(ONGOING_NOTIFICATION_BY_APP_ID);
+
+       snprintf(notify_data->result_text, TEXT_MAX_LEN, "%s%s<br><br>%s<br>", result_message,
+                       (result) ? result_message_success_text : result_message_failure_text, remove_ongoing_notification_by_app_id_text);
+}
+
+/**
+ * @brief Internal function which creates an ongoing notification.
+ * @param[in] image_path The path to the image file to be added to the notification.
+ * @param[in] title_text The text to be set as a notification's title.
+ * @return The ongoing notification handle is returned or NULL on error.
+ */
+static notification_h _create_ongoing_notification(const char *image_path, const char *title_text)
+{
+       int size_of_buffer = 0;
+       char *full_icon_path = NULL;
+       notification_h ongoing_notification = notification_create(NOTIFICATION_TYPE_ONGOING);
+       if (!ongoing_notification) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "notification_create(NOTIFICATION_TYPE_ONGOING) failed.");
+               return NULL;
+       }
+
+       if (image_path) {
+               size_of_buffer = strlen(image_path) + strlen(get_shared_res_path()) + 1;
+               full_icon_path = calloc(sizeof(char), size_of_buffer);
+               if (full_icon_path) {
+                       snprintf(full_icon_path, size_of_buffer, "%s%s", get_shared_res_path(), image_path);
+                       notification_set_image(ongoing_notification, NOTIFICATION_IMAGE_TYPE_ICON, full_icon_path);
+                       free(full_icon_path);
+               }
+       }
+
+       notification_set_property(ongoing_notification, NOTIFICATION_PROP_DISABLE_TICKERNOTI);
+       notification_set_text(ongoing_notification, NOTIFICATION_TEXT_TYPE_TITLE, title_text, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+
+       return ongoing_notification;
+}
+
+/**
+ * @brief Internal function which deletes the ongoing notification of specified type.
+ * @param[in] type The type of the ongoing notification to be deleted.
+ * @return This function returns 'true' on successful notification removal,
+ * otherwise 'false' is returned.
+ */
+static bool _delete_ongoing_notification(enum ongoing_notification type)
+{
+       int err = NOTIFICATION_ERROR_NONE;
+       notification_data *data = NULL;
+
+       if ((int)type < NOFIFICATIONS_COUNT)
+               data = &s_info.noti[type];
+
+       if (data && data->notification) {
+               err = notification_delete(data->notification);
+               data->notification = NULL;
+               data->press_count = 0;
+               data->progress_value = 0;
+       }
+
+       return (err == NOTIFICATION_ERROR_NONE);
+}
+
+/**
+ * @brief Internal function which sets the text content of the ongoing notification.
+ * @param[in] notification The notification handle which text content is to be set.
+ * @param[in] content_text The text to be set as a content of the ongoing notification.
+ * @param[in] press_count The counter to be set in notification text content body.
+ */
+static void _notification_content_text_set(notification_h notification, const char *content_text, int press_count)
+{
+       char text[TEXT_SHORT_LEN] = {'\0'};
+       snprintf(text, sizeof(text), "%s%d", content_text, press_count);
+       notification_set_text(notification, NOTIFICATION_TEXT_TYPE_CONTENT, text, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+}
diff --git a/Notification_TestSample/src/view.c b/Notification_TestSample/src/view.c
new file mode 100755 (executable)
index 0000000..5c1ce71
--- /dev/null
@@ -0,0 +1,465 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <efl_extension.h>
+#include <Elementary.h>
+#include "notification_testsample.h"
+#include "notification/notifications.h"
+#include "notification/ongoing-notifications.h"
+#include "notification/notification-common.h"
+#include "notification/etc-notifications.h"
+#include "view.h"
+#include "view_defines.h"
+#include <app.h>
+
+
+typedef enum {NT_NONE, NT_NOTIFICATION, NT_ONGOING_NOTIFICATION, NT_ETC_NOTIFICATION} notification_t;
+
+static struct view_info {
+       Evas_Object *win;
+       Evas_Object *conform;
+       Evas_Object *navi;
+} s_info = {
+       .win = NULL,
+       .conform = NULL,
+       .navi = NULL,
+};
+
+static void _delete_win_request_cb(void *data, Evas_Object *obj, void *event_info);
+static void _navi_back_cb(void *data, Evas_Object *obj, void *event_info);
+static void _toolbar_tab_changed_cb(void *data, Evas_Object *obj, void *event_info);
+static void _noti_list_item_selected_cb(void *data, Evas_Object *obj, void *event_info);
+static void _get_app_resource(const char *edj_file_in, char *edj_path_out);
+static bool _create_main_layout(void);
+
+/**
+ * @brief Creates essential objects: window, conformant and layout.
+ */
+Eina_Bool view_create(void *user_data)
+{
+       /* Create the window */
+       s_info.win = view_create_win(PACKAGE);
+       if (s_info.win == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "failed to create a window.");
+               return EINA_FALSE;
+       }
+
+       /* Create the conformant */
+       s_info.conform = view_create_conformant(s_info.win);
+       if (s_info.conform == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "failed to create a conformant");
+               return EINA_FALSE;
+       }
+
+       if (!view_create_background(s_info.conform, "elm.swallow.bg"))
+               return EINA_FALSE;
+
+       s_info.navi = view_create_naviframe(s_info.conform, "elm.swallow.content");
+       if (!s_info.navi)
+               return EINA_FALSE;
+
+       if (!_create_main_layout())
+               return EINA_FALSE;
+
+       /* Show the window after main view is set up */
+       evas_object_show(s_info.win);
+
+       return EINA_TRUE;
+}
+
+/**
+ * @brief Creates a basic window named package.
+ * @param[in] pkg_name Name of the window
+ */
+Evas_Object *view_create_win(const char *pkg_name)
+{
+       Evas_Object *win = NULL;
+
+
+       /*
+        * Window
+        * Create and initialize elm_win.
+        * elm_win is mandatory to manipulate the window.
+        */
+       //win = elm_win_util_standard_add(pkg_name, pkg_name);
+       win = elm_win_add(NULL, pkg_name, ELM_WIN_BASIC);
+
+       elm_win_conformant_set(win, EINA_TRUE);
+       elm_win_indicator_mode_set(win, ELM_WIN_INDICATOR_SHOW);
+       elm_win_indicator_opacity_set(win, ELM_WIN_INDICATOR_OPAQUE);
+       elm_win_autodel_set(win, EINA_TRUE);
+
+
+
+       if (elm_win_wm_rotation_supported_get(win)) {
+               int rots[4] = { 0, 90, 180, 270 };
+               elm_win_wm_rotation_available_rotations_set(win, rots, 4);
+       }
+
+
+       evas_object_smart_callback_add(win, "delete,request", _delete_win_request_cb, NULL);
+
+       return win;
+}
+
+/**
+ * @brief Creates a conformant without indicator for mobile app.
+ * @param[in] win The object to which you want to set this conformant
+ * Conformant is mandatory for base GUI to have proper size
+ */
+Evas_Object *view_create_conformant(Evas_Object *win)
+{
+       /*
+        * Conformant
+        * Create and initialize elm_conformant.
+        * elm_conformant is mandatory for base GUI to have proper size
+        * when indicator or virtual keypad is visible.
+        */
+       Evas_Object *conform = NULL;
+
+       if (win == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "window is NULL.");
+               return NULL;
+       }
+
+       conform = elm_conformant_add(win);
+       evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(win, conform);
+
+       evas_object_show(conform);
+
+       return conform;
+}
+
+/**
+ * @brief Creates a layout object for parent object based on provided EDJE script.
+ * @param[in] parent The parent object for layout object.
+ * @param[in] edj_file_name The relative path to the layout EDJE script.
+ * @param[in] edj_group The name of the group to be loaded from the EDJE script.
+ * @return The function returns layout object if it was created successfully,
+ * otherwise 'NULL' is returned.
+ */
+Evas_Object *view_create_layout(Evas_Object *parent, const char *edj_file_name, const char *edj_group)
+{
+       char edj_path[PATH_MAX] = {0, };
+       Evas_Object *layout = NULL;
+
+       if (!parent || !edj_file_name || !edj_group) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "Wrong input arguments.");
+               return NULL;
+       }
+
+       _get_app_resource(edj_file_name, edj_path);
+
+       layout = elm_layout_add(parent);
+       if (!layout) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "Function elm_layout_add() failed.");
+               return NULL;
+       }
+
+       elm_layout_theme_set(layout, "layout", "application", "default");
+
+       if (!elm_layout_file_set(layout, edj_path, edj_group)) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "Function elm_layout_file_set() failed.");
+               evas_object_del(layout);
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       return layout;
+}
+
+/**
+ * @brief Creates a background for parent object and sets it to designated part.
+ * @param[in] parent The parent object for background.
+ * @param[in] part_name The name of the part within parent object
+ * where the background is to be set,
+ * @return This function returns a background object if is was successfully created,
+ * otherwise NULL is returned.
+ */
+Evas_Object *view_create_background(Evas_Object *parent, const char *part_name)
+{
+       Evas_Object *bg = elm_bg_add(parent);
+       if (!bg) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "elm_bg_add() failed.");
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(bg);
+
+       elm_object_part_content_set(parent, part_name, bg);
+
+       return bg;
+}
+
+/**
+ * @brief Creates a naviframe for parent object and sets it to designated part.
+ * @param[in] parent The parent object for naviframe.
+ * @param[in] part_name The name of the part within parent object
+ * where the naviframe is to be set,
+ * @return This function returns a naviframe object if is was successfully created,
+ * otherwise NULL is returned.
+ */
+Evas_Object *view_create_naviframe(Evas_Object *parent, const char *part_name)
+{
+       Evas_Object *navi = elm_naviframe_add(parent);
+       if (!navi) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "elm_naviframe_add() failed.");
+               return NULL;
+       }
+
+       elm_naviframe_prev_btn_auto_pushed_set(navi, EINA_FALSE);
+
+       eext_object_event_callback_add(navi, EEXT_CALLBACK_BACK, _navi_back_cb, NULL);
+       elm_object_part_content_set(s_info.conform, part_name, navi);
+
+       return navi;
+}
+
+/**
+ * @brief Creates a toolbar for parent object.
+ * @param[in] parent The parent object for toolbar.
+ * @return This function returns a toolbar object if is was successfully created,
+ * otherwise NULL is returned.
+ */
+Evas_Object *view_create_toolbar(Evas_Object *parent)
+{
+       Evas_Object *toolbar = elm_toolbar_add(parent);
+       if (!toolbar) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "elm_toolbar_add() failed.");
+               return NULL;
+       }
+
+       elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
+       elm_toolbar_transverse_expanded_set(toolbar, EINA_TRUE);
+       elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_ALWAYS);
+       elm_object_style_set(toolbar, "tabbar");
+
+       evas_object_show(toolbar);
+
+       return toolbar;
+}
+
+/**
+ * @brief Creates a list for parent object.
+ * @param[in] parent The parent object for a list.
+ * @return This function returns a list object if is was successfully created,
+ * otherwise NULL is returned.
+ */
+Evas_Object *view_create_list(Evas_Object *parent)
+{
+       Evas_Object *list = elm_list_add(parent);
+       if (!list) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "elm_list_add() failed.");
+               return NULL;
+       }
+
+       elm_list_go(list);
+       evas_object_show(list);
+
+       return list;
+}
+
+/**
+ * @brief Creates a new layout object to display the notification and sets it
+ * to the naviframe object. The previously set layout is prior dismissed.
+ * @param[in] notify_data The notification details to be displayed.
+ * @return This function returns 'true' if the layout was successfully displayed,
+ * otherwise NULL is returned.
+ */
+bool view_display_notification(notification_data *notify_data)
+{
+       static Evas_Object *layout = NULL;
+
+       if (layout)
+               evas_object_del(layout);
+
+       layout = view_create_layout(s_info.navi, EDJ_NOTI, GRP_NOTI);
+       if (!layout)
+               return false;
+
+       elm_naviframe_item_push(s_info.navi, "Notify result", NULL, NULL, layout, NULL);
+
+       elm_object_part_text_set(layout, PART_NOTI_TITLE, notify_data->name);
+       elm_object_part_text_set(layout, PART_NOTI_TEXT_CONTENT, notify_data->result_text);
+
+       return true;
+}
+
+/**
+ * @brief Rises the main window.
+ */
+void view_rise_window(void)
+{
+       elm_win_raise(s_info.win);
+}
+
+/**
+ * @brief Destroys window and frees its resources.
+ */
+void view_destroy(void)
+{
+       if (s_info.win == NULL)
+               return;
+
+       evas_object_del(s_info.win);
+}
+
+/**
+ * @brief Internal callback function invoked when the main window needs to be destroyed.
+ * @param[in] data The user data passed to the evas_object_smart_callback_add() function.
+ * @param[in] obj The object invoking this callback function.
+ * @param[in] event_info The structure containing the information on this event.
+ */
+static void _delete_win_request_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       ui_app_exit();
+}
+
+/**
+ * @brief Internal callback function invoked when the HW Back button is pressed.
+ * @param[in] data The user data passed to the eext_object_event_callback_add() function.
+ * @param[in] obj The object invoking this callback function.
+ * @param[in] event_info The structure containing the information on this event.
+ */
+static void _navi_back_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       if (elm_naviframe_top_item_get(s_info.navi) == elm_naviframe_bottom_item_get(s_info.navi))
+               elm_win_lower(s_info.win);
+       else
+               elm_naviframe_item_pop(s_info.navi);
+}
+
+/**
+ * @brief Internal callback function invoked when the toolbar's tab is changed.
+ * Internally, this function creates a new content for selected toolbar's tab.
+ * @param[in] data The user data passed to the elm_toolbar_item_append() function.
+ * @param[in] obj The object invoking this callback function.
+ * @param[in] event_info The structure containing the information on this event.
+ */
+static void _toolbar_tab_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       static notification_t current_noti_type = NT_NONE;
+       notification_t noti_type = (notification_t)data;
+       const notification_data *notification_list = NULL;
+       Elm_Object_Item *item;
+       Evas_Object *list;
+       int size = 0;
+       int i;
+
+       if (current_noti_type == noti_type)
+               return;
+
+       item = elm_naviframe_top_item_get(s_info.navi);
+       list = elm_object_item_part_content_unset(item, "default");
+       if (list)
+               evas_object_del(list);
+
+       list = view_create_list(s_info.navi);
+       if (!list) {
+               current_noti_type = NT_NONE;
+               return;
+       }
+
+       elm_object_item_part_content_set(item, "default", list);
+
+       switch (noti_type) {
+       case NT_NOTIFICATION:
+               notification_list = notification_list_get(&size);
+               break;
+       case NT_ONGOING_NOTIFICATION:
+               notification_list = ongoing_notification_list_get(&size);
+               break;
+       case NT_ETC_NOTIFICATION:
+               notification_list = etc_notification_list_get(&size);
+               break;
+       default:
+               current_noti_type = NT_NONE;
+               break;
+       }
+
+       for (i = 0; i < size; i++)
+               elm_list_item_append(list, notification_list[i].name, NULL, NULL, _noti_list_item_selected_cb, &notification_list[i]);
+
+       current_noti_type = noti_type;
+}
+
+/**
+ * @brief Internal callback function invoked when the notification list's item
+ * is selected by the user.
+ * Internally, this function creates a new layout to display notification details.
+ * @param[in] data The user data passed to the elm_list_item_append() function.
+ * @param[in] obj The object invoking this callback function.
+ * @param[in] event_info The structure containing the information on this event.
+ */
+static void _noti_list_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       notification_data *notification_info = (notification_data *)data;
+
+       elm_list_item_selected_set(event_info, EINA_FALSE);
+
+       if (notification_info->callback)
+               notification_info->callback(notification_info);
+
+       dlog_print(DLOG_ERROR, LOG_TAG, "notification_info.name %s", notification_info->name);
+
+       if (strcmp(notification_info->name, "notify for lockscreen") != 0)
+               view_display_notification(notification_info);
+}
+
+/**
+ * @brief Internal function which creates fully qualified path to the provided resource file.
+ * @param[in] edj_file_in The file name.
+ * @param[out] edj_path_out The fully qualified path to the edj_file_in file.
+ */
+static void _get_app_resource(const char *edj_file_in, char *edj_path_out)
+{
+       char *res_path = app_get_resource_path();
+       if (res_path) {
+               snprintf(edj_path_out, PATH_MAX, "%s%s", res_path, edj_file_in);
+               free(res_path);
+       }
+}
+
+/**
+ * @brief Internal function which creates the main layout of the application.
+ * The naviframe is used as a container for toolbar and genlist objects.
+ * @return This function returns 'true' if the main layout was successfully created,
+ * otherwise 'false' is returned.
+ */
+static bool _create_main_layout(void)
+{
+       Elm_Object_Item *item;
+       Evas_Object *toolbar;
+
+       toolbar = view_create_toolbar(s_info.navi);
+       if (!toolbar)
+               return false;
+
+       item = elm_naviframe_item_push(s_info.navi, NULL, NULL, NULL, NULL, "tabbar/notitle");
+       elm_object_item_part_content_set(item, "tabbar", toolbar);
+
+       item = elm_toolbar_item_append(toolbar, NULL, "etc notification", _toolbar_tab_changed_cb, (void *)NT_ETC_NOTIFICATION);
+                       elm_toolbar_item_append(toolbar, NULL, "Notification", _toolbar_tab_changed_cb, (void *)NT_NOTIFICATION);
+       elm_toolbar_item_append(toolbar, NULL, "Ongoing notification", _toolbar_tab_changed_cb, (void *)NT_ONGOING_NOTIFICATION);
+
+
+       elm_toolbar_item_selected_set(item, EINA_TRUE);
+
+       return true;
+}
diff --git a/Notification_TestSample/tizen-manifest.xml b/Notification_TestSample/tizen-manifest.xml
new file mode 100644 (file)
index 0000000..7b6f649
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.4" package="org.example.notification-testsample" version="1.0.0">
+    <profile name="mobile"/>
+    <ui-application appid="org.example.notification-testsample" exec="notification-testsample" multiple="false" nodisplay="false" taskmanage="true" type="capp">
+        <label>notification-testsample</label>
+        <icon>notification-testsample.png</icon>
+    </ui-application>
+    <privileges>
+        <privilege>http://tizen.org/privilege/notification</privilege>
+    </privileges>
+</manifest>