[Feature] Hide some menus in emulator . .
authorJing Yigang <yigang.jing@samsung.com>
Tue, 28 Aug 2012 03:42:01 +0000 (11:42 +0800)
committerJing Yigang <yigang.jing@samsung.com>
Tue, 28 Aug 2012 03:42:01 +0000 (11:42 +0800)
Change-Id: I4aaef9dc6f74a0324073a39b2fcbdb0c9da442af

packaging/settings.spec
setting-about/src/setting-about-main.c
setting-common/CMakeLists.txt
setting-common/include/setting-common-resource.h
setting-common/src/setting-common-general-func.c
setting-network/src/setting-network-main.c
setting-network/src/setting-network.c
setting-storage/src/setting-storage-main.c
src/setting-main.c

index a07a3a5..7be7dbf 100755 (executable)
@@ -57,6 +57,7 @@ BuildRequires:  pkgconfig(capi-system-device)
 BuildRequires:  pkgconfig(capi-appfw-application)
 BuildRequires:  pkgconfig(capi-appfw-app-manager)
 BuildRequires:  pkgconfig(capi-system-sensor)
+BuildRequires:  pkgconfig(capi-system-info)
 BuildRequires:  sysman-internal-devel
 BuildRequires:  cmake
 BuildRequires:  edje-tools
index b1613c2..6c5a7fe 100755 (executable)
@@ -817,20 +817,24 @@ int setting_about_generate_genlist(void *data)
 
 #ifdef SUPPORT_DIAG_USAGE
        // [UI] Diagnostics and Usage
-       setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
+       if (!isEmulBin()) {
+               setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
                                         setting_about_main_mouse_up_Gendial_list_cb,
                                         ad, SWALLOW_Type_INVALID, NULL, NULL,
                                         0, DIAGNOSTICS_USAGE_STR,
                                         NULL, NULL);
+       }
 #endif
 
 #ifdef SUPPORT_FOTA
        // [UI] Software update
-       setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
+       if (!isEmulBin()) {
+               setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
                                         setting_about_main_mouse_up_Gendial_list_cb,
                                         ad, SWALLOW_Type_INVALID, NULL, NULL,
                                         0, SOFTWARE_UPDATE_STR,
                                         NULL, NULL);
+       }
 #endif
        // [UI] Certificates
        // implementation is in progress.
