Fix for the grammar and feedbacks 82/64082/10
authorJeong Seong-moon <salt.jeong@samsung.com>
Wed, 30 Mar 2016 02:33:28 +0000 (11:33 +0900)
committerJeong Seong-moon <salt.jeong@samsung.com>
Thu, 31 Mar 2016 06:14:03 +0000 (15:14 +0900)
Change-Id: I9a412a167b18960871a34716ee9b4f8544c492f6

63 files changed:
README [new file with mode: 0644]
rule/mobile/project/inc/data.h [changed mode: 0644->0755]
rule/mobile/project/inc/data.h.tccr [changed mode: 0644->0755]
rule/mobile/project/inc/main.h [changed mode: 0644->0755]
rule/mobile/project/inc/main.h.tccr [changed mode: 0644->0755]
rule/mobile/project/inc/view.h [changed mode: 0644->0755]
rule/mobile/project/inc/view.h.tccr [changed mode: 0644->0755]
rule/mobile/project/shared/res/icon.png [changed mode: 0644->0755]
rule/mobile/project/src/data.c [changed mode: 0644->0755]
rule/mobile/project/src/data.c.tccr [changed mode: 0644->0755]
rule/mobile/project/src/main.c [changed mode: 0644->0755]
rule/mobile/project/src/main.c.tccr [changed mode: 0644->0755]
rule/mobile/project/src/view.c [changed mode: 0644->0755]
rule/mobile/project/src/view.c.tccr [changed mode: 0644->0755]
rule/mobile/project/tizen-manifest.xml [new file with mode: 0755]
rule/mobile/project/tizen-manifest.xml.tccr [new file with mode: 0755]
rule/mobile/sample.xml [changed mode: 0644->0755]
rule/mobile/screenshot.png [changed mode: 0644->0755]
rule/service/project/inc/data.h [changed mode: 0644->0755]
rule/service/project/inc/data.h.tccr [changed mode: 0644->0755]
rule/service/project/inc/main.h [changed mode: 0644->0755]
rule/service/project/inc/main.h.tccr [changed mode: 0644->0755]
rule/service/project/src/data.c [changed mode: 0644->0755]
rule/service/project/src/data.c.tccr [changed mode: 0644->0755]
rule/service/project/src/main.c [changed mode: 0644->0755]
rule/service/project/src/main.c.tccr [changed mode: 0644->0755]
rule/service/project/tizen-manifest.xml [new file with mode: 0755]
rule/service/project/tizen-manifest.xml.tccr [new file with mode: 0755]
rule/watchface/project/inc/data.h [changed mode: 0644->0755]
rule/watchface/project/inc/data.h.tccr [changed mode: 0644->0755]
rule/watchface/project/inc/main.h [changed mode: 0644->0755]
rule/watchface/project/inc/main.h.tccr [changed mode: 0644->0755]
rule/watchface/project/inc/view.h [changed mode: 0644->0755]
rule/watchface/project/inc/view.h.tccr [changed mode: 0644->0755]
rule/watchface/project/shared/res/icon.png [changed mode: 0644->0755]
rule/watchface/project/src/data.c [changed mode: 0644->0755]
rule/watchface/project/src/data.c.tccr [changed mode: 0644->0755]
rule/watchface/project/src/main.c [changed mode: 0644->0755]
rule/watchface/project/src/main.c.tccr [changed mode: 0644->0755]
rule/watchface/project/src/view.c [changed mode: 0644->0755]
rule/watchface/project/src/view.c.tccr [changed mode: 0644->0755]
rule/watchface/project/tizen-manifest.xml [new file with mode: 0755]
rule/watchface/project/tizen-manifest.xml.tccr [new file with mode: 0755]
rule/watchface/sample.xml [changed mode: 0644->0755]
rule/watchface/screenshot.png [changed mode: 0644->0755]
rule/wearable/description.xml [changed mode: 0644->0755]
rule/wearable/project/inc/data.h [changed mode: 0644->0755]
rule/wearable/project/inc/data.h.tccr [changed mode: 0644->0755]
rule/wearable/project/inc/main.h [changed mode: 0644->0755]
rule/wearable/project/inc/main.h.tccr [changed mode: 0644->0755]
rule/wearable/project/inc/view.h [changed mode: 0644->0755]
rule/wearable/project/inc/view.h.tccr [changed mode: 0644->0755]
rule/wearable/project/shared/res/icon.png [changed mode: 0644->0755]
rule/wearable/project/src/data.c [changed mode: 0644->0755]
rule/wearable/project/src/data.c.tccr [changed mode: 0644->0755]
rule/wearable/project/src/main.c [changed mode: 0644->0755]
rule/wearable/project/src/main.c.tccr [changed mode: 0644->0755]
rule/wearable/project/src/view.c [changed mode: 0644->0755]
rule/wearable/project/src/view.c.tccr [changed mode: 0644->0755]
rule/wearable/project/tizen-manifest.xml [new file with mode: 0755]
rule/wearable/project/tizen-manifest.xml.tccr [new file with mode: 0755]
rule/wearable/sample.xml [changed mode: 0644->0755]
rule/wearable/screenshot.png [changed mode: 0644->0755]

diff --git a/README b/README
new file mode 100644 (file)
index 0000000..d1fffc6
--- /dev/null
+++ b/README
@@ -0,0 +1,21 @@
+Tizen Native Sample Template
+================================================================
+
+This template project is made by Tizen application part(contact : salt.jeong@samsung.com) for checking the consistency of Tizen public sample application.
+All native samples should be verified using this template project. If you require any further information, check below sample develpement process guide.
+
+#Sample App Development Guide
+http://mosaic.sec.samsung.net/club/club.menu.bbs.read.screen?p_club_id=21406&p_menu_id=12&message_id=4794605
+
+#Online Sample Release Process
+http://mosaic.sec.samsung.net/club/club.menu.bbs.read.screen?p_club_id=21406&p_menu_id=12&message_id=4798282
+
+The purpose of this template is that helps developers to easily understand sample project structure and behaviour.
+So project consists of main.c/.h, data.c/.h, view.c/.h and madatory files(.xml).
+
+It is follow the MVC style which is commonly used, but following the MVC model is not required.
+It is just for intuitive understanding of developers. If need be, add more files and folders.
+
+main.c/.h - Introduces main functions related with application start/end. Always developers try to find it easily.
+view.c/.h - Includes implementations related with view and layout.
+data.c/.h - Includes implementations about application's data.
old mode 100644 (file)
new mode 100755 (executable)
index 38fe80f..05079c0
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #define _DATA_H
 
 /*
- * Initialize the data component
+ * Initialize the data component.
  */
 void data_initialize(void);
 
 /*
- * Finalize the data component
+ * Finalize the data component.
  */
 void data_finalize(void);
 
old mode 100644 (file)
new mode 100755 (executable)
index 55a3a85..1cba82a
@@ -1,30 +1,30 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
-  * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
* Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 |R| #if !defined(_DATA_H)
 |R| #define _DATA_H
 
-|R| /*
-|R|  * Initialize the data component
-|R|  */
-|R| void data_initialize(void);
+/*
+ * Initialize the data component.
+ */
+void data_initialize(void);
 
-|R| /*
-|R|  * Finalize the data component
-|R|  */
-|R| void data_finalize(void);
+/*
+ * Finalize the data component.
+ */
+void data_finalize(void);
 
 |R| #endif
old mode 100644 (file)
new mode 100755 (executable)
index b96d8e5..0a3c03b
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
old mode 100644 (file)
new mode 100755 (executable)
index da383af..6856e90
@@ -1,18 +1,18 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
-  * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
* Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 #if !defined(_$(appNameUpper)_H_)
 #define _$(appNameUpper)_H_
old mode 100644 (file)
new mode 100755 (executable)
index 613e1c7..93f2567
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #if !defined(_VIEW_H)
 #define _VIEW_H
 
-#define GRP_MAIN "main"
-
-/*
- * Create a view
- */
-void view_create(void);
+Eina_Bool view_create(void);
 Evas_Object *view_create_win(const char *pkg_name);
 Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, const char *group_name, Eext_Event_Cb cb_function, void *user_data);
+Evas_Object *view_create_conformant_without_indicator(Evas_Object *win);
 void view_destroy(void);
 void view_destroy_layout(Evas_Object *layout);
 
old mode 100644 (file)
new mode 100755 (executable)
index 5ae8f02..3020b1c
@@ -1,30 +1,26 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
-  * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
* Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 |R| #if !defined(_VIEW_H)
 |R| #define _VIEW_H
 
-#define GRP_MAIN "main"
-
-/*
- * Create a view
- */
-|R| void view_create(void);
+|R| Eina_Bool view_create(void);
 Evas_Object *view_create_win(const char *pkg_name);
 Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, const char *group_name, Eext_Event_Cb cb_function, void *user_data);
+Evas_Object *view_create_conformant_without_indicator(Evas_Object *win);
 void view_destroy(void);
 void view_destroy_layout(Evas_Object *layout);
 
old mode 100644 (file)
new mode 100755 (executable)
index e69de29..9765b1b
Binary files a/rule/mobile/project/shared/res/icon.png and b/rule/mobile/project/shared/res/icon.png differ
old mode 100644 (file)
new mode 100755 (executable)
index a2f23e2..3c4b305
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
+/**
+ * @brief Initialization function for data module.
+ */
 void data_initialize(void)
 {
        /*
-        * If you need to initialize managing data,
+        * If you need to initialize application data,
         * please use this function.
         */
 }
 
+/**
+ * @brief Finalization function for data module.
+ */
 void data_finalize(void)
 {
        /*
-        * If you need to finalize managing data,
+        * If you need to finalize application data,
         * please use this function.
         */
 }
old mode 100644 (file)
new mode 100755 (executable)
index ba4bbd9..f70def5
@@ -1,11 +1,11 @@
  /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
-|R| void data_initialize(void)
-|R| {
+/**
+ * @brief Initialization function for data module.
+ */
+void data_initialize(void)
+{
        /*
-        * If you need to initialize managing data,
+        * If you need to initialize application data,
         * please use this function.
         */
-|R| }
+}
 
-|R| void data_finalize(void)
-|R| {
+/**
+ * @brief Finalization function for data module.
+ */
+void data_finalize(void)
+{
        /*
-        * If you need to finalize managing data,
+        * If you need to finalize application data,
         * please use this function.
         */
-|R| }
+}
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index a79fe70..848839c
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
+#include <app.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <efl_extension.h>
+#include <dlog.h>
+
 #include "$(appName).h"
 #include "view.h"
 #include "data.h"
 
-/*
- * @brief Hook to take necessary actions before main event loop starts
- * Initialize UI resources and application's data
- * If this function returns true, the main loop of application starts
- * If this function returns false, the application is terminated
+/**
+ * @brief Hook to take necessary actions before main event loop starts.
+ * Initialize UI resources and application's data.
+ * If this function returns true, the main loop of application starts.
+ * If this function returns false, the application is terminated.
  */
 static bool app_create(void *user_data)
 {
        return true;
 }
 
-/*
+/**
  * @brief This callback function is called when another application
- * sends the launch request to the application
+ * sends a launch request to the application.
  */
 static void app_control(app_control_h app_control, void *user_data)
 {
        /* Handle the launch request. */
 }
 
-/*
+/**
  * @brief This callback function is called each time
  * the application is completely obscured by another application
- * and becomes invisible to the user
+ * and becomes invisible to the user.
  */
 static void app_pause(void *user_data)
 {
        /* Take necessary actions when application becomes invisible. */
 }
 
-/*
+/**
  * @brief This callback function is called each time
- * the application becomes visible to the user
+ * the application becomes visible to the user.
  */
 static void app_resume(void *user_data)
 {
        /* Take necessary actions when application becomes visible. */
 }
 
-/*
- * @brief This callback function is called once after the main loop of the application exits
+/**
+ * @brief This callback function is called once after the main loop of the application exits.
  */
 static void app_terminate(void *user_data)
 {
        /* Release all resources. */
 }
 
-/*
- * @brief This function will be called when the language is changed
+/**
+ * @brief This function will be called when the language is changed.
  */
 static void ui_app_lang_changed(app_event_info_h event_info, void *user_data)
 {
-       /*APP_EVENT_LANGUAGE_CHANGED*/
+       /* APP_EVENT_LANGUAGE_CHANGED */
        char *locale = NULL;
 
        system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
@@ -82,8 +88,8 @@ static void ui_app_lang_changed(app_event_info_h event_info, void *user_data)
        return;
 }
 
-/*
- * @brief Main function of the application
+/**
+ * @brief Main function of the application.
  */
 int main(int argc, char *argv[])
 {
@@ -99,14 +105,14 @@ int main(int argc, char *argv[])
        event_callback.app_control = app_control;
 
        /*
-        * If you want to handling more events,
-        * Please check the application lifecycle guide
+        * If you want to handle more events,
+        * please check the application lifecycle guide.
         */
        ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, NULL);
 
        ret = ui_app_main(argc, argv, &event_callback, NULL);
        if (ret != APP_ERROR_NONE)
-               dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() is failed. err = %d", ret);
+               dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() failed. err = %d", ret);
 
        return ret;
 }
old mode 100644 (file)
new mode 100755 (executable)
index 97f919f..56be9c8
@@ -1,89 +1,95 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
-  *
-  * Licensed under the Apache License, Version 2.0 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  * http://www.apache.org/licenses/LICENSE-2.0
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <efl_extension.h>
+#include <dlog.h>
 
 |R| #include "$(appName).h"
 #include "view.h"
 #include "data.h"
 
-/*
- * @brief Hook to take necessary actions before main event loop starts
- * Initialize UI resources and application's data
- * If this function returns true, the main loop of application starts
- * If this function returns false, the application is terminated
+/**
+ * @brief Hook to take necessary actions before main event loop starts.
+ * Initialize UI resources and application's data.
+ * If this function returns true, the main loop of application starts.
+ * If this function returns false, the application is terminated.
  */
 |R| static bool app_create(void *user_data)
 |R| {
        return true;
 |R| }
 
-/*
+/**
  * @brief This callback function is called when another application
- * sends the launch request to the application
+ * sends a launch request to the application.
  */
 |R| static void app_control(app_control_h app_control, void *user_data)
 |R| {
        /* Handle the launch request. */
 |R| }
 
-/*
+/**
  * @brief This callback function is called each time
  * the application is completely obscured by another application
- * and becomes invisible to the user
+ * and becomes invisible to the user.
  */
 |R| static void app_pause(void *user_data)
 |R| {
        /* Take necessary actions when application becomes invisible. */
 |R| }
 
-/*
+/**
  * @brief This callback function is called each time
- * the application becomes visible to the user
+ * the application becomes visible to the user.
  */
 |R| static void app_resume(void *user_data)
 |R| {
        /* Take necessary actions when application becomes visible. */
 |R| }
 
