/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.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.
- */
-
+ * setting
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ *
+ * 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.
+ *
+ */
+#include <setting-cfg.h>
#include <setting-about-main.h>
#include <aul.h>
-#include <iniparser.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <bluetooth-api.h>
+
+#include <app_manager.h>
+#include <system_info.h>
+
+#define DEVNAME_BLOCK_SPACE 0
+// #define SUPPORT_DIAG_USAGE
+
+/** @todo : need to handle unicode encoded input characters */
+
#define MAX_DEVICE_NAME_LEN 24
-#define EMPTY_LIMITATION_STR "Name cannot be empty!"
+#define EMPTY_LIMITATION_STR "IDS_ST_BODY_THE_NAME_FIELD_CANNOT_BE_EMPTY"
+#define DIAGNOSTICS_USAGE_STR "Diagnostics and Usage"
+#define SOFTWARE_UPDATE_STR "IDS_ST_MBODY_SOFTWARE_UPDATE"
static int setting_about_main_create(void *cb);
.update = setting_about_main_update,
.cleanup = setting_about_main_cleanup,
};
+/**
+* Do process when clicking '<-' button
+*
+* @param data
+* @param obj
+* @param event_info
+*/
+static void setting_about_main_click_softkey_back_cb(void *data,
+ Evas_Object *obj,
+ void *event_info);
-static void __setting_about_main_mobile_ap_turn_off_ask_resp_cb(void *data,
- Evas_Object *obj,
- void *event_info);
+/**
+* Do process when clicking on some genlist item
+*
+* @param data
+* @param obj
+* @param event_info
+*/
+static void setting_about_main_mouse_up_Gendial_list_cb(void *data,
+ Evas_Object *obj,
+ void *event_info);
static void __setting_about_main_certificates_clicked(void *data);
static void __setting_about_main_device_name_clicked(void *data, Evas_Object *obj);
-static void __setting_about_main_exp_cb(void *data, Evas_Object *obj, void *event_info);
-static void __setting_about_sub_list_rd_change(void *data, Evas_Object *obj, void *event_info);
+static void __setting_about_main_diagnostics_usage_clicked(void *data, Evas_Object *obj);
/* ***************************************************
*
*basic func
*
***************************************************/
-
-static void
-__setting_about_device_name_changed_cb(void *data, Evas_Object *obj,
- void *event_info)
+static void __about_popup_rsp_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ SettingAboutUG *ad = data;
+ if (obj) {
+ evas_object_del(obj);
+ obj = NULL;
+ }
+ ad->popup = NULL;
+}
+static void __device_name_changed_cb(void *data, Evas_Object *obj)
{
retm_if(!data || !obj, "Data parameter is NULL");
//return if entry is not focused too
- retm_if(!elm_object_focus_get(obj), "Entry is not focused");
Setting_GenGroupItem_Data *list_item =
(Setting_GenGroupItem_Data *) data;
int entry_len = safeStrLen(entry_str);
SETTING_TRACE("entry_str:[%s], lenght:%d", entry_str, entry_len);
+#if DEVNAME_BLOCK_SPACE
+ //block 'Space' key
+ if (entry_len > 0 && NULL != strstr(entry_str, " ")) {//cancel the effect of input 'space character'
+ SETTING_TRACE("Cannot input the 'space' key or 'enter' key");
+
+ int i = 0;
+ int j = 0;
+ char *tmp = (char *)g_strdup(entry_str);
+ for (; tmp[i];) {
+ if (tmp[i] == ' ') {
+ for (j = i; tmp[j]; j++) {
+ tmp[j] = tmp[j + 1];
+ }
+ } else {
+ i++;
+ }
+ }
+ G_FREE(list_item->sub_desc);
+ list_item->sub_desc = (char *)g_strdup(tmp);
+ G_FREE(tmp);
+ SETTING_TRACE("sub_desc:[%s]", list_item->sub_desc);
+
+ elm_entry_entry_set(obj, list_item->sub_desc);
+ elm_entry_cursor_end_set(obj);
+ }
+#endif
//for genlist update
G_FREE(list_item->sub_desc);//release first
list_item->sub_desc = (char *)g_strdup(entry_str);
if (!ad->empty_flag)
{
ad->empty_flag = TRUE;
+ elm_entry_context_menu_disabled_set(obj, TRUE); //disable the copy&paste&search popup
+ elm_entry_magnifier_disabled_set(obj, TRUE);
Elm_Object_Item *navi_it = elm_naviframe_top_item_get(ad->navi_bar);
if (navi_it)
{
Evas_Object *back_btn = elm_object_item_part_content_get(navi_it, "prev_btn");
setting_disable_evas_object(back_btn);
setting_dim_evas_object(back_btn, TRUE);
- }
+ Evas_Object *top_r_btn = elm_object_item_part_content_get(navi_it, "title_right_btn");
+ if(top_r_btn)
+ {
+ setting_disable_evas_object(top_r_btn);
+ setting_dim_evas_object(top_r_btn, TRUE);
+ }
+ }
}
} else {
if (ad->empty_flag)
{
ad->empty_flag = FALSE;
+ elm_entry_context_menu_disabled_set(obj, FALSE); //enable the copy&paste&search popup
+ elm_entry_magnifier_disabled_set(obj, FALSE);
Elm_Object_Item *navi_it = elm_naviframe_top_item_get(ad->navi_bar);
if (navi_it)
{
Evas_Object *back_btn = elm_object_item_part_content_get(navi_it, "prev_btn");
setting_enable_evas_object(back_btn);
setting_undo_dim_evas_object(back_btn, TRUE);
+
+ Evas_Object *top_r_btn = elm_object_item_part_content_get(navi_it, "title_right_btn");
+ if(top_r_btn)
+ {
+ setting_enable_evas_object(top_r_btn);
+ setting_undo_dim_evas_object(top_r_btn, TRUE);
+ }
}
}
}
}
-void setting_about_main_get_phonenumber(char *my_numbers[], int *my_numbers_len, int *selected_index)
+static void
+__setting_about_device_name_changed_cb(void *data, Evas_Object *obj,
+ void *event_info)
{
- SETTING_TRACE_BEGIN;
- /* Currently only have one SIM card */
- TelSimSubscriberInfo_t subscriber;
- TapiResult_t ret = 0;
- ret = tel_get_sim_msisdn(&subscriber);
- setting_retm_if(ret != TAPI_API_SUCCESS, "call tel_get_sim_msisdn failed");
-
- SETTING_TRACE("num[%s]", subscriber.num);
- *my_numbers_len = 0;
- *selected_index = 0;
- if(!isEmptyStr(subscriber.num)) {
- my_numbers[0] = (char *)g_strdup(subscriber.num);
- (*my_numbers_len)++;
- } else {
- SETTING_TRACE("subscriber.num is empty string");
- my_numbers[0] = NULL;
- }
+ __device_name_changed_cb(data, obj);
}
-/*
- Model Name:
- - No ini: Unavailable
- - Tizen @ target: TIZEN
- - Tizen @ emul: SDK
-*/
+
+/**
+ * Model Name:
+ * - No ini: Unavailable
+ * - I9500 @ target: GT-I9500
+ * - I9500 @ emul: SDK
+ * - SLP @ target: GT-SLP
+ * - SLP @ emul: SDK
+ */
void setting_about_main_get_phone_model_name(char* szStr, int nSize)
{
retm_if(szStr == NULL, "szStr parameter is NULL");
- char szBin[50];
- char szEmul[50];
-
- const char* szBinVer = NULL;
-
- dictionary* dic = iniparser_load(SETTING_ABOUT_INFO_PATH);
- if (dic) {
- szBinVer = (char*)iniparser_getstr(dic, "Version:Build");
- if (szBinVer) {
- char* str = g_strdup(szBinVer);
- if (str) {
- char* pPos = str;
- while (*pPos++) {
- if ('_' == *pPos)
- *pPos = ' ';
- }
- sscanf(str, "%s %s", szBin, szEmul);
- }
- G_FREE(str);
- }
+ char *value = NULL;
+ int ret = system_info_get_value_string(SYSTEM_INFO_KEY_MODEL, &value);
+ SETTING_TRACE("value : %s", value);
+ if (ret != SYSTEM_INFO_ERROR_NONE) {
+ SETTING_TRACE_ERROR("fail to call system_info_get_value_string");
+ FREE(value);
+ snprintf(szStr, nSize, "%s", _("IDS_ST_HEADER_UNAVAILABLE"));
+ return;
}
- if (!strncmp(szEmul, "emul", 4)) {
- snprintf(szStr, nSize, "%s", "SDK");
+ if (value) {
+ snprintf(szStr, nSize, "%s", value);
} else {
- if (!strncmp(szBin, "TIZEN", 5)) {
- snprintf(szStr, nSize, "TIZEN REFERENCE");
- } else {
- snprintf(szStr, nSize, "%s", _("IDS_ST_HEADER_UNAVAILABLE"));
- }
+ snprintf(szStr, nSize, "%s", _("IDS_ST_HEADER_UNAVAILABLE"));
}
- if (dic) {
- iniparser_freedict(dic);
- dic = NULL;
- }
+ FREE(value);
}
void setting_about_main_get_sw_version(char* szStr, int nSize)
{
retm_if(szStr == NULL, "szStr parameter is NULL");
- dictionary* dic = iniparser_load(SETTING_ABOUT_INFO_PATH);
- if (dic == NULL) {
+ char *version = NULL;
+ int ret = system_info_get_value_string(SYSTEM_INFO_KEY_TIZEN_VERSION, &version);
+ if (ret != SYSTEM_INFO_ERROR_NONE) {
+ SETTING_TRACE_ERROR("fail to call system_info_get_value_string");
+ FREE(version);
snprintf(szStr, nSize, "%s", _("IDS_ST_HEADER_UNAVAILABLE"));
- } else {
- char* szBinVer =
- g_strdup((char*)iniparser_getstr(dic, "Version:Version"));
- if (szBinVer) {
- char* pPos = szBinVer;
- while(*pPos++) {
- if ('.' == *pPos) *pPos = '\0';
- }
- } else {
- szBinVer = g_strdup(_("IDS_ST_HEADER_UNAVAILABLE"));
- }
- char* szBinVerMaj = g_strdup((char*)iniparser_getstr(dic, "Version:Major"));
- char* szBinVerMin = g_strdup((char*)iniparser_getstr(dic, "Version:Minor"));
-
- if (szBinVerMaj == NULL || szBinVerMaj == '\0'
- || szBinVerMin == NULL || szBinVerMin == '\0') {
- snprintf(szStr, nSize, "TIZEN %s", szBinVer);
- } else {
- snprintf(szStr, nSize, "TIZEN%s.%s %s", szBinVerMaj, szBinVerMin, szBinVer);
- }
-
- if (szBinVer != NULL) G_FREE(szBinVer);
- if (szBinVerMaj != NULL) G_FREE(szBinVerMaj);
- if (szBinVerMin != NULL) G_FREE(szBinVerMin);
+ return;
}
- if (dic) {
- iniparser_freedict(dic);
- dic = NULL;
+ char *build_info = NULL;
+ ret = system_info_get_value_string(SYSTEM_INFO_KEY_BUILD_STRING, &build_info);
+ if (ret != SYSTEM_INFO_ERROR_NONE) {
+ SETTING_TRACE_ERROR("fail to call system_info_get_value_string");
+ FREE(version);
+ FREE(build_info);
+ snprintf(szStr, nSize, "%s", _("IDS_ST_HEADER_UNAVAILABLE"));
+ return;
}
+
+ snprintf(szStr, nSize, "SLP%s (%s)", version, build_info);
+
+ FREE(version);
+ FREE(build_info);
}
void setting_about_main_get_wifi_mac_address_string(char *str, int size)
FILE *p = fopen(SETTING_ABOUT_MACINFO_PATH, "r");
-
-
if (p) {
-
- fread(str, sizeof(char), SETTING_ABOUT_WIFI_MAC_STR_LEN, p);
+ int size = fread(str, sizeof(char), SETTING_ABOUT_WIFI_MAC_STR_LEN, p);
+ if (size != SETTING_ABOUT_WIFI_MAC_STR_LEN) {
+ SETTING_TRACE_ERROR("fail to call fread");
+ }
fclose(p);
p = NULL;
} else {
perror("open failed!");
}
-
SETTING_TRACE_DEBUG("get_wifi_mac_address : %s", str);
- if(safeStrLen(str) == 0)
- snprintf(str, size, "%s (%s)", _("IDS_ST_HEADER_UNAVAILABLE"), _(SETTING_ABOUT_NEVER_TURN_WIFI_ON_STR));
-
-
-
-
+ int wifi_state = VCONFKEY_WIFI_OFF;
+ vconf_get_int(VCONFKEY_WIFI_STATE, &wifi_state);
+ if((safeStrLen(str) == 0) || (wifi_state == VCONFKEY_WIFI_OFF))
+ snprintf(str, size, "%s (%s)", _("IDS_ST_HEADER_UNAVAILABLE"), _(SETTING_ABOUT_NEVER_TURN_WIFI_ON_STR));
}
void setting_about_main_get_battery_string(char *str, int size)
snprintf(str, size, "%d%s", val, "\%");
} else {
SETTING_TRACE_ERROR("read file fail");
- snprintf(str, size, _("IDS_ST_HEADER_UNAVAILABLE"));
+ snprintf(str, size, "%s", _("IDS_ST_HEADER_UNAVAILABLE"));
}
close(fd);
} else {
SETTING_TRACE_ERROR("open file fail");
- snprintf(str, size, _("IDS_ST_HEADER_UNAVAILABLE"));
+ snprintf(str, size, "%s", _("IDS_ST_HEADER_UNAVAILABLE"));
}
}
/* for fixing BS of dbus signal */
bluetooth_register_callback(NULL, NULL);
- ret = bluetooth_get_local_address(&local_address);
+ ret = bluetooth_get_local_address(&local_address);
/* for fixing BS of dbus signal */
bluetooth_unregister_callback();
- if (ret < 0)
- {
- snprintf(str, size, "%s", _("IDS_ST_HEADER_UNAVAILABLE"));
- }
- else
- {
+ if (ret < 0) {
+ snprintf(str, size, "%s", _("IDS_ST_HEADER_UNAVAILABLE"));
+ } else {
snprintf(str, size, "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X",
local_address.addr[0], local_address.addr[1], local_address.addr[2],
local_address.addr[3], local_address.addr[4], local_address.addr[5]);
- }
+ }
SETTING_TRACE_DEBUG("bt address : %s", str);
}
int ret = __stat_get_cpuinfo(&usr, &sys);
if (ret == -ENOENT) {
SETTING_TRACE_ERROR("call __stat_get_cpuinfo fail");
- snprintf(str, sizeof(str),
- _("IDS_ST_HEADER_UNAVAILABLE"));
+ snprintf(str, sizeof(str), "%s", _("IDS_ST_HEADER_UNAVAILABLE"));
} else {
snprintf(str, sizeof(str), "%.0f%s", usr + sys, "\%");
}
if (ad->item_data_battery) {
setting_about_main_get_battery_string(str, sizeof(str));
+ /*SETTING_TRACE("str:%s", str);*/
ad->item_data_battery->sub_desc = (char *)g_strdup(str);
elm_object_item_data_set(ad->item_data_battery->item, ad->item_data_battery);
elm_genlist_item_update(ad->item_data_battery->item);
if (ad->item_dev_name) {
Elm_Object_Item *selected_item = elm_genlist_at_xy_item_get(ad->genlsit, ev->output.x, ev->output.y, NULL);
- if (ad->empty_flag && ad->item_dev_name->item != selected_item) {
- setting_create_popup_without_btn(ad, ad->win_get,_(EMPTY_LIMITATION_STR),
- NULL, NULL, POPUP_INTERVAL);
+ if (ad->item_dev_name->item == selected_item)//do nothing..
return;
- }
- else
- {
- //invoke elm_object_unfocus to trigger "unfocus" event.
- elm_object_focus_set(ad->item_dev_name->eo_check, EINA_FALSE);
- setting_hide_input_pannel_cb(ad->item_dev_name->eo_check);
- }
- }
+ elm_object_focus_set(ad->item_dev_name->eo_check, EINA_FALSE);//to make inputing words input
+ }
}
static void __entry_unfocus_cb(void *data, Evas_Object *obj, void *event_info)
retm_if(!data || !obj, "Data parameter is NULL");
Evas_Object *entry_container = elm_object_parent_widget_get(obj);
- if(entry_container)
- {
+ if (entry_container) {
+ //whe entry unfocused, its guidetext will becomes "Input here"
elm_object_part_text_set(entry_container, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
-
- if(elm_entry_is_empty(obj))
+ if (elm_entry_is_empty(obj))
elm_object_signal_emit(entry_container, "elm,state,guidetext,show", "elm");
elm_object_signal_emit(entry_container, "elm,state,eraser,hide", "elm");
}
//int len = safeStrLen(entry_str_utf8);
SETTING_TRACE("To store \"%s\" into vconf[%s]", entry_str_utf8, VCONFKEY_SETAPPL_DEVICE_NAME_STR);
+ //ecore_idler_add(__check_on_idler, ad);
+ Setting_GenGroupItem_Data *item_dev_name = data;
+ SettingAboutUG *ad = item_dev_name->userdata;
+ __device_name_changed_cb(item_dev_name, item_dev_name->eo_check);
+ //after unfocus,need updating..
+ elm_object_item_data_set(item_dev_name->item, item_dev_name);
+ elm_genlist_item_update(item_dev_name->item);
+
+
+ if(ad->navi_item
+ && elm_object_item_part_content_get(ad->navi_item, "title_right_btn")) {
+ Evas_Object *btn = elm_object_item_part_content_unset(ad->navi_item, "title_right_btn");
+ evas_object_del(btn);
+ }
+ setting_hide_input_pannel_cb(item_dev_name->eo_check);
+ if (item_dev_name) {
+ if (ad->empty_flag) {
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+ ad->popup = setting_create_popup_without_btn(ad, ad->win_get, NULL, _(EMPTY_LIMITATION_STR),
+ __about_popup_rsp_cb, POPUP_INTERVAL, FALSE, FALSE);
+ return;
+ } else {
+ }
+ }
+
+
if (0 != vconf_set_str(VCONFKEY_SETAPPL_DEVICE_NAME_STR, entry_str_utf8)) {
SETTING_TRACE_ERROR("Set vconf[%s] failed",
VCONFKEY_SETAPPL_DEVICE_NAME_STR);
SettingAboutUG *ad = (SettingAboutUG*)data;
Evas_Event_Key_Down *ev = (Evas_Event_Key_Down *)event_info;
SETTING_TRACE_DEBUG("ev->key : %s", ev->key);
-
if(safeStrCmp(ev->key, "Return") == 0)
{
// if entry has 1 char at list, hide ime.
- if(safeStrLen(elm_entry_entry_get(obj)) > 0)
- {
- ecore_imf_context_input_panel_hide((Ecore_IMF_Context*)elm_entry_imf_context_get(obj));
- }
- else
+ if(safeStrLen(elm_entry_entry_get(obj)) == 0)
{
- setting_create_popup_without_btn(ad, ad->win_get,_(EMPTY_LIMITATION_STR),
- NULL, NULL, POPUP_INTERVAL);
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+ ad->popup = setting_create_popup_without_btn(ad, ad->win_get, NULL, _(EMPTY_LIMITATION_STR),
+ __about_popup_rsp_cb, POPUP_INTERVAL, FALSE, FALSE);
}
}
}
-static Eina_Bool __add_event_on_idler(void *data)
-{
- retv_if(data==NULL, FALSE);
-
- SettingAboutUG *ad = (SettingAboutUG*)data;
-
- if(ad->item_dev_name)
- evas_object_event_callback_add(ad->item_dev_name->eo_check, EVAS_CALLBACK_KEY_DOWN, __entry_key_down_cb, ad);
-
- return ECORE_CALLBACK_CANCEL;
-}
-
-static int setting_about_main_create(void *cb)
+int setting_about_generate_genlist(void *data)
{
SETTING_TRACE_BEGIN;
/* error check */
- retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
- SettingAboutUG *ad = (SettingAboutUG *) cb;
-
- Evas_Object *scroller = elm_genlist_add(ad->win_main_layout);
- retvm_if(scroller == NULL, SETTING_DRAW_ERR_FAIL_SCROLLER,
- "Cannot set scroller object as contento of layout");
- elm_genlist_clear(scroller); /* first to clear list */
-
- /* Enabling illume notification property for window */
- elm_win_conformant_set(ad->win_main_layout, 1);
- Evas_Object *conformant = elm_conformant_add(ad->win_main_layout);
- elm_object_style_set(conformant, "internal_layout"); /* By Kollus. 2011-01-04 */
- evas_object_show(conformant);
- elm_object_content_set(conformant, scroller);
- ad->genlsit = scroller;
-
- ad->ly_main =
- setting_create_layout_navi_bar(ad->win_main_layout, ad->win_get,
- _(KeyStr_AboutPhone),
- _("IDS_COM_BODY_BACK"), NULL, NULL,
- setting_about_main_click_softkey_back_cb,
- NULL, NULL, ad, conformant,
- &ad->navi_bar, NULL);
+ retv_if(data == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
- evas_object_event_callback_add(scroller, EVAS_CALLBACK_MOUSE_UP,
- __about_main_gl_mouse_up, ad);
+ SettingAboutUG *ad = (SettingAboutUG *) data;
+ bool is_emul_bin = isEmulBin();
+ Evas_Object *scroller = ad->genlsit;
Elm_Object_Item *item = NULL;
Setting_GenGroupItem_Data *item_data = NULL;
char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO] = { 0, };
-
(void)setting_create_Gendial_field_titleItem(scroller,
&(ad->itc_group_item),
SETTING_ABOUT_DEVICE_INFO_STR, NULL);
-
/* Device name */
char *name_value = vconf_get_str(VCONFKEY_SETAPPL_DEVICE_NAME_STR);
char *pa_sub_desc = elm_entry_utf8_to_markup(name_value);
}
}
+
// [UI] Device name
- ad->item_dev_name =
- setting_create_Gendial_field_def(scroller, &(ad->itc_1icon),
- setting_about_main_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_LAYOUT_ENTRY,
- NULL, NULL, 0, SETTING_ABOUT_DEVICE_NAME_STR, pa_sub_desc,
- __setting_about_device_name_changed_cb);
- if (ad->item_dev_name) {
- ad->item_dev_name->userdata = ad;
- ad->item_dev_name->isSinglelineFlag = 1;
- ad->item_dev_name->stop_change_cb = __entry_unfocus_cb;
- ad->item_dev_name->limit_filter_data = calloc(1, sizeof(Elm_Entry_Filter_Accept_Set));
-
- if (ad->item_dev_name->limit_filter_data) {
- //max byte len is 31 not 31+1
- ad->item_dev_name->limit_filter_data->max_byte_count = MAX_DEVICE_NAME_LEN;
- ad->item_dev_name->win_main = ad->win_get;
- }
- ad->item_dev_name->input_panel_disable_flag = EINA_TRUE;
+ char *app_name = NULL;
+ int ret_get_app_name = app_manager_get_app_name("com.samsung.oma-dm-ui", &app_name);
+ if (ret_get_app_name == APP_MANAGER_ERROR_INVALID_PACKAGE )
+ {
+ SETTING_TRACE(">>>>>>>>>>>>>>>>>> UNINSTALLED PACKAGE");
+ ad->item_dev_name = NULL;
} else {
- SETTING_TRACE_ERROR("ad->item_dev_name is NULL");
+
+ ad->item_dev_name =
+ setting_create_Gendial_field_def(scroller, &(ad->itc_1icon),
+ setting_about_main_mouse_up_Gendial_list_cb,
+ ad, SWALLOW_Type_LAYOUT_ENTRY,
+ NULL, NULL, 0, SETTING_ABOUT_DEVICE_NAME_STR, pa_sub_desc,
+ __setting_about_device_name_changed_cb);
+ if (ad->item_dev_name) {
+ ad->item_dev_name->userdata = ad;
+ ad->item_dev_name->isSinglelineFlag = 0;
+ ad->item_dev_name->start_change_cb = (setting_call_back_func)__entry_key_down_cb;
+ ad->item_dev_name->stop_change_cb = __entry_unfocus_cb;
+ ad->item_dev_name->limit_filter_data = calloc(1, sizeof(Elm_Entry_Filter_Accept_Set));
+
+ if (ad->item_dev_name->limit_filter_data) {
+ //max byte len is 31 not 31+1
+ //ad->item_dev_name->limit_filter_data->max_byte_count = MAX_DEVICE_NAME_LEN + OFFESET_ENTRY_FILTER;
+ ad->item_dev_name->limit_filter_data->max_byte_count = MAX_DEVICE_NAME_LEN;
+ ad->item_dev_name->win_main = ad->win_get;
+ }
+ //ad->item_dev_name->input_type = ELM_INPUT_PANEL_LAYOUT_NUMBER;
+ ad->item_dev_name->input_panel_disable_flag = EINA_TRUE;
+ } else {
+ SETTING_TRACE_ERROR("ad->item_dev_name is NULL");
+ }
+ FREE(pa_sub_desc);
}
- FREE(pa_sub_desc);
- /* My number */
- int my_numbers_len = 0;
- setting_about_main_get_phonenumber(ad->my_numbers, &my_numbers_len, &ad->my_number_sel_idx);
- if (my_numbers_len == 1) {
+ // [UI] My number
+ int err;
+ char sel_num[TAPI_SIM_XDN_DIALING_NUMBER_LEN + 1] = { 0, };
+ setting_get_string_slp_key(STR_SLP_SETTING_SELECT_NUM, sel_num, &err);
+
+ if (ad->my_numbers.count == 1) {
item_data =
setting_create_Gendial_field_def(scroller, &(ad->itc_2text_2),
- setting_about_main_mouse_up_Gendial_list_cb,
+ NULL,
ad, SWALLOW_Type_INVALID, NULL,
NULL, 0, SETTING_ABOUT_MY_NUMBER_STR,
- ad->my_numbers[0], NULL);
+ sel_num, NULL);
if (item_data) {
elm_genlist_item_select_mode_set(item_data->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
} else {
SETTING_TRACE_ERROR("item_data is NULL");
}
- } else if (my_numbers_len > 1){
+ } else if (ad->my_numbers.count > 1){
setting_enable_expandable_genlist(scroller, ad,
- __setting_about_main_exp_cb, NULL);
+ setting_about_main_exp_cb, NULL);
item_data = setting_create_Gendial_exp_parent_field(scroller,
&(ad->itc_2text_3_parent),
NULL, NULL,
SWALLOW_Type_INVALID,
SETTING_ABOUT_MY_NUMBER_STR,
- ad->my_numbers[ad->my_number_sel_idx]);
+ sel_num);
+ if (item_data) {
+ item_data->int_slp_setting_binded = STR_SLP_SETTING_SELECT_NUM;
+ } else {
+ SETTING_TRACE_ERROR("ad->data_wap is NULL");
+ }
} else {
SETTING_TRACE_ERROR("don't have my number");
}
+ // [UI] Phone model
memset(str, 0x00, sizeof(str));
setting_about_main_get_phone_model_name(str, sizeof(str));
item_data =
SETTING_TRACE_ERROR("item_data is NULL");
}
+ // [UI] SW version
memset(str, 0x00, sizeof(str));
setting_about_main_get_sw_version(str, sizeof(str));
item_data =
SETTING_TRACE_ERROR("item_data is NULL");
}
- if ( ! isEmulBin()) { // requested by DI Kim due to BT BS on 11/26
+ // [UI] Bluetooth address
+ if ( ! is_emul_bin) { // requested by DI Kim due to BT BS on 11/26
memset(str, 0x00, sizeof(str));
setting_about_main_get_bluetooth_address_string(str, sizeof(str));
- item_data =
+ ad->item_data_bt =
setting_create_Gendial_field_def(scroller, &(ad->itc_2text_2), NULL,
- NULL, SWALLOW_Type_INVALID, NULL,
- NULL, 0, SETTING_ABOUT_BLUETOOTH_STR, str, NULL);
- if (item_data) {
- elm_genlist_item_select_mode_set(item_data->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ NULL, SWALLOW_Type_INVALID, NULL,
+ NULL, 0, SETTING_ABOUT_BLUETOOTH_STR, str, NULL);
+ if (ad->item_data_bt) {
+ elm_genlist_item_select_mode_set(ad->item_data_bt->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
} else {
SETTING_TRACE_ERROR("item_data is NULL");
+ }
}
-}
+
+ // [UI] MAC address
memset(str, 0x00, sizeof(str));
setting_about_main_get_wifi_mac_address_string(str, sizeof(str));
- item_data =
+ SETTING_TRACE_DEBUG("[about main] get_wifi_mac_address : %s", str);
+
+ ad->item_data_wifi =
setting_create_Gendial_field_def(scroller, &(ad->itc_2text_2), NULL,
NULL, SWALLOW_Type_INVALID, NULL,
NULL, 0, SETTING_ABOUT_WIFI_STR, str, NULL);
- if (item_data) {
- elm_genlist_item_select_mode_set(item_data->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ if (ad->item_data_wifi) {
+ elm_genlist_item_select_mode_set(ad->item_data_wifi->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
} else {
SETTING_TRACE_ERROR("item_data is NULL");
}
+ // [UI] Battery
memset(str, 0x00, sizeof(str));
setting_about_main_get_battery_string(str, sizeof(str));
item_data =
SETTING_TRACE_ERROR("item_data is NULL");
}
+ // [UI] CPU Info
memset(str, 0x00, sizeof(str));
float usr, sys;
int ret = __stat_get_cpuinfo(&usr, &sys);
if (ret == -ENOENT) {
SETTING_TRACE_ERROR("call __stat_get_cpuinfo fail");
- snprintf(str, sizeof(str), _("IDS_ST_HEADER_UNAVAILABLE"));
+ snprintf(str, sizeof(str), "%s", _("IDS_ST_HEADER_UNAVAILABLE"));
} else {
snprintf(str, sizeof(str), "%.0f%s", usr + sys, "\%");
}
SETTING_TRACE_ERROR("item_data is NULL");
}
+ // [UI] separator
item =
elm_genlist_item_append(scroller, &(ad->itc_seperator), NULL, NULL,
ELM_GENLIST_ITEM_NONE, NULL, NULL);
elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
+#ifdef SUPPORT_DIAG_USAGE
+ // [UI] Diagnostics and Usage
+ if (!is_emul_bin) {
+ setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
setting_about_main_mouse_up_Gendial_list_cb,
ad, SWALLOW_Type_INVALID, NULL, NULL,
- 0, "IDS_ST_BODY_OPEN_SOURCE_LICENCES",
+ 0, DIAGNOSTICS_USAGE_STR,
NULL, NULL);
+ }
+#endif
+
+ // [UI] Certificates
// implementation is in progress.
- setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
- setting_about_main_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_INVALID, NULL, NULL,
- 0, "IDS_COM_BODY_CERTIFICATES", NULL, NULL);
+ if (is_ug_installed_by_ug_args("setting-manage-applications-efl"))
+ {
+ setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
+ setting_about_main_mouse_up_Gendial_list_cb,
+ ad, SWALLOW_Type_INVALID, NULL, NULL,
+ 0, "IDS_COM_BODY_CERTIFICATES", NULL, NULL);
+
+ item = elm_genlist_item_append(scroller, &itc_bottom_seperator, NULL, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ }
+
ad->update_timer =
ecore_timer_add(2, (Ecore_Task_Cb) __timer_update_cb, ad);
- ecore_idler_add(__add_event_on_idler, ad);
+ return SETTING_RETURN_SUCCESS;
+}
- setting_view_about_main.is_create = 1;
+static int setting_about_main_create(void *cb)
+{
+ SETTING_TRACE_BEGIN;
+ /* error check */
+ retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
+
+ SettingAboutUG *ad = (SettingAboutUG *) cb;
+ Evas_Object *scroller = elm_genlist_add(ad->win_main_layout);
+ retvm_if(scroller == NULL, SETTING_DRAW_ERR_FAIL_SCROLLER,
+ "Cannot set scroller object as contento of layout");
+ elm_object_style_set(scroller, "dialogue");
+ elm_genlist_clear(scroller); /* first to clear list */
+
+ /* Enabling illume notification property for window */
+ elm_win_conformant_set(ad->win_main_layout, 1);
+ Evas_Object *conformant = elm_conformant_add(ad->win_main_layout);
+ elm_object_style_set(conformant, "internal_layout"); /* By Kollus. 2011-01-04 */
+ evas_object_show(conformant);
+ elm_object_content_set(conformant, scroller);
+ ad->genlsit = scroller;
+
+ ad->ly_main =
+ setting_create_layout_navi_bar(ad->win_main_layout, ad->win_get,
+ _(KeyStr_AboutPhone),
+ _("IDS_COM_BODY_BACK"), NULL, NULL,
+ setting_about_main_click_softkey_back_cb,
+ NULL, NULL, ad, conformant,
+ &ad->navi_bar, NULL);
+
+ evas_object_event_callback_add(scroller, EVAS_CALLBACK_MOUSE_UP,
+ __about_main_gl_mouse_up, ad);
+
+ ad->navi_item = elm_naviframe_top_item_get(ad->navi_bar);
+
+ setting_about_generate_genlist((void *)ad);
+
+ setting_view_about_main.is_create = 1;
+ SETTING_TRACE_END;
return SETTING_RETURN_SUCCESS;
}
evas_object_del(ad->popup);
ad->popup = NULL;
}
- if (ad->progress_bar) {
- evas_object_del(ad->progress_bar);
- ad->progress_bar = NULL;
- }
if (ad->ly_main != NULL) {
evas_object_del(ad->ly_main);
static int setting_about_main_cleanup(void *cb)
{
+ SETTING_TRACE_BEGIN;
+ /* error check */
+ retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
+
+ SettingAboutUG *ad = (SettingAboutUG *) cb;
+
+ if (ad->ly_main != NULL) {
+ /* evas_object_hide(ad->ly_main); */
+ }
+
return SETTING_RETURN_SUCCESS;
}
SettingAboutUG *ad = (SettingAboutUG *) data;
if (ad->empty_flag) {
- setting_create_popup_without_btn(ad, ad->win_get,_(EMPTY_LIMITATION_STR),
- NULL, NULL, POPUP_INTERVAL);
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+ ad->popup = setting_create_popup_without_btn(ad, ad->win_get, NULL, _(EMPTY_LIMITATION_STR),
+ __about_popup_rsp_cb, POPUP_INTERVAL, FALSE, FALSE);
if (ad->item_dev_name) {
elm_object_focus_set(ad->item_dev_name->eo_check, EINA_TRUE);
}
SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
if (!safeStrCmp("IDS_ST_BODY_OPEN_SOURCE_LICENCES", list_item->keyStr)) {
- setting_view_change(&setting_view_about_main, &setting_view_about_licences, data);
+ //setting_view_change(&setting_view_about_main, &setting_view_about_licences, data);
} else if (!safeStrCmp("IDS_COM_BODY_CERTIFICATES", list_item->keyStr)) {
__setting_about_main_certificates_clicked(data);
} else if (!safeStrCmp(SETTING_ABOUT_DEVICE_NAME_STR, list_item->keyStr)) {
__setting_about_main_device_name_clicked(data, list_item->eo_check);
+ } else if (!safeStrCmp(DIAGNOSTICS_USAGE_STR, list_item->keyStr)) {
+ __setting_about_main_diagnostics_usage_clicked(data, list_item->eo_check);
}
}
-static void __destroy_certificates_ug_cb(struct ui_gadget *ug, void *priv)
+static void __destroy_certificates_ug_cb(ui_gadget_h ug, void *priv)
{
SETTING_TRACE_BEGIN;
cbs->priv = (void *)ad;
ad->ug_loading =
- ug_create(ad->ug, "setting-manage-applications-efl", UG_MODE_FULLVIEW, NULL, cbs);
+ ug_create(ad->ug, "setting-manage-certificates-efl", UG_MODE_FULLVIEW, NULL, cbs);
if (NULL == ad->ug_loading) { /* error handling */
SETTING_TRACE_ERROR("NULL == ad->ug_loading");
FREE(cbs);
}
+static void __top_back_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ /* error check */
+ setting_retm_if(data == NULL, "Data parameter is NULL");
+
+ SettingAboutUG *ad = (SettingAboutUG *) data;
-static void __setting_about_main_device_name_clicked(void *data, Evas_Object *obj)
+ if (ad->item_dev_name)
+ setting_hide_input_pannel_cb(ad->item_dev_name->eo_check);
+
+ SETTING_TRACE_END;
+}
+
+static void _input_panel_event_cb(void *data, Ecore_IMF_Context *ctx, int value)
{
SETTING_TRACE_BEGIN;
retm_if(data == NULL, "Data parameter is NULL");
- retm_if(obj == NULL, "obj parameter is NULL");
- SettingAboutUG *ad = (SettingAboutUG *)data;
+ retm_if(ctx == NULL, "obj parameter is NULL");
- int mobile_ap_status = VCONFKEY_MOBILE_HOTSPOT_MODE_NONE;
- int err = -1;
- int ret = setting_get_int_slp_key(INT_SLP_SETTING_MOBILE_AP_STATUS, &mobile_ap_status, &err);
- //setting_retm_if(ret == SETTING_RETURN_FAIL, "Get vconf failed");
+ SettingAboutUG *ad = (SettingAboutUG *)data;
- if (!elm_object_focus_get(obj)) {
- elm_object_focus_set(obj, EINA_TRUE);
+ if(value == ECORE_IMF_INPUT_PANEL_STATE_SHOW)
+ {
+ SETTING_TRACE("value == ECORE_IMF_INPUT_PANEL_STATE_SHOW");
+ if(ad->navi_item && !elm_object_item_part_content_get(ad->navi_item, "title_right_btn"))
+ {
+ Evas_Object *r_button = setting_create_button(ad->navi_bar,
+ dgettext("sys_string", "IDS_COM_BODY_BACK"),
+ NAVI_BACK_BUTTON_STYLE,
+ __top_back_cb,
+ ad);
+ elm_object_item_part_content_set(ad->navi_item, "title_right_btn", r_button);
+ }
}
+ else if(value == ECORE_IMF_INPUT_PANEL_STATE_HIDE)
+ {
+ SETTING_TRACE("value == ECORE_IMF_INPUT_PANEL_STATE_HIDE");
+ if(ad->navi_item && elm_object_item_part_content_get(ad->navi_item, "title_right_btn")) {
+ Evas_Object *btn = elm_object_item_part_content_unset(ad->navi_item, "title_right_btn");
+ evas_object_del(btn);
+ }
- if ((mobile_ap_status & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI) && !ad->popup_showed_flag) {
- if (ad->popup) {
- evas_object_del(ad->popup);
- ad->popup = NULL;
+ if (ad->item_dev_name) {
+ elm_object_focus_set(ad->item_dev_name->eo_check, EINA_FALSE);
}
- ad->popup = setting_create_popup_with_btn(ad, ad->win_get,
- _(SETTING_ABOUT_MOBILE_AP_TURNED_OFF),
- NULL, __setting_about_main_mobile_ap_turn_off_ask_resp_cb, 0,
- 1, _("IDS_COM_SK_OK"));
- } else {
- Ecore_IMF_Context *imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(obj);
- setting_retm_if(imf_context == NULL, "imf_context is NULL");
- ecore_imf_context_input_panel_show(imf_context);
}
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-static void __setting_about_main_mobile_ap_turn_off_ask_resp_cb(void *data,
- Evas_Object *obj,
- void *event_info)
+static void __setting_about_main_device_name_clicked(void *data, Evas_Object *obj)
{
SETTING_TRACE_BEGIN;
- setting_retm_if(data == NULL, "Data parameter is NULL");
+ retm_if(data == NULL, "Data parameter is NULL");
+ retm_if(obj == NULL, "obj parameter is NULL");
SettingAboutUG *ad = (SettingAboutUG *)data;
- int response_type = btn_type(obj);
- if (POPUP_RESPONSE_OK == response_type) {
- ad->popup_showed_flag = TRUE;
- Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(ad->item_dev_name->eo_check);
- setting_retm_if(imf_context == NULL, "imf_context is NULL");
- ecore_imf_context_input_panel_show(imf_context);
- }
-
- if (ad->popup)
- {
- evas_object_del(ad->popup);
- ad->popup = NULL;
+ if (!elm_object_focus_get(obj)) {
+ elm_object_focus_set(obj, EINA_TRUE);
}
+
+ Ecore_IMF_Context *imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(obj);
+ setting_retm_if(imf_context == NULL, "imf_context is NULL");
+ ecore_imf_context_input_panel_event_callback_add(imf_context, ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_event_cb, ad);
+ ecore_imf_context_input_panel_show(imf_context);
}
-static void __setting_about_main_exp_cb(void *data, Evas_Object *obj, void *event_info)
+
+static void __destroy_diagnostics_usage_ug_cb(ui_gadget_h ug, void *priv)
{
SETTING_TRACE_BEGIN;
- setting_retm_if(data == NULL, "Data parameter is NULL");
- setting_retm_if(event_info == NULL, "event_info parameter is NULL");
- SettingAboutUG *ad = (SettingAboutUG *) data;
- Elm_Object_Item *parentItem = event_info; /* parent item */
- Evas_Object *scroller = elm_object_item_widget_get(parentItem);
+ /* restore the '<-' button on the navigate bar */
+ ret_if(!priv);
+ SettingAboutUG *ad = (SettingAboutUG *) priv; /* ad is point to priv */
- Evas_Object *rgd = elm_radio_add(scroller);
- elm_radio_value_set(rgd, -1);
+ if (ug) {
+ ug_destroy(ug);
+ ad->ug_loading = NULL;
+ }
- int i = 0;
- Setting_GenGroupItem_Data *item_data = NULL;
- for(; i < SETTING_ABOUT_MY_NUMBERS_LEN; i++) {
- if (ad->my_numbers[i] == NULL) {
- break;
- }
+ Elm_Object_Item *navi_it = elm_naviframe_top_item_get(ad->navi_bar);
+ ret_if(!navi_it);
+ Evas_Object *back_btn = elm_object_item_part_content_get(navi_it, "prev_btn");
- item_data = setting_create_Gendial_exp_sub_field(scroller,
- &(ad->itc_1icon_1text_sub),
- NULL, NULL, parentItem,
- SWALLOW_Type_1RADIO, rgd,
- i,
- ad->my_numbers[i], __setting_about_sub_list_rd_change);
- if (item_data) {
- item_data->userdata = ad;
- elm_genlist_item_select_mode_set(item_data->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
- } else {
- SETTING_TRACE_ERROR("item_data is NULL");
- }
+ if (back_btn != NULL) {
+ elm_object_style_set(back_btn, NAVI_BACK_BUTTON_STYLE); /* take into effect */
}
- elm_radio_value_set(rgd, ad->my_number_sel_idx);
}
-static void __setting_about_sub_list_rd_change(void *data, Evas_Object *obj, void *event_info) {
+static void __setting_about_main_diagnostics_usage_clicked(void *data, Evas_Object *obj)
+{
SETTING_TRACE_BEGIN;
retm_if(data == NULL, "Data parameter is NULL");
- Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
- SettingAboutUG *ad = (SettingAboutUG *) list_item->userdata;
- SETTING_TRACE("my_number_sel_idx = %d", ad->my_number_sel_idx);
- elm_radio_value_set(obj, ad->my_number_sel_idx);
-}
+ SettingAboutUG *ad = (SettingAboutUG *)data;
+
+ // create UG
+ if (!ad)
+ return; /* do nothing if ad is NULL */
+
+ struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
+ if (!cbs) {
+ return;
+ }
+ cbs->layout_cb = setting_about_layout_ug_cb;
+ cbs->result_cb = NULL;
+ cbs->destroy_cb = __destroy_diagnostics_usage_ug_cb;
+ cbs->priv = (void *)ad;
+
+ ad->ug_loading =
+ ug_create(ad->ug, "setting-crash-efl", UG_MODE_FULLVIEW, NULL, cbs);
+
+ if (NULL == ad->ug_loading) { /* error handling */
+ SETTING_TRACE_ERROR("NULL == ad->ug_loading");
+ setting_create_simple_popup(ad, ad->win_get, NULL, _(UNSUPPORTED_FUNCTION));
+ }
+ FREE(cbs);
+}