}
}
+
+/**
+ * @brief Do process when clicking on "Tizen verion" item (5 clicks make "Dev. Option" enable)
+ *
+ * @param data application context
+ * @param obj evas object
+ * @param event_info event type
+ */
+static void __tizen_version_mouse_up_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ const double click_gap = 1.01;
+ const int clicks_count = 5;
+
+ double diff_sec = 0;
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+ SettingAbout *ad = (SettingAbout *)data;
+
+ ad->tizen_version_click_no++;
+ SETTING_TRACE("Tizen version clicked %d times", ad->tizen_version_click_no);
+
+ if (ad->tizen_version_click_no <= 1) {
+ ad->last_click_time = time(NULL);
+ return;
+ }
+
+ time_t now = time(NULL);
+ diff_sec = difftime(now, ad->last_click_time);
+ if (diff_sec < click_gap) {
+ if (ad->tizen_version_click_no < clicks_count) {
+ ad->last_click_time = time(NULL);
+ return;
+ }
+
+ int stateDeveloperOption;
+ int err = vconf_get_bool(VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE, &stateDeveloperOption);
+ if (VCONF_OK == err) {
+ stateDeveloperOption = !stateDeveloperOption;
+ SETTING_TRACE("Set Developer Option %s", stateDeveloperOption? "Enable" : "Disable");
+ err = vconf_set_bool(VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE, stateDeveloperOption);
+ if (VCONF_OK != err) {
+ SETTING_TRACE_ERROR(">>>>>>>>>> Failed to set vconf[%s]", VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE);
+ }
+ }
+ } else {
+ SETTING_TRACE("You clicked too long");
+ }
+
+ SETTING_TRACE("Reset couting clicks");
+ ad->tizen_version_click_no = 0;
+}
+
+
/**
* @brief callback function for genlist event "drag"
*
str[0] = '\0';
__get_sw_version(str, sizeof(str));
item_data = setting_create_Gendial_field_def(ad->md.genlist,
- &(ad->itc_2text_2), NULL,
- NULL, SWALLOW_Type_INVALID, NULL,
+ &(ad->itc_2text_2), __tizen_version_mouse_up_cb,
+ ad, SWALLOW_Type_INVALID, NULL,
NULL, 0, "IDS_ST_MBODY_TIZEN_VERSION", str, NULL);
- if (item_data) {
- elm_genlist_item_select_mode_set(item_data->item,
- ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- } else {
+ if (!item_data) {
SETTING_TRACE_ERROR("item_data is NULL");
}
};
static int setting_reset_create(void *ad);
+static int setting_reset_destroy(void *ad);
+
//static void setting_reset_settings_clicked(void *data, Evas_Object *obj, void *event_info);
//static void setting_reset_network_clicked(void *data, Evas_Object *obj, void *event_info);
static void setting_reset_initial_config_clicked(void *data, Evas_Object *obj, void *event_info);
setting_view setting_view_reset = {
.create = setting_reset_create,
.update = NULL,
- .destroy = NULL,
+ .destroy = setting_reset_destroy,
.cleanup = NULL
};
#endif
+
+
+static void __vconf_change_cb(keynode_t *key, void *data)
+{
+ SETTING_TRACE_BEGIN;
+ setting_retm_if(NULL == key, "key is NULL");
+ setting_retm_if(NULL == data, "data is NULL");
+ char *vconf_name = vconf_keynode_get_name(key);
+
+ if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE)) {
+ int stateDeveloperOption;
+ int err = vconf_get_bool(VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE, &stateDeveloperOption);
+ if (err != VCONF_OK) {
+ SETTING_TRACE_ERROR(">>>>>>>>>> Failed to get vconf[%s]", VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE);
+ }
+ } else {
+ SETTING_TRACE_ERROR("vconf_name is error");
+ }
+}
+
static void _dismiss_popup(void *data, Evas_Object *obj, void *event_info)
{
evas_object_del(obj);
int stateDeveloperOption;
int err = vconf_get_bool(VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE, &stateDeveloperOption);
- if (err != 0) {
+ if (err == VCONF_OK) {
if(stateDeveloperOption){
it = &Item_FactoryReset;
setting_create_Gendial_field_def(
}
#endif
+ ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE,
+ __vconf_change_cb, ad);
+ if (ret != 0)
+ SETTING_TRACE_ERROR("call vconf_ignore_key_changed failed");
+
setting_view_reset.is_create = 1;
evas_object_show(md->window);
SETTING_TRACE_END;
return SETTING_RETURN_SUCCESS;
}
+
+
+static int setting_reset_destroy(void *ad)
+{
+ SETTING_TRACE_BEGIN;
+ int ret;
+ /* error check */
+ retv_if(ad == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
+
+ MainData *md = (MainData *)ad;
+
+ ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_DEVELOPER_OPTION_STATE,
+ __vconf_change_cb);
+ if (ret != 0)
+ SETTING_TRACE_ERROR("call vconf_ignore_key_changed failed");
+
+ evas_object_del(md->window);
+ md->window = NULL;
+ md->naviframe = NULL;
+
+ setting_view_reset.is_create = 0;
+ return SETTING_RETURN_SUCCESS;
+}
+