-/*
- * @brief This callback function is called once after the main loop of the application exits
+/**
+ * @brief This callback function is called once after the main loop of the application exits.
  */
 |R| static void app_terminate(void *user_data)
 |R| {
        /* Release all resources. */
 |R| }
 
-/*
- * @brief This function will be called when the language is changed
+/**
+ * @brief This function will be called when the language is changed.
  */
-|R| static void ui_app_lang_changed(app_event_info_h event_info, void *user_data)
-|R| {
-       /*APP_EVENT_LANGUAGE_CHANGED*/
-|R|    char *locale = NULL;
+static void ui_app_lang_changed(app_event_info_h event_info, void *user_data)
+{
+       /* APP_EVENT_LANGUAGE_CHANGED */
+       char *locale = NULL;
 
-|R|    system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+       system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
 
-|R|    if (locale != NULL) {
-|R|            elm_language_set(locale);
-|R|            free(locale);
-|R|    }
-|R|    return;
-|R| }
+       if (locale != NULL) {
+               elm_language_set(locale);
+               free(locale);
+       }
+       return;
+}
 
-/*
- * @brief Main function of the application
+/**
+ * @brief Main function of the application.
  */
 |R| int main(int argc, char *argv[])
 |R| {
 |R|    event_callback.resume = app_resume;
 |R|    event_callback.app_control = app_control;
 
-|R|    /*
-|R|     * If you want to handling more events,
-|R|     * Please check the application lifecycle guide
-|R|     */
+       /*
+        * If you want to handle more events,
+        * please check the application lifecycle guide.
+        */
        ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, NULL);
 
 |R|    ret = ui_app_main(argc, argv, &event_callback, NULL);
 |R|    if (ret != APP_ERROR_NONE)
-       dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() is failed. err = %d", ret);
+               dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() failed. err = %d", ret);
 
 |R|    return ret;
 |R| }
old mode 100644 (file)
new mode 100755 (executable)
index eb8e783..0aa7361
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
+#include <tizen.h>
+#include <dlog.h>
+#include <app.h>
+#include <efl_extension.h>
+#include <Elementary.h>
+
+#include "$(appName).h"
+#include "view.h"
+
 static struct view_info {
        Evas_Object *win;
        Evas_Object *conform;
@@ -22,31 +31,34 @@ static struct view_info {
        .conform = NULL,
 };
 
-/*
- * @brief Create Essential Object window, conformant and layout
+static void _dummy_callback_cb(void *data, Evas_Object *obj, void *event_info);
+
+/**
+ * @brief Creates essential objects: window, conformant and layout.
  */
-void view_create(void)
+Eina_Bool view_create(void)
 {
-       /* Create window */
+       /* Create the window */
        s_info.win = view_create_win(PACKAGE);
        if (s_info.win == NULL) {
                dlog_print(DLOG_ERROR, LOG_TAG, "failed to create a window.");
-               return;
+               return EINA_FALSE;
        }
 
-       /* Create conformant */
+       /* Create the conformant */
        s_info.conform = view_create_conformant_without_indicator(s_info.win);
        if (s_info.conform == NULL) {
                dlog_print(DLOG_ERROR, LOG_TAG, "failed to create a conformant");
-               return;
+               return EINA_FALSE;
        }
 
-       /* Show window after main view is set up */
+       /* Show the window after main view is set up */
        evas_object_show(s_info.win);
+       return EINA_TRUE;
 }
 
-/*
- * @brief Make a basic window named package
+/**
+ * @brief Creates a basic window named package.
  * @param[in] pkg_name Name of the window
  */
 Evas_Object *view_create_win(const char *pkg_name)
@@ -56,7 +68,7 @@ Evas_Object *view_create_win(const char *pkg_name)
        /*
         * Window
         * Create and initialize elm_win.
-        * elm_win is mandatory to manipulate window
+        * elm_win is mandatory to manipulate the window.
         */
        win = elm_win_util_standard_add(pkg_name, pkg_name);
        elm_win_conformant_set(win, EINA_TRUE);
@@ -68,13 +80,13 @@ Evas_Object *view_create_win(const char *pkg_name)
                elm_win_wm_rotation_available_rotations_set(win, (const int *)(&rots), 4);
        }
 
-       evas_object_smart_callback_add(win, "delete,request", _win_delete_request_cb, NULL);
+       evas_object_smart_callback_add(win, "delete,request", _dummy_callback_cb, NULL);
 
        return win;
 }
 
-/*
- * @brief Make a layout to target parent object with edje file
+/**
+ * @brief Creates a layout to target parent object with edje file
  * @param[in] parent The object to which you want to add this layout
  * @param[in] file_path File path of EDJ file will be used
  * @param[in] group_name Name of group in EDJ you want to set to
@@ -90,7 +102,7 @@ Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, cons
                return NULL;
        }
 
-       /* Create layout by EDC(edje file) */
+       /* Create layout using EDC(an edje file) */
        layout = elm_layout_add(parent);
        elm_layout_file_set(layout, file_path, group_name);
 
@@ -105,8 +117,37 @@ Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, cons
        return layout;
 }
 
-/*
- * @brief Destroy window and free important data to finish this application
+/**
+ * @brief Creates a conformant without indicator for wearable app.
+ * @param[in] win The object to which you want to set this conformant
+ * Conformant is mandatory for base GUI to have proper size
+ */
+Evas_Object *view_create_conformant_without_indicator(Evas_Object *win)
+{
+       /*
+        * Conformant
+        * Create and initialize elm_conformant.
+        * elm_conformant is mandatory for base GUI to have proper size
+        * when indicator or virtual keypad is visible.
+        */
+       Evas_Object *conform = NULL;
+
+       if (win == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "window is NULL.");
+               return NULL;
+       }
+
+       conform = elm_conformant_add(win);
+       evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(win, conform);
+
+       evas_object_show(conform);
+
+       return conform;
+}
+
+/**
+ * @brief Destroys window and frees its resources.
  */
 void view_destroy(void)
 {
@@ -116,11 +157,24 @@ void view_destroy(void)
        evas_object_del(s_info.win);
 }
 
-/*
- * @brief Destroy given layout
- * @param[in] layout The layout you want to destroy
+/**
+ * @brief Destroys given layout.
+ * @param[in] layout The layout to destroy
  */
 void view_destroy_layout(Evas_Object *layout)
 {
        evas_object_del(layout);
 }
+
+/**
+ * @brief Function will be operated when registered event is triggered.
+ * @param[in] data The data to be passed to the callback function
+ * @param[in] obj The Evas object handle to be passed to the callback function
+ * @param[in] event_info The system event information
+ */
+static void _dummy_callback_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       /*
+        * Write your code here for smart callback.
+        */
+}
old mode 100644 (file)
new mode 100755 (executable)
index d0c80b6..eb6457b
@@ -1,18 +1,27 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
-  *
-  * Licensed under the Apache License, Version 2.0 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  * http://www.apache.org/licenses/LICENSE-2.0
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <tizen.h>
+#include <dlog.h>
+#include <app.h>
+#include <efl_extension.h>
+#include <Elementary.h>
+
+#include "$(appName).h"
+#include "view.h"
 
 |R| static struct view_info {
 |R|            Evas_Object *win;
 |R|            .conform = NULL,
 |R| };
 
-|R| /*
-|R|  * @brief Create Essential Object window, conformant and layout
-|R|  */
-|R| void view_create(void)
+static void _dummy_callback_cb(void *data, Evas_Object *obj, void *event_info);
+
+/**
+ * @brief Creates essential objects: window, conformant and layout.
+ */
+|R| Eina_Bool view_create(void)
 |R| {
-|R|    /* Create window */
+       /* Create the window */
 |R|    s_info.win = view_create_win(PACKAGE);
 |R|    if (s_info.win == NULL) {
 |R|            dlog_print(DLOG_ERROR, LOG_TAG, "failed to create a window.");
-|R|            return;
+|R|            return EINA_FALSE;
 |R|    }
 
-       /* Create conformant */
+       /* Create the conformant */
        s_info.conform = view_create_conformant_without_indicator(s_info.win);
        if (s_info.conform == NULL) {
                dlog_print(DLOG_ERROR, LOG_TAG, "failed to create a conformant");
-               return;
+               return EINA_FALSE;
        }
 
-|R|    /* Show window after main view is set up */
+       /* Show the window after main view is set up */
 |R|    evas_object_show(s_info.win);
+|R|    return EINA_TRUE;
 |R| }
 
-/*
- * @brief Make a basic window named package
+/**
+ * @brief Creates a basic window named package
  * @param[in] pkg_name Name of the window
  */
 Evas_Object *view_create_win(const char *pkg_name)
@@ -56,7 +68,7 @@ Evas_Object *view_create_win(const char *pkg_name)
        /*
         * Window
         * Create and initialize elm_win.
-        * elm_win is mandatory to manipulate window
+        * elm_win is mandatory to manipulate the window.
         */
        win = elm_win_util_standard_add(pkg_name, pkg_name);
        elm_win_conformant_set(win, EINA_TRUE);
@@ -68,13 +80,13 @@ Evas_Object *view_create_win(const char *pkg_name)
                elm_win_wm_rotation_available_rotations_set(win, (const int *)(&rots), 4);
        }
 
-       evas_object_smart_callback_add(win, "delete,request", _win_delete_request_cb, NULL);
+       evas_object_smart_callback_add(win, "delete,request", _dummy_callback_cb, NULL);
 
        return win;
 }
 
-/*
- * @brief Make a layout to target parent object with edje file
+/**
+ * @brief Creates a layout to target parent object with edje file
  * @param[in] parent The object to which you want to add this layout
  * @param[in] file_path File path of EDJ file will be used
  * @param[in] group_name Name of group in EDJ you want to set to
@@ -90,7 +102,7 @@ Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, cons
                return NULL;
        }
 
-       /* Create layout by EDC(edje file) */
+       /* Create layout using EDC(an edje file) */
        layout = elm_layout_add(parent);
        elm_layout_file_set(layout, file_path, group_name);
 
@@ -105,9 +117,38 @@ Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, cons
        return layout;
 }
 
-|R| /*
-|R|  * @brief Destroy window and free important data to finish this application
-|R|  */
+/**
+ * @brief Creates a conformant without indicator for wearable app.
+ * @param[in] win The object to which you want to set this conformant
+ * Conformant is mandatory for base GUI to have proper size
+ */
+Evas_Object *view_create_conformant_without_indicator(Evas_Object *win)
+{
+       /*
+        * Conformant
+        * Create and initialize elm_conformant.
+        * elm_conformant is mandatory for base GUI to have proper size
+        * when indicator or virtual keypad is visible.
+        */
+       Evas_Object *conform = NULL;
+
+       if (win == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "window is NULL.");
+               return NULL;
+       }
+
+       conform = elm_conformant_add(win);
+       evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(win, conform);
+
+       evas_object_show(conform);
+
+       return conform;
+}
+
+/**
+ * @brief Destroys window and frees its resources.
+ */
 |R| void view_destroy(void)
 |R| {
 |R|    if (s_info.win == NULL)
@@ -116,11 +157,24 @@ Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, cons
 |R|    evas_object_del(s_info.win);
 |R| }
 
-/*
- * @brief Destroy given layout
- * @param[in] layout The layout you want to destroy
+/**
+ * @brief Destroys given layout.
+ * @param[in] layout The layout to destroy
  */
 void view_destroy_layout(Evas_Object *layout)
 {
        evas_object_del(layout);
 }
+
+/**
+ * @brief Function will be operated when registered event is triggered.
+ * @param[in] data The data to be passed to the callback function
+ * @param[in] obj The Evas object handle to be passed to the callback function
+ * @param[in] event_info The system event information
+ */
+static void _dummy_callback_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       /*
+        * Write your code here for smart callback.
+        */
+}
diff --git a/rule/mobile/project/tizen-manifest.xml b/rule/mobile/project/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..fe26541
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.4" package="org.example.$(appName)" version="1.0.0">
+       <profile name="mobile" />
+       <ui-application appid="org.example.$(appName)" exec="$(appName)" type="capp" multiple="false" taskmanage="true" nodisplay="false">
+               <icon>$(appName).png</icon>
+               <label>$(appName)</label>
+       </ui-application>
+</manifest>
\ No newline at end of file
diff --git a/rule/mobile/project/tizen-manifest.xml.tccr b/rule/mobile/project/tizen-manifest.xml.tccr
new file mode 100755 (executable)
index 0000000..fe26541
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.4" package="org.example.$(appName)" version="1.0.0">
+       <profile name="mobile" />
+       <ui-application appid="org.example.$(appName)" exec="$(appName)" type="capp" multiple="false" taskmanage="true" nodisplay="false">
+               <icon>$(appName).png</icon>
+               <label>$(appName)</label>
+       </ui-application>
+</manifest>
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index 5c1b5f3..7c7acdd
                                <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"/>
old mode 100644 (file)
new mode 100755 (executable)
index e69de29..9765b1b
Binary files a/rule/mobile/screenshot.png and b/rule/mobile/screenshot.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 38fe80f..8813ce5
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
old mode 100644 (file)
new mode 100755 (executable)
index 55a3a85..7c84d36
@@ -1,30 +1,30 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
-  * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
* Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 |R| #if !defined(_DATA_H)
 |R| #define _DATA_H
 
-|R| /*
-|R|  * Initialize the data component
-|R|  */
-|R| void data_initialize(void);
+/*
+ * Initialize the data component
+ */
+void data_initialize(void);
 
-|R| /*
-|R|  * Finalize the data component
-|R|  */
-|R| void data_finalize(void);
+/*
+ * Finalize the data component
+ */
+void data_finalize(void);
 
 |R| #endif
old mode 100644 (file)
new mode 100755 (executable)
index b96d8e5..0a3c03b
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
old mode 100644 (file)
new mode 100755 (executable)
index da383af..6856e90
@@ -1,18 +1,18 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
-  * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
* Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 #if !defined(_$(appNameUpper)_H_)
 #define _$(appNameUpper)_H_
old mode 100644 (file)
new mode 100755 (executable)
index a2f23e2..3c4b305
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
+/**
+ * @brief Initialization function for data module.
+ */
 void data_initialize(void)
 {
        /*
-        * If you need to initialize managing data,
+        * If you need to initialize application data,
         * please use this function.
         */
 }
 
+/**
+ * @brief Finalization function for data module.
+ */
 void data_finalize(void)
 {
        /*
-        * If you need to finalize managing data,
+        * If you need to finalize application data,
         * please use this function.
         */
 }
old mode 100644 (file)
new mode 100755 (executable)
index ba4bbd9..f70def5
@@ -1,11 +1,11 @@
  /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