index 2d2dd14..5dd6df7 100755 (executable)
@@ -19,7 +19,7 @@ PROJECT(${LIB_SETTING_COMMON})
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
 
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs_common_data REQUIRED appcore-efl elementary vconf openssl evas ecore ecore-imf json-glib-1.0 edje iniparser glib-2.0 libxml-2.0 ui-gadget-1 capi-appfw-application)
+pkg_check_modules(pkgs_common_data REQUIRED appcore-efl elementary vconf openssl evas ecore ecore-imf json-glib-1.0 edje iniparser glib-2.0 libxml-2.0 ui-gadget-1 capi-appfw-application capi-system-info)
 
 FOREACH(flag ${pkgs_common_data_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
index ef1c99d..1a21577 100755 (executable)
@@ -25,6 +25,8 @@
 #define SETTING_IMAGE_PATH_CFG "/opt/apps/com.samsung.setting/res/images/"
 #define SETTING_OPEN_SOURCE_LICENSE_PATH "file:///opt/apps/com.samsung.setting/data/Open_Source_Announcement.html"
 
+#define KeyStr_Emulator        "Emulator" // be used to compare with model_str from system_info_get_value_string(SYSTEM_INFO_KEY_MODEL, &model_str)
+
 #define KeyStr_Joyn                    "joyn"
  /* connectivity keyStr*/
 #define KeyStr_Connectivity                    "IDS_ST_BODY_CONNECTIVITY"
index 64c8ee3..5ea6249 100755 (executable)
@@ -27,6 +27,7 @@
 #include <dlfcn.h>
 #include <libxml/xmlmemory.h>
 #include <libxml/parser.h>
+#include <system_info.h>
 
 char *setting_file_basename(char *path)
 {
@@ -796,6 +797,7 @@ int is_slp_binary()
 
 bool isEmulBin()
 {
+#if DISABLED_CODE
        char szEmul[__LEN_STR_EMUL+1];
        const char* szBinVer = NULL;
 
@@ -828,6 +830,24 @@ bool isEmulBin()
        } else {
                return FALSE;
        }
+#else
+       char *model_str = NULL;
+       int ret = system_info_get_value_string(SYSTEM_INFO_KEY_MODEL, &model_str);
+       //SETTING_TRACE("model_str : %s", model_str);
+       if (ret != SYSTEM_INFO_ERROR_NONE) {
+               SETTING_TRACE_ERROR("fail to call system_info_get_value_string");
+               FREE(model_str);
+               return FALSE;
+       }
+
+       if (0 == safeStrCmp(KeyStr_Emulator, model_str)) {
+               FREE(model_str);
+               return TRUE;
+       } else {
+               FREE(model_str);
+               return FALSE;
+       }
+#endif
 }
 
 int get_popup_btn_response_type(const char *btn_str)
index 744232b..2dad726 100755 (executable)
@@ -92,10 +92,12 @@ static void __ask_create_gsm_resp_cb(void *data, Evas_Object *obj,
                //rollback
                int err;
                int value = TAPI_NETWORK_BAND_TYPE_ANY;
-               setting_get_int_slp_key(ad->data_net_mode->int_slp_setting_binded,
-                                       &(value), &err);
-               /** @todo check 'err' variable for exception handling */
-               elm_radio_value_set(ad->data_net_mode->rgd, value);
+               if (ad->data_net_mode) {
+                       setting_get_int_slp_key(ad->data_net_mode->int_slp_setting_binded,
+                                               &(value), &err);
+                       /** @todo check 'err' variable for exception handling */
+                       elm_radio_value_set(ad->data_net_mode->rgd, value);
+               }
        }
        evas_object_del(ad->pop_gsm);
        ad->pop_gsm = NULL;
@@ -383,56 +385,61 @@ static int setting_network_main_create(void *cb)
                                 "%s. %s", _("IDS_COM_BODY_AUTOMATIC"), _(ad->sel_network));
                }
 
