/*
* setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
*
- * Licensed under the Flora License, Version 1.1 (the License);
+ * 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://floralicense.org/license/
+ * 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,
+ * 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-common-data-type.h>
#include <setting-security-main.h>
#include <setting-debug.h>
#include <app.h>
+#if SUPPORT_ENCRYPTION
+#include <ode.h>
+#endif
static int setting_security_main_create(void *cb);
static int setting_security_main_destroy(void *cb);
.cleanup = setting_security_main_cleanup,
};
-static void setting_security_main_click_softkey_back_cb(void *data,
- Evas_Object *obj,
- void *event_info);
-#if DISABLED_CODE
-static void setting_security_main_chk_btn_cb(void *data, Evas_Object *obj,
- void *event_info);
-#endif
+static Eina_Bool setting_security_main_click_softkey_back_cb(void *data, Elm_Object_Item *it);
static void setting_security_main_mouse_up_Gendial_list_cb(void *data,
Evas_Object *obj,
void *event_info);
-#if DISABLED_CODE
-static void setting_security_main_update_view(void *data, char *keyStr);
-static void setting_security_main_create_timer(void *data);
-static Eina_Bool setting_security_main_timer_update_cb(void *data);
-#endif
-static void setting_security_main_check_vconf_value(void *data);
+static Eina_Bool setting_security_engine_list_timer_cb(void *data);
+//static void __security_exp_cb(void *data, Evas_Object *obj, void *event_info);
+void __security_sub_list_sel_cb(void *data, Evas_Object *obj, void *event_info);
+#define SECURITY_ENGINE_NAME_MAX_LEN 128
+#define SUPPORT_LOCKTYPE_IN_SECURITY_MENU 0
/* ***************************************************
**
**basic func
**
****************************************************/
-char *get_pa_screen_lock_type_str()
-{
- int lock_type = 0;
-
- vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &lock_type);
-
- switch(lock_type)
- {
- case SETTING_SCREEN_LOCK_TYPE_SWIPE:
- return setting_gettext("IDS_ST_MBODY_SWIPE");
- case SETTING_SCREEN_LOCK_TYPE_OTHER:
- return vconf_get_str(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
- default:
- return NULL;
- }
-}
-
static int setting_security_main_create(void *cb)
{
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
ad->ly_main =
setting_create_layout_navi_bar_genlist(ad->win_main_layout,
ad->win_get,
- _("IDS_ST_BODY_SECURITY"),
+ "IDS_ST_BODY_SECURITY",
setBtnStr, NULL,
- setting_security_main_click_softkey_back_cb,
+ (setting_call_back_func)setting_security_main_click_softkey_back_cb,
NULL, ad, &scroller,
&ad->navi_bar);
- Elm_Object_Item *item = NULL;
+ //setting_enable_expandable_genlist(scroller, ad, __security_exp_cb, NULL);
- //item_data->sub_desc = (char *)g_strdup(sub_desc);
- /* Screen lock type */
- ad->data_screen_lock_type = setting_create_Gendial_field_def(scroller, &(ad->itc_2text_2),
- setting_security_main_mouse_up_Gendial_list_cb,ad,
- SWALLOW_Type_INVALID,
- NULL, NULL,
- 0, Keystr_ScreenLockType, get_pa_screen_lock_type_str(ad), NULL);
- if(ad->data_screen_lock_type)
- ad->data_screen_lock_type->userdata = ad;
+ Elm_Object_Item *item = NULL;
+ ADD_GL_SEPARATOR(scroller);
+ (void)setting_create_Gendial_field_titleItem(scroller,
+ &itc_group_item,
+ "IDS_ST_BODY_PHONE_SECURITY", NULL);
/* SIM settings */
- if(ad->handle && !isEmulBin())
- {
- /* check status of sim and tapi */
- ret = setting_get_int_slp_key(INT_SLP_SETTING_SIM_SLOT, &value, &err);
- tapi_ret = tel_check_modem_power_status(ad->handle, &b_status);
-
- if ((tapi_ret == TAPI_API_SUCCESS) && (b_status == TAPI_PHONE_POWER_STATUS_ON) && (value == VCONFKEY_TELEPHONY_SIM_INSERTED))
- {
- /* 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);
+ item = elm_genlist_item_append(scroller, &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),
+ ad->data_sim_settings = setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
setting_security_main_mouse_up_Gendial_list_cb,ad,
SWALLOW_Type_INVALID,
NULL, NULL,
- 0,"IDS_ST_BODY_SIM_CARD_SETTINGS", NULL, NULL);
+ 0,SECURITY_SIM_SETTINGS, NULL, NULL);
+
+ //Seperator
+ elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
+ ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ /*Security update*/
+ app_info_h app_info = NULL;
+ /* replace deprecated API :
+ from app_manager_get_app_info()
+ to app_info_create() */
+ ret = app_info_create("org.tizen.msa", &app_info);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ SETTING_TRACE("No corresponding app_id for [%s]\n", "org.tizen.msa");
+ }
+ else {
+ item = elm_genlist_item_append(scroller, &itc_seperator, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ ad->data_security_update = setting_create_Gendial_field_def(scroller, &(ad->itc_1text_1icon),
+ setting_security_main_mouse_up_Gendial_list_cb, ad,
+ SWALLOW_Type_INVALID,
+ NULL, NULL,
+ value,_(SECURITY_UPDATE_TEXT), NULL, NULL);
+
+ if (app_info_destroy(app_info) != 0) {
+ SETTING_TRACE_ERROR("app_info_destroy error for org.tizen.msa");
}
}
+ ADD_GL_SEPARATOR(scroller);
/* update info */
+ if(ad->data_sim_settings)
+ {
+ if((ad->handle == NULL) || (isEmulBin() == TRUE))
+ {
+ setting_disable_genlist_item(ad->data_sim_settings->item);
+ }
+ else
+ {
+ ret = setting_get_int_slp_key(INT_SLP_SETTING_SIM_SLOT, &value, &err);
+ tapi_ret = tel_check_modem_power_status(ad->handle, &b_status);
+ if((tapi_ret != TAPI_API_SUCCESS)
+ || (b_status != TAPI_PHONE_POWER_STATUS_ON)
+ || (value != VCONFKEY_TELEPHONY_SIM_INSERTED))
+ {
+ setting_disable_genlist_item(ad->data_sim_settings->item);
+ }
+ TelSimCardType_t cardInfo;
+ tapi_ret = tel_get_sim_type(ad->handle, &cardInfo);
+ if(tapi_ret == TAPI_API_SIM_PERM_BLOCKED)
+ setting_disable_genlist_item(ad->data_sim_settings->item);
+ }
+
+ /* If flight mode is ON, can't use sim settings menu */
+ int status = 0;
+ vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &status);
+ if(status == 1)
+ setting_disable_genlist_item(ad->data_sim_settings->item);
+ }
setting_view_security_main.is_create = 1;
retv_if(!g_ad, -1);
memcpy(g_ad, ad, sizeof(SettingSecurityUG));
+ vconf_notify_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE,
+ setting_security_main_vconf_change_cb, ad);
+ vconf_notify_key_changed(VCONFKEY_WIFI_STATE,
+ setting_security_main_vconf_change_cb, ad);
+
SETTING_TRACE_END;
return SETTING_RETURN_SUCCESS;
}
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
SettingSecurityUG *ad = (SettingSecurityUG *) cb;
-
- if (ad->update_view_timer) {
+#if SUPPORT_ENCRYPTION
+ if(ad->popup_sd_card_encryption)
+ {
+ evas_object_del(ad->popup_sd_card_encryption);
+ ad->popup_sd_card_encryption = NULL;
+ }
+#endif
+ if(ad->update_view_timer)
+ {
ecore_timer_del(ad->update_view_timer);
ad->update_view_timer = NULL;
}
+ if(ad->get_security_list_timer)
+ {
+ ecore_timer_del(ad->get_security_list_timer);
+ ad->get_security_list_timer = NULL;
+ }
+ if(ad->remove_sim_popup_timer)
+ {
+ ecore_timer_del(ad->remove_sim_popup_timer);
+ ad->remove_sim_popup_timer = NULL;
+ }
+ if(ad->tapi_async_cb_check_timer)
+ {
+ ecore_timer_del(ad->tapi_async_cb_check_timer);
+ ad->tapi_async_cb_check_timer = NULL;
+ }
+ vconf_ignore_key_changed(VCONFKEY_TELEPHONY_FLIGHT_MODE,
+ setting_security_main_vconf_change_cb);
+ vconf_ignore_key_changed(VCONFKEY_WIFI_STATE,
+ setting_security_main_vconf_change_cb);
+ if(ad->secrity_engine_list) {
+ g_list_free(ad->secrity_engine_list);
+ }
if (ad->ly_main != NULL) {
evas_object_del(ad->ly_main);
FREE(g_ad);
}
- if(ad->input_pwd)
- FREE(ad->input_pwd);
setting_view_security_main.is_create = 0;
SETTING_TRACE_BEGIN;
/* error check */
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
-
SettingSecurityUG *ad = (SettingSecurityUG *) cb;
- evas_object_show(ad->ly_main);
- if (ad->data_screen_lock_type ) {
- G_FREE(ad->data_screen_lock_type->sub_desc);
- ad->data_screen_lock_type->sub_desc = (char *)g_strdup(get_pa_screen_lock_type_str(ad));
- elm_genlist_item_update(ad->data_screen_lock_type->item);
- }
+ evas_object_show(ad->ly_main);
return SETTING_RETURN_SUCCESS;
}
**call back func
**
****************************************************/
-static void
-setting_security_main_click_softkey_back_cb(void *data, Evas_Object *obj,
- void *event_info)
+static Eina_Bool
+setting_security_main_click_softkey_back_cb(void *data, Elm_Object_Item *it)
{
SETTING_TRACE_BEGIN;
/* error check */
- retm_if(data == NULL, "[Setting > Security] Data parameter is NULL");
+ retvm_if(data == NULL, EINA_FALSE, "[Setting > Security] Data parameter is NULL");
SettingSecurityUG *ad = (SettingSecurityUG *) data;
+ bool is_running = 0;
+ app_manager_is_running("gr47by21a5.SamsungAccount", &is_running);
+ if(is_running && ad->samsung_account_is_running) // If samsung account is running from Find my mobile, security ug can't be destroyed.
+ {
+ return EINA_FALSE;
+ }
+ if(ad->ug_mt) // If find my mobile ug is running, security ug can't be destroyed.
+ {
+ return EINA_FALSE;
+ }
+
/* Send destroy request */
ug_destroy_me(ad->ug);
+ return EINA_TRUE;
}
int _handle_sim_exception(void *data, int sim_status)
case VCONFKEY_TELEPHONY_SIM_NOT_PRESENT:
setting_create_simple_popup(NULL, ad->win_get,
- NULL, _("IDS_ST_SECURITY_BODY_NOIMSI"));
+ NULL, _(SECURITY_SIM_NOT_PRESENT_MSG));
SETTING_TRACE_DEBUG
("%s*** [ERR] INCORRECTED SIM. sim_slot_type=%d ***%s",
SETTING_FONT_RED, sim_status, SETTING_FONT_BLACK);
return SETTING_RETURN_SUCCESS;
}
+static Eina_Bool __remove_sim_popup_cb(void *data)
+{
+ SETTING_TRACE_BEGIN;
+ retv_if(data == NULL, EINA_FALSE);
+ SettingSecurityUG *ad = (SettingSecurityUG *)data;
+
+ if(ad->sim_popup)
+ {
+ evas_object_del(ad->sim_popup);
+ ad->sim_popup = NULL;
+ }
+ ad->remove_sim_popup_timer = NULL;
+ return EINA_FALSE;
+}
+
+static Eina_Bool _check_tapi_async_cb_is_called(void *data)
+{
+ SETTING_TRACE_BEGIN;
+ retv_if(data == NULL, EINA_FALSE);
+
+ SettingSecurityUG *ad = (SettingSecurityUG *)data;
+
+ if(!ad->enter_tapi_async_cb_flag)
+ {
+ ad->sim_popup = setting_create_popup_without_btn(ad, ad->win_get,
+ NULL, _(KeyStr_Security_Waiting_Sim),
+ (setting_call_back_func)__remove_sim_popup_cb,
+ 0, FALSE, FALSE);
+ ad->remove_sim_popup_timer = ecore_timer_add(1, __remove_sim_popup_cb, ad);
+ }
+ ad->tapi_async_cb_check_timer = NULL;
+
+ return EINA_FALSE;
+}
+
static void
setting_security_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
void *event_info)
SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
- if(!safeStrCmp("IDS_ST_BODY_SIM_CARD_SETTINGS", list_item->keyStr)) {
- setting_view_change(&setting_view_security_main, &setting_view_security_sim_settings, ad);
+ if(!safeStrCmp(SECURITY_SIM_SETTINGS, list_item->keyStr)) {
+ ad->enter_tapi_async_cb_flag = 0;
+ ad->sim_popup = NULL;
+ ad->tapi_async_cb_check_timer = ecore_timer_add(0.5, _check_tapi_async_cb_is_called, ad);
+
+ if (TAPI_API_SUCCESS != tel_get_sim_facility(ad->handle, TAPI_SIM_LOCK_SC, setting_security_pin_get_facility_cb, ad)) {
+ SETTING_TRACE_ERROR("*** [ERR] tel_get_sim_facility(pin1). ***");
+ }
+
+ if(tel_get_sim_lock_info(ad->handle, TAPI_SIM_LOCK_FD, setting_security_pin2_get_lock_info_cb, ad) != 0)
+ {
+ SETTING_TRACE_ERROR("failed to call tel_get_sim_lock_info()");
+ }
}
- else if(!safeStrCmp(Keystr_ScreenLockType, list_item->keyStr)) {
- setting_view_change(&setting_view_security_main, &setting_view_security_locktype, ad);
+ else if(!safeStrCmp(_(SECURITY_UPDATE_TEXT), list_item->keyStr))
+ {
+ setting_view_change(&setting_view_security_main, &setting_view_security_update, ad);
}
}
+
+void setting_security_main_vconf_change_cb(keynode_t *key, void *data)
+{
+ SETTING_TRACE_BEGIN;
+ //ret_if(NULL == data);
+ //SettingSecurityUG *ad = (SettingSecurityUG *) data;
+}