-|R| void data_initialize(void)
-|R| {
+/**
+ * @brief Initialization function for data module.
+ */
+void data_initialize(void)
+{
        /*
-        * If you need to initialize managing data,
+        * If you need to initialize application data,
         * please use this function.
         */
-|R| }
+}
 
-|R| void data_finalize(void)
-|R| {
+/**
+ * @brief Finalization function for data module.
+ */
+void data_finalize(void)
+{
        /*
-        * If you need to finalize managing data,
+        * If you need to finalize application data,
         * please use this function.
         */
-|R| }
+}
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index 875bac9..9434d82
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #include <service_app.h>
 #include <system_settings.h>
 #include <Elementary.h>
+#include <dlog.h>
 #include "$(appName).h"
 #include "data.h"
 
-/*
- * @brief Hook to take necessary actions before main event loop starts
+/**
+ * @brief Hook to take necessary actions before main event loop starts.
  * Initialize the service's data.
  * If this function returns true, the main loop of the sertvice starts.
  * If this function returns false, the service is terminated.
@@ -31,8 +32,8 @@ static bool app_create(void *user_data)
        return true;
 }
 
-/*
- * @brief This callback function is called when another application
+/**
+ * @brief This callback function is called when another application.
  * sends the launch request to the service.
  */
 static void app_control(app_control_h app_control, void *user_data)
@@ -40,8 +41,8 @@ static void app_control(app_control_h app_control, void *user_data)
        /* Handle the launch request. */
 }
 
-/*
- * @brief This callback function is called once after the main loop
+/**
+ * @brief This callback function is called once after the main loop.
  * of the service exits.
  */
 static void app_terminate(void *user_data)
@@ -49,7 +50,7 @@ static void app_terminate(void *user_data)
        /* Release all resources. */
 }
 
-/*
+/**
  * @brief This function will be called when the language is changed.
  */
 static void service_lang_changed(app_event_info_h event_info, void *user_data)
@@ -65,7 +66,7 @@ static void service_lang_changed(app_event_info_h event_info, void *user_data)
        return;
 }
 
-/*
+/**
  * @brief Main function of the service.
  */
 int main(int argc, char *argv[])
@@ -81,7 +82,7 @@ int main(int argc, char *argv[])
 
        /*
         * If you want to handling more events,
-        * Please check the service's lifecycle guide.
+        * please check the service's lifecycle guide.
         */
        service_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, service_lang_changed, NULL);
 
old mode 100644 (file)
new mode 100755 (executable)
index b979861..167b7b3
@@ -1,27 +1,28 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
-  * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
* Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 |R| #include <service_app.h>
 #include <system_settings.h>
 #include <Elementary.h>
+#include <dlog.h>
 |R| #include "$(appName).h"
 #include "data.h"
 
-/*
- * @brief Hook to take necessary actions before main event loop starts
+/**
+ * @brief Hook to take necessary actions before main event loop starts.
  * Initialize the service's data.
  * If this function returns true, the main loop of the sertvice starts.
  * If this function returns false, the service is terminated.
@@ -31,8 +32,8 @@
        return true;
 |R| }
 
-/*
- * @brief This callback function is called when another application
+/**
+ * @brief This callback function is called when another application.
  * sends the launch request to the service.
  */
 |R| static void srv_control(app_control_h app_control, void *user_data)
@@ -40,8 +41,8 @@
        /* Handle the launch request. */
 |R| }
 
-/*
- * @brief This callback function is called once after the main loop
+/**
+ * @brief This callback function is called once after the main loop.
  * of the service exits.
  */
 |R| static void srv_terminate(void *user_data)
@@ -49,7 +50,7 @@
        /* Release all resources. */
 |R| }
 
-/*
+/**
  * @brief This function will be called when the language is changed.
  */
 static void srv_lang_changed(app_event_info_h event_info, void *user_data)
@@ -65,7 +66,7 @@ static void srv_lang_changed(app_event_info_h event_info, void *user_data)
        return;
 }
 
-/*
+/**
  * @brief Main function of the service.
  */
 |R| int main(int argc, char *argv[])
@@ -79,10 +80,10 @@ static void srv_lang_changed(app_event_info_h event_info, void *user_data)
 |R| event_callback.terminate = srv_terminate;
 |R| event_callback.app_control = srv_control;
 
-|R| /*
-|R|  * If you want to handling more events,
-|R|  * Please check the service's lifecycle guide.
-|R|  */
+/*
+ * If you want to handling more events,
+ * please check the service's lifecycle guide.
+ */
        service_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, srv_lang_changed, NULL);
 
 |R| ret = service_app_main(argc, argv, &event_callback, NULL);
diff --git a/rule/service/project/tizen-manifest.xml b/rule/service/project/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..ff20996
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.3.1" package="org.example.$(appName)" version="1.0.0">
+  <profile name="wearable" />
+  <service-application appid="org.example.$(appName)" exec="$(appName)" type="capp" multiple="false" taskmanage="false" nodisplay="true">
+      <icon>$(appName).png</icon>
+      <label>$(appName)</label>
+       </service-application>
+</manifest>
diff --git a/rule/service/project/tizen-manifest.xml.tccr b/rule/service/project/tizen-manifest.xml.tccr
new file mode 100755 (executable)
index 0000000..ff20996
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.3.1" package="org.example.$(appName)" version="1.0.0">
+  <profile name="wearable" />
+  <service-application appid="org.example.$(appName)" exec="$(appName)" type="capp" multiple="false" taskmanage="false" nodisplay="true">
+      <icon>$(appName).png</icon>
+      <label>$(appName)</label>
+       </service-application>
+</manifest>
old mode 100644 (file)
new mode 100755 (executable)
index 38fe80f..05079c0
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #define _DATA_H
 
 /*
- * Initialize the data component
+ * Initialize the data component.
  */
 void data_initialize(void);
 
 /*
- * Finalize the data component
+ * Finalize the data component.
  */
 void data_finalize(void);
 
old mode 100644 (file)
new mode 100755 (executable)
index 55a3a85..1cba82a
@@ -1,30 +1,30 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
-  * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
* Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 |R| #if !defined(_DATA_H)
 |R| #define _DATA_H
 
-|R| /*
-|R|  * Initialize the data component
-|R|  */
-|R| void data_initialize(void);
+/*
+ * Initialize the data component.
+ */
+void data_initialize(void);
 
-|R| /*
-|R|  * Finalize the data component
-|R|  */
-|R| void data_finalize(void);
+/*
+ * Finalize the data component.
+ */
+void data_finalize(void);
 
 |R| #endif
old mode 100644 (file)
new mode 100755 (executable)
index b96d8e5..0a3c03b
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
old mode 100644 (file)
new mode 100755 (executable)
index da383af..6856e90
@@ -1,18 +1,18 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
-  * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
* Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 #if !defined(_$(appNameUpper)_H_)
 #define _$(appNameUpper)_H_
old mode 100644 (file)
new mode 100755 (executable)
index 0bee66a..179f0f0
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
old mode 100644 (file)
new mode 100755 (executable)
index 7838e1e..12ea7d7
@@ -1,18 +1,18 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
-  * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
* Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 |R| #if !defined(_VIEW_H)
 |R| #define _VIEW_H
old mode 100644 (file)
new mode 100755 (executable)
index e69de29..9765b1b
Binary files a/rule/watchface/project/shared/res/icon.png and b/rule/watchface/project/shared/res/icon.png differ
old mode 100644 (file)
new mode 100755 (executable)
index 4af2744..7547759
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
-/*
- * @brief Get path of resource
+#include <app.h>
+#include <Elementary.h>
+
+/**
+ * @brief Get path of resource.
  * @param[in] file_in File name
  * @param[out] file_path_out The point to which save full path of the resource
  * @param[in] file_path_max Size of file name include path
@@ -29,24 +32,24 @@ void data_get_resource_path(const char *file_in, char *file_path_out, int file_p
        }
 }
 
-/*
- * @brief Initialization function for data module
+/**
+ * @brief Initialization function for data module.
  */
 void data_initialize(void)
 {
        /*
-        * If you need to initialize managing data,
+        * If you need to initialize application data,
         * please use this function.
         */
 }
 
-/*
- * @brief Finalization function for data module
+/**
+ * @brief Finalization function for data module.
  */
 void data_finalize(void)
 {
        /*
-        * If you need to finalize managing data,
+        * If you need to finalize application data,
         * please use this function.
         */
 }
old mode 100644 (file)
new mode 100755 (executable)
index 7b72e46..4f3be4a
@@ -1,11 +1,11 @@
- /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
-/*
+#include <app.h>
+#include <Elementary.h>
+
+/**
  * @brief Get path of resource
  * @param[in] file_in File name
  * @param[out] file_path_out The point to which save full path of the resource
@@ -29,24 +32,24 @@ void data_get_resource_path(const char *file_in, char *file_path_out, int file_p
        }
 }
 
-/*
- * @brief Initialization function for data module
+/**
+ * @brief Initialization function for data module.
  */
-|R| void data_initialize(void)
-|R| {
+void data_initialize(void)
+{
        /*
-        * If you need to initialize managing data,
+        * If you need to initialize application data,
         * please use this function.
         */
-|R| }
+}
 
-/*
- * @brief Finalization function for data module
+/**
+ * @brief Finalization function for data module.
  */
-|R| void data_finalize(void)
-|R| {
+void data_finalize(void)
+{
        /*
-        * If you need to finalize managing data,
+        * If you need to finalize application data,
         * please use this function.
         */
-|R| }
+}
old mode 100644 (file)
new mode 100755 (executable)
index 3d11972..171e413
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
+#include <app.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <efl_extension.h>
+#include <dlog.h>
 #include <watch_app.h>
 #include <watch_app_efl.h>
 
@@ -21,7 +26,7 @@
 #include "view.h"
 #include "data.h"
 
-/*
+/**
  * @brief The system language changed event callback function
  * @param[in] event_info The system event information
  * @param[in] user_data The user data passed from the add event handler function
@@ -43,7 +48,7 @@ void lang_changed(app_event_info_h event_info, void* user_data)
        return;
 }
 
-/*
+/**
  * @brief The region format changed event callback function
  * @param[in] event_info The system event information
  * @param[in] user_data The user data passed from the add event handler function
@@ -55,7 +60,7 @@ void region_changed(app_event_info_h event_info, void* user_data)
         */
 }
 
-/*
+/**
  * @brief The low battery event callback function
  * @param[in] event_info The system event information
  * @param[in] user_data The user data passed from the add event handler function
@@ -68,7 +73,7 @@ void low_battery(app_event_info_h event_info, void* user_data)
        watch_app_exit();
 }
 
-/*
+/**
  * @brief The low memory event callback function
  * @param[in] event_info The system event information
  * @param[in] user_data The user data passed from the add event handler function
@@ -81,7 +86,7 @@ void low_memory(app_event_info_h event_info, void* user_data)
        watch_app_exit();
 }
 
-/*
+/**
  * @brief The device orientation changed event callback function
  * @param[in] event_info The system event information
  * @param[in] user_data The user data passed from the add event handler function
@@ -93,7 +98,7 @@ void device_orientation(app_event_info_h event_info, void* user_data)
         */
 }
 
-/*
+/**
  * @brief Called when the application starts.
  * @param[in] width The width of the window of idle screen that will show the watch UI
  * @param[in] height The height of the window of idle screen that will show the watch UI
@@ -129,7 +134,7 @@ static bool app_create(int width, int height, void* user_data)
        return true;
 }
 
-/*
+/**
  * @brief Called when another application sends a launch request to the application.
  * @param[in] width The width of the window of idle screen that will show the watch UI
  * @param[in] height The height of the window of idle screen that will show the watch UI
@@ -142,7 +147,7 @@ static void app_control(app_control_h app_control, void *user_data)
         */
 }
 
-/*
+/**
  * @brief Called when the application is completely obscured by another application and becomes invisible.
  * @param[in] user_data The user data passed from the callback registration function
  */
@@ -153,7 +158,7 @@ static void app_pause(void *user_data)
         */
 }
 
-/*
+/**
  * @brief Called when the application becomes visible.
  * @param[in] user_data The user data passed from the callback registration function
  */
@@ -164,7 +169,7 @@ static void app_resume(void *user_data)
         */
 }
 
-/*
+/**
  * @brief Called when the application's main loop exits.
  * @param[in] user_data The user data passed from the callback registration function
  */
@@ -172,7 +177,7 @@ static void app_terminate(void *user_data)
 {
 }
 
-/*
+/**
  * @brief Called at each second. This callback is not called while the app is paused or the device is in ambient mode.
  * @param[in] watch_time The watch time handle. watch_time will not be available after returning this callback. It will be freed by the framework.
  * @param[in] user_data The user data to be passed to the callback functions
@@ -181,7 +186,7 @@ void app_time_tick(watch_time_h watch_time, void* user_data)
 {
 }
 
-/*
+/**
  * @brief Called at each minute when the device in the ambient mode.
  * @param[in] watch_time The watch time handle. watch_time will not be available after returning this callback. It will be freed by the framework.
  * @param[in] user_data The user data to be passed to the callback functions
@@ -190,7 +195,7 @@ void app_ambient_tick(watch_time_h watch_time, void* user_data)
 {
 }
 
-/*
+/**
  * @brief Called when the device enters or exits the ambient mode.
  * @param[in] ambient_mode If @c true the device enters the ambient mode, otherwise @c false
  * @param[in] user_data The user data to be passed to the callback functions
@@ -202,7 +207,7 @@ void app_ambient_changed(bool ambient_mode, void* user_data)
         */
 }
 
-/*
+/**
  * @brief Main function of the application
  */
 int main(int argc, char *argv[])
old mode 100644 (file)
new mode 100755 (executable)
index 6b37ae1..e76f206
@@ -1,19 +1,24 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
-  * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
* Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
+#include <app.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <efl_extension.h>
+#include <dlog.h>
 #include <watch_app.h>
 #include <watch_app_efl.h>
 
@@ -21,7 +26,7 @@
 #include "view.h"
 #include "data.h"
 
-/*
+/**
  * @brief The system language changed event callback function
  * @param[in] event_info The system event information
  * @param[in] user_data The user data passed from the add event handler function
@@ -43,7 +48,7 @@
        return;
 |R| }
 
-/*
+/**
  * @brief The region format changed event callback function
  * @param[in] event_info The system event information
  * @param[in] user_data The user data passed from the add event handler function
@@ -55,7 +60,7 @@ void region_changed(app_event_info_h event_info, void* user_data)
         */
 }
 