-               ad->data_sel_net = setting_create_Gendial_field_def(scroller,
+               /* hide SELECT NETWORK in Emulator*/
+               if (!isEmulBin()) {
+                       ad->data_sel_net = setting_create_Gendial_field_def(scroller,
                                                     &itc_2text_3,
                                                     setting_network_main_item_Gendial_mouse_up_cb,
                                                     ad, SWALLOW_Type_INVALID,
                                                     NULL, NULL, 0,
                                                     "IDS_ST_BODY_SELECT_NETWORK",
                                                     sel_network_desc, NULL);
-               if (ad->data_sel_net) {
-                       ad->data_sel_net->userdata = ad;
-               } else {
-                       SETTING_TRACE_ERROR("ad->data_sel_net is NULL");
+                       if (ad->data_sel_net) {
+                               ad->data_sel_net->userdata = ad;
+                       } else {
+                               SETTING_TRACE_ERROR("ad->data_sel_net is NULL");
+                       }
                }
        }
        /*  ***BEGIN***  Fixed the problem of word twinkle  SAMSUNG 2010/7/21 add */
-       k = vconf_get_int(VCONFKEY_SETAPPL_NETWORK_MODE_INT, &value);
-       if (-1 != k) {
-               SETTING_TRACE("value:%d", value);
-               switch (value) {
-               case TAPI_NETWORK_BAND_TYPE_ANY:
-                       sub_des = _("IDS_COM_BODY_AUTOMATIC");
-                       break;
-               case TAPI_NETWORK_BAND_TYPE_GSM_900_1800:
-                       sub_des = _(STR_SETTING_GSM_900_1800);
-                       break;
-               case TAPI_NETWORK_BAND_TYPE_GSM_850_1900:
-                       sub_des = _(STR_SETTING_GSM_850_1900);
-                       break;
-               case TAPI_NETWORK_BAND_TYPE_WCDMA:
-                       sub_des = _(STR_SETTING_UMTS);
-                       break;
-               default:
-                       break;
+       /* hide NETWORK MODE in Emulator*/
+       if (!isEmulBin()) {
+               k = vconf_get_int(VCONFKEY_SETAPPL_NETWORK_MODE_INT, &value);
+               if (-1 != k) {
+                       SETTING_TRACE("value:%d", value);
+                       switch (value) {
+                       case TAPI_NETWORK_BAND_TYPE_ANY:
+                               sub_des = _("IDS_COM_BODY_AUTOMATIC");
+                               break;
+                       case TAPI_NETWORK_BAND_TYPE_GSM_900_1800:
+                               sub_des = _(STR_SETTING_GSM_900_1800);
+                               break;
+                       case TAPI_NETWORK_BAND_TYPE_GSM_850_1900:
+                               sub_des = _(STR_SETTING_GSM_850_1900);
+                               break;
+                       case TAPI_NETWORK_BAND_TYPE_WCDMA:
+                               sub_des = _(STR_SETTING_UMTS);
+                               break;
+                       default:
+                               break;
+                       }
                }
-       }
 
-       ad->data_net_mode =
-           setting_create_Gendial_exp_parent_field(scroller,
-                                                   &itc_2text_3_parent,
-                                                   NULL, NULL,
-                                                   SWALLOW_Type_INVALID,
-                                                   "IDS_ST_BODY_NETWORK_MODE",
-                                                   sub_des);
-       if (ad->data_net_mode) {
-               ad->data_net_mode->int_slp_setting_binded =
-                       INT_SLP_SETTING_NETWORK_MODE;
-               ad->data_net_mode->userdata = ad;
-       } else {
-               SETTING_TRACE_ERROR("ad->data_back is NULL");
+               ad->data_net_mode =
+                   setting_create_Gendial_exp_parent_field(scroller,
+                                                           &itc_2text_3_parent,
+                                                           NULL, NULL,
+                                                           SWALLOW_Type_INVALID,
+                                                           "IDS_ST_BODY_NETWORK_MODE",
+                                                           sub_des);
+               if (ad->data_net_mode) {
+                       ad->data_net_mode->int_slp_setting_binded =
+                               INT_SLP_SETTING_NETWORK_MODE;
+                       ad->data_net_mode->userdata = ad;
+               } else {
+                       SETTING_TRACE_ERROR("ad->data_back is NULL");
+               }
        }
-
        setting_create_Gendial_field_def(scroller, &itc_1text,
                                         setting_network_main_item_Gendial_mouse_up_cb,
                                         ad, SWALLOW_Type_INVALID, NULL, NULL,
index c54cd99..0344828 100755 (executable)
@@ -399,10 +399,10 @@ void setting_tapi_set_band_cb(TapiHandle *handle, int result, void *data, void *
        SETTING_TRACE(" - result = 0x%x", result);
        ret_if(!user_data);
        SettingNetworkUG *ad = user_data;
+       ret_if(NULL == ad->data_net_mode);
 
        int err;
        if (result == TAPI_NETWORK_NO_ERR) {
-               ret_if(NULL == ad->data_net_mode);
                ad->net_mode = elm_radio_value_get(ad->data_net_mode->rgd);//get value from radio
                setting_set_int_slp_key(ad->data_net_mode->int_slp_setting_binded,
                                        ad->net_mode, &err);
index 1993e6e..e32e921 100755 (executable)
@@ -709,28 +709,30 @@ static int setting_storage_main_create(void *cb)
                return SETTING_RETURN_FAIL;
        }
 
-       /* Format USB storage */
-       setting_create_Gendial_field_def(ad->genlist, &(ad->itc_1text), NULL,
+       if (!isEmulBin()) {
+               /* Format USB storage */
+               setting_create_Gendial_field_def(ad->genlist, &(ad->itc_1text), NULL,
+                                                    ad, SWALLOW_Type_INVALID, NULL,
+                                                    NULL, 0,
+                                                    SETTING_STORAGE_FORMAT_STR,
+                                                    NULL, NULL);
+
+               setting_create_Gendial_field_def(ad->genlist, &(ad->itc_bg_1icon), NULL,
+                                                ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
+                                                NULL, NULL, 0, SETTING_STORAGE_FORMAT_DESC_STR, NULL,
+                                                NULL);
+
+               setting_create_Gendial_field_titleItem(ad->genlist, &(ad->itc_group_item),
+                                                      "IDS_ST_BODY_SD_CARD",
+                                                      NULL);
+
+               /* Mound SD card */
+               setting_create_Gendial_field_def(ad->genlist, &(ad->itc_2text_2), NULL,
                                             ad, SWALLOW_Type_INVALID, NULL,
-                                            NULL, 0,
-                                            SETTING_STORAGE_FORMAT_STR,
-                                            NULL, NULL);
-
-       setting_create_Gendial_field_def(ad->genlist, &(ad->itc_bg_1icon), NULL,
-                                        ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
-                                        NULL, NULL, 0, SETTING_STORAGE_FORMAT_DESC_STR, NULL,
-                                        NULL);
-
-       setting_create_Gendial_field_titleItem(ad->genlist, &(ad->itc_group_item),
-                                              "IDS_ST_BODY_SD_CARD",
-                                              NULL);
-
-       /* Mound SD card */
-       setting_create_Gendial_field_def(ad->genlist, &(ad->itc_2text_2), NULL,
-                                    ad, SWALLOW_Type_INVALID, NULL,
-                                    NULL, 0, SETTING_STORAGE_MOUNT_STR,
-                                    _(SETTING_STORAGE_INSERT_STR),
-                                    NULL);
+                                            NULL, 0, SETTING_STORAGE_MOUNT_STR,
+                                            _(SETTING_STORAGE_INSERT_STR),
+                                            NULL);
+       }
 
        Elm_Object_Item *item = NULL;
        item = elm_genlist_item_append(ad->genlist, &itc_bottom_seperator, NULL, NULL,
index eae52b9..98383c9 100755 (executable)
@@ -577,6 +577,8 @@ void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_
        Cfg_Item_Position tmpPos = Cfg_Item_Pos_Uninstall;
        int i, j;
 
+       bool is_emulator = isEmulBin();
+
        for (i = 0; i < setting_cfg_get_category_length(); i++) {
                if (safeStrCmp
                    (setting_cfg_get_category_name(i), KeyStr_Connectivity))
@@ -603,6 +605,29 @@ void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_
                                continue;
                        }
 
+                       if (is_emulator) {
+                               if (!safeStrCmp(KeyStr_FlightMode, keyStr)) {
+                                       continue; /* hide Flight Mode in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_WiFi, keyStr)) {
+                                       continue; /* hide WIFI in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_MobileAP, keyStr)) {
+                                       continue; /* hide Tethering in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_NFC, keyStr)) {
+                                       continue; /* hide NFC in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_WiFiDirect, keyStr)) {
+                                       continue; /* hide WiFiDirect in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_AllShareCast, keyStr)) {
+                                       continue; /* hide AllShareCast in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_NearbyDevices, keyStr)) {
+                                       continue; /* hide NearbyDevices in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_KeisOverWifi, keyStr)) {
+                                       continue; /* hide KeisOverWifi in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_Synchronise, keyStr)) {
+                                       continue; /* hide Synchronise in Emulator*/
+                               } else {
+                                       /* do nothing */
+                               }
+                       }
 
                        if (!safeStrCmp(KeyStr_FlightMode, keyStr)) {   /* load special radio */
                                // ug == NULL
@@ -716,6 +741,8 @@ void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object
        int ncount = 0;
        int i, j;
 
+       bool is_emulator = isEmulBin();
+
        //SETTING_TRACE("setting_cfg_get_category_length() :: %d ", setting_cfg_get_category_length());
        for (i = 0; i < setting_cfg_get_category_length(); i++) {
                if (safeStrCmp(setting_cfg_get_category_name(i), KeyStr_System))
@@ -745,6 +772,28 @@ void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object
                                continue;
                        }
 
+                       if (is_emulator) {
+                               if (!safeStrCmp(KeyStr_EventsNotifications, keyStr)) {
+                                       continue; /* hide EventsNotifications in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_Security, keyStr)) {
+                                       continue; /* hide Security in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_Motions, keyStr)) {
+                                       continue; /* hide Motion in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_Accessibility, keyStr)) {
+                                       continue; /* hide Accessibility in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_VoiceInOut, keyStr)) {
+                                       continue; /* hide VoiceInOut in Emulator*/
+                               } else if (!safeStrCmp(keystr_Drivingmode, keyStr)) {
+                                       continue; /* hide Drivingmode in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_License, keyStr)) {
+                                       continue; /* hide License in Emulator*/
+                               } else if (!safeStrCmp(KeyStr_Memory, keyStr)) {
+                                       continue; /* hide Memory in Emulator*/
+                               } else {
+                                       /* do nothing */
+                               }
+                       }
+
                        if (!safeStrCmp(KeyStr_Landscape, keyStr)) {    /* load special UG */
                                int value = 0;
                                vconf_get_bool
@@ -859,6 +908,11 @@ static void __load_applications_menu_list(void *data,
        SETTING_TRACE_DEBUG("pos :%d", inputPos);
        setting_main_appdata *ad = data;
 
+       if (isEmulBin()) {
+               /* hide all menu in Emulator */
+               return;
+       }
+
        //group title
        setting_create_Gendial_field_group_titleItem(ad->main_genlist,
                                                     &(ad->itc[GENDIAL_Type_group_item]),
@@ -1513,8 +1567,10 @@ static void setting_main_tapi_event_cb(TapiHandle *handle, int result, void *dat
                                             FALSE, FALSE);
 
                        //It is need to rollback the status,
-                       ad->data_flight->chk_status = !ad->data_flight->chk_status;
-                       elm_check_state_set(ad->data_flight->eo_check, ad->data_flight->chk_status);
+                       if (ad->data_flight) {
+                               ad->data_flight->chk_status = !ad->data_flight->chk_status;
+                               elm_check_state_set(ad->data_flight->eo_check, ad->data_flight->chk_status);
+                       }
                        return;
                }
 
@@ -1530,8 +1586,10 @@ static void setting_main_tapi_event_cb(TapiHandle *handle, int result, void *dat
                                     NULL, POPUP_INTERVAL, FALSE, FALSE);
 
                //It is need to rollback the status,
-               ad->data_flight->chk_status = !ad->data_flight->chk_status;
-               elm_check_state_set(ad->data_flight->eo_check, ad->data_flight->chk_status);
+               if (ad->data_flight) {
+                       ad->data_flight->chk_status = !ad->data_flight->chk_status;
+                       elm_check_state_set(ad->data_flight->eo_check, ad->data_flight->chk_status);
+               }
                break;
        default:
                /* do nothing */
@@ -1730,13 +1788,15 @@ void setting_update_gl_item(void* data)
                                continue;
                        }
 
-                       if(bGlUpdate) {
-                               SETTING_TRACE("gl update:%d", nDx);
-                               elm_object_item_data_set(item_to_update->item, item_to_update);
-                               elm_genlist_item_update(item_to_update->item);
-                       } else {
-                               SETTING_TRACE("chk update:%d", nDx);
-                               elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
+                       if (item_to_update) {
+                               if(bGlUpdate) {
+                                       SETTING_TRACE("gl update:%d", nDx);
+                                       elm_object_item_data_set(item_to_update->item, item_to_update);
+                                       elm_genlist_item_update(item_to_update->item);
+                               } else {
+                                       SETTING_TRACE("chk update:%d", nDx);
+                                       elm_check_state_set(item_to_update->eo_check, item_to_update->chk_status);
+                               }
                        }
 
                        ad->updateItems[nDx] = EINA_FALSE;