tizen 2.4 release
[apps/home/settings.git] / setting-security / src / setting-security-main.c
index 0203bab..8956a24 100644 (file)
@@ -48,8 +48,6 @@ static void setting_security_main_mouse_up_Gendial_list_cb(void *data,
                                                            Evas_Object *obj,
                                                            void *event_info);
 
-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
@@ -79,11 +77,11 @@ static int setting_security_main_create(void *cb)
        /* add basic layout */
        char setBtnStr[MAX_DISPLAY_NAME_LEN_ON_UI];
        snprintf(setBtnStr, sizeof(setBtnStr), "%s",
-                (char *)dgettext("sys_string", "IDS_COM_BODY_BACK"));
+                (char *)dgettext("sys_string", "IDS_ST_BUTTON_BACK"));
        ad->ly_main =
            setting_create_layout_navi_bar_genlist(ad->win_main_layout,
                                                   ad->win_get,
-                                                  "IDS_ST_BODY_SECURITY",
+                                                  KeyStr_LockScreen,
                                                   setBtnStr, NULL,
                                                   (setting_call_back_func)setting_security_main_click_softkey_back_cb,
                                                   NULL, ad, &scroller,
@@ -94,18 +92,20 @@ static int setting_security_main_create(void *cb)
        Elm_Object_Item *item = NULL;
 
        ADD_GL_SEPARATOR(scroller);
+
+       /* Group List: Lock screen */
        (void)setting_create_Gendial_field_titleItem(scroller,
                                                     &itc_group_item,
-                                                    "IDS_ST_BODY_PHONE_SECURITY", NULL);
-       /* SIM settings */
+                                                    KeyStr_LockScreen, NULL);
        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_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, SECURITY_SIM_SETTINGS, NULL, NULL);
+       /* Lockscreen */
+       setting_create_Gendial_field_def(scroller, &(ad->itc_1text),
+                                        setting_security_main_mouse_up_Gendial_list_cb, ad,
+                                        SWALLOW_Type_INVALID,
+                                        NULL, NULL,
+                                        0, KeyStr_LockScreen, NULL, NULL);
 
        /*Seperator */
        elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL),
@@ -161,7 +161,7 @@ static int setting_security_main_create(void *cb)
 
        setting_view_security_main.is_create = 1;
 
-       g_ad = (SettingSecurityUG *) malloc(sizeof(SettingSecurityUG) * 1);
+       g_ad = (SettingSecurityUG *) malloc(sizeof(SettingSecurityUG)*1);
        retv_if(!g_ad, -1);
        memcpy(g_ad, ad, sizeof(SettingSecurityUG));
 
@@ -283,8 +283,8 @@ int _handle_sim_exception(void *data, int sim_status)
 
                case VCONFKEY_TELEPHONY_SIM_NOT_PRESENT:
 
-                       setting_create_simple_popup(NULL, ad->win_get,
-                                                   NULL, _(SECURITY_SIM_NOT_PRESENT_MSG));
+                       setting_create_popup(NULL, ad->win_get,
+                                                   NULL, _(SECURITY_SIM_NOT_PRESENT_MSG), NULL, 0, false, false, 0);
                        SETTING_TRACE_DEBUG
                        ("%s*** [ERR] INCORRECTED SIM. sim_slot_type=%d ***%s",
                         SETTING_FONT_RED, sim_status, SETTING_FONT_BLACK);
@@ -295,8 +295,8 @@ int _handle_sim_exception(void *data, int sim_status)
                case VCONFKEY_TELEPHONY_SIM_CARD_ERROR:
                case VCONFKEY_TELEPHONY_SIM_UNKNOWN:
 
-                       setting_create_simple_popup(NULL, ad->win_get,
-                                                   NULL, _("IDS_COM_BODY_INVALID_SIM_CARD"));
+                       setting_create_popup(NULL, ad->win_get,
+                                                   NULL, _("IDS_SIM_BODY_INVALID_SIM_CARD"), NULL, 0, false, false, 0);
                        SETTING_TRACE_DEBUG
                        ("%s*** [ERR] INCORRECTED SIM. sim_slot_type=%d ***%s",
                         SETTING_FONT_RED, sim_status, SETTING_FONT_BLACK);