-/*
+/**
  * @brief The low battery event callback function
  * @param[in] event_info The system event information
  * @param[in] user_data The user data passed from the add event handler function
@@ -68,7 +73,7 @@ void low_battery(app_event_info_h event_info, void* user_data)
        watch_app_exit();
 }
 
-/*
+/**
  * @brief The low memory event callback function
  * @param[in] event_info The system event information
  * @param[in] user_data The user data passed from the add event handler function
@@ -81,7 +86,7 @@ void low_memory(app_event_info_h event_info, void* user_data)
        watch_app_exit();
 }
 
-/*
+/**
  * @brief The device orientation changed event callback function
  * @param[in] event_info The system event information
  * @param[in] user_data The user data passed from the add event handler function
@@ -93,7 +98,7 @@ void device_orientation(app_event_info_h event_info, void* user_data)
         */
 }
 
-/*
+/**
  * @brief Called when the application starts.
  * @param[in] width The width of the window of idle screen that will show the watch UI
  * @param[in] height The height of the window of idle screen that will show the watch UI
@@ -130,7 +135,7 @@ void device_orientation(app_event_info_h event_info, void* user_data)
 |R|    return true;
 |R| }
 
-/*
+/**
  * @brief Called when another application sends a launch request to the application.
  * @param[in] width The width of the window of idle screen that will show the watch UI
  * @param[in] height The height of the window of idle screen that will show the watch UI
@@ -143,7 +148,7 @@ void device_orientation(app_event_info_h event_info, void* user_data)
         */
 |R| }
 
-/*
+/**
  * @brief Called when the application is completely obscured by another application and becomes invisible.
  * @param[in] user_data The user data passed from the callback registration function
  */
@@ -154,7 +159,7 @@ void device_orientation(app_event_info_h event_info, void* user_data)
         */
 |R| }
 
-/*
+/**
  * @brief Called when the application becomes visible.
  * @param[in] user_data The user data passed from the callback registration function
  */
@@ -165,7 +170,7 @@ void device_orientation(app_event_info_h event_info, void* user_data)
         */
 |R| }
 
-/*
+/**
  * @brief Called when the application's main loop exits.
  * @param[in] user_data The user data passed from the callback registration function
  */
@@ -173,7 +178,7 @@ void device_orientation(app_event_info_h event_info, void* user_data)
 |R| {
 |R| }
 
-/*
+/**
  * @brief Called at each second. This callback is not called while the app is paused or the device is in ambient mode.
  * @param[in] watch_time The watch time handle. watch_time will not be available after returning this callback. It will be freed by the framework.
  * @param[in] user_data The user data to be passed to the callback functions
@@ -182,7 +187,7 @@ void device_orientation(app_event_info_h event_info, void* user_data)
 |R| {
 |R| }
 
-/*
+/**
  * @brief Called at each minute when the device in the ambient mode.
  * @param[in] watch_time The watch time handle. watch_time will not be available after returning this callback. It will be freed by the framework.
  * @param[in] user_data The user data to be passed to the callback functions
@@ -191,7 +196,7 @@ void device_orientation(app_event_info_h event_info, void* user_data)
 |R| {
 |R| }
 
-/*
+/**
  * @brief Called when the device enters or exits the ambient mode.
  * @param[in] ambient_mode If @c true the device enters the ambient mode, otherwise @c false
  * @param[in] user_data The user data to be passed to the callback functions
@@ -203,7 +208,7 @@ void device_orientation(app_event_info_h event_info, void* user_data)
         */
 |R| }
 
-/*
+/**
  * @brief Main function of the application
  */
 |R| int main(int argc, char *argv[])
old mode 100644 (file)
new mode 100755 (executable)
index 617fe69..aee2ad6
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
-/*
- * @brief Set text to the part
+#include <tizen.h>
+#include <dlog.h>
+#include <app.h>
+#include <efl_extension.h>
+#include <Elementary.h>
+
+#include "$(appName).h"
+#include "view.h"
+
+/**
+ * @brief Sets text to the part.
  * @param[in] parent Object has part to which you want to set text
  * @param[in] part_name Part name to which you want to set the text
  * @param[in] text Text you want to set to the part
@@ -31,8 +40,8 @@ void view_set_text(Evas_Object *parent, const char *part_name, const char *text)
        elm_object_part_text_set(parent, part_name, text);
 }
 
-/*
- * @brief Make a layout to target parent object with edje file
+/**
+ * @brief Creates a layout to target parent object with edje file.
  * @param[in] parent The object to which you want to add this layout
  * @param[in] file_path File path of EDJ file will be used
  * @param[in] group_name Name of group in EDJ you want to set to
@@ -47,7 +56,7 @@ Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, cons
                return NULL;
        }
 
-       /* Create layout by EDC(edje file) */
+       /* Create layout using EDC(an edje file) */
        layout = elm_layout_add(parent);
        elm_layout_file_set(layout, file_path, group_name);
 
old mode 100644 (file)
new mode 100755 (executable)
index 526fef0..aee2ad6
@@ -1,21 +1,30 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
-  *
-  * Licensed under the Apache License, Version 2.0 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  * http://www.apache.org/licenses/LICENSE-2.0
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
 /*
- * @brief Set text to the part
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <tizen.h>
+#include <dlog.h>
+#include <app.h>
+#include <efl_extension.h>
+#include <Elementary.h>
+
+#include "$(appName).h"
+#include "view.h"
+
+/**
+ * @brief Sets text to the part.
  * @param[in] parent Object has part to which you want to set text
  * @param[in] part_name Part name to which you want to set the text
  * @param[in] text Text you want to set to the part
@@ -31,8 +40,8 @@ void view_set_text(Evas_Object *parent, const char *part_name, const char *text)
        elm_object_part_text_set(parent, part_name, text);
 }
 
-/*
- * @brief Make a layout to target parent object with edje file
+/**
+ * @brief Creates a layout to target parent object with edje file.
  * @param[in] parent The object to which you want to add this layout
  * @param[in] file_path File path of EDJ file will be used
  * @param[in] group_name Name of group in EDJ you want to set to
@@ -47,7 +56,7 @@ Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, cons
                return NULL;
        }
 
-       /* Create layout by EDC(edje file) */
+       /* Create layout using EDC(an edje file) */
        layout = elm_layout_add(parent);
        elm_layout_file_set(layout, file_path, group_name);
 
diff --git a/rule/watchface/project/tizen-manifest.xml b/rule/watchface/project/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..c503ca1
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="$(packageName)" api-version="2.3.1" version="1.1.0">
+       <profile name="$(packageProfile)" />
+       <watch-application appid="$(packageName)" exec="$(appNameLower)" ambient-support="true">
+               <label>$(appName)</label>
+               <icon>$(appName).png</icon>
+       </watch-application>
+</manifest>
diff --git a/rule/watchface/project/tizen-manifest.xml.tccr b/rule/watchface/project/tizen-manifest.xml.tccr
new file mode 100755 (executable)
index 0000000..c503ca1
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="$(packageName)" api-version="2.3.1" version="1.1.0">
+       <profile name="$(packageProfile)" />
+       <watch-application appid="$(packageName)" exec="$(appNameLower)" ambient-support="true">
+               <label>$(appName)</label>
+               <icon>$(appName).png</icon>
+       </watch-application>
+</manifest>
old mode 100644 (file)
new mode 100755 (executable)
index 5c1b5f3..7c7acdd
                                <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"/>
old mode 100644 (file)
new mode 100755 (executable)
index e69de29..9765b1b
Binary files a/rule/watchface/screenshot.png and b/rule/watchface/screenshot.png differ
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
index 38fe80f..05079c0
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #define _DATA_H
 
 /*
- * Initialize the data component
+ * Initialize the data component.
  */
 void data_initialize(void);
 
 /*
- * Finalize the data component
+ * Finalize the data component.
  */
 void data_finalize(void);
 
old mode 100644 (file)
new mode 100755 (executable)
index 55a3a85..1cba82a
@@ -1,30 +1,30 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
-  * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
* Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 |R| #if !defined(_DATA_H)
 |R| #define _DATA_H
 
-|R| /*
-|R|  * Initialize the data component
-|R|  */
-|R| void data_initialize(void);
+/*
+ * Initialize the data component.
+ */
+void data_initialize(void);
 
-|R| /*
-|R|  * Finalize the data component
-|R|  */
-|R| void data_finalize(void);
+/*
+ * Finalize the data component.
+ */
+void data_finalize(void);
 
 |R| #endif
old mode 100644 (file)
new mode 100755 (executable)
index b96d8e5..0a3c03b
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
old mode 100644 (file)
new mode 100755 (executable)
index da383af..6856e90
@@ -1,18 +1,18 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
-  * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
* Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 #if !defined(_$(appNameUpper)_H_)
 #define _$(appNameUpper)_H_
old mode 100644 (file)
new mode 100755 (executable)
index 531f037..f62693c
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 #if !defined(_VIEW_H)
 #define _VIEW_H
 
-#define GRP_MAIN "main"
-
-/*
- * Create a view
- */
-void view_create(void);
+Eina_Bool view_create(void);
 Evas_Object *view_create_win(const char *pkg_name);
 Evas_Object *view_create_conformant_without_indicator(Evas_Object *win);
 Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, const char *group_name, Eext_Event_Cb cb_function, void *user_data);
@@ -61,5 +56,4 @@ void view_set_progressbar_val(Evas_Object *parent, const char *part_name, int va
 Evas_Object *view_create_checkbox(Evas_Object *parent);
 Evas_Object *view_create_layout_no_content(Evas_Object *parent, char *title, char *detail, char *image_path);
 Evas_Object *view_create_datetime(Evas_Object *parent, const char *style);
-
-#endif
+#endif
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index 0a9eaab..56e8878
@@ -1,28 +1,23 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
-  * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
* Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 |R| #if !defined(_VIEW_H)
 |R| #define _VIEW_H
 
-#define GRP_MAIN "main"
-
-/*
- * Create a view
- */
-|R| void view_create(void);
+|R| Eina_Bool view_create(void);
 Evas_Object *view_create_win(const char *pkg_name);
 Evas_Object *view_create_conformant_without_indicator(Evas_Object *win);
 Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, const char *group_name, Eext_Event_Cb cb_function, void *user_data);
old mode 100644 (file)
new mode 100755 (executable)
index e69de29..9765b1b
Binary files a/rule/wearable/project/shared/res/icon.png and b/rule/wearable/project/shared/res/icon.png differ
old mode 100644 (file)
new mode 100755 (executable)
index a2f23e2..3c4b305
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
+/**
+ * @brief Initialization function for data module.
+ */
 void data_initialize(void)
 {
        /*
-        * If you need to initialize managing data,
+        * If you need to initialize application data,
         * please use this function.
         */
 }
 
+/**
+ * @brief Finalization function for data module.
+ */
 void data_finalize(void)
 {
        /*
-        * If you need to finalize managing data,
+        * If you need to finalize application data,
         * please use this function.
         */
 }
old mode 100644 (file)
new mode 100755 (executable)
index ba4bbd9..7c068bd
@@ -1,11 +1,11 @@
- /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
-|R| void data_initialize(void)
-|R| {
+/**
+ * @brief Initialization function for data module.
+ */
+void data_initialize(void)
+{
        /*
-        * If you need to initialize managing data,
+        * If you need to initialize application data,
         * please use this function.
         */
-|R| }
+}
 
-|R| void data_finalize(void)
-|R| {
+/**
+ * @brief Finalization function for data module.
+ */
+void data_finalize(void)
+{
        /*
-        * If you need to finalize managing data,
+        * If you need to finalize application data,
         * please use this function.
         */
-|R| }
+}
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index a79fe70..848839c
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
+#include <app.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <efl_extension.h>
+#include <dlog.h>
+
 #include "$(appName).h"
 #include "view.h"
 #include "data.h"
 
-/*
- * @brief Hook to take necessary actions before main event loop starts
- * Initialize UI resources and application's data
- * If this function returns true, the main loop of application starts
- * If this function returns false, the application is terminated
+/**
+ * @brief Hook to take necessary actions before main event loop starts.
+ * Initialize UI resources and application's data.
+ * If this function returns true, the main loop of application starts.
+ * If this function returns false, the application is terminated.
  */
 static bool app_create(void *user_data)
 {
        return true;
 }
 
-/*
+/**
  * @brief This callback function is called when another application
- * sends the launch request to the application
+ * sends a launch request to the application.
  */
 static void app_control(app_control_h app_control, void *user_data)
 {
        /* Handle the launch request. */
 }
 
-/*
+/**
  * @brief This callback function is called each time
  * the application is completely obscured by another application
- * and becomes invisible to the user
+ * and becomes invisible to the user.
  */
 static void app_pause(void *user_data)
 {
        /* Take necessary actions when application becomes invisible. */
 }
 
-/*
+/**
  * @brief This callback function is called each time
- * the application becomes visible to the user
+ * the application becomes visible to the user.
  */
 static void app_resume(void *user_data)
 {
        /* Take necessary actions when application becomes visible. */
 }
 
-/*
- * @brief This callback function is called once after the main loop of the application exits
+/**
+ * @brief This callback function is called once after the main loop of the application exits.
  */
 static void app_terminate(void *user_data)
 {
        /* Release all resources. */
 }
 
-/*
- * @brief This function will be called when the language is changed
+/**
+ * @brief This function will be called when the language is changed.
  */
 static void ui_app_lang_changed(app_event_info_h event_info, void *user_data)
 {
-       /*APP_EVENT_LANGUAGE_CHANGED*/
+       /* APP_EVENT_LANGUAGE_CHANGED */
        char *locale = NULL;
 
        system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
@@ -82,8 +88,8 @@ static void ui_app_lang_changed(app_event_info_h event_info, void *user_data)
        return;
 }
 
-/*
- * @brief Main function of the application
+/**
+ * @brief Main function of the application.
  */
 int main(int argc, char *argv[])
 {
@@ -99,14 +105,14 @@ int main(int argc, char *argv[])
        event_callback.app_control = app_control;
 
        /*
-        * If you want to handling more events,
-        * Please check the application lifecycle guide
+        * If you want to handle more events,
+        * please check the application lifecycle guide.
         */
        ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, NULL);
 
        ret = ui_app_main(argc, argv, &event_callback, NULL);
        if (ret != APP_ERROR_NONE)
-               dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() is failed. err = %d", ret);
+               dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() failed. err = %d", ret);
 
        return ret;
 }
old mode 100644 (file)
new mode 100755 (executable)
index 951fcc7..56be9c8
@@ -1,89 +1,95 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
-  *
-  * Licensed under the Apache License, Version 2.0 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  * http://www.apache.org/licenses/LICENSE-2.0
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <Elementary.h>
+#include <system_settings.h>
+#include <efl_extension.h>
+#include <dlog.h>
 
 |R| #include "$(appName).h"
 #include "view.h"
 #include "data.h"
 
