summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeong Seong-moon <salt.jeong@samsung.com>2016-09-12 12:54:49 +0900
committerJeong Seong-moon <salt.jeong@samsung.com>2016-09-12 13:06:14 +0900
commite9ca3babb5c61fdbfa3278d8e957019b930835de (patch)
tree5cc87b0bda69efd278ed9a0c6909063b84398610
parent818199e6150075fd28117ea57b212f4abc816075 (diff)
downloadweather-clock-tizen_2.3.1.tar.gz
weather-clock-tizen_2.3.1.tar.bz2
weather-clock-tizen_2.3.1.zip
change tmp code for weather watch. It is not complete codetizen_2.3.1
Change-Id: I6d7068f2d48bebfe40f2ce025af76ef2f6d7672d
-rwxr-xr-x.cproject432
-rwxr-xr-x.exportMap4
-rwxr-xr-x.project46
-rwxr-xr-x.tproject11
-rw-r--r--description.xml24
-rwxr-xr-xdoc/sample_online_list.html305
-rwxr-xr-x[-rw-r--r--]edje/images/background_app.png (renamed from project/edje/images/background_app.png)bin32315 -> 32315 bytes
-rwxr-xr-xedje/images/color_status/air_pollution_icon_blue.png (renamed from project/edje/images/color_status/air_pollution_icon_blue.png)bin3698 -> 3698 bytes
-rwxr-xr-xedje/images/color_status/air_pollution_icon_green.png (renamed from project/edje/images/color_status/air_pollution_icon_green.png)bin3673 -> 3673 bytes
-rwxr-xr-xedje/images/color_status/air_pollution_icon_orange.png (renamed from project/edje/images/color_status/air_pollution_icon_orange.png)bin3720 -> 3720 bytes
-rwxr-xr-xedje/images/color_status/air_pollution_icon_red.png (renamed from project/edje/images/color_status/air_pollution_icon_red.png)bin3624 -> 3624 bytes
-rwxr-xr-xedje/images/color_status/air_pollution_icon_yellow.png (renamed from project/edje/images/color_status/air_pollution_icon_yellow.png)bin3742 -> 3742 bytes
-rwxr-xr-x[-rw-r--r--]edje/images/color_status/battery_icon_blue.png (renamed from project/edje/images/color_status/battery_icon_blue.png)bin2063 -> 2063 bytes
-rwxr-xr-xedje/images/color_status/battery_icon_grean.png (renamed from project/edje/images/color_status/battery_icon_grean.png)bin2031 -> 2031 bytes
-rwxr-xr-x[-rw-r--r--]edje/images/color_status/battery_icon_green.png (renamed from project/edje/images/color_status/battery_icon_green.png)bin2031 -> 2031 bytes
-rwxr-xr-x[-rw-r--r--]edje/images/color_status/battery_icon_orange.png (renamed from project/edje/images/color_status/battery_icon_orange.png)bin2033 -> 2033 bytes
-rwxr-xr-x[-rw-r--r--]edje/images/color_status/battery_icon_red.png (renamed from project/edje/images/color_status/battery_icon_red.png)bin2033 -> 2033 bytes
-rwxr-xr-x[-rw-r--r--]edje/images/color_status/battery_icon_yellow.png (renamed from project/edje/images/color_status/battery_icon_yellow.png)bin2036 -> 2036 bytes
-rwxr-xr-x[-rw-r--r--]edje/images/color_status/blue_indicator.png (renamed from project/edje/images/color_status/blue_indicator.png)bin1953 -> 1953 bytes
-rwxr-xr-x[-rw-r--r--]edje/images/color_status/green_indicator.png (renamed from project/edje/images/color_status/green_indicator.png)bin1774 -> 1774 bytes
-rwxr-xr-x[-rw-r--r--]edje/images/color_status/orange_indicator.png (renamed from project/edje/images/color_status/orange_indicator.png)bin1262 -> 1262 bytes
-rwxr-xr-x[-rw-r--r--]edje/images/color_status/red_indicator.png (renamed from project/edje/images/color_status/red_indicator.png)bin834 -> 834 bytes
-rwxr-xr-x[-rw-r--r--]edje/images/color_status/yellow_indicator.png (renamed from project/edje/images/color_status/yellow_indicator.png)bin1551 -> 1551 bytes
-rwxr-xr-x[-rw-r--r--]edje/images/hour_numbers.png (renamed from project/edje/images/hour_numbers.png)bin19630 -> 19630 bytes
-rwxr-xr-x[-rw-r--r--]edje/images/second_path.png (renamed from project/edje/images/second_path.png)bin20292 -> 20292 bytes
-rwxr-xr-x[-rw-r--r--]edje/images/status_indicator.png (renamed from project/edje/images/status_indicator.png)bin1515 -> 1515 bytes
-rwxr-xr-xedje/images/weather_icon/01d.png (renamed from project/edje/images/weather_icon/01d.png)bin1290 -> 1290 bytes
-rwxr-xr-xedje/images/weather_icon/01n.png (renamed from project/edje/images/weather_icon/01n.png)bin518 -> 518 bytes
-rwxr-xr-xedje/images/weather_icon/02d.png (renamed from project/edje/images/weather_icon/02d.png)bin1494 -> 1494 bytes
-rwxr-xr-xedje/images/weather_icon/02n.png (renamed from project/edje/images/weather_icon/02n.png)bin1113 -> 1113 bytes
-rwxr-xr-xedje/images/weather_icon/03d.png (renamed from project/edje/images/weather_icon/03d.png)bin1071 -> 1071 bytes
-rwxr-xr-xedje/images/weather_icon/03n.png (renamed from project/edje/images/weather_icon/03n.png)bin1071 -> 1071 bytes
-rwxr-xr-xedje/images/weather_icon/04d.png (renamed from project/edje/images/weather_icon/04d.png)bin1146 -> 1146 bytes
-rwxr-xr-xedje/images/weather_icon/04n.png (renamed from project/edje/images/weather_icon/04n.png)bin1146 -> 1146 bytes
-rwxr-xr-xedje/images/weather_icon/09d.png (renamed from project/edje/images/weather_icon/09d.png)bin1033 -> 1033 bytes
-rwxr-xr-xedje/images/weather_icon/09n.png (renamed from project/edje/images/weather_icon/09n.png)bin1033 -> 1033 bytes
-rwxr-xr-xedje/images/weather_icon/10d.png (renamed from project/edje/images/weather_icon/10d.png)bin1394 -> 1394 bytes
-rwxr-xr-xedje/images/weather_icon/10n.png (renamed from project/edje/images/weather_icon/10n.png)bin1324 -> 1324 bytes
-rwxr-xr-xedje/images/weather_icon/11d.png (renamed from project/edje/images/weather_icon/11d.png)bin1340 -> 1340 bytes
-rwxr-xr-xedje/images/weather_icon/11n.png (renamed from project/edje/images/weather_icon/11n.png)bin1340 -> 1340 bytes
-rwxr-xr-xedje/images/weather_icon/13d.png (renamed from project/edje/images/weather_icon/13d.png)bin1242 -> 1242 bytes
-rwxr-xr-xedje/images/weather_icon/13n.png (renamed from project/edje/images/weather_icon/13n.png)bin1242 -> 1242 bytes
-rwxr-xr-xedje/images/weather_icon/50d.png (renamed from project/edje/images/weather_icon/50d.png)bin824 -> 824 bytes
-rwxr-xr-xedje/images/weather_icon/50n.png (renamed from project/edje/images/weather_icon/50n.png)bin624 -> 624 bytes
-rwxr-xr-xinc/data.h (renamed from project/inc/data.h)0
-rwxr-xr-xinc/view.h (renamed from project/inc/view.h)0
-rwxr-xr-xinc/weatherclock.h (renamed from project/inc/main.h)42
-rwxr-xr-xproject/shared/res/icon.pngbin43945 -> 0 bytes
-rw-r--r--project/tizen-manifest.xml8
-rwxr-xr-xres/edje/main.edc (renamed from project/res/edje/main.edc)16
-rwxr-xr-x[-rw-r--r--]res/images/hour_indicator.png (renamed from project/res/images/hour_indicator.png)bin260 -> 260 bytes
-rwxr-xr-x[-rw-r--r--]res/images/minute_indicator.png (renamed from project/res/images/minute_indicator.png)bin293 -> 293 bytes
-rwxr-xr-x[-rw-r--r--]res/images/pin.png (renamed from project/res/images/pin.png)bin469 -> 469 bytes
-rwxr-xr-x[-rw-r--r--]res/images/second_indicator.png (renamed from project/res/images/second_indicator.png)bin313 -> 313 bytes
-rw-r--r--sample.xml62
-rwxr-xr-xscreenshot.pngbin43945 -> 0 bytes
-rwxr-xr-xshared/res/weatherclock.pngbin0 -> 22834 bytes
-rwxr-xr-xsrc/data.c (renamed from project/src/data.c)2
-rwxr-xr-xsrc/main.c (renamed from project/src/main.c)561
-rwxr-xr-xsrc/view.c (renamed from project/src/view.c)4
-rwxr-xr-xtizen-manifest.xml13
61 files changed, 1391 insertions, 139 deletions
diff --git a/.cproject b/.cproject
new file mode 100755
index 0000000..975afd1
--- /dev/null
+++ b/.cproject
@@ -0,0 +1,432 @@
+<?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.2102205966">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.2102205966" 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="weatherclock" 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.2102205966" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.app.debug">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.2102205966." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug.5756351" 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.1946947174" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder autoBuildTarget="all" buildPath="${workspace_loc:/WeatherClock}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.591742473" 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.549668381" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.1633098574" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.134410329" 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.1560091225" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.cpp.compiler.option.807470389" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="wearable-2.3.1-emulator.core_llvm34.i386.core.app"/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1134826828" 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-agent&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-watch&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&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/ckm&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-manager&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/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-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/elementary-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&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/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/json-glib-1.0&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0/json-glib&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&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/minizip&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/sensor&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/ui&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/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.1204669476" 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.102226320" 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.900037482" 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.1915366365" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.62716620" 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.1241573246" 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.1566133575" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.c.compiler.option.1997920418" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="wearable-2.3.1-emulator.core_llvm34.i386.core.app"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.693352649" 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-agent&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-watch&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&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/ckm&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-manager&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/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-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/elementary-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&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/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/json-glib-1.0&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0/json-glib&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&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/minizip&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/sensor&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/ui&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/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.1678699060" 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.2113068752" 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.913748284" 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.1734962283" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.368465862" 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.679266286" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1539352902" 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="-Xlinker -rpath=&quot;/home/developer/sdk_tools/lib&quot;"/>
+ <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.223413654" 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.824598527" 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.1574116740" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.2007374190" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.87004037" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.2075028173" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.1141816981" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.58548379" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.463503912" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.2125525304" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.745039844" 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.1858418147">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.release.1858418147" 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="org.example.weatherclock" 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.1858418147" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.app.release">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.release.1858418147." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.release.1547755861" 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.1463907573" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder buildPath="${workspace_loc:/WeatherClock}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.1208674889" 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.1976008772" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.1158261885" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.2046921115" 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.default" id="sbi.gnu.cpp.compiler.option.debugging.level.core.966445512" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.cpp.compiler.option.454308081" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="wearable-2.3.1-emulator.core_llvm34.i386.core.app"/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.96320121" 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-agent&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-watch&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&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/ckm&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-manager&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/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-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/elementary-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&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/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/json-glib-1.0&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0/json-glib&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&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/minizip&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/sensor&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/ui&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/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.1670056116" 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.1355973148" 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.1614113982" 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.234750811" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1450045427" 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.1427444798" 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.1234375030" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option id="sbi.gnu.c.compiler.option.610605754" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="wearable-2.3.1-emulator.core_llvm34.i386.core.app"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.118279594" 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-agent&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appcore-watch&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/appfw&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/ckm&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/content&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/context-manager&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/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-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/elementary-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/embryo-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ethumb-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/evas-1&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/ewebkit2-0&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/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/json-glib-1.0&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/json-glib-1.0/json-glib&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/location&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/minizip&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/sensor&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/ui&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/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.937671496" 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.486571537" 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.1773408250" 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.1636611711" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.343170040" 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.1976348028" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1163212931" 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="-Xlinker -rpath=&quot;/home/developer/sdk_tools/lib&quot;"/>
+ <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.1181764697" 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.1038435110" 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.1548505138" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.349352837" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.1809246844" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.1475996681" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.2006240564" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.635574330" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.655965191" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.139662995" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.1458851703" 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="WeatherClock.org.tizen.nativecore.target.sbi.gcc45.app.563506879" 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.1858418147">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.debug.2102205966">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+</cproject>
diff --git a/.exportMap b/.exportMap
new file mode 100755
index 0000000..43e310e
--- /dev/null
+++ b/.exportMap
@@ -0,0 +1,4 @@
+{
+ global: main;
+ local: *;
+};
diff --git a/.project b/.project
new file mode 100755
index 0000000..7867e56
--- /dev/null
+++ b/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>WeatherClock</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>1463457568354</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>1463457568357</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/.tproject b/.tproject
new file mode 100755
index 0000000..d7a6d5b
--- /dev/null
+++ b/.tproject
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tproject xmlns="http://www.tizen.org/tproject">
+ <platforms>
+ <platform>
+ <name>wearable-2.3.1</name>
+ </platform>
+ </platforms>
+ <package>
+ <blacklist/>
+ </package>
+</tproject>
diff --git a/description.xml b/description.xml
deleted file mode 100644
index e93db45..0000000
--- a/description.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xsl" href="../../../../description.xsl"?>
-
-<Overview version="0.0.1">
- <SampleName>(Circle) Weather Watch</SampleName>
- <SampleVersion>1.0.0</SampleVersion>
- <PlatformList>
- <Profile>
- <ProfileName>Wearable</ProfileName>
- <RequiredVersion>2.3.1</RequiredVersion>
- </Profile>
- </PlatformList>
- <ProjectType>org.tizen.nativecore.buildArtefactType.app</ProjectType>
- <HasOption>False</HasOption>
- <CategoryList>
- <Category>Watch</Category>
- </CategoryList>
- <PreviewList>
- <Preview>screenshot.png</Preview>
- </PreviewList>
- <Description>
- The weather clock sample application demonstrates how user can make watch face. This sample show dummy air pollution and weather information only for sample appication. How to get that information and update is up to this sample user.
- </Description>
-</Overview>
diff --git a/doc/sample_online_list.html b/doc/sample_online_list.html
new file mode 100755
index 0000000..be0be9a
--- /dev/null
+++ b/doc/sample_online_list.html
@@ -0,0 +1,305 @@
+<!DOCTYPE html>
+<html lang="ko">
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0">
+ <meta name="description" content="Tizen Online Sample List">
+
+ <title>Tizen Online Sample List</title>
+
+ <!-- 합쳐지고 최소화된 최신 CSS -->
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
+
+ <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+ <!--[if lt IE 9]>
+ <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
+ <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
+ <![endif]-->
+ <style>
+ .categoli-list { margin: 15px 0 15px 0 }
+ .badge { margib-left: 10px}
+ </style>
+</head>
+
+<body>
+ <span></span>
+ <!-- Page Content -->
+ <div class="container" style="margin-top:20px">
+ <div class="col-lg-10 col-lg-offset-1">
+ <h3>Step.1 아래 링크로 json 파일을 다운받으세요 <small>Download json File to your PC</small></h3>
+ <a href="https://download.tizen.org/sdk/samples/online/Native/native-sample-info.json" download>https://download.tizen.org/sdk/samples/online/Native/native-sample-info.json</a><br>
+ <a href="https://download.tizen.org/sdk/samples/online/Web/web-sample-info.json" download>https://download.tizen.org/sdk/samples/online/Web/web-sample-info.json</a>
+ <hr>
+ <h3>Step.2 다운받은 파일을 선택해주세요 <small>Select and Load json File to this browser</small></h3>
+ <h4>Native json File</h4><input type="file" id="file-native" accept=".json"><br>
+ <h4>Web json File</h4><input type="file" id="file-web" accept=".json">
+ <hr>
+ <h3>Step.3 아래 버튼을 눌러주세요<small>Start parsing json File</small></h3>
+ <button class="btn btn-primary" type="submit" id="btn-go">Go!</button>
+ <hr>
+ <h3>#Result</h3>
+ <div role="tabpanel">
+ <!-- Nav tabs -->
+ <ul class="nav nav-tabs" role="tablist">
+ <li role="presentation" class="active"><a href="#nativeapp" aria-controls="nativeapp" role="tab" data-toggle="tab">Native Sample App <span id="badge-native" class="badge"></span></a></li>
+ <li role="presentation"><a href="#webapp" aria-controls="webapp" role="tab" data-toggle="tab">Web Sample App <span id="badge-web" class="badge"></span></a></li>
+ </ul>
+
+ <!-- Tab panes -->
+ <div class="tab-content">
+ <div role="tabpanel" class="tab-pane active" id="nativeapp">
+ <h5>#Profile</h5>
+ <ol class="categoli-list" id="list-profile-native">
+ </ol>
+ <hr>
+ <h5>#Category</h5>
+ <ol class="categoli-list" id="list-category-native">
+ </ol>
+ <hr>
+ <a class="btn btn-info" href="#" role="button">Mobile</a>
+ <a class="btn btn-warning" href="#" role="button">Wearable</a>
+ <a class="btn btn-success" href="#" role="button">Mobile and Wearable</a>
+ <hr>
+ <div class="panel-group" id="accordion-native" role="tablist" aria-multiselectable="true">
+ <!-- Sample Content -->
+ <!--
+ <div class="panel panel-default">
+ <div class="panel-heading" role="tab" id="headingOne">
+ <h4 class="panel-title">
+ <a data-toggle="collapse" data-parent="#accordion-native" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
+ Dummy Data
+ </a>
+ </h4>
+ </div>
+ <div id="collapseOne" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
+ <div class="panel-body">
+ It is Dummy Data, which will be replaced by 'Go' operation after loading local json file.
+ </div>
+ </div>
+ </div>
+ -->
+ </div>
+ </div>
+ <div role="tabpanel" class="tab-pane" id="webapp">
+ <h5>#Profile</h5>
+ <ol class="categoli-list" id="list-profile-web">
+ </ol>
+ <hr>
+ <h5>#Category</h5>
+ <ol class="categoli-list" id="list-category-web">
+ </ol>
+ <hr>
+ <a class="btn btn-info" href="#" role="button">Mobile</a>
+ <a class="btn btn-warning" href="#" role="button">Wearable</a>
+ <a class="btn btn-success" href="#" role="button">Mobile and Wearable</a>
+ <hr>
+ <div class="panel-group" id="accordion-web" role="tablist" aria-multiselectable="true">
+ </div>
+ </div>
+ </div>
+ </div> <!-- end of tabpanel -->
+ </div>
+ </div>
+ <!-- jQuery -->
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
+
+ <!-- 합쳐지고 최소화된 최신 자바스크립트 -->
+ <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
+
+ <script>
+ //20160311
+ var controller;
+ var htmlids = [
+ ['file-native', 'badge-native', 'accordion-native', 'list-category-native', 'list-profile-native'],
+ ['file-web', 'badge-web', 'accordion-web', 'list-category-web', 'list-profile-web']
+ ];
+
+ // Check for the various File API support.
+ if (window.File && window.FileReader && window.FileList) {
+ // Great success! All the File APIs are supported.
+ } else {
+ alert('The File APIs are not fully supported in this browser. HTML5 File API를 지원하는 브라우저에서 다시 시도하세요!');
+ }
+
+ $( document ).ready(function() {
+ controller = new Controller();
+ $('#btn-go').on('click', function() { controller.parse(); });
+ });
+
+ function Controller(){
+ this.json = [];
+ this.json[0] = this.fileEvtBinding(htmlids[0][0]); //native
+ this.json[1] = this.fileEvtBinding(htmlids[1][0]); //web
+ }
+
+ Controller.prototype.fileEvtBinding = function(id){
+ var self = this;
+
+ $('#'+id).change(function () {
+ var fileList = this.files ;
+ var reader = new FileReader();
+ reader.readAsText(fileList [0]);
+ reader.onload = function () {
+ if (id.indexOf('native') != -1)
+ self.json[0] = JSON.parse(reader.result);
+ else
+ self.json[1] = JSON.parse(reader.result);
+ };
+ });
+ };
+
+ Controller.prototype.parse = function(){
+ var str0 = '<div class="panel panel-'; // + profileClass
+ var str00 = '"><div class="panel-heading" role="tab" id="'; // + heading
+ var str1 = '"><h4 class="panel-title"><a data-toggle="collapse" data-parent="#'; // +accordion-native
+ var str2 = '" href="#'; // + content
+ var str3 = '" aria-expanded="true" aria-controls="'; // + content
+ var str4 = '">'; // + title
+ var str5 = '</a></h4></div><div id="'; //content
+ var str6 = '" class="panel-collapse collapse" role="tabpanel" aria-labelledby="'; //heading
+ var str7 = '"><div class="panel-body">'; // + body
+ var str8 = '</div></div></div>';
+
+ var cat0 = '<li>'; // + category
+ var cat1 = ' <span class="badge">'; // + count
+ var cat2 = '</span</li>';
+
+ var i, j, k;
+ var tmpObj;
+ var name, profile = "";
+ var categoryMap = {};
+ var profileMap = {};
+ var tmpSortArry = [];
+ var profileClass = "";
+
+ for (k=0; k<2; k++) { // 0: native, 1: web
+ name = (k == 0)?'Native':'Web';
+ categoryMap = {};
+ profileMap = {};
+ tmpSortArry = [];
+
+ if (typeof(this.json[k]) != 'undefined'
+ && typeof(this.json[k].appTypes[0].name) != 'undefined'
+ && this.json[k].appTypes[0].name === name
+ && this.json[k].appTypes[0].samples.length > 0) {
+
+ tmpObj = this.json[k].appTypes[0].samples;
+ //init
+ $('#' + htmlids[k][2]).html('');
+ $('#' + htmlids[k][3]).html('');
+ $('#' + htmlids[k][4]).html('');
+ $('#' + htmlids[k][1]).text(tmpObj.length);
+
+ for (i=0; i<tmpObj.length; i++) {
+ if (tmpObj[i].platformList.length > 1) {
+ for (j=0; j<tmpObj[i].platformList.length; j++) {
+ profile += tmpObj[i].platformList[j].profileName + " ";
+ }
+ } else {
+ profile = tmpObj[i].platformList[0].profileName;
+ }
+
+ if (typeof(profileMap[profile]) != 'undefined')
+ profileMap[profile]++;
+ else
+ profileMap[profile] = 1;
+
+ if (profile === 'Mobile' || profile === 'mobile') {
+ profileClass = 'info';
+ } else if (profile === 'Wearable' || profile === 'wearable') {
+ profileClass = 'warning';
+ } else {
+ profileClass = 'success';
+ }
+
+ //test_code wearable 만 표시
+// if(profile.indexOf("Wearable") == -1){
+// profile = "";
+// continue;
+// }
+
+ profile = "";
+
+ if (tmpObj[i].categoryList.length > 1)
+ alert("카테고리가 2개인 " + name + " 샘플이 있습니다");
+
+ if (typeof(categoryMap[tmpObj[i].categoryList[0]]) != 'undefined')
+ categoryMap[tmpObj[i].categoryList[0]]++;
+ else
+ categoryMap[tmpObj[i].categoryList[0]] = 1;
+
+ $('#' + htmlids[k][2]).append(str0 + profileClass + str00 + name + '-heading' + i + str1 + htmlids[k][2] + str2 + name + '-content' + i + str3 + name + '-content' + i + str4 + tmpObj[i].sampleName + str5 + name + '-content' + i + str6 + name + '-heading' + i + str7 + JSON.stringify(tmpObj[i], ['identification', 'sampleVersion', 'description', 'categoryList'], '<br>') + str8);
+
+ }
+ }
+
+ for (var key in categoryMap) {
+ if (categoryMap.hasOwnProperty(key)) {
+ tmpSortArry.push([key, categoryMap[key]]);
+ }
+ }
+
+ tmpSortArry.sort(function(a, b) {return b[1] - a[1]});
+
+ for (i=0; i<tmpSortArry.length; i++) {
+ $('#' + htmlids[k][3]).append(cat0 + tmpSortArry[i][0] + cat1 + tmpSortArry[i][1] + cat2);
+ }
+
+ for (var key in profileMap) {
+ if (profileMap.hasOwnProperty(key)) {
+ $('#' + htmlids[k][4]).append(cat0 + key + cat1 + profileMap[key] + cat2);
+ }
+ }
+ }
+ };
+
+ //TEST CODE -------------------------------------------------------------------------
+ var test = {};
+ function checkList(json, list){
+ var i, j, bFind;
+ var tmp = json.appTypes[0].samples;
+
+ for(i = 0 ; i < tmp.length ; i++) {
+ bFind = false;
+ for (j = 0 ; j < list.length ; j++) {
+ if (list[j].toLowerCase() == tmp[i].sampleName.toLowerCase() ) {
+ if(test.hasOwnProperty(tmp[i].sampleName.toLowerCase()))
+ console.log("hit!", tmp[i].sampleName.toLowerCase());
+ else
+ test[tmp[i].sampleName.toLowerCase()] = 1;
+
+ bFind = true;
+ break;
+ }
+ }
+
+ if (!bFind) {
+ console.log(i, tmp[i].sampleName);
+ }
+ console.log('count');
+ }
+ }
+
+ function checkListPublic(json, list){
+ var i, j, bFind;
+ var tmp = json.appTypes[0].samples;
+
+ for(j = 0 ; j < list.length ; j++) {
+ bFind = false;
+ for (i = 0 ; i < tmp.length ; i++) {
+ if (list[j].toLowerCase() == tmp[i].sampleName.toLowerCase() ) {
+ bFind = true;
+ break;
+ }
+ }
+
+ if (!bFind) {
+ console.log(j, list[j]);
+ }
+ }
+ }
+ </script>
+</body>
+</html> \ No newline at end of file
diff --git a/project/edje/images/background_app.png b/edje/images/background_app.png
index fd2e91b..fd2e91b 100644..100755
--- a/project/edje/images/background_app.png
+++ b/edje/images/background_app.png
Binary files differ
diff --git a/project/edje/images/color_status/air_pollution_icon_blue.png b/edje/images/color_status/air_pollution_icon_blue.png
index c9ac65a..c9ac65a 100755
--- a/project/edje/images/color_status/air_pollution_icon_blue.png
+++ b/edje/images/color_status/air_pollution_icon_blue.png
Binary files differ
diff --git a/project/edje/images/color_status/air_pollution_icon_green.png b/edje/images/color_status/air_pollution_icon_green.png
index 7f74567..7f74567 100755
--- a/project/edje/images/color_status/air_pollution_icon_green.png
+++ b/edje/images/color_status/air_pollution_icon_green.png
Binary files differ
diff --git a/project/edje/images/color_status/air_pollution_icon_orange.png b/edje/images/color_status/air_pollution_icon_orange.png
index 312203c..312203c 100755
--- a/project/edje/images/color_status/air_pollution_icon_orange.png
+++ b/edje/images/color_status/air_pollution_icon_orange.png
Binary files differ
diff --git a/project/edje/images/color_status/air_pollution_icon_red.png b/edje/images/color_status/air_pollution_icon_red.png
index 97381dc..97381dc 100755
--- a/project/edje/images/color_status/air_pollution_icon_red.png
+++ b/edje/images/color_status/air_pollution_icon_red.png
Binary files differ
diff --git a/project/edje/images/color_status/air_pollution_icon_yellow.png b/edje/images/color_status/air_pollution_icon_yellow.png
index 4241173..4241173 100755
--- a/project/edje/images/color_status/air_pollution_icon_yellow.png
+++ b/edje/images/color_status/air_pollution_icon_yellow.png
Binary files differ
diff --git a/project/edje/images/color_status/battery_icon_blue.png b/edje/images/color_status/battery_icon_blue.png
index 0a0990c..0a0990c 100644..100755
--- a/project/edje/images/color_status/battery_icon_blue.png
+++ b/edje/images/color_status/battery_icon_blue.png
Binary files differ
diff --git a/project/edje/images/color_status/battery_icon_grean.png b/edje/images/color_status/battery_icon_grean.png
index 24a674e..24a674e 100755
--- a/project/edje/images/color_status/battery_icon_grean.png
+++ b/edje/images/color_status/battery_icon_grean.png
Binary files differ
diff --git a/project/edje/images/color_status/battery_icon_green.png b/edje/images/color_status/battery_icon_green.png
index 24a674e..24a674e 100644..100755
--- a/project/edje/images/color_status/battery_icon_green.png
+++ b/edje/images/color_status/battery_icon_green.png
Binary files differ
diff --git a/project/edje/images/color_status/battery_icon_orange.png b/edje/images/color_status/battery_icon_orange.png
index 40b2b80..40b2b80 100644..100755
--- a/project/edje/images/color_status/battery_icon_orange.png
+++ b/edje/images/color_status/battery_icon_orange.png
Binary files differ
diff --git a/project/edje/images/color_status/battery_icon_red.png b/edje/images/color_status/battery_icon_red.png
index 96482e5..96482e5 100644..100755
--- a/project/edje/images/color_status/battery_icon_red.png
+++ b/edje/images/color_status/battery_icon_red.png
Binary files differ
diff --git a/project/edje/images/color_status/battery_icon_yellow.png b/edje/images/color_status/battery_icon_yellow.png
index 830504d..830504d 100644..100755
--- a/project/edje/images/color_status/battery_icon_yellow.png
+++ b/edje/images/color_status/battery_icon_yellow.png
Binary files differ
diff --git a/project/edje/images/color_status/blue_indicator.png b/edje/images/color_status/blue_indicator.png
index 1d4c1db..1d4c1db 100644..100755
--- a/project/edje/images/color_status/blue_indicator.png
+++ b/edje/images/color_status/blue_indicator.png
Binary files differ
diff --git a/project/edje/images/color_status/green_indicator.png b/edje/images/color_status/green_indicator.png
index ac166b0..ac166b0 100644..100755
--- a/project/edje/images/color_status/green_indicator.png
+++ b/edje/images/color_status/green_indicator.png
Binary files differ
diff --git a/project/edje/images/color_status/orange_indicator.png b/edje/images/color_status/orange_indicator.png
index 5d4dfb2..5d4dfb2 100644..100755
--- a/project/edje/images/color_status/orange_indicator.png
+++ b/edje/images/color_status/orange_indicator.png
Binary files differ
diff --git a/project/edje/images/color_status/red_indicator.png b/edje/images/color_status/red_indicator.png
index 6495f6e..6495f6e 100644..100755
--- a/project/edje/images/color_status/red_indicator.png
+++ b/edje/images/color_status/red_indicator.png
Binary files differ
diff --git a/project/edje/images/color_status/yellow_indicator.png b/edje/images/color_status/yellow_indicator.png
index f0eeee3..f0eeee3 100644..100755
--- a/project/edje/images/color_status/yellow_indicator.png
+++ b/edje/images/color_status/yellow_indicator.png
Binary files differ
diff --git a/project/edje/images/hour_numbers.png b/edje/images/hour_numbers.png
index 9929516..9929516 100644..100755
--- a/project/edje/images/hour_numbers.png
+++ b/edje/images/hour_numbers.png
Binary files differ
diff --git a/project/edje/images/second_path.png b/edje/images/second_path.png
index 9f79f31..9f79f31 100644..100755
--- a/project/edje/images/second_path.png
+++ b/edje/images/second_path.png
Binary files differ
diff --git a/project/edje/images/status_indicator.png b/edje/images/status_indicator.png
index 44262c4..44262c4 100644..100755
--- a/project/edje/images/status_indicator.png
+++ b/edje/images/status_indicator.png
Binary files differ
diff --git a/project/edje/images/weather_icon/01d.png b/edje/images/weather_icon/01d.png
index b00a98a..b00a98a 100755
--- a/project/edje/images/weather_icon/01d.png
+++ b/edje/images/weather_icon/01d.png
Binary files differ
diff --git a/project/edje/images/weather_icon/01n.png b/edje/images/weather_icon/01n.png
index 59086ea..59086ea 100755
--- a/project/edje/images/weather_icon/01n.png
+++ b/edje/images/weather_icon/01n.png
Binary files differ
diff --git a/project/edje/images/weather_icon/02d.png b/edje/images/weather_icon/02d.png
index 6508f6c..6508f6c 100755
--- a/project/edje/images/weather_icon/02d.png
+++ b/edje/images/weather_icon/02d.png
Binary files differ
diff --git a/project/edje/images/weather_icon/02n.png b/edje/images/weather_icon/02n.png
index 475adef..475adef 100755
--- a/project/edje/images/weather_icon/02n.png
+++ b/edje/images/weather_icon/02n.png
Binary files differ
diff --git a/project/edje/images/weather_icon/03d.png b/edje/images/weather_icon/03d.png
index 49b477a..49b477a 100755
--- a/project/edje/images/weather_icon/03d.png
+++ b/edje/images/weather_icon/03d.png
Binary files differ
diff --git a/project/edje/images/weather_icon/03n.png b/edje/images/weather_icon/03n.png
index 49b477a..49b477a 100755
--- a/project/edje/images/weather_icon/03n.png
+++ b/edje/images/weather_icon/03n.png
Binary files differ
diff --git a/project/edje/images/weather_icon/04d.png b/edje/images/weather_icon/04d.png
index 857eccb..857eccb 100755
--- a/project/edje/images/weather_icon/04d.png
+++ b/edje/images/weather_icon/04d.png
Binary files differ
diff --git a/project/edje/images/weather_icon/04n.png b/edje/images/weather_icon/04n.png
index 857eccb..857eccb 100755
--- a/project/edje/images/weather_icon/04n.png
+++ b/edje/images/weather_icon/04n.png
Binary files differ
diff --git a/project/edje/images/weather_icon/09d.png b/edje/images/weather_icon/09d.png
index cac759e..cac759e 100755
--- a/project/edje/images/weather_icon/09d.png
+++ b/edje/images/weather_icon/09d.png
Binary files differ
diff --git a/project/edje/images/weather_icon/09n.png b/edje/images/weather_icon/09n.png
index cac759e..cac759e 100755
--- a/project/edje/images/weather_icon/09n.png
+++ b/edje/images/weather_icon/09n.png
Binary files differ
diff --git a/project/edje/images/weather_icon/10d.png b/edje/images/weather_icon/10d.png
index 60dc512..60dc512 100755
--- a/project/edje/images/weather_icon/10d.png
+++ b/edje/images/weather_icon/10d.png
Binary files differ
diff --git a/project/edje/images/weather_icon/10n.png b/edje/images/weather_icon/10n.png
index cb8170d..cb8170d 100755
--- a/project/edje/images/weather_icon/10n.png
+++ b/edje/images/weather_icon/10n.png
Binary files differ
diff --git a/project/edje/images/weather_icon/11d.png b/edje/images/weather_icon/11d.png
index e6f58ef..e6f58ef 100755
--- a/project/edje/images/weather_icon/11d.png
+++ b/edje/images/weather_icon/11d.png
Binary files differ
diff --git a/project/edje/images/weather_icon/11n.png b/edje/images/weather_icon/11n.png
index e6f58ef..e6f58ef 100755
--- a/project/edje/images/weather_icon/11n.png
+++ b/edje/images/weather_icon/11n.png
Binary files differ
diff --git a/project/edje/images/weather_icon/13d.png b/edje/images/weather_icon/13d.png
index 176c7e1..176c7e1 100755
--- a/project/edje/images/weather_icon/13d.png
+++ b/edje/images/weather_icon/13d.png
Binary files differ
diff --git a/project/edje/images/weather_icon/13n.png b/edje/images/weather_icon/13n.png
index 176c7e1..176c7e1 100755
--- a/project/edje/images/weather_icon/13n.png
+++ b/edje/images/weather_icon/13n.png
Binary files differ
diff --git a/project/edje/images/weather_icon/50d.png b/edje/images/weather_icon/50d.png
index e875aba..e875aba 100755
--- a/project/edje/images/weather_icon/50d.png
+++ b/edje/images/weather_icon/50d.png
Binary files differ
diff --git a/project/edje/images/weather_icon/50n.png b/edje/images/weather_icon/50n.png
index 5a5434b..5a5434b 100755
--- a/project/edje/images/weather_icon/50n.png
+++ b/edje/images/weather_icon/50n.png
Binary files differ
diff --git a/project/inc/data.h b/inc/data.h
index 272b543..272b543 100755
--- a/project/inc/data.h
+++ b/inc/data.h
diff --git a/project/inc/view.h b/inc/view.h
index 72f133e..72f133e 100755
--- a/project/inc/view.h
+++ b/inc/view.h
diff --git a/project/inc/main.h b/inc/weatherclock.h
index 1b9a2a3..d3d1c6c 100755
--- a/project/inc/main.h
+++ b/inc/weatherclock.h
@@ -18,13 +18,13 @@
#define _WEATHER_CLOCK_H
#if !defined(PACKAGE)
-#define PACKAGE "$(packageName)"
+#define PACKAGE "org.example.weatherclock"
#endif
#ifdef LOG_TAG
#undef LOG_TAG
#endif
-#define LOG_TAG "$(appName)"
+#define LOG_TAG "weatherclock"
#define INDICATOR_MODULE_BATTERY 0
#define INDICATOR_MODULE_AIR_POLLUTION 1
@@ -53,6 +53,29 @@
#define DATA_KEY_HANDS_MIN "__HANDS_MIN__"
#define DATA_KEY_HANDS_HOUR "__HANDS_HOUR__"
+#define LOCATIONS_STATUS_DISABLED 0
+#define LOCATIONS_STATUS_SETTING_OFF 1
+#define LOCATIONS_STATUS_ENABLED 2
+
+#define LOCATIONS_COMMAND_INITIALIZE 0
+#define LOCATIONS_COMMAND_STOP 1
+#define LOCATIONS_COMMAND_RESUME 2
+#define LOCATIONS_COMMAND_DESTROY 3
+
+#define URL_LENGTH_MAX 500
+
+#define CURL_GET_WEAHTER 0
+#define CURL_GET_AP_INSPECT_STATION 1
+#define CURL_GET_AP_VALUE 2
+
+#define WEATHER_FORCAST_6HOUR_INDEX 1
+
+#define WEAHTER_REST_API_URL "http://api.openweathermap.org/data/2.5/forecast?lat=%.6f&lon=%.6f&appid=c539c7392bf0a7d262ee10cf47a1cba9"
+#define AP_STATION_REST_API_URL "http://api.openweathermap.org/data/2.5/forecast?lat=%.6f&lon=%.6f&appid=c539c7392bf0a7d262ee10cf47a1cba9"
+#define AP_VALUE_REST_API_URL "http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty?stationName=%%EC%%A2%%85%%EB%%A1%%9C%%EA%%B5%%AC&dataTerm=month&pageNo=1&numOfRows=10&ServiceKey=FoC79C0INc7%%2BtdXxiCGfD7fUBYc6CmYZNNpDHNpva6FxOhXXqmxWJz8qREcGfHAClvYgBy16ovp8t1%%2FO2Mo8KQ%%3D%%3D&ver=1.2&_returnType=json"
+
+#define VALID_PERIOD_30MIN 1800000
+
#define WEATHER_ICON_STR_CLEAR_SKY_DAY "01d"
#define WEATHER_ICON_STR_FEW_CLOUDS_DAY "02d"
#define WEATHER_ICON_STR_SCATTERED_CLOUDS_DAY "03d"
@@ -94,6 +117,21 @@ typedef enum {
WEATHER_STATE_MAX,
} weather_state_e;
+typedef struct weatherwatch_weather_data {
+ double updated_time;
+ weather_state_e state;
+}weather_data_s;
+
+typedef struct weatherwatch_ap_data {
+ double updated_time;
+ int aqi;
+}air_pollution_data_s;
+
+typedef struct curl_response_data {
+ size_t size;
+ char *response;
+}curl_response_data_s;
+
typedef enum {
INDICATOR_INFO_TYPE_ICON = 0,
INDICATOR_INFO_TYPE_TEXT = 1,
diff --git a/project/shared/res/icon.png b/project/shared/res/icon.png
deleted file mode 100755
index 8a38fbc..0000000
--- a/project/shared/res/icon.png
+++ /dev/null
Binary files differ
diff --git a/project/tizen-manifest.xml b/project/tizen-manifest.xml
deleted file mode 100644
index bb1e01a..0000000
--- a/project/tizen-manifest.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns="http://tizen.org/ns/packages" package="$(packageName)" api-version="2.3.1" version="1.0.0">
- <profile name="$(packageProfile)" />
- <watch-application appid="$(packageName)" exec="$(appNameLower)" ambient-support="true">
- <label>Weather Clock</label>
- <icon>$(appName).png</icon>
- </watch-application>
-</manifest>
diff --git a/project/res/edje/main.edc b/res/edje/main.edc
index 2fdbb8c..b4d1c15 100755
--- a/project/res/edje/main.edc
+++ b/res/edje/main.edc
@@ -74,17 +74,17 @@ images {
image: "status_indicator.png" COMP;
}
- styles {
- style {
- name: "calendar_textblock_style";
- base: "font=Tizen:style=Regular text_class=tizen align=center font_size="15" color=#FFFFFF";
- tag: "day" "+ font=Tizen:style=Bold font_size="23" color=#DBD303";
- }
+styles {
+ style {
+ name: "calendar_textblock_style";
+ base: "font=Tizen:style=Regular text_class=tizen align=center font_size="15" color=#FFFFFF";
+ tag: "day" "+ font=Tizen:style=Bold font_size="23" color=#DBD303";
+ }
style {
name: "weather_textblock_style";
base: "font=Tizen:style=Regular text_class=tizen align=left font_size="12" color=#FFFFFF";
- }
- }
+ }
+}
collections {
group { name: "layout_watchface";
diff --git a/project/res/images/hour_indicator.png b/res/images/hour_indicator.png
index 34cc625..34cc625 100644..100755
--- a/project/res/images/hour_indicator.png
+++ b/res/images/hour_indicator.png
Binary files differ
diff --git a/project/res/images/minute_indicator.png b/res/images/minute_indicator.png
index 13f310b..13f310b 100644..100755
--- a/project/res/images/minute_indicator.png
+++ b/res/images/minute_indicator.png
Binary files differ
diff --git a/project/res/images/pin.png b/res/images/pin.png
index bc4b968..bc4b968 100644..100755
--- a/project/res/images/pin.png
+++ b/res/images/pin.png
Binary files differ
diff --git a/project/res/images/second_indicator.png b/res/images/second_indicator.png
index 12d2bbf..12d2bbf 100644..100755
--- a/project/res/images/second_indicator.png
+++ b/res/images/second_indicator.png
Binary files differ
diff --git a/sample.xml b/sample.xml
deleted file mode 100644
index bf4b1df..0000000
--- a/sample.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<template>
- <slp-property>
- <property-group>
- <sample-name>(Circle) Weather Watch</sample-name>
- <category>Platform Template</category>
- <sdk-version>1.00</sdk-version>
- <project-type>org.tizen.nativecore.buildArtefactType.app</project-type>
- <sample-description>description.xml</sample-description>
- </property-group>
- </slp-property>
- <process type="org.tizen.nativeappcommon.TizenCopyFolder">
- <simple name="projectName" value="$(projectName)"/>
- <simple name="folderPath" value="project"/>
- <complex-array name="replaceableFiles">
- <element>
- <simple name="sourcePath" value="inc/main.h"/>
- <simple name="targetPath" value="inc/$(appName).h"/>
- <simple name="replaceable" value="true"/>
- </element>
- <element>
- <simple name="sourcePath" value="inc/view.h"/>
- <simple name="targetPath" value="inc/view.h"/>
- <simple name="replaceable" value="true"/>
- </element>
- <element>
- <simple name="sourcePath" value="src/main.c"/>
- <simple name="targetPath" value="src/main.c"/>
- <simple name="replaceable" value="true"/>
- </element>
- <element>
- <simple name="sourcePath" value="src/data.c"/>
- <simple name="targetPath" value="src/data.c"/>
- <simple name="replaceable" value="true"/>
- </element>
- <element>
- <simple name="sourcePath" value="src/view.c"/>
- <simple name="targetPath" value="src/view.c"/>
- <simple name="replaceable" value="true"/>
- </element>
- <element>
- <simple name="sourcePath" value="tizen-manifest.xml"/>
- <simple name="targetPath" value="tizen-manifest.xml"/>
- <simple name="replaceable" value="true"/>
- </element>
- <element>
- <simple name="sourcePath" value="shared/res/icon.png"/>
- <simple name="targetPath" value="shared/res/$(appName).png"/>
- <simple name="replaceable" value="false"/>
- </element>
- </complex-array>
- </process>
- <process type="org.tizen.nativecore.SetDefaultCoreFrameworks">
- <simple name="projectName" value="$(projectName)"/>
- <complex-array name="frameworkList">
- <element>
- <simple name="framework" value="Native_API"/>
- </element>
- </complex-array>
- </process>
-</template>
-
diff --git a/screenshot.png b/screenshot.png
deleted file mode 100755
index 8a38fbc..0000000
--- a/screenshot.png
+++ /dev/null
Binary files differ
diff --git a/shared/res/weatherclock.png b/shared/res/weatherclock.png
new file mode 100755
index 0000000..d88f9c3
--- /dev/null
+++ b/shared/res/weatherclock.png
Binary files differ
diff --git a/project/src/data.c b/src/data.c
index 262ec68..9089deb 100755
--- a/project/src/data.c
+++ b/src/data.c
@@ -20,7 +20,7 @@
#include <dlog.h>
#include <device/battery.h>
-#include "$(appName).h"
+#include "weatherclock.h"
#include "data.h"
#define IMAGE_HANDS_SEC "images/second_indicator.png"
diff --git a/project/src/main.c b/src/main.c
index 3533065..27e8b0f 100755
--- a/project/src/main.c
+++ b/src/main.c
@@ -22,21 +22,63 @@
#include <efl_extension.h>
#include <dlog.h>
#include <device/callback.h>
+#include <json-glib/json-glib.h>
+#include <curl/curl.h>
+#include <net_connection.h>
+#include <locations.h>
-#include "$(appName).h"
+#include "weatherclock.h"
#include "view.h"
#include "data.h"
static struct main_info {
+ /* watch */
int dummy;
int cur_min;
int cur_day;
int cur_month;
+
+ /* location */
+ int location_status;
+ location_manager_h location_manager;
+ bool is_location_valid;
+ double latitude;
+ double longitude;
+
+ /* weather and air pollution */
+ Ecore_Thread *thread_weather;
+ Ecore_Thread *thread_ap;
+ CURL *curl_weather;
+ CURL *curl_ap;
+ bool thread_weather_running;
+ bool thread_ap_running;
+ bool global_cleanup_needed;
+ bool app_terminating;
+ Eina_Lock mutex;
+ weather_data_s weather;
+ air_pollution_data_s ap;
} s_info = {
.dummy = 0,
.cur_min = 0,
.cur_day = 0,
.cur_month = 0,
+ .location_status = LOCATIONS_STATUS_DISABLED,
+ .location_manager = NULL,
+ .is_location_valid = false,
+ .latitude = 0,
+ .longitude = 0,
+ .thread_weather = NULL,
+ .thread_ap = NULL,
+ .curl_weather = NULL,
+ .curl_ap = NULL,
+ .thread_weather_running = false,
+ .thread_ap_running = false,
+ .global_cleanup_needed = false,
+ .app_terminating = false,
+ .weather.updated_time = 0,
+ .weather.state = WEATHER_STATE_CLEAR_SKY_DAY,
+ .ap.updated_time = 0,
+ .ap.aqi = 0,
};
static void _set_time(int hour, int min, int sec);
@@ -48,9 +90,29 @@ static void _set_indicator_information(Evas_Object *parent, int value, const cha
static void _battery_changed_cb(device_callback_e type, void *value, void *user_data);
static void _battery_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
static void _ap_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
-static void _set_air_pollution_value(int aqi);
-static void _dummy_operation(void);
-static void _update_weather_state(weather_state_e state);
+static void _set_air_pollution_state(int aqi);
+static void _set_weather_state(weather_state_e state);
+
+static bool _location_init(void);
+static void _location_destroy(void);
+static void _location_pause(void);
+static void _location_resume(void);
+static void _location_state_change_cb(location_service_state_e state, void *user_data);
+
+int weatherwatch_update_current_position(void);
+static long long _get_current_system_monotonic_time(void);
+void weatherwatch_weather_and_ap_update(void);
+static void _weather_curl_thread(void *data, Ecore_Thread *thread);
+static void _weather_curl_thread_end_cb(void *data, Ecore_Thread *thread);
+static void _weather_curl_thread_cancel_cb(void *data, Ecore_Thread *thread);
+static void _ap_curl_thread(void *data, Ecore_Thread *thread);
+static void _ap_curl_thread_end_cb(void *data, Ecore_Thread *thread);
+static void _ap_curl_thread_cancel_cb(void *data, Ecore_Thread *thread);
+static void _thread_cleanup(void);
+static size_t _curl_write_function(void *ptr, size_t size, size_t nmemb, curl_response_data_s *res);
+static void _curl_get_data(int type);
+void weatherwatch_parse_json(int type, const gchar *str);
+static void _update_weather_data_from_json(const char *str);
/**
* @brief The system language changed event callback function.
@@ -184,6 +246,8 @@ static bool app_create(int width, int height, void* user_data)
return false;
}
+ _location_init();
+
return true;
}
@@ -273,6 +337,8 @@ static void app_resume(void *user_data)
*/
static void app_terminate(void *user_data)
{
+ /* Destroy location service */
+ _location_destroy();
view_destroy_base_gui();
}
@@ -465,9 +531,9 @@ static int _create_indicator_module_layout(int type)
evas_object_data_set(indicator_module_layout, DATA_KEY_BATTYER_INFO_TYPE, (void *) INDICATOR_INFO_TYPE_ICON);
view_send_signal_to_edje(indicator_module_layout, "hide,battery,txt", "txt.battery");
- /*
- * Register callback function for battery toggle event
- */
+ /*
+ * Register callback function for battery toggle event
+ */
view_set_customized_event_callback(indicator_module_layout, "mouse,clicked", "rect.battery", _battery_clicked_cb, NULL);
} else {
@@ -621,7 +687,7 @@ static void _set_indicator_information(Evas_Object *parent, int value, const cha
} else {
/*
* Set air pollution index value & color
- */
+ */
snprintf(signal, sizeof(signal), "change,air_pollution,%s", color);
view_send_signal_to_edje(parent, signal, "img.air_pollution.icon");
@@ -722,10 +788,9 @@ static void _ap_clicked_cb(void *data, Evas_Object *obj, const char *emission, c
}
/*
- * Below dummy operation code is only for sample display
- * When click the air pollution module, _dummy_operation() change air pollution and weather status.
+ * Update weather and air pollution information
*/
- _dummy_operation();
+ weatherwatch_weather_and_ap_update();
/*
* Get current air pollution information type
@@ -756,7 +821,7 @@ static void _ap_clicked_cb(void *data, Evas_Object *obj, const char *emission, c
* @brief Updates air pollution view according to the AQI(Air Quality Index).
* @param[in] aqi AQI value to be used for updating air pollution module
*/
-static void _set_air_pollution_value(int aqi)
+static void _set_air_pollution_state(int aqi)
{
Evas_Object *ap_module_layout = NULL;
char *color = NULL;
@@ -778,29 +843,10 @@ static void _set_air_pollution_value(int aqi)
}
/**
- * @brief Changes air pollution and weather status.
- * @remarks This dummy function is only for sample app. When click the air pollution module, _dummy_operation() change air pollution and weather status.
- */
-static void _dummy_operation(void)
-{
- if (s_info.dummy < 0)
- s_info.dummy = 0;
-
- int ap_val = s_info.dummy % 5;
- int weather_val = s_info.dummy % (int)WEATHER_STATE_MAX;
-
- _set_air_pollution_value(ap_val * 40);
- _update_weather_state(weather_val);
-
- s_info.dummy++;
-
-}
-
-/**
* @brief Updates weather state and view.
* @param[in] state Weather state to be used
*/
-static void _update_weather_state(weather_state_e state)
+static void _set_weather_state(weather_state_e state)
{
char signal[128] = { 0, };
char text[128] = { 0, };
@@ -896,3 +942,454 @@ static void _update_weather_state(weather_state_e state)
*/
view_set_text(view_get_watchface_layout(), "txt.weather", text);
}
+
+static bool _location_init(void)
+{
+ int ret = LOCATIONS_ERROR_NONE;
+
+ /* Create a location manager handle */
+ ret = location_manager_create(LOCATIONS_METHOD_HYBRID, &s_info.location_manager);
+ if (LOCATIONS_ERROR_NONE != ret) {
+ dlog_print(DLOG_ERROR, LOG_TAG, "location_manager_create failed : %d", ret);
+ return false;
+ }
+
+ /* To know when the service becomes enabled */
+ ret = location_manager_set_service_state_changed_cb(s_info.location_manager, _location_state_change_cb, NULL);
+ if (LOCATIONS_ERROR_NONE != ret) {
+ dlog_print(DLOG_ERROR, LOG_TAG, "location_manager_set_service_state_changed_cb failed : %d", ret);
+ return false;
+ }
+
+ /* Start the location service */
+ ret = location_manager_start(s_info.location_manager);
+ if (LOCATIONS_ERROR_NONE != ret) {
+ if (ret == LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE) {
+ /*
+ * GPS Service Off Status
+ * Show Notification pop-up
+ */
+ dlog_print(DLOG_ERROR, LOG_TAG, "location_manager_start failed : Service not available, Servie off");
+ s_info.location_status = LOCATIONS_STATUS_SETTING_OFF;
+ } else {
+ dlog_print(DLOG_ERROR, LOG_TAG, "location_manager_start failed : %d", ret);
+ s_info.location_status = LOCATIONS_STATUS_DISABLED;
+ }
+ }
+
+ return true;
+}
+
+static void _location_destroy(void)
+{
+ dlog_print(DLOG_DEBUG, LOG_TAG, "location manager destroy");
+
+ if (s_info.location_manager != NULL) {
+ location_manager_unset_service_state_changed_cb(s_info.location_manager);
+ location_manager_destroy(s_info.location_manager);
+ }
+}
+
+static void _location_pause(void)
+{
+ dlog_print(DLOG_DEBUG, LOG_TAG, "location manager stop");
+
+ if (s_info.location_manager != NULL) {
+ location_manager_stop(s_info.location_manager);
+ }
+}
+
+static void _location_resume(void)
+{
+ dlog_print(DLOG_DEBUG, LOG_TAG, "location manager resume");
+
+ location_manager_start(s_info.location_manager);
+}
+
+static void _location_state_change_cb(location_service_state_e state, void *user_data)
+{
+ dlog_print(DLOG_DEBUG, LOG_TAG, "_location_state_change_cb: state [%d]", state);
+
+ if (state == LOCATIONS_SERVICE_ENABLED) {
+ s_info.location_status = LOCATIONS_STATUS_ENABLED;
+ } else {
+ s_info.location_status = LOCATIONS_STATUS_DISABLED;
+ }
+}
+
+int weatherwatch_update_current_position(void)
+{
+ double altitude, climb, direction, speed;
+ double horizontal, vertical;
+
+ location_accuracy_level_e level;
+ time_t timestamp;
+ int ret = LOCATIONS_ERROR_NONE;
+ dlog_print(DLOG_DEBUG, LOG_TAG, "weatherwatch_update_current_position: location_status [%d]", s_info.location_status);
+
+ if (s_info.location_status == LOCATIONS_STATUS_ENABLED)
+ {
+ ret = location_manager_get_location(s_info.location_manager, &altitude, &s_info.latitude, &s_info.longitude,
+ &climb, &direction, &speed, &level, &horizontal, &vertical, &timestamp);
+
+ dlog_print(DLOG_DEBUG, LOG_TAG, "location_manager_get_location: ret [%d], s_info.latitude [%f], s_info.longitude [%f] ", ret, s_info.latitude, s_info.longitude);
+
+ if (LOCATIONS_ERROR_NONE == ret) {
+ s_info.is_location_valid = true;
+ return LOCATIONS_ERROR_NONE;
+ } else {
+ s_info.is_location_valid = false;
+ }
+ }
+
+ return LOCATIONS_ERROR_SERVICE_NOT_AVAILABLE;
+}
+
+/**
+ * @brief Gets system time by milliseconds.
+ */
+static long long _get_current_system_monotonic_time(void)
+{
+ struct timespec tp;
+ long long res = 0;
+
+ if (clock_gettime(CLOCK_MONOTONIC, &tp) == -1) {
+ /*
+ * Zero mean invalid time
+ */
+ return 0;
+ } else {
+ /*
+ * Calculate milliseconds time
+ */
+ res = tp.tv_sec * 1000 + tp.tv_nsec / 1000000;
+ return res;
+ }
+}
+
+void weatherwatch_weather_and_ap_update(void)
+{
+ long long now = _get_current_system_monotonic_time();
+ dlog_print(DLOG_DEBUG, LOG_TAG, "weatherwatch_weather_and_ap_update, now[%f], s_info.weather.updated_time[%f] s_info.ap.updated_time[%f]", now, s_info.weather.updated_time, s_info.ap.updated_time);
+
+ /*
+ * Check weather and air pollution data valid period
+ */
+ if (now != 0 && (now - s_info.weather.updated_time) <= VALID_PERIOD_30MIN && (now - s_info.ap.updated_time) <= VALID_PERIOD_30MIN)
+ return;
+
+ dlog_print(DLOG_DEBUG, LOG_TAG, "weatherwatch_weather_and_ap_update, now[%f], s_info.weather.updated_time[%f] s_info.ap.updated_time[%f]", now, s_info.weather.updated_time, s_info.ap.updated_time);
+
+ if (s_info.location_status == LOCATIONS_STATUS_ENABLED) {
+ if (LOCATIONS_ERROR_NONE == weatherwatch_update_current_position() && ((now - s_info.weather.updated_time) > VALID_PERIOD_30MIN || now == 0 )) {
+ if (!s_info.thread_weather_running) {
+ s_info.thread_weather = ecore_thread_run(_weather_curl_thread, _weather_curl_thread_end_cb, _weather_curl_thread_cancel_cb, NULL);
+
+ if (s_info.thread_weather == NULL)
+ dlog_print(DLOG_ERROR, LOG_TAG, "Could not create thread for weather");
+ else
+ s_info.thread_weather_running = true;
+ }
+
+ if (!s_info.thread_ap_running) {
+ s_info.thread_ap = ecore_thread_run(_ap_curl_thread, _ap_curl_thread_end_cb, _ap_curl_thread_cancel_cb, NULL);
+
+ if (s_info.thread_ap == NULL)
+ dlog_print(DLOG_ERROR, LOG_TAG, "Could not create thread for ap");
+ else
+ s_info.thread_ap_running = true;
+ }
+ }
+ } else if (s_info.location_status == LOCATIONS_STATUS_SETTING_OFF) {
+ /*
+ * GPS Service Off Status - Display GPS off icon
+ * Show Notification pop-up for user
+ */
+ dlog_print(DLOG_ERROR, LOG_TAG, "Location service not available, Servie Off");
+ return;
+ } else {
+ //CHECK weather status and update it to disabled icon.
+ }
+}
+
+static void _weather_curl_thread(void *data, Ecore_Thread *thread)
+{
+ _curl_get_data(CURL_GET_WEAHTER);
+}
+
+static void _weather_curl_thread_end_cb(void *data, Ecore_Thread *thread)
+{
+ _thread_cleanup();
+ s_info.thread_weather_running = false;
+// view_weatherwatch_update_weather_view(s_info.weather.state);
+}
+
+static void _weather_curl_thread_cancel_cb(void *data, Ecore_Thread *thread)
+{
+ dlog_print(DLOG_DEBUG, LOG_TAG, "_weather_curl_thread_cancel_cb()");
+ if (s_info.curl_weather != NULL) {
+ curl_easy_cleanup(s_info.curl_weather);
+ }
+
+ _thread_cleanup();
+ s_info.thread_weather_running = false;
+}
+
+static void _ap_curl_thread(void *data, Ecore_Thread *thread)
+{
+ _curl_get_data(CURL_GET_AP_INSPECT_STATION);
+}
+
+static void _ap_curl_thread_end_cb(void *data, Ecore_Thread *thread)
+{
+ _thread_cleanup();
+ s_info.thread_ap_running = false;
+// view_weatherwatch_update_ap_view(s_info.weather.state);
+}
+
+static void _ap_curl_thread_cancel_cb(void *data, Ecore_Thread *thread)
+{
+ dlog_print(DLOG_DEBUG, LOG_TAG, "_ap_curl_thread_cancel_cb()");
+ if (s_info.curl_ap != NULL) {
+ curl_easy_cleanup(s_info.curl_ap);
+ }
+
+ _thread_cleanup();
+ s_info.thread_ap_running = false;
+}
+
+static void _thread_cleanup(void)
+{
+ dlog_print(DLOG_DEBUG, LOG_TAG, "_thread_cleanup(): taking lock");
+ eina_lock_take(&s_info.mutex);
+ dlog_print(DLOG_DEBUG, LOG_TAG, "_thread_cleanup(): lock taken");
+
+ if (s_info.app_terminating) {
+ if (s_info.global_cleanup_needed) {
+ curl_global_cleanup();
+ dlog_print(DLOG_DEBUG, LOG_TAG, "_thread_cleanup(): curl_global_cleanup() called");
+ s_info.global_cleanup_needed = false;
+ }
+ }
+
+ dlog_print(DLOG_DEBUG, LOG_TAG, "_thread_cleanup(): freeing lock");
+ eina_lock_release(&s_info.mutex);
+}
+
+static size_t _curl_write_function(void *ptr, size_t size, size_t nmemb, curl_response_data_s *res)
+{
+ size_t realsize = size * nmemb;
+
+ dlog_print(DLOG_DEBUG, LOG_TAG, "_curl_write_function() size: %d", res->size);
+ res->response = realloc(res->response, res->size + realsize + 1);
+
+ if (res->response == NULL) {
+ dlog_print(DLOG_ERROR, LOG_TAG, "malloc() failed");
+ return 0;
+ }
+ memcpy(res->response+res->size, ptr, realsize);
+ res->size += realsize;
+ res->response[res->size] = '\0';
+
+ dlog_print(DLOG_ERROR, LOG_TAG, "_curl_write_function(): %s", res->response);
+ return realsize;
+}
+
+static void _curl_get_data(int type)
+{
+ CURL *curl;
+ CURLcode error_code;
+ curl_response_data_s res = { .size = 0, .response = NULL };
+ char url[URL_LENGTH_MAX] = {0, };
+ connection_h connection;
+ int conn_err;
+ conn_err = connection_create(&connection);
+ dlog_print(DLOG_DEBUG, LOG_TAG, "curl START!");
+
+ if (conn_err != CONNECTION_ERROR_NONE)
+ {
+ dlog_print(DLOG_ERROR, LOG_TAG, "connection_create ERROR [%d]", conn_err);
+ return;
+ }
+
+ curl = curl_easy_init();
+
+ if (curl) {
+
+ if (type == CURL_GET_WEAHTER) {
+ s_info.curl_weather = curl;
+ } else {
+ s_info.curl_ap = curl;
+ }
+
+ if (type == CURL_GET_WEAHTER) {
+ snprintf(url, sizeof(url), WEAHTER_REST_API_URL, s_info.latitude, s_info.longitude);
+ } else {
+ snprintf(url, sizeof(url), AP_VALUE_REST_API_URL);
+ dlog_print(DLOG_ERROR, LOG_TAG, AP_VALUE_REST_API_URL);
+ }
+
+ curl_easy_setopt(curl, CURLOPT_URL, url);
+ curl_easy_setopt(curl, CURLOPT_WRITEDATA, &res);
+ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _curl_write_function);
+
+ char *proxy_address;
+ conn_err = connection_get_proxy(connection, CONNECTION_ADDRESS_FAMILY_IPV4, &proxy_address);
+
+ if (conn_err == CONNECTION_ERROR_NONE && proxy_address)
+ {
+ curl_easy_setopt(curl, CURLOPT_PROXY, proxy_address);
+ free(proxy_address);
+ }
+ connection_destroy(connection);
+
+ error_code = curl_easy_perform(curl);
+ if (CURLE_OK == error_code) {
+ dlog_print(DLOG_DEBUG, LOG_TAG, "curl_easy_perform OK! [%s]", res.response);
+ weatherwatch_parse_json(type, res.response);
+ } else {
+ dlog_print(DLOG_DEBUG, LOG_TAG, "curl_easy_perform ERROR [%d]", error_code);
+ }
+
+ free(res.response);
+
+ /* always cleanup */
+ curl_easy_cleanup(curl);
+
+ if (type == CURL_GET_WEAHTER) {
+ s_info.curl_weather = NULL;
+ } else {
+ s_info.curl_ap = NULL;
+ }
+ }
+}
+
+void weatherwatch_parse_json(int type, const gchar *str)
+{
+ /* str contains the JSON*/
+ GError *error = NULL;
+ JsonParser *parser = json_parser_new();
+ json_parser_load_from_data(parser, str, -1, &error);
+
+ if (error) {
+ dlog_print(DLOG_DEBUG, LOG_TAG, "parsing failed %s", error->message);
+ g_object_unref(parser);
+ g_error_free(error);
+ return;
+ }
+
+ /* Iterate through root members */
+ JsonNode *current_node = json_parser_get_root(parser);
+
+ if (json_node_get_node_type(current_node) == JSON_NODE_NULL
+ || json_node_get_node_type(current_node) == JSON_NODE_VALUE) {
+ dlog_print(DLOG_DEBUG, LOG_TAG, "not supported root");
+ g_object_unref(parser);
+ return;
+ }
+
+ if (json_node_get_node_type(current_node) == JSON_NODE_OBJECT) {
+ if (type == CURL_GET_WEAHTER) {
+ JsonObject *object;
+ object = json_node_get_object(current_node);
+ current_node = json_object_get_member(object, "list");
+
+ if (json_node_get_node_type(current_node) == JSON_NODE_ARRAY) {
+ JsonArray *array = json_node_get_array(current_node);
+ object = json_array_get_object_element(array, WEATHER_FORCAST_6HOUR_INDEX);
+ current_node = json_object_get_member(object, "weather");
+
+ if (json_node_get_node_type(current_node) == JSON_NODE_ARRAY) {
+ array = json_node_get_array(current_node);
+ object = json_array_get_object_element(array, 0);
+ current_node = json_object_get_member(object, "icon");
+
+ /* Get value of node and check its type */
+ GValue gvalue = { 0, };
+ json_node_get_value(current_node, &gvalue); //need free g_value_unset()
+
+ /* Display value in entry widget */
+ if (json_node_get_value_type(current_node) == G_TYPE_STRING) {
+ const char *value = g_value_get_string(&gvalue);
+
+ dlog_print(DLOG_DEBUG, LOG_TAG, "weather condition string is [%s]", value);
+ _update_weather_data_from_json(value);
+ g_value_unset(&gvalue);
+ } else {
+ dlog_print(DLOG_ERROR, LOG_TAG, "Abort json parsing : Unexpected json data!");
+
+ g_value_unset(&gvalue);
+ g_object_unref (parser);
+ return;
+ }
+ } else {
+ dlog_print(DLOG_ERROR, LOG_TAG, "Abort json parsing : Unexpected json data!");
+ g_object_unref (parser);
+ return;
+ }
+ } else {
+ dlog_print(DLOG_ERROR, LOG_TAG, "Abort json parsing : Unexpected json data!");
+ g_object_unref (parser);
+ return;
+ }
+ } else if (type == CURL_GET_AP_INSPECT_STATION) {
+ if (s_info.dummy < 0)
+ s_info.dummy = 0;
+
+ _set_air_pollution_state((s_info.dummy % 5) * 40);
+
+ s_info.dummy++;
+ } else {
+
+ }
+ }
+
+ g_object_unref (parser);
+}
+
+static void _update_weather_data_from_json(const char *str)
+{
+ if (!strcmp(str, WEATHER_ICON_STR_CLEAR_SKY_DAY)) {
+ s_info.weather.state = WEATHER_STATE_CLEAR_SKY_DAY;
+ } else if (!strcmp(str, WEATHER_ICON_STR_FEW_CLOUDS_DAY)) {
+ s_info.weather.state = WEATHER_STATE_FEW_CLOUDS_DAY;
+ } else if (!strcmp(str, WEATHER_ICON_STR_SCATTERED_CLOUDS_DAY)) {
+ s_info.weather.state = WEATHER_STATE_SCATTERED_CLOUDS_DAY;
+ } else if (!strcmp(str, WEATHER_ICON_STR_BROKEN_CLOUDS_DAY)) {
+ s_info.weather.state = WEATHER_STATE_BROKEN_CLOUDS_DAY;
+ } else if (!strcmp(str, WEATHER_ICON_STR_SHOWER_RAIN_DAY)) {
+ s_info.weather.state = WEATHER_STATE_SHOWER_RAIN_DAY;
+ } else if (!strcmp(str, WEATHER_ICON_STR_RAIN_DAY)) {
+ s_info.weather.state = WEATHER_STATE_RAIN_DAY;
+ } else if (!strcmp(str, WEATHER_ICON_STR_THUNDERSTORM_DAY)) {
+ s_info.weather.state = WEATHER_STATE_THUNDERSTORM_DAY;
+ } else if (!strcmp(str, WEATHER_ICON_STR_SNOW_DAY)) {
+ s_info.weather.state = WEATHER_STATE_SNOW_DAY;
+ } else if (!strcmp(str, WEATHER_ICON_STR_MIST_DAY)) {
+ s_info.weather.state = WEATHER_STATE_MIST_DAY;
+ } else if (!strcmp(str, WEATHER_ICON_STR_CLEAR_SKY_NIGHT)) {
+ s_info.weather.state = WEATHER_STATE_CLEAR_SKY_NIGHT;
+ } else if (!strcmp(str, WEATHER_ICON_STR_FEW_CLOUDS_NIGHT)) {
+ s_info.weather.state = WEATHER_STATE_FEW_CLOUDS_NIGHT;
+ } else if (!strcmp(str, WEATHER_ICON_STR_SCATTERED_CLOUDS_NIGHT)) {
+ s_info.weather.state = WEATHER_STATE_SCATTERED_CLOUDS_NIGHT;
+ } else if (!strcmp(str, WEATHER_ICON_STR_BROKEN_CLOUDS_NIGHT)) {
+ s_info.weather.state = WEATHER_STATE_BROKEN_CLOUDS_NIGHT;
+ } else if (!strcmp(str, WEATHER_ICON_STR_SHOWER_RAIN_NIGHT)) {
+ s_info.weather.state = WEATHER_STATE_SHOWER_RAIN_NIGHT;
+ } else if (!strcmp(str, WEATHER_ICON_STR_RAIN_NIGHT)) {
+ s_info.weather.state = WEATHER_STATE_RAIN_NIGHT;
+ } else if (!strcmp(str, WEATHER_ICON_STR_THUNDERSTORM_NIGHT)) {
+ s_info.weather.state = WEATHER_STATE_THUNDERSTORM_NIGHT;
+ } else if (!strcmp(str, WEATHER_ICON_STR_SNOW_NIGHT)) {
+ s_info.weather.state = WEATHER_STATE_SNOW_NIGHT;
+ } else if (!strcmp(str, WEATHER_ICON_STR_MIST_NIGHT)) {
+ s_info.weather.state = WEATHER_STATE_MIST_NIGHT;
+ } else {
+ dlog_print(DLOG_ERROR, LOG_TAG, "Abort _update_weather_data_from_json : Unexpected string!");
+ return;
+ }
+// s_info.weather.updated_time = _get_current_system_monotonic_time();
+ dlog_print(DLOG_DEBUG, LOG_TAG, "_update_weather_data_from_json : updated time [%lld], type [%d]", s_info.weather.updated_time, s_info.weather.state);
+ _set_weather_state(s_info.weather.state);
+}
diff --git a/project/src/view.c b/src/view.c
index 8b3e7d6..eeec205 100755
--- a/project/src/view.c
+++ b/src/view.c
@@ -19,7 +19,7 @@
#include <app.h>
#include <dlog.h>
-#include "$(appName).h"
+#include "weatherclock.h"
#include "view.h"
static struct view_info {
@@ -56,7 +56,7 @@ void view_set_indicator_module_layout(Evas_Object *layout, int type)
}
if (type == INDICATOR_MODULE_BATTERY) {
- s_info.battery_module_layout = layout;
+ s_info.battery_module_layout = layout;
} else {
s_info.ap_module_layout = layout;
}
diff --git a/tizen-manifest.xml b/tizen-manifest.xml
new file mode 100755
index 0000000..9523b87
--- /dev/null
+++ b/tizen-manifest.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.3.1" package="org.example.weatherclock" version="1.0.0">
+ <profile name="wearable"/>
+ <watch-application ambient-support="true" appid="org.example.weatherclock" exec="weatherclock">
+ <label>Weather Clock</label>
+ <icon>weatherclock.png</icon>
+ </watch-application>
+ <privileges>
+ <privilege>http://tizen.org/privilege/network.get</privilege>
+ <privilege>http://tizen.org/privilege/location</privilege>
+ <privilege>http://tizen.org/privilege/internet</privilege>
+ </privileges>
+</manifest>