@@ -331,10 +331,10 @@ static Eina_Bool _check_tapi_async_cb_is_called(void *data)
        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->sim_popup = setting_create_popup(ad, ad->win_get,
+                                                    NULL, KeyStr_Security_Waiting_Sim,
+                                                    (setting_call_back_func)__remove_sim_popup_cb,
+                                                    0, FALSE, FALSE, 0);
                ad->remove_sim_popup_timer = ecore_timer_add(1, __remove_sim_popup_cb, ad);
        }
        ad->tapi_async_cb_check_timer = NULL;
@@ -342,6 +342,55 @@ static Eina_Bool _check_tapi_async_cb_is_called(void *data)
        return EINA_FALSE;
 }
 
+Eina_Bool __freeze_event_timer_cb(void *cb)
+{
+       SETTING_TRACE_BEGIN;
+       retv_if(cb == NULL, EINA_FALSE);
+
+       SettingSecurityUG *ad = (SettingSecurityUG *)cb;
+
+       evas_object_freeze_events_set(ad->navi_bar, EINA_FALSE);
+       ad->update_view_timer = NULL;
+       return EINA_FALSE;
+}
+
+void setting_security_lockscreen_layout_ug_cb(ui_gadget_h ug,
+                                              enum ug_mode mode,
+                                              void *priv)
+{
+       SETTING_TRACE_BEGIN;
+       Evas_Object *base;
+
+       if (!priv)
+               return;
+
+       base = (Evas_Object *) ug_get_layout(ug);
+       if (!base)
+               return;
+
+       switch (mode) {
+               case UG_MODE_FULLVIEW:
+                       evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND,
+                                                        EVAS_HINT_EXPAND);
+                       evas_object_show(base);
+                       break;
+               default:
+                       break;
+       }
+       SETTING_TRACE_END;
+}
+
+static void setting_security_lockscreen_destroy_ug_cb(ui_gadget_h ug, void *priv)
+{
+       SETTING_TRACE_BEGIN;
+       ret_if(priv == NULL);
+       SettingSecurityUG *ad = (SettingSecurityUG *) priv;
+       if (ug) {
+               setting_ug_destroy(ug);
+       }
+       elm_genlist_realized_items_update(ad->genlist);
+}
+
 static void
 setting_security_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
                                                void *event_info)
@@ -355,27 +404,37 @@ setting_security_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
        elm_genlist_item_selected_set(item, 0);
        Setting_GenGroupItem_Data *list_item =
            (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
+       setting_retm_if(NULL == list_item, "list_item is NULL");
 
        SettingSecurityUG *ad = (SettingSecurityUG *) data;
 
        SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
 
-       if (!safeStrCmp(SECURITY_SIM_SETTINGS, list_item->keyStr)) {
-               /* [UI] SIM Setting */
-               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 (!safeStrCmp(KeyStr_LockScreen, list_item->keyStr)) {
+#if 0
+               int window_id = elm_win_xwindow_get(ad->win_get);
+               if (0 == app_launcher("lockscreen-options")) {
+                       ad->update_view_timer = ecore_timer_add(1, __freeze_event_timer_cb, ad);
+                       evas_object_freeze_events_set(ad->navi_bar, EINA_TRUE);
                }
+#else
+               retm_if(data == NULL, "Data parameter is NULL");
 
-               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(_(SECURITY_UPDATE_TEXT), list_item->keyStr)) {
-               /* [UI] Security Update */
-               setting_view_change(&setting_view_security_main, &setting_view_security_update, ad);
+               SettingSecurityUG *ad = (SettingSecurityUG *) data;
+
+               struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
+               setting_retm_if(!cbs, "calloc failed");
+               cbs->layout_cb = setting_security_lockscreen_layout_ug_cb;
+               cbs->result_cb = NULL;
+               cbs->destroy_cb = setting_security_lockscreen_destroy_ug_cb;
+               cbs->priv = (void *)ad;
+
+               elm_object_tree_focus_allow_set(ad->ly_main, EINA_FALSE);
+
+               SETTING_TRACE("To load ug[%s]", "lockscreen-options");
+               setting_ug_create(ad->ug, "lockscreen-options", UG_MODE_FULLVIEW, NULL, cbs);
+               FREE(cbs);
+#endif
        }
 }