-/*
- * @brief Hook to take necessary actions before main event loop starts
- * Initialize UI resources and application's data
- * If this function returns true, the main loop of application starts
- * If this function returns false, the application is terminated
+/**
+ * @brief Hook to take necessary actions before main event loop starts.
+ * Initialize UI resources and application's data.
+ * If this function returns true, the main loop of application starts.
+ * If this function returns false, the application is terminated.
  */
 |R| static bool app_create(void *user_data)
 |R| {
        return true;
 |R| }
 
-/*
+/**
  * @brief This callback function is called when another application
- * sends the launch request to the application
+ * sends a launch request to the application.
  */
 |R| static void app_control(app_control_h app_control, void *user_data)
 |R| {
        /* Handle the launch request. */
 |R| }
 
-/*
+/**
  * @brief This callback function is called each time
  * the application is completely obscured by another application
- * and becomes invisible to the user
+ * and becomes invisible to the user.
  */
 |R| static void app_pause(void *user_data)
 |R| {
        /* Take necessary actions when application becomes invisible. */
 |R| }
 
-/*
+/**
  * @brief This callback function is called each time
- * the application becomes visible to the user
+ * the application becomes visible to the user.
  */
 |R| static void app_resume(void *user_data)
 |R| {
        /* Take necessary actions when application becomes visible. */
 |R| }
 
-/*
- * @brief This callback function is called once after the main loop of the application exits
+/**
+ * @brief This callback function is called once after the main loop of the application exits.
  */
 |R| static void app_terminate(void *user_data)
 |R| {
        /* Release all resources. */
 |R| }
 
-/*
- * @brief This function will be called when the language is changed
+/**
+ * @brief This function will be called when the language is changed.
  */
-|R| static void ui_app_lang_changed(app_event_info_h event_info, void *user_data)
-|R| {
-       /*APP_EVENT_LANGUAGE_CHANGED*/
-|R|    char *locale = NULL;
+static void ui_app_lang_changed(app_event_info_h event_info, void *user_data)
+{
+       /* APP_EVENT_LANGUAGE_CHANGED */
+       char *locale = NULL;
 
-|R|    system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
+       system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
 
-|R|    if (locale != NULL) {
-|R|            elm_language_set(locale);
-|R|            free(locale);
-|R|    }
-|R|    return;
-|R| }
+       if (locale != NULL) {
+               elm_language_set(locale);
+               free(locale);
+       }
+       return;
+}
 
-/*
- * @brief Main function of the application
+/**
+ * @brief Main function of the application.
  */
 |R| int main(int argc, char *argv[])
 |R| {
 |R|    event_callback.resume = app_resume;
 |R|    event_callback.app_control = app_control;
 
-|R|    /*
-|R|     * If you want to handling more events,
-|R|     * Please check the application lifecycle guide
-|R|     */
+       /*
+        * If you want to handle more events,
+        * please check the application lifecycle guide.
+        */
        ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, NULL);
 
 |R|    ret = ui_app_main(argc, argv, &event_callback, NULL);
-|R|    if (ret != APP_ERROR_NONE) {
-       dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() is failed. err = %d", ret);
-|R|    }
+|R|    if (ret != APP_ERROR_NONE)
+               dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() failed. err = %d", ret);
 
 |R|    return ret;
 |R| }
old mode 100644 (file)
new mode 100755 (executable)
index 26db13f..6ec5659
@@ -1,11 +1,11 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
  *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- * http://www.apache.org/licenses/LICENSE-2.0
+ *     http://floralicense.org/license/
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * limitations under the License.
  */
 
+#include <tizen.h>
+#include <dlog.h>
+#include <app.h>
+#include <efl_extension.h>
+#include <Elementary.h>
+
+#include "$(appName).h"
+#include "view.h"
+
+#define TEXT_STYLE_NORMAL "DEFAULT='font=Tizen:style=Light font_size=34 align=center'"
+#define LABEL_STYLE_START "<font=Tizen:style=Regular><font_size=36><align=center><color=#FAFAFA><wrap=mixed>"
+#define LABEL_STYLE_END "</wrap></color></align></font_size></font>"
+#define DATE_FORMAT "%d/%b/%Y%I:%M%p"
+
 static struct view_info {
        Evas_Object *win;
        Evas_Object *conform;
+       Evas_Object *datetime;
+       Eext_Circle_Surface *circle_surface;
 } s_info = {
        .win = NULL,
        .conform = NULL,
+       .datetime = NULL,
+       .circle_surface = NULL,
 };
 
-/*
- * @brief Create Essential Object window, conformant and layout
+static Elm_Genlist_Item_Class *_set_genlist_item_class(const char *style);
+static void _dummy_callback_cb(void *data, Evas_Object *obj, void *event_info);
+
+/**
+ * @brief Creates essential objects: window, conformant and layout.
  */
-void view_create(void)
+Eina_Bool view_create(void)
 {
-       /* Create window */
+       /* Create the window */
        s_info.win = view_create_win(PACKAGE);
        if (s_info.win == NULL) {
                dlog_print(DLOG_ERROR, LOG_TAG, "failed to create a window.");
-               return;
+               return EINA_FALSE;
        }
 
-       /* Create conformant */
+       /* Create the conformant */
        s_info.conform = view_create_conformant_without_indicator(s_info.win);
        if (s_info.conform == NULL) {
                dlog_print(DLOG_ERROR, LOG_TAG, "failed to create a conformant");
-               return;
+               return EINA_FALSE;
        }
 
-       /* Show window after main view is set up */
+       /* Show the window after main view is set up */
        evas_object_show(s_info.win);
+       return EINA_TRUE;
 }
 
-/*
- * @brief Make a basic window named package
+/**
+ * @brief Creates a basic window named package.
  * @param[in] pkg_name Name of the window
  */
 Evas_Object *view_create_win(const char *pkg_name)
@@ -56,7 +78,7 @@ Evas_Object *view_create_win(const char *pkg_name)
        /*
         * Window
         * Create and initialize elm_win.
-        * elm_win is mandatory to manipulate window
+        * elm_win is mandatory to manipulate the window.
         */
        win = elm_win_util_standard_add(pkg_name, pkg_name);
        elm_win_conformant_set(win, EINA_TRUE);
@@ -68,13 +90,13 @@ Evas_Object *view_create_win(const char *pkg_name)
                elm_win_wm_rotation_available_rotations_set(win, (const int *)(&rots), 4);
        }
 
-       evas_object_smart_callback_add(win, "delete,request", _win_delete_request_cb, NULL);
+       evas_object_smart_callback_add(win, "delete,request", _dummy_callback_cb, NULL);
 
        return win;
 }
 
-/*
- * @brief Make a conformant without indicator for wearable app
+/**
+ * @brief Creates a conformant without indicator for wearable app.
  * @param[in] win The object to which you want to set this conformant
  * Conformant is mandatory for base GUI to have proper size
  */
@@ -102,13 +124,13 @@ Evas_Object *view_create_conformant_without_indicator(Evas_Object *win)
        return conform;
 }
 
-/*
- * @brief Make a layout to target parent object with edje file
+/**
+ * @brief Creates a layout to target parent object with edje file.
  * @param[in] parent The object to which you want to add this layout
- * @param[in] file_path File path of EDJ file will be used
+ * @param[in] file_path File path of the EDJ file will be used
  * @param[in] group_name Name of group in EDJ you want to set to
- * @param[in] cb_function The function will be called when back event is detected
- * @param[in] user_data The user data to be passed to the callback functions
+ * @param[in] cb_function The function called when back event is detected
+ * @param[in] user_data The user data to be passed to the callback function
  */
 Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, const char *group_name, Eext_Event_Cb cb_function, void *user_data)
 {
@@ -119,7 +141,7 @@ Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, cons
                return NULL;
        }
 
-       /* Create layout by EDC(edje file) */
+       /* Create layout using EDC(an edje file) */
        layout = elm_layout_add(parent);
        elm_layout_file_set(layout, file_path, group_name);
 
@@ -134,8 +156,8 @@ Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, cons
        return layout;
 }
 
-/*
- * @brief Make and set a layout to conformant
+/**
+ * @brief Creates and sets a layout to conformant.
  * @param[in] parent Target conformant object
  * @param[in] file_path File path of EDJ will be used
  * @param[in] group_name Group name in EDJ you want to set to layout
@@ -167,8 +189,8 @@ Evas_Object *view_create_layout_for_conformant(Evas_Object *parent, const char *
        return layout;
 }
 
-/*
- * @brief Make a layout with theme.
+/**
+ * @brief Creates a layout with theme.
  * @param[in] parent Object to which you want to add this layout
  * @param[in] class_name The class of the group
  * @param[in] group_name Group name in EDJ that you want to set to layout
@@ -197,8 +219,8 @@ Evas_Object *view_create_layout_by_theme(Evas_Object *parent, const char *class_
        return layout;
 }
 
-/*
- * @brief Make and set a layout to the part
+/**
+ * @brief Creates and sets a layout to the part.
  * @param[in] parent Object to which you want to set this layout
  * @param[in] file_path File path of EDJ will be used
  * @param[in] group_name Group name in EDJ that you want to set to layout
@@ -224,8 +246,8 @@ Evas_Object *view_create_layout_for_part(Evas_Object *parent, char *file_path, c
        return layout;
 }
 
-/*
- * @brief Destroy window and free important data to finish this application
+/**
+ * @brief Destroys window and frees its resources.
  */
 void view_destroy(void)
 {
@@ -235,17 +257,17 @@ void view_destroy(void)
        evas_object_del(s_info.win);
 }
 
-/*
- * @brief Destroy given layout
- * @param[in] layout The layout you want to destroy
+/**
+ * @brief Destroys the given layout.
+ * @param[in] layout The layout to destroy
  */
 void view_destroy_layout(Evas_Object *layout)
 {
        evas_object_del(layout);
 }
 
-/*
- * @brief Set image to given part
+/**
+ * @brief Sets image to given part.
  * @param[in] parent Object has part to which you want to set this image
  * @param[in] part_name Part name to which you want to set this image
  * @param[in] image_path Path of the image file
@@ -280,8 +302,8 @@ void view_set_image(Evas_Object *parent, const char *part_name, const char *imag
        return;
 }
 
-/*
- * @brief Set text to the part
+/**
+ * @brief Sets text to the part.
  * @param[in] parent Object has part to which you want to set text
  * @param[in] part_name Part name to which you want to set the text
  * @param[in] text Text you want to set to the part
@@ -293,12 +315,12 @@ void view_set_text(Evas_Object *parent, const char *part_name, const char *text)
                return;
        }
 
-       /* Set text of target part object */
+       /* Set text of target part object. */
        elm_object_part_text_set(parent, part_name, text);
 }
 
-/*
- * @brief Set color of the part
+/**
+ * @brief Sets color of the part.
  * @param[in] parent Object has part to which you want to set color
  * @param[in] part_name Name of part to which you want to set color
  * @param[in] r R of RGBA you want to set to the part
@@ -321,12 +343,12 @@ void view_set_color(Evas_Object *parent, const char *part_name, int r, int g, in
                return;
        }
 
-       /* Set color of target part object */
+       /* Set color of target part object. */
        evas_object_color_set(obj, r, g, b, a);
 }
 
-/*
- * @brief Set the color of circle line and font in a given circle object
+/**
+ * @brief Sets the color of circle line and font in a given circle object.
  * @param[in] parent Object has part to which you want to set color
  * @param[in] part_name Name of part to which you want to set color
  * @param[in] r The red component of the given color
@@ -343,21 +365,21 @@ void view_set_color_of_circle_object(Evas_Object *parent, const char *part_name,
                return;
        }
 
-       /* if the "part" is NULL, this function will get the content from "default" part */
+       /* If the "part" is NULL, this function will get the content from "default" part. */
        obj = elm_object_part_content_get(parent, part_name);
        if (obj == NULL) {
                dlog_print(DLOG_ERROR, LOG_TAG, "failed to get parent.");
                return;
        }
 
-       /* Set color of target part object */
+       /* Set color of target part object. */
        eext_circle_object_color_set(obj, r, g, b, a);
 }
 
-/*
- * @brief Make a naviframe and set to parent
+/**
+ * @brief Creates a naviframe and set to parent.
  * @param[in] parent Object to which you want to set naviframe
- * @Add callback function will be operated when back key is pressed
+ * Add callback function will be operated when back key is pressed
  */
 Evas_Object *view_create_naviframe(Evas_Object *parent)
 {
@@ -384,8 +406,8 @@ Evas_Object *view_create_naviframe(Evas_Object *parent)
        return nf;
 }
 
-/*
- * @brief Push item to naviframe
+/**
+ * @brief Pushs item to naviframe.
  * @param[in] nf Naviframe has several views
  * @param[in] item Object will be added to naviframe
  * @param[in] pop_cb Function will be operated when this item is popped from naviframe
@@ -414,8 +436,8 @@ Elm_Object_Item* view_push_item_to_naviframe(Evas_Object *nf, Evas_Object *item,
        return nf_it;
 }
 
-/*
- * @brief Set a more button
+/**
+ * @brief Sets a more button
  * @param[in] parent Object has part to which you want to set
  * @param[in] part Part name to which you want to set
  * @param[in] opened_cb Function will be operated when the more button is opened
@@ -438,7 +460,7 @@ void view_set_more_button(Evas_Object *parent, const char *part, Evas_Smart_Cb o
                return;
        }
 
-       /* Add smart callback */
+       /* Add smart callback. */
        evas_object_smart_callback_add(more_btn, "more,option,opened", opened_cb, user_data);
        evas_object_smart_callback_add(more_btn, "more,option,closed", closed_cb, user_data);
        evas_object_smart_callback_add(more_btn, "item,selected", seleted_cb, user_data);
@@ -446,8 +468,8 @@ void view_set_more_button(Evas_Object *parent, const char *part, Evas_Smart_Cb o
        elm_object_part_content_set(parent, part, more_btn);
 }
 
-/*
- * @brief Make and set button.
+/**
+ * @brief Creates and sets button.
  * @param[in] parent Object to which you want to set the button
  * @param[in] part_name Name of part to which you want to set the button
  * @param[in] style Style of the button
@@ -496,8 +518,8 @@ void view_set_button(Evas_Object *parent, const char *part_name, const char *sty
        evas_object_show(btn);
 }
 
-/*
- * @brief Add a more button item
+/**
+ * @brief Adds a more button item.
  * @param[in] parent Object that contains more button
  * @param[in] part_name Name of the part has more option
  * @param[in] main_txt Text will be written in the middle of the selector
@@ -510,7 +532,6 @@ void view_add_more_button_item(Evas_Object *parent, const char *part_name, const
 {
        Evas_Object *image = NULL;
        Evas_Object *more_btn = NULL;
-       char full_path[PATH_MAX] = { 0, };
 
        if (parent == NULL) {
                dlog_print(DLOG_ERROR, LOG_TAG, "parent is NULL.");
@@ -521,30 +542,29 @@ void view_add_more_button_item(Evas_Object *parent, const char *part_name, const
        if (more_btn == NULL)
                return;
 
-       /* Create the new item */
+       /* Create the new item. */
        Eext_Object_Item *item  = eext_more_option_item_append(more_btn);
 
