Check change of VCONFKEY_SETAPPL_SOFT_KEY 91/253191/3 accepted/tizen/unified/20210210.130255 submit/tizen/20210210.041649
authorkiso.chang <kiso.chang@samsung.com>
Fri, 5 Feb 2021 09:20:26 +0000 (18:20 +0900)
committerkiso.chang <kiso.chang@samsung.com>
Wed, 10 Feb 2021 04:11:31 +0000 (13:11 +0900)
Change-Id: I370c9b1d5ca8a7735481bdce8a0b648203482835
Signed-off-by: kiso.chang <kiso.chang@samsung.com>
setting-softkey/src/setting-softkey-main.c

index bc5e6d8363a0bf814d1fa34cffb4fd7237160f0a..a1b8397590c628e9ce5e834af7a2719d10d96928 100644 (file)
@@ -88,6 +88,32 @@ static void _click_softkey_back_cb(void *data,
        elm_naviframe_item_pop(ad->md.naviframe);
 }
 
+static void __vconf_change_cb(keynode_t *key, void *data)
+{
+       SETTING_TRACE_BEGIN;
+
+       SettingSoftKeyData *ad = (SettingSoftKeyData *)data;
+       setting_retm_if(!key, "key is NULL");
+       setting_retm_if(!ad, "data is NULL");
+
+       char *vconf_name = NULL;
+       vconf_name = vconf_keynode_get_name(key);
+
+       if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_SOFT_KEY)) {
+               int status = vconf_keynode_get_bool(key);
+               SETTING_TRACE("softkey status: %d", status);
+
+               if(!ad->data_softkey_toogle) {
+                       SETTING_TRACE_ERROR("ad->data_softkey_toogle is NULL");
+                       return;
+               }
+               Setting_GenGroupItem_Data *softkey_toogle = ad->data_softkey_toogle;
+               Eina_Bool val = elm_check_state_get(softkey_toogle->eo_check);
+               if(status != (int)val)
+                       elm_check_state_set(softkey_toogle->eo_check, (Eina_Bool)status);
+       }
+}
+
 static int _view_create(void *cb)
 {
        Evas_Object *back_button = NULL;
@@ -96,10 +122,17 @@ static int _view_create(void *cb)
        retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
        SettingSoftKeyData *ad = (SettingSoftKeyData *) cb;
 
-       int ret = view_init(&ad->md, _("IDS_ST_BODY_SOFTKEY"));
+       int ret;
+       ret = view_init(&ad->md, _("IDS_ST_BODY_SOFTKEY"));
        if (ret != SETTING_RETURN_SUCCESS)
                return ret;
 
+       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_SOFT_KEY,
+                       __vconf_change_cb, ad);
+       if (ret != 0)
+               SETTING_TRACE_ERROR("SOFTKEY vconf_notify_key_changed failed");
+
+
        _get_lite_main_list(ad);
 
        back_button = setting_create_button(ad->md.naviframe,
@@ -128,6 +161,12 @@ static int _view_destroy(void *cb)
 
        SettingSoftKeyData *ad = (SettingSoftKeyData *) cb;
 
+       int ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_SOFT_KEY,
+                       __vconf_change_cb);
+       if (ret != 0)
+               SETTING_TRACE_ERROR("SOFTKEY vconf_ignore_key_changed failed");
+
+
        evas_object_del(ad->md.window);
        ad->md.window = NULL;