From: kiso.chang Date: Fri, 5 Feb 2021 09:20:26 +0000 (+0900) Subject: Check change of VCONFKEY_SETAPPL_SOFT_KEY X-Git-Tag: submit/tizen/20210210.041649^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F91%2F253191%2F3;p=profile%2Fcommon%2Fapps%2Fnative%2Fsettings.git Check change of VCONFKEY_SETAPPL_SOFT_KEY Change-Id: I370c9b1d5ca8a7735481bdce8a0b648203482835 Signed-off-by: kiso.chang --- diff --git a/setting-softkey/src/setting-softkey-main.c b/setting-softkey/src/setting-softkey-main.c index bc5e6d8..a1b8397 100644 --- a/setting-softkey/src/setting-softkey-main.c +++ b/setting-softkey/src/setting-softkey-main.c @@ -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;