-       /* Set the text in item text part */
+       /* Set the text in item text part. */
        eext_more_option_item_part_text_set(item, "selector,main_text", main_txt);
        eext_more_option_item_part_text_set(item, "selector,sub_text", sub_txt);
 
        image = elm_image_add(more_btn);
-       _get_resource(image_path, full_path, sizeof(full_path));
-       elm_image_file_set(image, full_path, NULL);
+       elm_image_file_set(image, image_path, NULL);
 
-       /* Set the content in item content part */
+       /* Set the content in item content part. */
        eext_more_option_item_part_content_set(item, "item,icon", image);
 
        evas_object_smart_callback_add(more_btn, "item,clicked", clicked_cb, user_data);
 }
 
-/*
- * @brief Make a Entry Object to target window
+/**
+ * @brief Creates a Entry Object to target window.
  * @param[in] parent Object to which you want to set Entry
  * @param[in] part_name Part of the layout which you want to locate Entry
  * @param[in] clicked_cb The function will be called when the entry is clicked
  * @param[in] user_data The user data passed to the callback function
- * @Add callback function will be operated when mouse clicked event is triggered
+ * Add callback function will be operated when mouse clicked event is triggered
  */
 Evas_Object *view_create_entry(Evas_Object *parent, const char *part_name, Evas_Smart_Cb clicked_cb, void *user_data)
 {
@@ -555,37 +575,37 @@ Evas_Object *view_create_entry(Evas_Object *parent, const char *part_name, Evas_
                return NULL;
        }
 
-       /* Add Entry object to parent */
+       /* Add Entry object to parent. */
        entry = elm_entry_add(parent);
        if (entry == NULL) {
                dlog_print(DLOG_ERROR, LOG_TAG, "failed to add a entry");
                return NULL;
        }
 
-       /* Set Entry size option */
+       /* Set Entry size option. */
        evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
-       /* Set Entry option for display and functionalities */
+       /* Set Entry option for display and functionalities. */
        elm_entry_single_line_set(entry, EINA_TRUE);
        elm_entry_scrollable_set(entry, EINA_TRUE);
        elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
        elm_entry_editable_set(entry, EINA_FALSE);
        elm_entry_context_menu_disabled_set(entry, EINA_TRUE);
 
-       /* Set Entry text style using predefined style description */
-       elm_entry_text_style_user_push(entry, DIAL_TEXT_STYLE_NORMAL);
+       /* Set Entry text style using predefined style description. */
+       elm_entry_text_style_user_push(entry, TEXT_STYLE_NORMAL);
 
        elm_object_part_content_set(parent, part_name, entry);
 
-       /* Set callback for event about Entry */
+       /* Set callback for event about Entry. */
        if (clicked_cb)
                evas_object_smart_callback_add(entry, "clicked", clicked_cb, user_data);
 
        return entry;
 }
 
-/*
- * @brief make genlist for circular shape
+/**
+ * @brief Creates a genlist for circular shape.
  * @param[in] parent Object to which you want to set genlist
  */
 Evas_Object *view_create_circle_genlist(Evas_Object *parent)
@@ -608,7 +628,7 @@ Evas_Object *view_create_circle_genlist(Evas_Object *parent)
         * This make selected list item is shown compressed.
         */
        elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
-       evas_object_smart_callback_add(genlist, "selected", _gl_selected_cb, NULL);
+       evas_object_smart_callback_add(genlist, "selected", _dummy_callback_cb, NULL);
 
        /*
         * This make genlist style circular.
@@ -622,8 +642,8 @@ Evas_Object *view_create_circle_genlist(Evas_Object *parent)
        return genlist;
 }
 
-/*
- * @brief Add item to genlist.
+/**
+ * @brief Adds item to genlist.
  * @param[in] genlist Genlist shows several items
  * @param[in] style Style of item determine how to show this item, such as "1text", "1text1icon" and so on
  * @param[in] gen_data Item data that use item's callback function
@@ -656,41 +676,8 @@ Elm_Object_Item *view_append_item_to_genlist(Evas_Object *genlist, const char *s
        return item;
 }
 
-/*
- * @brief Find item from genlist.
- * @param[in] genlist Genlist shows several items
- * @param[in] val Value determine which of the items has to remove
- */
-Elm_Object_Item *view_find_item_from_genlist(Evas_Object *genlist, const char *val)
-{
-       int item_count;
-       int i;
-       Elm_Object_Item *item = NULL;
-       struct genlist_data *gendata = NULL;
-
-       if (genlist == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "genlist is NULL.");
-               return NULL;
-       }
-
-       item_count = elm_genlist_items_count(genlist);
-
-       /*
-        * The fist item and the last item are "padding".
-        */
-       for (i = 1; i < item_count-1; i++) {
-               item = elm_genlist_nth_item_get(genlist, i);
-               gendata = elm_object_item_data_get(item);
-
-               if (gendata->alarm_id == atoi(val))
-                       return item;
-       }
-
-       return NULL;
-}
-
-/*
- * @brief Remove item.
+/**
+ * @brief Removes item.
  * @param[in] item Item from genlist
  */
 void view_delete_item(Elm_Object_Item *item)
@@ -698,8 +685,8 @@ void view_delete_item(Elm_Object_Item *item)
        elm_object_item_del(item);
 }
 
-/*
- * @brief Make popup with theme.
+/**
+ * @brief Creates popup with theme.
  * @param[in] timeout Duration that popup is showing
  * @param[in] text Text displayed on the popup
  */
@@ -717,11 +704,8 @@ void view_create_text_popup(Evas_Object *parent, double timeout, const char *tex
        elm_object_style_set(popup, "circle");
        evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
-       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _popup_hide_cb, NULL);
-       /*
-        * Delete popup object in _popup_hide_finished_cb(), when the "dismissed" signal will be called.
-        */
-       evas_object_smart_callback_add(popup, "dismissed", _popup_hide_finished_cb, NULL);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _dummy_callback_cb, NULL);
+       evas_object_smart_callback_add(popup, "dismissed", _dummy_callback_cb, NULL);
 
        popup_layout = elm_layout_add(popup);
        elm_layout_theme_set(popup_layout, "layout", "popup", "content/circle");
@@ -736,8 +720,8 @@ void view_create_text_popup(Evas_Object *parent, double timeout, const char *tex
        evas_object_show(popup);
 }
 
-/*
- * @brief Set the content to the given part
+/**
+ * @brief Sets the content to the given part.
  * @param[in] part_name Name of the part to which you want to set
  * @param[in] content The object will be set to the given part
  */
@@ -746,8 +730,8 @@ void view_set_content_to_part(Evas_Object *layout, const char *part_name, Evas_O
        elm_object_part_content_set(layout, part_name, content);
 }
 
-/*
- * @brief Send signal with source to the EDJ object
+/**
+ * @brief Sends signal with source to the EDJ object.
  * @param[in] layout The layout object will receive the signal
  * @param[in] signal The appointed signal to trigger the function
  * @param[in] source The appointed source that normally indicate the object triggered the event
@@ -757,8 +741,8 @@ void view_send_signal_to_edje(Evas_Object *layout, const char *signal, const cha
        elm_object_signal_emit(layout, signal, source);
 }
 
-/*
- * @brief Set the function will be called when the appointed signal is occurred
+/**
+ * @brief Sets the function will be called when the appointed signal is occurred.
  * @param[in] item The object triggered the signal
  * @param[in] signal The appointed signal to trigger the function
  * @param[in] source The appointed source that normally indicate the object triggered the event
@@ -770,8 +754,8 @@ void view_set_customized_event_callback(Evas_Object *item, char *signal, char *s
        elm_object_signal_callback_add(item, signal, source, signal_cb, user_data);
 }
 
-/*
- * @brief Register rotary event callback function.
+/**
+ * @brief Registers rotary event callback function.
  * @param[in] obj Object that will receive rotary event
  * @param[in] rotary_cb Function will be operated when rotary event happens
  * @param[in] user_data Data passed to the 'rotary_cb' function
@@ -787,8 +771,8 @@ void view_set_rotary_event_callback(Evas_Object *obj, Eext_Rotary_Event_Cb rotar
        eext_rotary_object_event_callback_add(obj, rotary_cb, user_data);
 }
 
-/*
- * @brief Make a label and set label options.
+/**
+ * @brief Creates a label and set label options.
  * @param[in] parent The object to which you want to add this label
  */
 Evas_Object *view_create_label(Evas_Object *parent)
@@ -811,8 +795,8 @@ Evas_Object *view_create_label(Evas_Object *parent)
        return label;
 }
 
-/*
- * @brief Set a text to label object
+/**
+ * @brief Sets a text to label object.
  * @param[in] parent Object has part to which you want to set text
  * @param[in] part_name Part name to which you want to set text
  * @param[in] text Text you want to set to the part
@@ -841,8 +825,8 @@ void view_set_label_text(Evas_Object *parent, const char *part_name, const char
        elm_object_text_set(label, buf);
 }
 
-/*
- * @brief Set a label to given part
+/**
+ * @brief Sets a label to given part.
  * @param[in] parent Object has part to which you want to set this label
  * @param[in] part_name Part name to which you want to set this label
  */
@@ -864,8 +848,8 @@ void view_set_label(Evas_Object *parent, const char *part_name)
        elm_object_part_content_set(parent, part_name, label);
 }
 
-/*
- * @brief Create a progressbar
+/**
+ * @brief Creates a progressbar.
  * @param[in] parent Object has part to which you want to set this progressbar
  * @param[in] radius Radius The radius value of a given circle object
  * @param[in] line_width The line width value of the circle object
@@ -889,8 +873,8 @@ Evas_Object *view_create_progressbar(Evas_Object *parent, int radius, int line_w
        return progressbar;
 }
 
-/*
- * @brief Set a progressbar to given part
+/**
+ * @brief Sets a progressbar to given part.
  * @param[in] parent Object has part to which you want to set
  * @param[in] part_name Part name to which you want to set
  * @param[in] radius Radius The radius value of a given circle object
@@ -914,8 +898,8 @@ void view_set_progressbar(Evas_Object *parent, const char *part_name, int radius
        elm_object_part_content_set(parent, part_name, progressbar);
 }
 
-/*
- * @brief Set value to a progressbar
+/**
+ * @brief Sets value to a progressbar.
  * @param[in] parent Object has part to which you want to set
  * @param[in] part_name Part name to which you want to set
  * @param[in] val Value to which you want to set
@@ -943,8 +927,8 @@ void view_set_progressbar_val(Evas_Object *parent, const char *part_name, int va
        eext_circle_object_value_set(progressbar, val);
 }
 
-/*
- * @brief Make a check box
+/**
+ * @brief Creates a check box.
  * @param[in] parent The object to which you want to add this check box
  */
 Evas_Object *view_create_checkbox(Evas_Object *parent)
@@ -958,14 +942,14 @@ Evas_Object *view_create_checkbox(Evas_Object *parent)
 
        check = elm_check_add(parent);
        elm_check_state_set(check, EINA_FALSE);
-       evas_object_smart_callback_add(check, "changed", _icon_clicked_cb, NULL);
+       evas_object_smart_callback_add(check, "changed", _dummy_callback_cb, NULL);
        evas_object_show(check);
 
        return check;
 }
 
-/*
- * @brief Make no content view
+/**
+ * @brief Creates no content view.
  * @param[in] parent Naviframe has several views
  * @param[in] title Title of this view
  * @param[in] detail Detail text of this view
@@ -984,7 +968,7 @@ Evas_Object *view_create_layout_no_content(Evas_Object *parent, char *title, cha
        }
 
        layout = elm_layout_add(parent);
-       /* this make you can use layout consists of one title, one image and one detail text */
+       /* This make you can use layout consists of one title, one image and one detail text. */
        elm_layout_theme_set(layout, "layout", "nocontents", "default");
        evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
@@ -999,7 +983,7 @@ Evas_Object *view_create_layout_no_content(Evas_Object *parent, char *title, cha
        if (detail) {
                char detail_text[256] = {0, };
 
-               /* Customize font style bellow */
+               /* Customize font style bellow. */
                snprintf(detail_text, sizeof(detail_text), "<font=TIZEN:style=Medium align=center color=#FFFFFF><font_size=28>%s</font_size></font>", detail);
                elm_object_part_text_set(layout, "elm.text", detail_text);
        }
@@ -1010,18 +994,20 @@ Evas_Object *view_create_layout_no_content(Evas_Object *parent, char *title, cha
                elm_object_part_text_set(layout, "elm.text.title", title_text);
        }
 
-       /* if this signal is not sent, title text will be disappear */
+       /* If this signal is not sent, title text will be disappear. */
        elm_object_signal_emit(layout, "elm,state,title,enable", "elm");
-       /* push this no voice memo view to naviframe to show */
+
+       /* Push this no voice memo view to naviframe to show. */
        it = elm_naviframe_item_push(parent, "Title Enabled", NULL, NULL, layout, NULL);
-       /* if this is EINA_TRUE, you can see Title of naviframe on the top of the screen */
+
+       /* If this is EINA_TRUE, you can see Title of naviframe on the top of the screen. */
        elm_naviframe_item_title_enabled_set(it, EINA_FALSE, EINA_FALSE);
 
        return layout;
 }
 
-/*
- * @brief Set datetime to the part
+/**
+ * @brief Sets datetime to the part.
  * @param[in] parent Object to which you want to set datetime
  * @param[in] style Style of the datetime
  */
@@ -1043,7 +1029,7 @@ Evas_Object *view_create_datetime(Evas_Object *parent, const char *style)
        circle_datetime = eext_circle_object_datetime_add(s_info.datetime, s_info.circle_surface);
 
        eext_rotary_object_event_activated_set(s_info.datetime, EINA_TRUE);
-       elm_datetime_format_set(s_info.datetime, FORMAT);
+       elm_datetime_format_set(s_info.datetime, DATE_FORMAT);
 
        elm_object_style_set(s_info.datetime, style);
 
@@ -1051,3 +1037,40 @@ Evas_Object *view_create_datetime(Evas_Object *parent, const char *style)
 
        return s_info.datetime;
 }
