Add src to parse editor pkg name. 37/184037/3
authorjinwang.an <jinwang.an@samsung.com>
Fri, 13 Jul 2018 07:08:44 +0000 (16:08 +0900)
committerjinwang.an <jinwang.an@samsung.com>
Thu, 19 Jul 2018 02:51:14 +0000 (11:51 +0900)
Change-Id: I85e99e72aeb51ab74211d897e8b085ebeb645e98
Signed-off-by: jinwang.an <jinwang.an@samsung.com>
CMakeLists.txt
include/setting-clock.h
packaging/org.tizen.watch-setting.spec
src/setting-clock.c

index 8e3062102b277275bd85990101d2e6b94c8d8f77..a835a4601f8fb869cbf947b8638f3568c92cc89b 100755 (executable)
@@ -92,6 +92,7 @@ pkg_check_modules(pkgs REQUIRED elementary ecore-imf appcore-common appcore-efl
                                storage
                                capi-base-utils-i18n
                                tapi
+                               watch-control
 )
 
 #??
index d8467b5592c27495080493f6aacc662da194f1c5..5ff3fe5c4bc44517d1d5443d7d7a843ee0b58fe5 100644 (file)
@@ -129,6 +129,7 @@ typedef struct _clock_type_item {
        char *pkgid;
        char *name;
        char *icon;
+       char *editor;
 } Clock_Type_Item;
 
 typedef struct _clock_type_data {
index 29233b484c0693fb3f1d561b6ed4b8b723a96ef3..b27a85501b98f4851fe4abcb95e917e890f8fd45 100644 (file)
@@ -60,6 +60,7 @@ BuildRequires: pkgconfig(capi-network-wifi)
 BuildRequires: pkgconfig(storage)
 BuildRequires: pkgconfig(capi-base-utils-i18n)
 BuildRequires: pkgconfig(tapi)
+BuildRequires: pkgconfig(watch-control)
 
 
 %description
index e6fe7c29b65caa16860b01cab0af0b5ee71c1de2..73487655816849be9f7a7583f9daab856abbf913 100644 (file)
@@ -213,10 +213,16 @@ void _edit_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
        elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
 
+       char *app_id = (char*)data;
+       if (app_id == NULL) {
+               ERR("app_id is null!!");
+               return;
+       }
+
        DBG("_edit_clicked_cb in");
        app_control_h service;
        app_control_create(&service);
-       app_control_set_app_id(service, "org.tizen.watch-face-editor");
+       app_control_set_app_id(service, app_id);
        app_control_set_launch_mode(service, APP_CONTROL_LAUNCH_MODE_GROUP);
        app_control_send_launch_request(service, NULL, NULL);
        app_control_destroy(service);
@@ -250,13 +256,21 @@ Evas_Object *_elm_min_set_item(Evas_Object *obj, Evas_Object *parent, Evas_Coord
        evas_object_size_hint_align_set(obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
        elm_table_pack(table, obj, 0, 2, 1, 1);
 
-       btn = elm_button_add(parent);
-       evas_object_smart_callback_add(btn, "clicked", _edit_clicked_cb, NULL);
-       evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
-       elm_object_text_set(btn, "EDITOR");
-       evas_object_show(btn);
-       elm_table_pack(table, btn, 0, 3, 1, 1);
+       if (pitem->editor) {
+               btn = elm_button_add(parent);
+               evas_object_smart_callback_add(btn, "clicked", _edit_clicked_cb, (void*)pitem->editor);
+               evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               elm_object_text_set(btn, "CUSTOMIZE");
+               evas_object_show(btn);
+               elm_table_pack(table, btn, 0, 3, 1, 1);
+       } else {
+               rect = evas_object_rectangle_add(evas_object_evas_get(table));
+               evas_object_size_hint_min_set(rect, w, h/7);
+               evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               elm_table_pack(table, rect, 0, 3, 1, 1);
+       }
 
 
        return table;
@@ -914,6 +928,7 @@ static int _category_app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
        char *name = NULL;
        char *pkgid = NULL;
        char *icon = NULL;
+       char *editor = NULL;
        int ret = 0;
        _Bool preload = 0;
        char *m_value = NULL;
@@ -957,6 +972,11 @@ static int _category_app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
                        ERR("pkgmgrinfo_appinfo_get_metadata_value NOT error or 3rd party ret=%d", ret);
                }
 
+               ret = watch_manager_get_setup_appid(appid, &editor);
+               if (ret != 0) {
+                       ERR("watch_manager_get_setup_appid error %d or there is no editor", ret);
+               }
+
                Clock_Type_Item *pitem = NULL;
                pitem = (Clock_Type_Item *)calloc(1, sizeof(Clock_Type_Item));
                setting_retvm_if(NULL == pitem, SETTING_RETURN_FAIL, "pitem is NULL");
@@ -966,12 +986,18 @@ static int _category_app_list_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
                ret = pkgmgrinfo_appinfo_foreach_metadata(tmp_handle, watch_metadata_func, (void *)(&clock_metadata));
 
                pitem->appid = strdup(appid);
-               if (pkgid != NULL)
+               if (pkgid != NULL) {
                        pitem->pkgid = strdup(pkgid);
+                       free(pkgid);
+               }
                if (name != NULL)
                        pitem->name = strdup(name);
                if (icon != NULL)
                        pitem->icon = strdup(icon);
+               if (editor != NULL) {
+                       pitem->editor = strdup(editor);
+                       free(editor);
+               }
 
                if (m_value && clock_metadata.value && strlen(m_value) > 0) {
                        if (!strcmp(m_value, "function")) {
@@ -1989,6 +2015,7 @@ void _clocklist_destroy()
                        FREE(pitem->pkgid);
                        FREE(pitem->name);
                        FREE(pitem->icon);
+                       FREE(pitem->editor);
                }
        }
        g_clock_list[0] = eina_list_free(g_clock_list[0]);