+
+/**
+ * @brief Set functions will be operated when this item is shown on the screen according to the style.
+ * @param[in] style The style of item.
+ */
+static Elm_Genlist_Item_Class *_set_genlist_item_class(const char *style)
+{
+       Elm_Genlist_Item_Class *item_class = NULL;
+
+       if (style == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "style is NULL.");
+               return NULL;
+       }
+
+       item_class = elm_genlist_item_class_new();
+
+       /*
+        * If you want to add the item class of genlist, you should be add below.
+        * To see more genlist's styles click on the link below.
+        * https://developer.tizen.org/development/ui-practices/native-application/efl/ui-components/wearable-ui-components
+        */
+
+        return item_class;
+}
+
+/**
+ * @brief Function will be operated when registered event is triggered.
+ * @param[in] data The data to be passed to the callback function
+ * @param[in] obj The Evas object handle to be passed to the callback function
+ * @param[in] event_info The system event information
+ */
+static void _dummy_callback_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       /*
+        * Write your code here for smart callback.
+        */
+}
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index 8a1dba9..022716d
@@ -1,52 +1,74 @@
- /*
-  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
-  *
-  * Licensed under the Apache License, Version 2.0 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  * http://www.apache.org/licenses/LICENSE-2.0
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <tizen.h>
+#include <dlog.h>
+#include <app.h>
+#include <efl_extension.h>
+#include <Elementary.h>
+
+#include "$(appName).h"
+#include "view.h"
+
+#define TEXT_STYLE_NORMAL "DEFAULT='font=Tizen:style=Light font_size=34 align=center'"
+#define LABEL_STYLE_START "<font=Tizen:style=Regular><font_size=36><align=center><color=#FAFAFA><wrap=mixed>"
+#define LABEL_STYLE_END "</wrap></color></align></font_size></font>"
+#define DATE_FORMAT "%d/%b/%Y%I:%M%p"
 
 |R| static struct view_info {
 |R|            Evas_Object *win;
        Evas_Object *conform;
+       Evas_Object *datetime;
+       Eext_Circle_Surface *circle_surface;
 |R|    } s_info = {
 |R|            .win = NULL,
        .conform = NULL,
+       .datetime = NULL,
+       .circle_surface = NULL,
 |R| };
 
-|R| /*
-|R|  * @brief Create Essential Object window, conformant and layout
-|R|  */
-|R| void view_create(void)
+static Elm_Genlist_Item_Class *_set_genlist_item_class(const char *style);
+static void _dummy_callback_cb(void *data, Evas_Object *obj, void *event_info);
+
+/**
+ * @brief Creates essential objects: window, conformant and layout.
+ */
+|R| Eina_Bool view_create(void)
 |R| {
-|R|    /* Create window */
+       /* Create the window */
 |R|    s_info.win = view_create_win(PACKAGE);
 |R|    if (s_info.win == NULL) {
 |R|            dlog_print(DLOG_ERROR, LOG_TAG, "failed to create a window.");
-|R|            return;
+|R|            return EINA_FALSE;
 |R|    }
 
-       /* Create conformant */
+       /* Create the conformant */
        s_info.conform = view_create_conformant_without_indicator(s_info.win);
        if (s_info.conform == NULL) {
                dlog_print(DLOG_ERROR, LOG_TAG, "failed to create a conformant");
-               return;
+               return EINA_FALSE;
        }
 
-|R|    /* Show window after main view is set up */
+       /* Show the window after main view is set up */
 |R|    evas_object_show(s_info.win);
+|R|    return EINA_TRUE;
 |R| }
 
-/*
- * @brief Make a basic window named package
+/**
+ * @brief Creates a basic window named package
  * @param[in] pkg_name Name of the window
  */
 Evas_Object *view_create_win(const char *pkg_name)
@@ -56,7 +78,7 @@ Evas_Object *view_create_win(const char *pkg_name)
        /*
         * Window
         * Create and initialize elm_win.
-        * elm_win is mandatory to manipulate window
+        * elm_win is mandatory to manipulate the window.
         */
        win = elm_win_util_standard_add(pkg_name, pkg_name);
        elm_win_conformant_set(win, EINA_TRUE);
@@ -68,13 +90,13 @@ Evas_Object *view_create_win(const char *pkg_name)
                elm_win_wm_rotation_available_rotations_set(win, (const int *)(&rots), 4);
        }
 
-       evas_object_smart_callback_add(win, "delete,request", _win_delete_request_cb, NULL);
+       evas_object_smart_callback_add(win, "delete,request", _dummy_callback_cb, NULL);
 
        return win;
 }
 
-/*
- * @brief Make a conformant without indicator for wearable app
+/**
+ * @brief Creates a conformant without indicator for wearable app.
  * @param[in] win The object to which you want to set this conformant
  * Conformant is mandatory for base GUI to have proper size
  */
@@ -102,13 +124,13 @@ Evas_Object *view_create_conformant_without_indicator(Evas_Object *win)
        return conform;
 }
 
-/*
- * @brief Make a layout to target parent object with edje file
+/**
+ * @brief Creates a layout to target parent object with edje file.
  * @param[in] parent The object to which you want to add this layout
- * @param[in] file_path File path of EDJ file will be used
+ * @param[in] file_path File path of the EDJ file will be used
  * @param[in] group_name Name of group in EDJ you want to set to
- * @param[in] cb_function The function will be called when back event is detected
- * @param[in] user_data The user data to be passed to the callback functions
+ * @param[in] cb_function The function called when back event is detected
+ * @param[in] user_data The user data to be passed to the callback function
  */
 Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, const char *group_name, Eext_Event_Cb cb_function, void *user_data)
 {
@@ -119,7 +141,7 @@ Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, cons
                return NULL;
        }
 
-       /* Create layout by EDC(edje file) */
+       /* Create layout using EDC(an edje file) */
        layout = elm_layout_add(parent);
        elm_layout_file_set(layout, file_path, group_name);
 
@@ -134,8 +156,8 @@ Evas_Object *view_create_layout(Evas_Object *parent, const char *file_path, cons
        return layout;
 }
 
-/*
- * @brief Make and set a layout to conformant
+/**
+ * @brief Creates and sets a layout to conformant.
  * @param[in] parent Target conformant object
  * @param[in] file_path File path of EDJ will be used
  * @param[in] group_name Group name in EDJ you want to set to layout
@@ -167,8 +189,8 @@ Evas_Object *view_create_layout_for_conformant(Evas_Object *parent, const char *
        return layout;
 }
 
-/*
- * @brief Make a layout with theme.
+/**
+ * @brief Creates a layout with theme.
  * @param[in] parent Object to which you want to add this layout
  * @param[in] class_name The class of the group
  * @param[in] group_name Group name in EDJ that you want to set to layout
@@ -197,8 +219,8 @@ Evas_Object *view_create_layout_by_theme(Evas_Object *parent, const char *class_
        return layout;
 }
 
-/*
- * @brief Make and set a layout to the part
+/**
+ * @brief Creates and sets a layout to the part.
  * @param[in] parent Object to which you want to set this layout
  * @param[in] file_path File path of EDJ will be used
  * @param[in] group_name Group name in EDJ that you want to set to layout
@@ -224,9 +246,9 @@ Evas_Object *view_create_layout_for_part(Evas_Object *parent, char *file_path, c
        return layout;
 }
 
-|R| /*
-|R|  * @brief Destroy window and free important data to finish this application
-|R|  */
+/**
+ * @brief Destroys window and frees its resources.
+ */
 |R| void view_destroy(void)
 |R| {
 |R|    if (s_info.win == NULL)
@@ -235,17 +257,17 @@ Evas_Object *view_create_layout_for_part(Evas_Object *parent, char *file_path, c
 |R|    evas_object_del(s_info.win);
 |R| }
 
-/*
- * @brief Destroy given layout
- * @param[in] layout The layout you want to destroy
+/**
+ * @brief Destroys the given layout
+ * @param[in] layout The layout to destroy
  */
 void view_destroy_layout(Evas_Object *layout)
 {
        evas_object_del(layout);
 }
 
-/*
- * @brief Set image to given part
+/**
+ * @brief Sets image to given part.
  * @param[in] parent Object has part to which you want to set this image
  * @param[in] part_name Part name to which you want to set this image
  * @param[in] image_path Path of the image file
@@ -280,8 +302,8 @@ void view_set_image(Evas_Object *parent, const char *part_name, const char *imag
        return;
 }
 
-/*
- * @brief Set text to the part
+/**
+ * @brief Sets text to the part.
  * @param[in] parent Object has part to which you want to set text
  * @param[in] part_name Part name to which you want to set the text
  * @param[in] text Text you want to set to the part
@@ -293,12 +315,12 @@ void view_set_text(Evas_Object *parent, const char *part_name, const char *text)
                return;
        }
 
-       /* Set text of target part object */
+       /* Set text of target part object. */
        elm_object_part_text_set(parent, part_name, text);
 }
 
-/*
- * @brief Set color of the part
+/**
+ * @brief Sets color of the part.
  * @param[in] parent Object has part to which you want to set color
  * @param[in] part_name Name of part to which you want to set color
  * @param[in] r R of RGBA you want to set to the part
@@ -321,12 +343,12 @@ void view_set_color(Evas_Object *parent, const char *part_name, int r, int g, in
                return;
        }
 
-       /* Set color of target part object */
+       /* Set color of target part object. */
        evas_object_color_set(obj, r, g, b, a);
 }
 
-/*
- * @brief Set the color of circle line and font in a given circle object
+/**
+ * @brief Sets the color of circle line and font in a given circle object
  * @param[in] parent Object has part to which you want to set color
  * @param[in] part_name Name of part to which you want to set color
  * @param[in] r The red component of the given color
@@ -343,21 +365,21 @@ void view_set_color_of_circle_object(Evas_Object *parent, const char *part_name,
                return;
        }
 
-       /* if the "part" is NULL, this function will get the content from "default" part */
+       /* If the "part" is NULL, this function will get the content from "default" part. */
        obj = elm_object_part_content_get(parent, part_name);
        if (obj == NULL) {
                dlog_print(DLOG_ERROR, LOG_TAG, "failed to get parent.");
                return;
        }
 
-       /* Set color of target part object */
+       /* Set color of target part object. */
        eext_circle_object_color_set(obj, r, g, b, a);
 }
 
-/*
- * @brief Make a naviframe and set to parent
+/**
+ * @brief Creates a naviframe and set to parent.
  * @param[in] parent Object to which you want to set naviframe
- * @Add callback function will be operated when back key is pressed
+ * Add callback function will be operated when back key is pressed
  */
 Evas_Object *view_create_naviframe(Evas_Object *parent)
 {
@@ -384,9 +406,8 @@ Evas_Object *view_create_naviframe(Evas_Object *parent)
        return nf;
 }
 
-//TO DO UPDATE
-/*
- * @brief Push item to naviframe
+/**
+ * @brief Pushs item to naviframe.
  * @param[in] nf Naviframe has several views
  * @param[in] item Object will be added to naviframe
  * @param[in] pop_cb Function will be operated when this item is popped from naviframe
@@ -415,8 +436,8 @@ Elm_Object_Item* view_push_item_to_naviframe(Evas_Object *nf, Evas_Object *item,
        return nf_it;
 }
 
-/*
- * @brief Set a more button
+/**
+ * @brief Sets a more button.
  * @param[in] parent Object has part to which you want to set
  * @param[in] part Part name to which you want to set
  * @param[in] opened_cb Function will be operated when the more button is opened
@@ -439,7 +460,7 @@ void view_set_more_button(Evas_Object *parent, const char *part, Evas_Smart_Cb o
                return;
        }
 
-       /* Add smart callback */
+       /* Add smart callback. */
        evas_object_smart_callback_add(more_btn, "more,option,opened", opened_cb, user_data);
        evas_object_smart_callback_add(more_btn, "more,option,closed", closed_cb, user_data);
        evas_object_smart_callback_add(more_btn, "item,selected", seleted_cb, user_data);
@@ -447,8 +468,8 @@ void view_set_more_button(Evas_Object *parent, const char *part, Evas_Smart_Cb o
        elm_object_part_content_set(parent, part, more_btn);
 }
 
-/*
- * @brief Make and set button.
+/**
+ * @brief Creates and sets button.
  * @param[in] parent Object to which you want to set the button
  * @param[in] part_name Name of part to which you want to set the button
  * @param[in] style Style of the button
@@ -497,8 +518,8 @@ void view_set_button(Evas_Object *parent, const char *part_name, const char *sty
        evas_object_show(btn);
 }
 
-/*
- * @brief Add a more button item
+/**
+ * @brief Adds a more button item.
  * @param[in] parent Object that contains more button
  * @param[in] part_name Name of the part has more option
  * @param[in] main_txt Text will be written in the middle of the selector
@@ -511,7 +532,6 @@ void view_add_more_button_item(Evas_Object *parent, const char *part_name, const
 {
        Evas_Object *image = NULL;
        Evas_Object *more_btn = NULL;
-       char full_path[PATH_MAX] = { 0, };
 
        if (parent == NULL) {
                dlog_print(DLOG_ERROR, LOG_TAG, "parent is NULL.");
@@ -522,30 +542,29 @@ void view_add_more_button_item(Evas_Object *parent, const char *part_name, const
        if (more_btn == NULL)
                return;
 
-       /* Create the new item */
+       /* Create the new item. */
        Eext_Object_Item *item  = eext_more_option_item_append(more_btn);
 
-       /* Set the text in item text part */
+       /* Set the text in item text part. */
        eext_more_option_item_part_text_set(item, "selector,main_text", main_txt);
        eext_more_option_item_part_text_set(item, "selector,sub_text", sub_txt);
 
        image = elm_image_add(more_btn);
-       _get_resource(image_path, full_path, sizeof(full_path));
-       elm_image_file_set(image, full_path, NULL);
+       elm_image_file_set(image, image_path, NULL);
 
-       /* Set the content in item content part */
+       /* Set the content in item content part. */
        eext_more_option_item_part_content_set(item, "item,icon", image);
 
        evas_object_smart_callback_add(more_btn, "item,clicked", clicked_cb, user_data);
 }
 
-/*
- * @brief Make a Entry Object to target window
+/**
+ * @brief Creates a Entry Object to target window.
  * @param[in] parent Object to which you want to set Entry
  * @param[in] part_name Part of the layout which you want to locate Entry
  * @param[in] clicked_cb The function will be called when the entry is clicked
  * @param[in] user_data The user data passed to the callback function
- * @Add callback function will be operated when mouse clicked event is triggered
+ * Add callback function will be operated when mouse clicked event is triggered
  */
 Evas_Object *view_create_entry(Evas_Object *parent, const char *part_name, Evas_Smart_Cb clicked_cb, void *user_data)
 {
@@ -556,37 +575,37 @@ Evas_Object *view_create_entry(Evas_Object *parent, const char *part_name, Evas_
                return NULL;
        }
 
-       /* Add Entry object to parent */
+       /* Add Entry object to parent. */
        entry = elm_entry_add(parent);
        if (entry == NULL) {
                dlog_print(DLOG_ERROR, LOG_TAG, "failed to add a entry");
                return NULL;
        }
 
-       /* Set Entry size option */
+       /* Set Entry size option. */
        evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
-       /* Set Entry option for display and functionalities */
+       /* Set Entry option for display and functionalities. */
        elm_entry_single_line_set(entry, EINA_TRUE);
        elm_entry_scrollable_set(entry, EINA_TRUE);
        elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
        elm_entry_editable_set(entry, EINA_FALSE);
        elm_entry_context_menu_disabled_set(entry, EINA_TRUE);
 
-       /* Set Entry text style using predefined style description */
-       elm_entry_text_style_user_push(entry, DIAL_TEXT_STYLE_NORMAL);
+       /* Set Entry text style using predefined style description. */
+       elm_entry_text_style_user_push(entry, TEXT_STYLE_NORMAL);
 
        elm_object_part_content_set(parent, part_name, entry);
 
-       /* Set callback for event about Entry */
+       /* Set callback for event about Entry. */
        if (clicked_cb)
                evas_object_smart_callback_add(entry, "clicked", clicked_cb, user_data);
 
        return entry;
 }
 
-/*
- * @brief make genlist for circular shape
+/**
+ * @brief Creates a genlist for circular shape.
  * @param[in] parent Object to which you want to set genlist
  */
 Evas_Object *view_create_circle_genlist(Evas_Object *parent)
@@ -609,7 +628,7 @@ Evas_Object *view_create_circle_genlist(Evas_Object *parent)
         * This make selected list item is shown compressed.
         */
        elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
-       evas_object_smart_callback_add(genlist, "selected", _gl_selected_cb, NULL);
+       evas_object_smart_callback_add(genlist, "selected", _dummy_callback_cb, NULL);
 
        /*
         * This make genlist style circular.
@@ -623,8 +642,8 @@ Evas_Object *view_create_circle_genlist(Evas_Object *parent)
        return genlist;
 }
 
-/*
- * @brief Add item to genlist.
+/**
+ * @brief Adds item to genlist.
  * @param[in] genlist Genlist shows several items
  * @param[in] style Style of item determine how to show this item, such as "1text", "1text1icon" and so on
  * @param[in] gen_data Item data that use item's callback function
@@ -657,41 +676,8 @@ Elm_Object_Item *view_append_item_to_genlist(Evas_Object *genlist, const char *s
        return item;
 }
 
-/*
- * @brief Find item from genlist.
- * @param[in] genlist Genlist shows several items
- * @param[in] val Value determine which of the items has to remove
- */
-Elm_Object_Item *view_find_item_from_genlist(Evas_Object *genlist, const char *val)
-{
-       int item_count;
-       int i;
-       Elm_Object_Item *item = NULL;
-       struct genlist_data *gendata = NULL;
-
-       if (genlist == NULL) {
-               dlog_print(DLOG_ERROR, LOG_TAG, "genlist is NULL.");
-               return NULL;
-       }
-
-       item_count = elm_genlist_items_count(genlist);
-
-       /*
-        * The fist item and the last item are "padding".
-        */
-       for (i = 1; i < item_count-1; i++) {
-               item = elm_genlist_nth_item_get(genlist, i);
-               gendata = elm_object_item_data_get(item);
-
-               if (gendata->alarm_id == atoi(val))
-                       return item;
-       }
-
-       return NULL;
-}
-
-/*
- * @brief Remove item.
+/**
+ * @brief Removes item.
  * @param[in] item Item from genlist
  */
 void view_delete_item(Elm_Object_Item *item)
@@ -699,8 +685,8 @@ void view_delete_item(Elm_Object_Item *item)
        elm_object_item_del(item);
 }
 
-/*
- * @brief Make popup with theme.
+/**
+ * @brief Creates popup with theme.
  * @param[in] timeout Duration that popup is showing
  * @param[in] text Text displayed on the popup
  */
@@ -718,11 +704,8 @@ void view_create_text_popup(Evas_Object *parent, double timeout, const char *tex
        elm_object_style_set(popup, "circle");
        evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
-       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _popup_hide_cb, NULL);
-       /*
-        * Delete popup object in _popup_hide_finished_cb(), when the "dismissed" signal will be called.
-        */
-       evas_object_smart_callback_add(popup, "dismissed", _popup_hide_finished_cb, NULL);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _dummy_callback_cb, NULL);
+       evas_object_smart_callback_add(popup, "dismissed", _dummy_callback_cb, NULL);
 
        popup_layout = elm_layout_add(popup);
        elm_layout_theme_set(popup_layout, "layout", "popup", "content/circle");
@@ -737,8 +720,8 @@ void view_create_text_popup(Evas_Object *parent, double timeout, const char *tex
        evas_object_show(popup);
 }
 
-/*
- * @brief Set the content to the given part
+/**
+ * @brief Sets the content to the given part.
  * @param[in] part_name Name of the part to which you want to set
  * @param[in] content The object will be set to the given part
  */
@@ -747,8 +730,8 @@ void view_set_content_to_part(Evas_Object *layout, const char *part_name, Evas_O
        elm_object_part_content_set(layout, part_name, content);
 }
 
-/*
- * @brief Send signal with source to the EDJ object
+/**
+ * @brief Sends signal with source to the EDJ object.
  * @param[in] layout The layout object will receive the signal
  * @param[in] signal The appointed signal to trigger the function
  * @param[in] source The appointed source that normally indicate the object triggered the event
@@ -758,8 +741,8 @@ void view_send_signal_to_edje(Evas_Object *layout, const char *signal, const cha
        elm_object_signal_emit(layout, signal, source);
 }
 
-/*
- * @brief Set the function will be called when the appointed signal is occurred
+/**
+ * @brief Sets the function will be called when the appointed signal is occurred.
  * @param[in] item The object triggered the signal
  * @param[in] signal The appointed signal to trigger the function
  * @param[in] source The appointed source that normally indicate the object triggered the event
@@ -771,8 +754,8 @@ void view_set_customized_event_callback(Evas_Object *item, char *signal, char *s
        elm_object_signal_callback_add(item, signal, source, signal_cb, user_data);
 }
 
-/*
- * @brief Register rotary event callback function.
+/**
+ * @brief Registers rotary event callback function.
  * @param[in] obj Object that will receive rotary event
  * @param[in] rotary_cb Function will be operated when rotary event happens
  * @param[in] user_data Data passed to the 'rotary_cb' function
@@ -788,8 +771,8 @@ void view_set_rotary_event_callback(Evas_Object *obj, Eext_Rotary_Event_Cb rotar
        eext_rotary_object_event_callback_add(obj, rotary_cb, user_data);
 }
 
-/*
- * @brief Make a label and set label options.
+/**
+ * @brief Creates a label and set label options.
  * @param[in] parent The object to which you want to add this label
  */
 Evas_Object *view_create_label(Evas_Object *parent)
@@ -812,8 +795,8 @@ Evas_Object *view_create_label(Evas_Object *parent)
        return label;
 }
 
-/*
- * @brief Set a text to label object
+/**
+ * @brief Sets a text to label object.
  * @param[in] parent Object has part to which you want to set text
  * @param[in] part_name Part name to which you want to set text
  * @param[in] text Text you want to set to the part
@@ -842,8 +825,8 @@ void view_set_label_text(Evas_Object *parent, const char *part_name, const char
        elm_object_text_set(label, buf);
 }
 
-/*
- * @brief Set a label to given part
+/**
+ * @brief Sets a label to given part.
  * @param[in] parent Object has part to which you want to set this label
  * @param[in] part_name Part name to which you want to set this label
  */
@@ -865,8 +848,8 @@ void view_set_label(Evas_Object *parent, const char *part_name)
        elm_object_part_content_set(parent, part_name, label);
 }
 
-/*
- * @brief Create a progressbar
+/**
+ * @brief Creates a progressbar.
  * @param[in] parent Object has part to which you want to set this progressbar
  * @param[in] radius Radius The radius value of a given circle object
  * @param[in] line_width The line width value of the circle object
@@ -890,8 +873,8 @@ Evas_Object *view_create_progressbar(Evas_Object *parent, int radius, int line_w
        return progressbar;
 }
 
-/*
- * @brief Set a progressbar to given part
+/**
+ * @brief Sets a progressbar to given part.
  * @param[in] parent Object has part to which you want to set
  * @param[in] part_name Part name to which you want to set
  * @param[in] radius Radius The radius value of a given circle object
@@ -915,8 +898,8 @@ void view_set_progressbar(Evas_Object *parent, const char *part_name, int radius
        elm_object_part_content_set(parent, part_name, progressbar);
 }
 
-/*
- * @brief Set value to a progressbar
+/**
+ * @brief Sets value to a progressbar.
  * @param[in] parent Object has part to which you want to set
  * @param[in] part_name Part name to which you want to set
  * @param[in] val Value to which you want to set
@@ -944,8 +927,8 @@ void view_set_progressbar_val(Evas_Object *parent, const char *part_name, int va
        eext_circle_object_value_set(progressbar, val);
 }
 
-/*
- * @brief Make a check box
+/**
+ * @brief Creates a check box.
  * @param[in] parent The object to which you want to add this check box
  */
 Evas_Object *view_create_checkbox(Evas_Object *parent)
@@ -959,14 +942,14 @@ Evas_Object *view_create_checkbox(Evas_Object *parent)
 
        check = elm_check_add(parent);
        elm_check_state_set(check, EINA_FALSE);
-       evas_object_smart_callback_add(check, "changed", _icon_clicked_cb, NULL);
+       evas_object_smart_callback_add(check, "changed", _dummy_callback_cb, NULL);
        evas_object_show(check);
 
        return check;
 }
 
-/*
- * @brief Make no content view
+/**
+ * @brief Creates no content view.
  * @param[in] parent Naviframe has several views
  * @param[in] title Title of this view
  * @param[in] detail Detail text of this view
@@ -985,7 +968,7 @@ Evas_Object *view_create_layout_no_content(Evas_Object *parent, char *title, cha
        }
 
        layout = elm_layout_add(parent);
-       /* this make you can use layout consists of one title, one image and one detail text */
+       /* This make you can use layout consists of one title, one image and one detail text. */
        elm_layout_theme_set(layout, "layout", "nocontents", "default");
        evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
        evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
@@ -1000,7 +983,7 @@ Evas_Object *view_create_layout_no_content(Evas_Object *parent, char *title, cha
        if (detail) {
                char detail_text[256] = {0, };
 
-               /* Customize font style bellow */
+               /* Customize font style bellow. */
                snprintf(detail_text, sizeof(detail_text), "<font=TIZEN:style=Medium align=center color=#FFFFFF><font_size=28>%s</font_size></font>", detail);
                elm_object_part_text_set(layout, "elm.text", detail_text);
        }
@@ -1011,18 +994,20 @@ Evas_Object *view_create_layout_no_content(Evas_Object *parent, char *title, cha
                elm_object_part_text_set(layout, "elm.text.title", title_text);
        }
 
-       /* if this signal is not sent, title text will be disappear */
+       /* If this signal is not sent, title text will be disappear. */
        elm_object_signal_emit(layout, "elm,state,title,enable", "elm");
-       /* push this no voice memo view to naviframe to show */
+
+       /* Push this no voice memo view to naviframe to show. */
        it = elm_naviframe_item_push(parent, "Title Enabled", NULL, NULL, layout, NULL);
-       /* if this is EINA_TRUE, you can see Title of naviframe on the top of the screen */
+
+       /* If this is EINA_TRUE, you can see Title of naviframe on the top of the screen. */
        elm_naviframe_item_title_enabled_set(it, EINA_FALSE, EINA_FALSE);
 
        return layout;
 }
 
-/*
- * @brief Set datetime to the part
+/**
+ * @brief Sets datetime to the part.
  * @param[in] parent Object to which you want to set datetime
  * @param[in] style Style of the datetime
  */
@@ -1044,7 +1029,7 @@ Evas_Object *view_create_datetime(Evas_Object *parent, const char *style)
        circle_datetime = eext_circle_object_datetime_add(s_info.datetime, s_info.circle_surface);
 
        eext_rotary_object_event_activated_set(s_info.datetime, EINA_TRUE);
-       elm_datetime_format_set(s_info.datetime, FORMAT);
+       elm_datetime_format_set(s_info.datetime, DATE_FORMAT);
 
        elm_object_style_set(s_info.datetime, style);
 
@@ -1052,3 +1037,40 @@ Evas_Object *view_create_datetime(Evas_Object *parent, const char *style)
 
        return s_info.datetime;
 }
+
+/**
+ * @brief Set functions will be operated when this item is shown on the screen according to the style.
+ * @param[in] style The style of item.
+ */
+static Elm_Genlist_Item_Class *_set_genlist_item_class(const char *style)
+{
+       Elm_Genlist_Item_Class *item_class = NULL;
+
+       if (style == NULL) {
+               dlog_print(DLOG_ERROR, LOG_TAG, "style is NULL.");
+               return NULL;
+       }
+
+       item_class = elm_genlist_item_class_new();
+
+       /*
+        * If you want to add the item class of genlist, you should be add below.
+        * To see more genlist's styles click on the link below.
+        * https://developer.tizen.org/development/ui-practices/native-application/efl/ui-components/wearable-ui-components
+        */
+
+        return item_class;
+}
+
+/**
+ * @brief Function will be operated when registered event is triggered.
+ * @param[in] data The data to be passed to the callback function
+ * @param[in] obj The Evas object handle to be passed to the callback function
+ * @param[in] event_info The system event information
+ */
+static void _dummy_callback_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       /*
+        * Write your code here for smart callback.
+        */
+}
diff --git a/rule/wearable/project/tizen-manifest.xml b/rule/wearable/project/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..35849b8
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.3.1" package="org.example.$(appName)" version="1.5.3">
+       <profile name="wearable" />
+       <ui-application appid="org.example.$(appName)" exec="$(appName)" type="capp" multiple="false" taskmanage="true" nodisplay="false">
+               <icon>$(appName).png</icon>
+               <label>$(appName)</label>
+       </ui-application>
+</manifest>
diff --git a/rule/wearable/project/tizen-manifest.xml.tccr b/rule/wearable/project/tizen-manifest.xml.tccr
new file mode 100755 (executable)
index 0000000..35849b8
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="2.3.1" package="org.example.$(appName)" version="1.5.3">
+       <profile name="wearable" />
+       <ui-application appid="org.example.$(appName)" exec="$(appName)" type="capp" multiple="false" taskmanage="true" nodisplay="false">
+               <icon>$(appName).png</icon>
+               <label>$(appName)</label>
+       </ui-application>
+</manifest>
old mode 100644 (file)
new mode 100755 (executable)
index 5c1b5f3..7c7acdd
                                <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"/>
old mode 100644 (file)
new mode 100755 (executable)
index e69de29..9765b1b
Binary files a/rule/wearable/screenshot.png and b/rule/wearable/screenshot.png differ