summaryrefslogtreecommitdiff
path: root/src/ui.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui.c')
-rwxr-xr-xsrc/ui.c1094
1 files changed, 756 insertions, 338 deletions
diff --git a/src/ui.c b/src/ui.c
index 67e1bb0..7b2c246 100755
--- a/src/ui.c
+++ b/src/ui.c
@@ -1,36 +1,43 @@
/*
- * 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.
- */
-
+ * pwlock
+ *
+ * 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.
+ *
+ */
#include <appcore-efl.h>
#include <Ecore_X.h>
#include <ui-gadget.h>
#include <vconf.h>
-#include <bundle.h>
+#include <ail.h>
+#include <appsvc.h>
#include "pwlock.h"
#include "util.h"
#include "tapi.h"
#include "ui.h"
+#include "langs.h"
+#include "ui-callback.h"
#define ENTRY_MAX 35
static Elm_Gen_Item_Class itc_label1, itc_entry1, itc_label2, itc_entry2;
-static void _ug_layout_cb(struct ui_gadget *ug, enum ug_mode mode, void *priv);
-static void _ug_destroy_cb(struct ui_gadget *ug, void *priv);
+static Elm_Gen_Item_Class sep_itc;
+static Elm_Gen_Item_Class nosim_icon_itc, nosim_text_itc, sim_retry_btn_itc;
+static void _ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+static void _ug_destroy_cb(ui_gadget_h ug, void *priv);
static Evas_Object *_create_bg(Evas_Object * win);
static void _destroy_previous_ugs(void *data);
static void _focused_cb(void *data, Evas_Object * obj, void *event_info);
@@ -41,7 +48,6 @@ static Evas_Object *_create_editfield(Evas_Object * parent);
static Evas_Object *_editfield_entry_get(Evas_Object * parent);
static int _ug_destroy = 0;
-static Elm_Object_Item *item[2] = { 0, };
static int _header_idx[] = {
_UI_PIN, IDS_IDLE_HEADER_PIN_LOCK,
@@ -54,6 +60,7 @@ static int _header_idx[] = {
_UI_NETWORK_LOCK_NSCK, IDS_IDLE_HEADER_NETWORK_LOCK,
_UI_NETWORK_LOCK_SPCK, IDS_IDLE_HEADER_NETWORK_LOCK,
_UI_NETWORK_LOCK_CCK, IDS_IDLE_HEADER_NETWORK_LOCK,
+ _UI_FINISH, IDS_STU_POP_SETUP_COMPLETE,
};
static int _tit_idx[] = {
@@ -108,10 +115,11 @@ static char *_get_tip(int ui_type)
}
static Evas_Object *_create_bg(Evas_Object * win)
-{
+{ /* nbeat */
Evas_Object *bg = elm_bg_add(win);
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
+ evas_object_color_set(bg, 249, 249, 249, 255);
elm_win_resize_object_add(win, bg);
evas_object_show(bg);
return bg;
@@ -127,6 +135,7 @@ static Evas_Object *_layout_add(Evas_Object * parent)
return NULL;
}
+ /* Apply the nbeat layout style */
elm_layout_theme_set(ly, "layout", "application", "default");
evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND,
@@ -147,32 +156,55 @@ static Evas_Object *_create_layout(struct appdata *ad)
return ly;
}
+Evas_Object *pwlock_add_layout_from_edj(Evas_Object *parent, const char *file,
+ const char *group) {
+ Evas_Object *layout = NULL;
+ Eina_Bool ret = EINA_FALSE;
+
+ if (parent == NULL) {
+ _ERR("parent is NULL");
+ return NULL;
+ }
+
+ layout = elm_layout_add(parent);
+ if (layout == NULL) {
+ _ERR("layout is NULL");
+ return NULL;
+ }
+
+ ret = elm_layout_file_set(layout, file, group);
+ _DBG("File:%s, Group:%s", file, group);
+ if (ret != EINA_TRUE) {
+ _DBG("Error loading File:%s, Group:%s", file, group);
+ evas_object_del(layout);
+ return NULL;
+ }
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_show(layout);
+
+ return layout;
+}
+
static void init_ui(struct appdata *ad)
{
Evas_Object *eo;
- Evas_Object *bg;
- ad->bg = _create_bg(ad->win);
+ ad->elm_bg = _create_bg(ad->win);
- ad->ly = _create_layout(ad);
- if (!ad->ly)
+ ad->layout_main = _create_layout(ad);
+ if (!ad->layout_main)
return;
- eo = elm_naviframe_add(ad->ly);
+ eo = elm_naviframe_add(ad->layout_main);
if (!eo) {
_ERR("UI navi add error");
return;
}
- elm_object_part_content_set(ad->ly, "elm.swallow.content", eo);
+ elm_object_part_content_set(ad->layout_main, "elm.swallow.content", eo);
evas_object_show(eo);
- ad->navi = eo;
-
- bg = evas_object_rectangle_add(evas_object_evas_get(ad->win));
- evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
- evas_object_color_set(bg, 0, 0, 0, 255);
- elm_win_resize_object_add(ad->win, bg);
+ ad->elm_navigation_frame = eo;
}
void show_msg(struct appdata *ad, int strid)
@@ -202,7 +234,7 @@ void show_msg(struct appdata *ad, int strid)
ad->msg = strdup(msg);
- if (!ad->ly_main)
+ if (!ad->layout_contents)
return;
remove_waiting_popup(ad);
show_popup(ad, msg, EINA_TRUE);
@@ -237,7 +269,7 @@ static void do_UI_PUK_CNF(struct appdata *ad)
const char *s = NULL;
_DBG("%s", __func__);
- s = _entry_get(ad->entry_layout);
+ s = _entry_get(ad->layout_entry);
if (s && ad->pin_str && !strcmp(ad->pin_str, s)) {
do_state(ad);
@@ -247,6 +279,7 @@ static void do_UI_PUK_CNF(struct appdata *ad)
_set_str(&ad->pin_str, NULL);
show_msg(ad, IDS_IDLE_BODY_INCORRECT_PIN_TRY_AGAIN);
+ /* FIXME popup should be top display, so load main should be called after show msg.. */
load_main(ad, _UI_PUK_PIN);
}
@@ -267,7 +300,7 @@ static int _check_input_string(int view_type, const char *entry_str)
if (lenstr < PWLOCK_PASSWORD_MIN_LENGTH || lenstr > max_len) {
return IDS_IDLE_BODY_PD_TO_PD_DIGITS_REQUIRED;
}
- return 0;
+ return 0; /* means fit for the rule */
}
static void response_cb(void *data, Evas_Object * obj, void *event_info)
@@ -280,6 +313,7 @@ static void response_cb(void *data, Evas_Object * obj, void *event_info)
if (((int)event_info != 5) && (obj != NULL)) {
evas_object_del(obj);
}
+ /* clear_entry(ad); */
}
static void _block_clicked_cb(void *data, Evas_Object * obj, void *event_info)
@@ -300,11 +334,12 @@ void _show_popup(void *data, char *msg_str)
ecore_imf_context_input_panel_hide(elm_entry_imf_context_get
(_editfield_entry_get
- (ad->entry_layout)));
+ (ad->layout_entry)));
popup = elm_popup_add(ad->win);
evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
+ /* FIXME */
x_win = elm_win_xwindow_get(ad->win);
ecore_x_netwm_window_type_set(x_win, ECORE_X_WINDOW_TYPE_DIALOG);
@@ -314,10 +349,12 @@ void _show_popup(void *data, char *msg_str)
elm_popup_timeout_set(popup, 3);
elm_object_text_set(popup, msg_str);
elm_object_part_text_set(popup, "title", "Information");
+
button = elm_button_add(popup);
elm_object_text_set(button, pwlock_get_string(IDS_COM_SK_OK));
elm_object_part_content_set(popup, "button1", button);
evas_object_smart_callback_add(button, "clicked", response_cb, popup);
+
evas_object_show(popup);
}
@@ -327,13 +364,13 @@ static void _imf_context_input_panel_hide(void *data)
Ecore_IMF_Context *imf_context = NULL;
Ecore_IMF_Context *imf_context_second = NULL;
imf_context =
- elm_entry_imf_context_get(_editfield_entry_get(ad->entry_layout));
+ elm_entry_imf_context_get(_editfield_entry_get(ad->layout_entry));
if (imf_context)
ecore_imf_context_input_panel_hide(imf_context);
imf_context_second =
elm_entry_imf_context_get(_editfield_entry_get
- (ad->entry_second_layout));
+ (ad->layout_second_entry));
if (imf_context_second)
ecore_imf_context_input_panel_hide(imf_context_second);
}
@@ -343,21 +380,19 @@ static void _done_button_changed(void *data, Evas_Object * obj, void *e)
struct appdata *ad = data;
int length =
- strlen(elm_entry_entry_get(_editfield_entry_get(ad->entry_layout)));
+ strlen(elm_entry_entry_get(_editfield_entry_get(ad->layout_entry)));
if (length == 0) {
- elm_object_item_disabled_set(item[1], EINA_TRUE);
- elm_object_disabled_set(ad->button_done, EINA_TRUE);
+ elm_object_disabled_set(ad->elm_button_done, EINA_TRUE);
} else {
- elm_object_item_disabled_set(item[1], EINA_FALSE);
- elm_object_disabled_set(ad->button_done, EINA_FALSE);
+ elm_object_disabled_set(ad->elm_button_done, EINA_FALSE);
}
- if (elm_object_focus_get(ad->entry_layout)) {
- if (elm_entry_is_empty(_editfield_entry_get(ad->entry_layout))) {
- elm_object_signal_emit(ad->entry_layout,
+ if (elm_object_focus_get(ad->layout_entry)) {
+ if (elm_entry_is_empty(_editfield_entry_get(ad->layout_entry))) {
+ elm_object_signal_emit(ad->layout_entry,
"elm,state,eraser,hide", "elm");
} else {
- elm_object_signal_emit(ad->entry_layout,
+ elm_object_signal_emit(ad->layout_entry,
"elm,state,eraser,show", "elm");
}
}
@@ -376,8 +411,8 @@ static void _done_cb(void *data, Evas_Object * obj, void *e)
case _UI_SIM_LOCK:
show_waiting_popup(ad,
pwlock_get_string
- (IDS_IDLE_BODY_CHECKING_SIM_STATUS));
- _set_str(&ad->entry_str, _entry_get(ad->entry_layout));
+ (IDS_IDLE_POP_CHECKING_SIM_CARD_ING));
+ _set_str(&ad->entry_str, _entry_get(ad->layout_entry));
_DBG("entry string: [%s]", ad->entry_str);
ret = _check_input_string(ad->ui_type, ad->entry_str);
if (ret == 0) {
@@ -389,10 +424,11 @@ static void _done_cb(void *data, Evas_Object * obj, void *e)
}
break;
case _UI_PUK:
- _set_str(&ad->entry_str, _entry_get(ad->entry_layout));
+ _set_str(&ad->entry_str, _entry_get(ad->layout_entry));
_DBG("entry string: [%s]", ad->entry_str);
ret = _check_input_string(ad->ui_type, ad->entry_str);
if (ret == 0) {
+ /* load_main(ad, _UI_PUK_PIN); */
pwlock_destroy(ad);
show_puk_pin(ad);
} else {
@@ -404,14 +440,14 @@ static void _done_cb(void *data, Evas_Object * obj, void *e)
case _UI_PUK_PIN:
show_waiting_popup(ad,
pwlock_get_string
- (IDS_IDLE_BODY_CHECKING_SIM_STATUS));
- _set_str(&ad->pin_str, _entry_get(ad->entry_layout));
+ (IDS_IDLE_POP_CHECKING_SIM_CARD_ING));
+ _set_str(&ad->pin_str, _entry_get(ad->layout_entry));
_DBG("entry string: [%s]", ad->pin_str);
ret = _check_input_string(ad->ui_type, ad->pin_str);
if (ret == 0) {
if (0 ==
- strcmp(_entry_get(ad->entry_layout),
- _entry_get(ad->entry_second_layout))) {
+ strcmp(_entry_get(ad->layout_entry),
+ _entry_get(ad->layout_second_entry))) {
do_UI_PUK_CNF(ad);
} else {
remove_waiting_popup(ad);
@@ -427,10 +463,10 @@ static void _done_cb(void *data, Evas_Object * obj, void *e)
case _UI_PUK_CNF:
show_waiting_popup(ad,
pwlock_get_string
- (IDS_IDLE_BODY_CHECKING_SIM_STATUS));
+ (IDS_IDLE_POP_CHECKING_SIM_CARD_ING));
ret =
_check_input_string(ad->ui_type,
- _entry_get(ad->entry_layout));
+ _entry_get(ad->layout_entry));
if (ret == 0) {
do_UI_PUK_CNF(ad);
} else {
@@ -443,7 +479,7 @@ static void _done_cb(void *data, Evas_Object * obj, void *e)
case _UI_NETWORK_LOCK_NSCK:
case _UI_NETWORK_LOCK_SPCK:
case _UI_NETWORK_LOCK_CCK:
- _set_str(&ad->entry_str, _entry_get(ad->entry_layout));
+ _set_str(&ad->entry_str, _entry_get(ad->layout_entry));
_DBG("entry string: [%s]", ad->entry_str);
ret = _check_input_string(ad->ui_type, ad->entry_str);
if (ret == 0) {
@@ -463,12 +499,27 @@ static void _dial_cb(void *data, Evas_Object * obj, void *e)
_DBG("%s,%d", __func__, __LINE__);
struct appdata *ad = data;
- elm_object_item_disabled_set(item[0], EINA_TRUE);
- elm_object_disabled_set(ad->button_dial, EINA_TRUE);
- ad->previous_ui_type = ad->ui_type;
- ad->ui_type = _UI_DIALER;
+ /* apply button insensitive */
+ elm_object_disabled_set(ad->elm_button_dial, EINA_TRUE);
_imf_context_input_panel_hide(ad);
- show_dialer(ad);
+
+ ad->previous_ui_type = ad->ui_type;
+
+ if(ad->layout_entry) {
+ elm_entry_input_panel_enabled_set(_editfield_entry_get(ad->layout_entry),
+ EINA_FALSE);
+ }
+
+ if(ad->layout_second_entry) {
+ elm_entry_input_panel_enabled_set(_editfield_entry_get(ad->layout_second_entry),
+ EINA_FALSE);
+ }
+
+ if (show_dialer(ad) == 0) {
+ elm_object_disabled_set(ad->elm_button_dial, EINA_FALSE);
+ ad->ui_type = ad->previous_ui_type;
+ return;
+ }
}
static void _pp_rsp_ok_cb(void *data, Evas_Object * e, void *ei)
@@ -490,19 +541,7 @@ static void _pp_rsp_ok_cb(void *data, Evas_Object * e, void *ei)
ad->cancel_setup = 1;
if (ad->current_ug) {
ug_destroy(ad->current_ug);
- if ((ad->ui_type == _UI_LANG)
- || (ad->ui_type == _UI_KEYBOARD)) {
- if (ad->first_boot) {
- if (ad->date_and_time_settings_loaded)
- ad->state = _ST_EXIT;
- else
- ad->state = _ST_TAPI_INIT;
- } else {
- ad->state = _ST_EXIT;
- }
- } else {
- ad->state = _ST_EXIT;
- }
+ ad->state = _ST_EXIT;
do_state(ad);
}
@@ -514,12 +553,12 @@ static void _pp_rsp_ok_cb(void *data, Evas_Object * e, void *ei)
ad->pin_changed = 0;
}
}
- if (ad->ui_type == _UI_LANG || ad->ui_type == _UI_TIME || ad->ui_type == _UI_KEYBOARD || ad->ui_type == _UI_DIALER) {
+ if (ad->ui_type == _UI_LANG || ad->ui_type == _UI_TIME || ad->ui_type == _UI_DIALER) { /* for IMF show problems */
return;
}
- if (ad->entry_layout) {
- evas_object_show(_editfield_entry_get(ad->entry_layout));
- elm_object_focus_set(_editfield_entry_get(ad->entry_layout),
+ if (ad->layout_entry) {
+ evas_object_show(_editfield_entry_get(ad->layout_entry));
+ elm_object_focus_set(_editfield_entry_get(ad->layout_entry),
EINA_TRUE);
}
if (ad->msg) {
@@ -553,12 +592,12 @@ static void _pp_rsp_cancel_cb(void *data, Evas_Object * e, void *ei)
ad->pin_changed = 0;
}
}
- if (ad->ui_type == _UI_LANG || ad->ui_type == _UI_TIME || ad->ui_type == _UI_KEYBOARD || ad->ui_type == _UI_DIALER) {
+ if (ad->ui_type == _UI_LANG || ad->ui_type == _UI_TIME || ad->ui_type == _UI_DIALER) { /* for IMF show problems */
return;
}
- if (ad->entry_layout) {
- evas_object_show(_editfield_entry_get(ad->entry_layout));
- elm_object_focus_set(_editfield_entry_get(ad->entry_layout),
+ if (ad->layout_entry) {
+ evas_object_show(_editfield_entry_get(ad->layout_entry));
+ elm_object_focus_set(_editfield_entry_get(ad->layout_entry),
EINA_TRUE);
}
if (ad->msg) {
@@ -578,30 +617,12 @@ static void _destroy_previous_ugs(void *data)
switch (ad->ui_type) {
case _UI_LANG:
- if (ad->keyboard_ug) {
- ug_destroy(ad->keyboard_ug);
- ad->keyboard_ug = NULL;
- }
if (ad->date_ug) {
ug_destroy(ad->date_ug);
ad->date_ug = NULL;
}
break;
case _UI_TIME:
- if (ad->keyboard_ug) {
- ug_destroy(ad->keyboard_ug);
- ad->keyboard_ug = NULL;
- }
- if (ad->language_ug) {
- ug_destroy(ad->language_ug);
- ad->language_ug = NULL;
- }
- break;
- case _UI_KEYBOARD:
- if (ad->date_ug) {
- ug_destroy(ad->date_ug);
- ad->date_ug = NULL;
- }
if (ad->language_ug) {
ug_destroy(ad->language_ug);
ad->language_ug = NULL;
@@ -616,15 +637,16 @@ static void _destroy_previous_ugs(void *data)
ug_destroy(ad->language_ug);
ad->language_ug = NULL;
}
- if (ad->keyboard_ug) {
- ug_destroy(ad->keyboard_ug);
- ad->keyboard_ug = NULL;
+ if (ad->connection_ug) {
+ ug_destroy(ad->connection_ug);
+ ad->connection_ug = NULL;
}
break;
}
_DBG("%s,%d", __func__, __LINE__);
+ /* when last UG or SIM changed with fisrt UG, destroy the view */
if (((ad->sim_changed == 1) && (ad->ui_type == _UI_LANG))
|| (ad->ui_type == _UI_TIME)) {
_DBG("%s,%d", __func__, __LINE__);
@@ -681,13 +703,11 @@ static Evas_Object *_create_editfield(Evas_Object * parent)
elm_entry_scrollable_set(entry, EINA_TRUE);
elm_entry_single_line_set(entry, EINA_TRUE);
elm_entry_password_set(entry, EINA_TRUE);
- elm_object_focus_set(entry, EINA_TRUE);
elm_entry_input_panel_layout_set(entry,
ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size,
&limit_filter_data);
evas_object_show(entry);
- elm_object_focus_set(entry, EINA_TRUE);
evas_object_smart_callback_add(entry, "focused", _focused_cb, layout);
evas_object_smart_callback_add(entry, "unfocused", _unfocused_cb,
layout);
@@ -696,6 +716,7 @@ static Evas_Object *_create_editfield(Evas_Object * parent)
elm_object_part_text_set(layout, "elm.guidetext", "");
elm_object_signal_callback_add(layout, "elm,eraser,clicked", "elm",
_eraser_clicked_cb, entry);
+ elm_object_focus_set(entry, EINA_TRUE);
return layout;
}
@@ -755,7 +776,7 @@ static Evas_Object *_gl_icon_get1(void *data, Evas_Object * obj,
"changed", _done_button_changed,
ad);
- ad->entry_layout = layout;
+ ad->layout_entry = layout;
return layout;
@@ -795,7 +816,7 @@ static Evas_Object *_gl_icon_get2(void *data, Evas_Object * obj,
"changed", _entry_changed_cb,
layout);
- ad->entry_second_layout = layout;
+ ad->layout_second_entry = layout;
return layout;
@@ -832,94 +853,77 @@ static void _list_set_styles()
void load_main(struct appdata *ad, int ui_type)
{
- Evas_Object *ly = NULL;
Evas_Object *bt_done = NULL;
Evas_Object *bt_dial = NULL;
- Evas_Object *null_image = NULL;
Evas_Object *genlist = NULL;
- Evas_Object *controlbar = NULL;
Elm_Object_Item *genlist_item = NULL;
Elm_Object_Item *navi_it = NULL;
_DBG("%s", __func__);
- ly = _create_conformant(ad->win);
+ ad->layout_contents = pwlock_add_layout_from_edj(ad->elm_navigation_frame, EDJFILE, "page/genlist");
- genlist = elm_genlist_add(ad->navi);
+ genlist = elm_genlist_add(ad->layout_main);
+ elm_object_part_content_set(ad->layout_contents, "swl/genlist", genlist);
_list_set_styles();
genlist_item =
elm_genlist_item_append(genlist, &itc_label1, (void *)ad, NULL,
ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(genlist_item, EINA_TRUE);
+ elm_genlist_item_select_mode_set(genlist_item, ELM_OBJECT_SELECT_MODE_NONE);
genlist_item =
elm_genlist_item_append(genlist, &itc_entry1, (void *)ad, NULL,
ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(genlist_item, EINA_TRUE);
+ elm_genlist_item_select_mode_set(genlist_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
if (_UI_PUK_PIN == ui_type) {
genlist_item =
elm_genlist_item_append(genlist, &itc_label2, (void *)ad,
NULL, ELM_GENLIST_ITEM_NONE, NULL,
NULL);
- elm_genlist_item_select_mode_set(genlist_item, EINA_TRUE);
+ elm_genlist_item_select_mode_set(genlist_item, ELM_OBJECT_SELECT_MODE_NONE);
genlist_item =
elm_genlist_item_append(genlist, &itc_entry2, (void *)ad,
NULL, ELM_GENLIST_ITEM_NONE, NULL,
NULL);
- elm_genlist_item_select_mode_set(genlist_item, EINA_TRUE);
+ elm_genlist_item_select_mode_set(genlist_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
}
- evas_object_show(genlist);
- elm_object_content_set(ly, genlist);
+ ad->elm_conform = _create_conformant(ad->win);
+ elm_object_content_set(ad->elm_conform, ad->layout_contents);
_DBG("load_main ad->ui_type = %d", ad->ui_type);
- controlbar = elm_toolbar_add(ad->navi);
- if (controlbar == NULL)
- return;
-
- elm_toolbar_shrink_mode_set(controlbar, ELM_TOOLBAR_SHRINK_EXPAND);
-
- bt_dial = elm_button_add(controlbar);
- elm_object_style_set(bt_dial, "naviframe_control/default");
+ bt_dial = elm_button_add(ad->layout_main);
+ elm_object_style_set(bt_dial, "naviframe/title/default");
evas_object_size_hint_weight_set(bt_dial, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(bt_dial, EVAS_HINT_FILL, 0.5);
elm_object_text_set(bt_dial, pwlock_get_string(IDS_IDLE_BUTTON_DIALER));
evas_object_smart_callback_add(bt_dial, "clicked", _dial_cb, ad);
- ad->button_dial = bt_dial;
+ ad->elm_button_dial = bt_dial;
evas_object_show(bt_dial);
- bt_done = elm_button_add(controlbar);
- elm_object_style_set(bt_done, "naviframe_control/default");
+ bt_done = elm_button_add(ad->layout_main);
+ elm_object_style_set(bt_done, "naviframe/title/default");
evas_object_size_hint_weight_set(bt_done, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(bt_done, EVAS_HINT_FILL, 0.5);
elm_object_text_set(bt_done, pwlock_get_string(IDS_COM_SK_DONE));
evas_object_smart_callback_add(bt_done, "clicked", _done_cb, ad);
- ad->button_done = bt_done;
+ ad->elm_button_done = bt_done;
evas_object_show(bt_done);
- item[0] = elm_toolbar_item_append(controlbar, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(item[0], "object", bt_dial);
- item[1] = elm_toolbar_item_append(controlbar, NULL, NULL, NULL, NULL);
- elm_object_item_part_content_set(item[1], "object", bt_done);
- elm_object_item_disabled_set(item[1], EINA_TRUE);
elm_object_disabled_set(bt_done, EINA_TRUE);
- null_image = elm_icon_add(ad->navi);
- elm_icon_file_set(null_image, NULL, NULL);
- evas_object_show(null_image);
- ad->ly_main = ly;
navi_it =
- elm_naviframe_item_push(ad->navi, _get_header(ui_type), null_image,
- NULL, ad->ly_main, NULL);
- elm_object_item_part_content_set(navi_it, "optionheader", controlbar);
- elm_object_item_signal_emit(navi_it,
- "elm,state,controlbar,instant_close", "");
+ elm_naviframe_item_push(ad->elm_navigation_frame, _get_header(ui_type), NULL,
+ NULL, ad->elm_conform, NULL);
+
+ elm_object_item_part_content_set(navi_it, "title_left_btn", bt_dial);
+ elm_object_item_part_content_set(navi_it, "title_right_btn",bt_done);
ad->ui_type = ui_type;
remove_waiting_popup(ad);
@@ -929,10 +933,12 @@ void show_pin(struct appdata *ad)
{
_DBG("%s", __func__);
- if (!ad->navi)
+// register_tapi_factory_event(ad);
+
+ if (!ad->elm_navigation_frame)
init_ui(ad);
- if (!ad->ly_main)
+ if (!ad->layout_contents)
load_main(ad, _UI_PIN);
evas_object_show(ad->win);
@@ -942,7 +948,7 @@ void show_puk(struct appdata *ad)
{
_DBG("%s", __func__);
- if (!ad->navi)
+ if (!ad->elm_navigation_frame)
init_ui(ad);
load_main(ad, _UI_PUK);
@@ -954,7 +960,7 @@ void show_puk_pin(struct appdata *ad)
{
_DBG("%s", __func__);
- if (!ad->navi)
+ if (!ad->elm_navigation_frame)
init_ui(ad);
load_main(ad, _UI_PUK_PIN);
@@ -967,7 +973,7 @@ void show_sim_lock(struct appdata *ad)
_DBG("%s", __func__);
int st = ad->sim_status;
- if (!ad->navi) {
+ if (!ad->elm_navigation_frame) {
init_ui(ad);
}
switch (st) {
@@ -999,36 +1005,41 @@ void show_block(struct appdata *ad)
Evas_Object *ly = NULL;
Evas_Object *bt_dial = NULL;
Evas_Object *el = NULL;
- Evas_Object *bg = NULL;
+ Elm_Object_Item *navi_it = NULL;
char buf[1024] = { 0, };
_DBG("%s", __func__);
- if (!ad->navi)
+ if (!ad->elm_navigation_frame)
init_ui(ad);
- ly = _layout_add(ad->navi);
- bg = ad->bg;
- elm_object_style_set(bg, "group_list");
- el = elm_label_add(ad->navi);
+ ly = elm_layout_add(ad->elm_navigation_frame);
+ elm_layout_theme_set(ly, "layout", "application", "noindicator");
+ /*Create content field */
+ el = elm_label_add(ad->elm_navigation_frame);
+ elm_label_line_wrap_set(el, ELM_WRAP_WORD);
snprintf(buf, sizeof(buf), "%s%s%s",
- "<font_size=19 font=SLP:style=Light style=shadow shadow_color=#000000bf color=#ffffffff align=center>",
- pwlock_get_string
+ "<br><font_size=44 font=SLP:style=Regular color=#7c7c7c align=center>",
+ pwlock_get_string
(IDS_IDLE_BODY_SIM_CARD_NOT_AVAILABLE_CONTACT_YOUR_SERVICE_PROVIDER),
"</>");
elm_object_text_set(el, buf);
+
elm_object_part_content_set(ly, "elm.swallow.content", el);
evas_object_show(el);
- bt_dial = elm_button_add(ad->navi);
+ bt_dial = elm_button_add(ad->elm_navigation_frame);
+ elm_object_style_set(bt_dial, "naviframe/title/default");
elm_object_text_set(bt_dial, pwlock_get_string(IDS_IDLE_BUTTON_DIALER));
evas_object_smart_callback_add(bt_dial, "clicked", _dial_cb, ad);
evas_object_show(bt_dial);
- ad->ly_main = ly;
- elm_naviframe_item_push(ad->navi, _get_header(_UI_BLOCK),
- bt_dial, NULL, ad->ly_main, NULL);
+ ad->layout_contents = ly;
+ navi_it = elm_naviframe_item_push(ad->elm_navigation_frame, _get_header(_UI_BLOCK),
+ NULL, NULL, ad->layout_contents, NULL);
+
+ elm_object_item_part_content_set(navi_it, "title_right_btn", bt_dial);
ad->ui_type = _UI_BLOCK;
evas_object_show(ad->win);
remove_waiting_popup(ad);
@@ -1038,49 +1049,56 @@ void pwlock_destroy(struct appdata *ad)
{
_DBG("%s", __func__);
- if (!ad->navi)
+ remove_waiting_popup(ad);
+ if (!ad->elm_navigation_frame)
return;
_DBG("%s %d", __func__, __LINE__);
- elm_naviframe_item_pop(ad->navi);
- if (ad->navi) {
- evas_object_del(ad->navi);
- ad->navi = NULL;
+ elm_naviframe_item_pop(ad->elm_navigation_frame);
+ if (ad->elm_navigation_frame) {
+ evas_object_del(ad->elm_navigation_frame);
+ ad->elm_navigation_frame = NULL;
}
- if (ad->ly_main) {
- evas_object_del(ad->ly_main);
- ad->ly_main = NULL;
+ if (ad->layout_contents) {
+ evas_object_del(ad->layout_contents);
+ ad->layout_contents = NULL;
}
- if (ad->entry_layout) {
- evas_object_del(ad->entry_layout);
- ad->entry_layout = NULL;
+ if (ad->layout_entry) {
+ evas_object_del(ad->layout_entry);
+ ad->layout_entry = NULL;
}
- if (ad->entry_second_layout) {
- evas_object_del(ad->entry_second_layout);
- ad->entry_second_layout = NULL;
+ if (ad->layout_second_entry) {
+ evas_object_del(ad->layout_second_entry);
+ ad->layout_second_entry = NULL;
}
- if (ad->bg) {
- evas_object_del(ad->bg);
- ad->bg = NULL;
+ if (ad->elm_conform) {
+ evas_object_del(ad->elm_conform);
+ ad->elm_conform = NULL;
}
- remove_waiting_popup(ad);
+ if (ad->elm_bg) {
+ evas_object_del(ad->elm_bg);
+ ad->elm_bg = NULL;
+ }
+ /* FIXME we should check window hide for fast boot */
+ /* evas_object_hide(ad->win); */
+ _DBG("%s %d %p", __func__, __LINE__, ad->elm_navigation_frame);
}
void clear_entry(struct appdata *ad)
{
- if (ad->entry_layout) {
- elm_object_part_text_set(ad->entry_layout, "elm.guidetext", "");
- elm_entry_entry_set(_editfield_entry_get(ad->entry_layout), "");
+ if (ad->layout_entry) {
+ elm_object_part_text_set(ad->layout_entry, "elm.guidetext", "");
+ elm_entry_entry_set(_editfield_entry_get(ad->layout_entry), "");
}
- if (ad->entry_second_layout) {
- elm_object_part_text_set(ad->entry_second_layout,
+ if (ad->layout_second_entry) {
+ elm_object_part_text_set(ad->layout_second_entry,
"elm.guidetext", "");
elm_entry_entry_set(_editfield_entry_get
- (ad->entry_second_layout), "");
+ (ad->layout_second_entry), "");
}
}
-static void _ug_layout_cb(struct ui_gadget *ug, enum ug_mode mode, void *priv)
+static void _ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
{
struct appdata *ad = (struct appdata *)priv;
Evas_Object *base;
@@ -1120,12 +1138,12 @@ static void _ug_layout_cb(struct ui_gadget *ug, enum ug_mode mode, void *priv)
}
-static void _ug_result_cb(struct ui_gadget *ug, bundle * result, void *priv)
+static void _ug_result_cb(ui_gadget_h ug, service_h service, void *priv)
{
_DBG("function=%s", __func__);
struct appdata *ad = NULL;
- if (!ug || !priv || !result) {
+ if (!ug || !priv || !service) {
return;
}
char *retv = NULL;
@@ -1135,13 +1153,13 @@ static void _ug_result_cb(struct ui_gadget *ug, bundle * result, void *priv)
switch (ad->state) {
case _ST_LANG:
{
- retv = (char *)bundle_get_val(result, "updateType");
+ service_get_extra_data(service, "updateType", &retv);
if (retv)
_DBG("_ST_LANG updateType = %s", retv);
- retv = (char *)bundle_get_val(result, "ON_OFF_TEXT");
+ service_get_extra_data(service, "ON_OFF_TEXT", &retv);
if (retv)
_DBG("_ST_LANG ON_OFF_TEXT = %s", retv);
- retv = (char *)bundle_get_val(result, "result");
+ service_get_extra_data(service, "result", &retv);
if (retv)
_DBG("_ST_LANG language result = %s", retv);
char *path = (char *)vconf_get_str(VCONFKEY_LANGSET);
@@ -1158,28 +1176,16 @@ static void _ug_result_cb(struct ui_gadget *ug, bundle * result, void *priv)
}
}
break;
- case _ST_KEYBOARD:
- {
- retv = (char *)bundle_get_val(result, "name");
- if (retv)
- _DBG("_ST_KEYBOARD name = %s", retv);
- retv = (char *)bundle_get_val(result, "description");
- if (retv && !strcmp(retv, "previous clicked")) {
- _DBG("_ST_KEYBOARD description = %s", retv);
- ad->kill_ug = 1;
- } else {
- ad->kill_ug = 0;
- }
- }
- break;
case _ST_TIME:
{
- retv = (char *)bundle_get_val(result, "result");
+ service_get_extra_data(service, "result", &retv);
if (retv)
_DBG("_ST_TIME name = %s", retv);
if (retv && !strcmp(retv, "lbutton_click")) {
+ ad->ug_btn_evt_state = UG_BUTTON_STATE_PREV_CLICKED;
ad->kill_ug = 1;
} else if (retv && !strcmp(retv, "rbutton_click")) {
+ ad->ug_btn_evt_state = UG_BUTTON_STATE_NEXT_CLICKED;
ad->kill_ug = 0;
}
}
@@ -1188,13 +1194,13 @@ static void _ug_result_cb(struct ui_gadget *ug, bundle * result, void *priv)
break;
}
- if (!retv) {
+ if (!retv) { /* avoid to click ug quickly */
_DBG("retv = %s", retv);
_ug_destroy = 1;
}
}
-static void _ug_destroy_cb(struct ui_gadget *ug, void *priv)
+static void _ug_destroy_cb(ui_gadget_h ug, void *priv)
{
_DBG("%s, %d begin", __func__, __LINE__);
struct appdata *ad = NULL;
@@ -1212,78 +1218,27 @@ static void _ug_destroy_cb(struct ui_gadget *ug, void *priv)
switch (ad->state) {
case _ST_LANG:
{
- if (ad->first_boot) {
- _DBG("FIRST BOOT!");
- if (ad->keyboard_settings_loaded) {
- ad->state = _ST_KEYBOARD;
- do_state(ad);
- } else {
- ad->state = _ST_KEYBOARD;
- do_state(ad);
- show_waiting_popup(ad, NULL);
- return;
- }
- } else {
- _DBG("NOT FIRST BOOT, SIM CHANGED?");
- if (ad->running_status == 0
- && ad->sim_changed == 1) {
- ad->state = _ST_KEYBOARD;
- do_state(ad);
- show_waiting_popup(ad, NULL);
- return;
- } else {
- ad->state = _ST_EXIT;
- do_state(ad);
- }
- }
+ ad->state = _ST_GREETING;
+ do_state(ad);
+ show_waiting_popup(ad, NULL);
}
break;
case _ST_TIME:
{
- if (ad->kill_ug) {
- ad->state = _ST_KEYBOARD;
+ if (ad->kill_ug) { /* Previous button clicked */
ad->date_and_time_previous = 1;
show_waiting_popup(ad, NULL);
- do_state(ad);
- ad->kill_ug = 0;
- return;
- } else {
- if (ad->sim_status == SIM_EMPTY) {
- ad->state = _ST_EXIT;
+ if (ad->is_no_sim == 1) {
+ do_state_directly(_ST_NOSIM, ad);
} else {
- ad->state = _ST_EXIT;
+ do_state_directly(_ST_GREETING, ad);
}
- }
- do_state(ad);
- }
- break;
- case _ST_KEYBOARD:
- {
- if (ad->kill_ug) {
- ad->state = _ST_LANG;
- do_state(ad);
ad->kill_ug = 0;
+ return;
} else {
- if (ad->first_boot) {
- if (ad->date_and_time_settings_loaded) {
- ad->state = _ST_TIME;
- do_state(ad);
- ad->kill_ug = 0;
- } else {
- ad->state = _ST_TAPI_INIT;
- do_state(ad);
- show_waiting_popup(ad,
- pwlock_get_string
- (IDS_IDLE_BODY_CHECKING_SIM_STATUS));
- ad->kill_ug = 0;
- return;
- }
- } else {
- ad->state = _ST_TIME;
- do_state(ad);
- ad->kill_ug = 0;
- }
+ ad->state = _ST_CONNECTION;
}
+ do_state(ad);
}
break;
default:
@@ -1299,17 +1254,31 @@ static void _ug_destroy_cb(struct ui_gadget *ug, void *priv)
ug_destroy(ug);
ug = NULL;
- elm_object_item_disabled_set(item[0], EINA_FALSE);
- elm_object_disabled_set(ad->button_dial, EINA_FALSE);
+ if(ad->layout_entry) {
+ elm_entry_input_panel_enabled_set(
+ _editfield_entry_get(ad->layout_entry),
+ EINA_TRUE);
+ elm_entry_input_panel_show(
+ _editfield_entry_get(ad->layout_entry));
+ }
+
+ if(ad->layout_second_entry) {
+ elm_entry_input_panel_enabled_set(
+ _editfield_entry_get(ad->layout_second_entry),
+ EINA_TRUE);
+ }
+
+ elm_object_disabled_set(ad->elm_button_dial, EINA_FALSE);
+
if (_UI_PIN == ad->ui_type || _UI_PUK == ad->ui_type ||
_UI_PUK_PIN == ad->ui_type
|| _UI_SIM_LOCK == ad->ui_type) {
- if (ad->entry_layout) {
+ if (ad->layout_entry) {
evas_object_show(_editfield_entry_get
- (ad->entry_layout));
+ (ad->layout_entry));
elm_object_focus_set
(_editfield_entry_get
- (ad->entry_layout), EINA_TRUE);
+ (ad->layout_entry), EINA_TRUE);
}
}
} else {
@@ -1319,37 +1288,351 @@ static void _ug_destroy_cb(struct ui_gadget *ug, void *priv)
}
}
+static void _menu_greeting_button_lang_cb(void *data, Evas_Object * obj, void *e) {
+ _DBG("%s,%d", __func__, __LINE__);
+ struct appdata *ad = data;
+
+ if (!ad)
+ return;
+
+ ad->state = _ST_LANG;
+ show_lang(ad);
+ /* TODO: */
+}
+
+static Evas_Object *_gl_nosim_icon_get(void *data, Evas_Object * obj, const char *part)
+{
+ Evas_Object *ei = NULL;
+
+ _DBG("_gl_nosim_icon_get");
+
+ ei = elm_image_add(obj);
+ elm_image_file_set(ei, IMAGEDIR"/A01-9_icon_no_sim.png", NULL);
+ elm_image_resizable_set(ei, EINA_FALSE, EINA_FALSE);
+
+ evas_object_show(ei);
+
+ return ei;
+}
+
+static Evas_Object *_gl_nosim_text_label_get(void *data, Evas_Object * obj, const char *part)
+{
+ Evas_Object *el = NULL;
+ Eina_Strbuf *nosim_text;
+
+ nosim_text = eina_strbuf_new();
+
+ _DBG("_gl_nosim_text_label_get");
+ el = elm_label_add(obj);
+ elm_label_line_wrap_set(el, ELM_WRAP_WORD);
+ evas_object_size_hint_weight_set(el, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(el, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ if (nosim_text != NULL && eina_strbuf_append_printf(nosim_text,
+ "<font_size=32><color=#7C7C7C><br> %s <br></color></font_size>",
+ pwlock_get_string(IDS_STU_BODY_HOW_TO_INSERT_SIM_CARD_HELP_MSG)) == EINA_TRUE) {
+ elm_object_text_set(el, eina_strbuf_string_get(nosim_text));
+ }
+
+ evas_object_show(el);
+
+ if (nosim_text != NULL) {
+ eina_strbuf_free(nosim_text);
+ }
+ return el;
+}
+
+static Evas_Object *_gl_sim_retry_btn_content_get(void *date, Evas_Object * obj, const char *part)
+{
+ Evas_Object *eo_btn = NULL;
+
+ _DBG("_gl_sim_retry_btn_content_get");
+
+ eo_btn = elm_button_add(obj);
+ elm_object_text_set(eo_btn, pwlock_get_string(IDS_ST_BUTTON_TRY_AGAIN_ABB));
+
+ // temporary min/max set
+ //evas_object_size_hint_min_set(eo_btn, 486, 72);
+ //evas_object_size_hint_max_set(eo_btn, 486, 72);
+
+ return eo_btn;
+}
+
+static void _nosim_retry_cb(void *data, Evas_Object * obj, void *event_info) {
+ _DBG("%s,%d", __func__, __LINE__);
+ struct appdata *ad = data;
+
+ if (!ad)
+ return;
+
+ do_state_directly(_ST_SIM, ad);
+}
+
+static Evas_Object *_nosim_create_genlist(struct appdata *ad)
+{
+ _DBG("%s", __func__);
+ Evas_Object *genlist = NULL;
+
+ if (ad == NULL) {
+ _DBG("_nosim_create_genlist returns NULL\n");
+ return NULL;
+ }
+ nosim_icon_itc.item_style = "1icon/with_no_line";
+ nosim_icon_itc.func.text_get = NULL;
+ nosim_icon_itc.func.content_get = _gl_nosim_icon_get;
+ nosim_icon_itc.func.state_get = NULL;
+ nosim_icon_itc.func.del = NULL;
+
+ nosim_text_itc.item_style = "1icon/with_no_line";
+ nosim_text_itc.func.text_get = NULL;
+ nosim_text_itc.func.content_get = _gl_nosim_text_label_get;
+ nosim_text_itc.func.state_get = NULL;
+ nosim_text_itc.func.del = NULL;
+
+ sim_retry_btn_itc.item_style = "1icon/with_no_line";
+ sim_retry_btn_itc.func.text_get = NULL;
+ sim_retry_btn_itc.func.content_get = _gl_sim_retry_btn_content_get;
+ sim_retry_btn_itc.func.state_get = NULL;
+ sim_retry_btn_itc.func.del = NULL;
+
+ sep_itc.item_style = "dialogue/separator/20";
+ sep_itc.func.text_get = NULL;
+ sep_itc.func.content_get = NULL;
+ sep_itc.func.state_get = NULL;
+ sep_itc.func.del = NULL;
+
+ genlist = elm_genlist_add(ad->elm_navigation_frame);
+
+ //elm_genlist_item_append(genlist, &sep_itc, NULL, NULL,
+ // ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ /* nosim icon */
+ elm_genlist_item_append(genlist, &nosim_icon_itc, (void *)ad, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ /* nosim text */
+ elm_genlist_item_append(genlist, &nosim_text_itc, (void *)ad, NULL,
+ ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ /* sim retry button */
+ elm_genlist_item_append(genlist, &sim_retry_btn_itc, (void *)ad, NULL,
+ ELM_GENLIST_ITEM_NONE, _nosim_retry_cb, (void *)ad);
+
+ _DBG("END of _nosim_create_genlist\n");
+ evas_object_show(genlist);
+ return genlist;
+}
+
+int show_splash_screen(struct appdata *ad) {
+ _DBG("%s,%d", __func__, __LINE__);
+
+ if (!ad)
+ return 0;
+
+ pwlock_destroy(ad);
+
+ init_ui(ad);
+
+ show_waiting_popup(ad,
+ pwlock_get_string
+ (IDS_IDLE_POP_CHECKING_SIM_CARD_ING));
+
+ evas_object_show(ad->win);
+
+ return 1;
+}
+
+int show_greeting(struct appdata *ad) {
+ _DBG("%s,%d", __func__, __LINE__);
+
+ char *model_name = NULL;
+
+ Evas_Object *navi = NULL;
+ Evas_Object *controlbar = NULL;
+ Elm_Object_Item *navi_it = NULL;
+ Evas_Object *contents = NULL;
+ Evas_Object *button = NULL;
+
+ if (!ad)
+ return 0;
+
+ ad->ui_type = _UI_GREETING;
+
+ pwlock_destroy(ad);
+
+ init_ui(ad);
+ navi = ad->elm_navigation_frame;
+
+ controlbar = elm_toolbar_add(navi);
+ if (controlbar == NULL)
+ return 0;
+
+ contents = pwlock_add_layout_from_edj(navi, EDJFILE, "pwlock-menu-lang");
+
+ model_name = vconf_get_str(PWLOCK_DEVICE_NAME);
+ _DBG("Device Name = %s\n",model_name);
+
+ if (model_name != NULL) {
+ elm_object_part_text_set(contents, "text.greeting.1", pwlock_get_string(IDS_IDLE_BODY_GREETING_WELCOME));
+ elm_object_part_text_set(contents, "text.greeting.2", model_name);
+
+ free(model_name);
+ model_name = NULL;
+ }
+ else {
+ elm_object_part_text_set(contents, "text.greeting.1", pwlock_get_string(IDS_SCM_BODY_WELCOME_E));
+ }
+
+ elm_object_part_text_set(contents, "text.help",
+ pwlock_get_string(IDS_STU_BODY_SELECT_LANGUAGE));
+
+ button = elm_button_add(navi);
+ elm_object_style_set(button, "popup_button/default");
+ elm_object_part_content_set(contents, "button.select.lang", button);
+
+ elm_object_text_set(button, get_lang_name_by_path(vconf_get_str(VCONFKEY_LANGSET)));
+ evas_object_smart_callback_add(button, "clicked", _menu_greeting_button_lang_cb, ad);
+
+ elm_toolbar_shrink_mode_set(controlbar, ELM_TOOLBAR_SHRINK_EXPAND);
+
+ elm_toolbar_item_append(controlbar, NULL,
+ pwlock_get_string(IDS_ST_SK_EMERGENCY_CALL), _dial_cb,
+ ad);
+ elm_toolbar_item_append(controlbar, NULL,
+ pwlock_get_string(IDS_COM_SK_START),
+ pwlock_greeting_next_cb, ad);
+
+ navi_it = elm_naviframe_item_push(navi, NULL, NULL, NULL, contents, NULL);
+ elm_naviframe_item_title_visible_set(navi_it, EINA_FALSE);
+
+ elm_object_item_part_content_set(navi_it, "controlbar", controlbar);
+
+ evas_object_show(ad->win);
+ _destroy_previous_ugs(ad);
+
+ return 1;
+}
+
+int show_connection(struct appdata *ad) {
+ _DBG("%s", __func__);
+ ad->ui_type = _UI_CONNECTION;
+ service_h service;
+ UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
+ struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
+
+ service_create(&service);
+
+ if (cbs == NULL) {
+ service_destroy(service); /* prevent */
+ return 0;
+ }
+ cbs->layout_cb = pwlock_ug_connection_layout_cb;
+ cbs->result_cb = pwlock_ug_connection_result_cb;
+ cbs->destroy_cb = pwlock_ug_connection_destroy_cb;
+ cbs->priv = (void *)ad;
+ if (!service) {
+ service_destroy(service);
+ free(cbs); /* memory leak */
+ return 0;
+ }
+ service_add_extra_data(service, "caller", "pwlock");
+ service_add_extra_data(service, "lbutton", pwlock_get_string(IDS_COM_BODY_PREVIOUS));
+ service_add_extra_data(service, "rbutton_next", pwlock_get_string(IDS_COM_SK_NEXT));
+ service_add_extra_data(service, "rbutton_skip", pwlock_get_string(IDS_IDLE_SK_SKIP));
+ service_add_extra_data(service, "lbutton_icon", IMAGEDIR"/A01-9_controlbar_icon_Previous.png");
+ service_add_extra_data(service, "rbutton_next_icon", IMAGEDIR"/A01-9_controlbar_icon_Next.png");
+ service_add_extra_data(service, "rbutton_skip_icon", IMAGEDIR"/A01-9_controlbar_icon_Skip.png");
+ service_add_extra_data(service, "scan_icon", IMAGEDIR"/A01-9_controlbar_icon_scan.png");
+
+ ad->connection_ug =
+ ug_create(NULL, "wifi-efl-UG", UG_MODE_FULLVIEW, service, cbs);
+ service_destroy(service);
+ free(cbs);
+ if (!ad->connection_ug) {
+ _DBG("Get connection ug failed.");
+ if (ad->ug_btn_evt_state == UG_BUTTON_STATE_PREV_CLICKED)
+ ad->state = _ST_TIME;
+ else
+ ad->state = _ST_FINISH;
+ return 0;
+ }
+ ad->current_ug = ad->connection_ug;
+ evas_object_show(ad->win);
+ return 1;
+}
+
+int show_tutorial(struct appdata *ad) {
+ _DBG("%s,%d", __func__, __LINE__);
+ Evas_Object *navi = NULL;
+ Evas_Object *controlbar = NULL;
+ Elm_Object_Item *navi_it = NULL;
+
+ if (!ad)
+ return 0;
+ ad->ui_type = _UI_TUTORIAL;
+
+ pwlock_destroy(ad);
+
+ init_ui(ad);
+ navi = ad->elm_navigation_frame;
+
+ controlbar = elm_toolbar_add(ad->elm_navigation_frame);
+ if (controlbar == NULL)
+ return 0;
+
+ elm_toolbar_shrink_mode_set(controlbar, ELM_TOOLBAR_SHRINK_EXPAND);
+
+ elm_toolbar_item_append(controlbar, NULL,
+ pwlock_get_string(IDS_COM_BODY_PREVIOUS),
+ pwlock_tutorial_prev_cb, ad);
+ elm_toolbar_item_append(controlbar, NULL,
+ pwlock_get_string(IDS_COM_SK_CANCEL), pwlock_tutorial_next_cb,
+ ad);
+
+ navi_it =
+ elm_naviframe_item_push(navi, (const char *)_("TUTORIAL"),
+ NULL, NULL, NULL, NULL);
+ elm_object_item_part_content_set(navi_it, "controlbar", controlbar);
+
+ evas_object_show(ad->win);
+ _destroy_previous_ugs(ad);
+
+ return 1;
+}
+
int show_lang(struct appdata *ad)
{
_DBG("%s", __func__);
ad->ui_type = _UI_LANG;
- bundle *b = bundle_create();
+ service_h service;
UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
+ service_create(&service);
+
if (cbs == NULL) {
- bundle_free(b);
+ service_destroy(service); /* prevent */
return 0;
}
cbs->layout_cb = _ug_layout_cb;
cbs->result_cb = _ug_result_cb;
cbs->destroy_cb = _ug_destroy_cb;
cbs->priv = (void *)ad;
- if (!b) {
- free(cbs);
+ if (!service) {
+ service_destroy(service);
+ free(cbs); /* memory leak */
return 0;
}
- bundle_add(b, "caller", "pwlock");
- bundle_add(b, "viewtype", "language");
- bundle_add(b, "rbutton", pwlock_get_string(IDS_COM_SK_NEXT));
+ service_add_extra_data(service, "caller", "pwlock");
+ service_add_extra_data(service, "viewtype", "language");
ad->language_ug =
- ug_create(NULL, "setting-phone-efl", UG_MODE_FULLVIEW, b, cbs);
- bundle_free(b);
+ ug_create(NULL, "setting-phone-efl", UG_MODE_FULLVIEW, service, cbs);
+ service_destroy(service);
free(cbs);
if (!ad->language_ug) {
_DBG("Get phone ug failed.");
- ad->state = _ST_KEYBOARD;
+ ad->state = _ST_GREETING;
return 0;
}
ad->current_ug = ad->language_ug;
@@ -1357,6 +1640,53 @@ int show_lang(struct appdata *ad)
return 1;
}
+int show_nosim(struct appdata *ad)
+{
+ _DBG("%s,%d", __func__, __LINE__);
+ Evas_Object *genlist = NULL;
+ Evas_Object *navi = NULL;
+ Evas_Object *controlbar = NULL;
+ Elm_Object_Item *navi_it = NULL;
+
+ if (!ad)
+ return 0;
+ ad->ui_type = _UI_NOSIM;
+
+ pwlock_destroy(ad);
+
+ init_ui(ad);
+ navi = ad->elm_navigation_frame;
+
+ genlist = _nosim_create_genlist(ad);
+
+ controlbar = elm_toolbar_add(ad->elm_navigation_frame);
+ if (controlbar == NULL)
+ return 0;
+
+ elm_toolbar_shrink_mode_set(controlbar, ELM_TOOLBAR_SHRINK_EXPAND);
+
+
+ elm_toolbar_item_append(controlbar, NULL, NULL, NULL, NULL);
+ elm_toolbar_item_append(controlbar, NULL, NULL, NULL, NULL);
+ elm_toolbar_item_append(controlbar, NULL, NULL, NULL, NULL);
+ elm_toolbar_item_append(controlbar, NULL, NULL, NULL, NULL);
+
+ elm_toolbar_item_append(controlbar, IMAGEDIR"/A01-9_controlbar_icon_Skip.png",
+ pwlock_get_string(IDS_IDLE_SK_SKIP),
+ pwlock_nosim_skip_cb,
+ ad);
+
+ navi_it =
+ elm_naviframe_item_push(navi, (const char *)_(pwlock_get_string(IDS_IDLE_HEADER_NOSIM)),
+ NULL, NULL, genlist, NULL);
+ elm_object_item_part_content_set(navi_it, "controlbar", controlbar);
+
+ evas_object_show(ad->win);
+ _destroy_previous_ugs(ad);
+
+ return 1;
+}
+
int show_time(struct appdata *ad)
{
_DBG("%s,%d", __func__, __LINE__);
@@ -1364,31 +1694,39 @@ int show_time(struct appdata *ad)
return 0;
ad->ui_type = _UI_TIME;
ad->date_and_time_settings_loaded = 1;
- bundle *b = bundle_create();
+ service_h service;
UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
+
+ service_create(&service);
+
if (cbs == NULL) {
- bundle_free(b);
+ service_destroy(service); /* prevent */
return 0;
}
cbs->layout_cb = _ug_layout_cb;
cbs->result_cb = _ug_result_cb;
cbs->destroy_cb = _ug_destroy_cb;
cbs->priv = (void *)ad;
- if (!b) {
- free(cbs);
+ if (!service) {
+ service_destroy(service);
+ free(cbs); /* memory leak */
return 0;
}
- bundle_add(b, "caller", "pwlock");
- bundle_add(b, "lbutton", pwlock_get_string(IDS_COM_BODY_PREVIOUS));
- bundle_add(b, "rbutton", pwlock_get_string(IDS_COM_SK_DONE));
+ service_add_extra_data(service, "caller", "pwlock");
+ service_add_extra_data(service, "lbutton", pwlock_get_string(IDS_COM_BODY_PREVIOUS));
+ service_add_extra_data(service, "rbutton", pwlock_get_string(IDS_COM_SK_NEXT));
+
ad->date_ug =
- ug_create(NULL, "setting-time-efl", UG_MODE_FULLVIEW, b, cbs);
- bundle_free(b);
+ ug_create(NULL, "setting-time-efl", UG_MODE_FULLVIEW, service, cbs);
+ service_destroy(service);
free(cbs);
if (!ad->date_ug) {
- _DBG("Get time ug failed.");
- ad->state = _ST_EXIT;
+ _DBG("?????Get time ug failed.");
+ if (ad->ug_btn_evt_state == UG_BUTTON_STATE_PREV_CLICKED)
+ ad->state = _ST_GREETING;
+ else
+ ad->state = _ST_CONNECTION;
return 0;
}
ad->current_ug = ad->date_ug;
@@ -1396,46 +1734,63 @@ int show_time(struct appdata *ad)
return 1;
}
-int show_keyboard_setting(struct appdata *ad)
-{
+int show_finish(struct appdata *ad) {
_DBG("%s,%d", __func__, __LINE__);
+
+ Evas_Object *navi = NULL;
+ Evas_Object *controlbar = NULL;
+ Elm_Object_Item *navi_it = NULL;
+ Evas_Object *contents = NULL;
+ Evas_Object *label = NULL;
+ Eina_Strbuf *finish_text;
+
if (!ad)
return 0;
- ad->ui_type = _UI_KEYBOARD;
- ad->keyboard_settings_loaded = 1;
- bundle *b = bundle_create();
- UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
- struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
- if (cbs == NULL) {
- bundle_free(b);
+
+ ad->ui_type = _UI_FINISH;
+
+ pwlock_destroy(ad);
+
+ init_ui(ad);
+ navi = ad->elm_navigation_frame;
+
+ controlbar = elm_toolbar_add(navi);
+ if (controlbar == NULL)
return 0;
+
+ contents = pwlock_add_layout_from_edj(navi, EDJFILE, "pwlock-finish");
+
+ finish_text = eina_strbuf_new();
+
+ label = elm_label_add(contents);
+ elm_label_line_wrap_set(label, ELM_WRAP_WORD);
+ evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ if (finish_text != NULL && eina_strbuf_append_printf(finish_text,
+ "<font size=32 color=#7C7C7C align=center><br> %s </font>",
+ pwlock_get_string(IDS_STU_BODY_DEVICE_IS_SET_UP_AND_READY_TO_USE)) == EINA_TRUE) {
+ elm_object_text_set(label, eina_strbuf_string_get(finish_text));
}
- cbs->layout_cb = _ug_layout_cb;
- cbs->result_cb = _ug_result_cb;
- cbs->destroy_cb = _ug_destroy_cb;
- cbs->priv = (void *)ad;
- if (!b) {
- free(cbs);
- return 0;
+
+ if (finish_text != NULL) {
+ eina_strbuf_free(finish_text);
}
- bundle_add(b, "navi_btn_left",
- pwlock_get_string(IDS_COM_BODY_PREVIOUS));
- bundle_add(b, "navi_btn_right", pwlock_get_string(IDS_COM_SK_NEXT));
+ elm_object_part_content_set(contents, "swl/label", label);
- ad->keyboard_ug =
- ug_create(NULL, "keyboard-setting-wizard-efl", UG_MODE_FULLVIEW, b,
- cbs);
+ elm_toolbar_shrink_mode_set(controlbar, ELM_TOOLBAR_SHRINK_EXPAND);
+
+ elm_toolbar_item_append(controlbar, NULL, pwlock_get_string(IDS_COM_BODY_PREVIOUS), pwlock_finish_prev_cb, ad);
+ elm_toolbar_item_append(controlbar, NULL, pwlock_get_string(IDS_ST_BODY_INSTALTAB_FINISH), pwlock_finish_cb, ad);
+
+ navi_it = elm_naviframe_item_push(navi, _get_header(ad->ui_type), NULL, NULL, contents, NULL);
+
+ elm_object_item_part_content_set(navi_it, "controlbar", controlbar);
- bundle_free(b);
- free(cbs);
- if (!ad->keyboard_ug) {
- _DBG("Get keyboard setting ug failed\n");
- ad->state = _ST_TIME;
- return 0;
- }
- ad->current_ug = ad->keyboard_ug;
evas_object_show(ad->win);
+ _destroy_previous_ugs(ad);
+
return 1;
}
@@ -1446,12 +1801,12 @@ int show_dialer(struct appdata *ad)
return 0;
ad->ui_type = _UI_DIALER;
- bundle *b;
- b = bundle_create();
+ service_h service;
+ service_create(&service);
UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
if (cbs == NULL) {
- bundle_free(b);
+ service_destroy(service); /* prevent */
return 0;
}
cbs->layout_cb = _ug_layout_cb;
@@ -1459,14 +1814,15 @@ int show_dialer(struct appdata *ad)
cbs->destroy_cb = _ug_destroy_cb;
cbs->priv = (void *)ad;
- if (!b) {
- free(cbs);
+ if (!service) {
+ service_destroy(service);
+ free(cbs); /* memory leak */
return 0;
}
- bundle_add(b, "emergency_dialer", "emergency");
- ad->dialer_ug = ug_create(NULL, "dialer-efl", UG_MODE_FULLVIEW, b, cbs);
- bundle_free(b);
+ service_add_extra_data(service, "emergency_dialer", "emergency");
+ ad->dialer_ug = ug_create(NULL, "dialer-efl", UG_MODE_FULLVIEW, service, cbs);
+ service_destroy(service);
free(cbs);
if (!ad->dialer_ug) {
_DBG("dialer ug failed\n");
@@ -1493,7 +1849,7 @@ void show_popup(struct appdata *ad, const char *mesg, Eina_Bool mode)
}
ecore_imf_context_input_panel_hide(elm_entry_imf_context_get
(_editfield_entry_get
- (ad->entry_layout)));
+ (ad->layout_entry)));
pp = elm_popup_add(ad->win);
ad->popup = pp;
evas_object_size_hint_weight_set(pp, EVAS_HINT_EXPAND,
@@ -1518,32 +1874,81 @@ void show_popup(struct appdata *ad, const char *mesg, Eina_Bool mode)
evas_object_show(pp);
}
+void show_popup_ask_exit(struct appdata *ad, const char *mesg)
+{
+ if (!ad) {
+ return;
+ }
+ Evas_Object *pp;
+ Evas_Object *button1;
+ Evas_Object *button2;
+ ad->previous_ui_type = ad->ui_type;
+
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+ ecore_imf_context_input_panel_hide(elm_entry_imf_context_get
+ (_editfield_entry_get
+ (ad->layout_entry)));
+ pp = elm_popup_add(ad->win);
+ ad->popup = pp;
+ evas_object_size_hint_weight_set(pp, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ elm_object_text_set(pp, mesg);
+
+ button1 = elm_button_add(pp);
+ elm_object_text_set(button1, pwlock_get_string(IDS_COM_SK_OK));
+ elm_object_part_content_set(pp, "button1", button1);
+ evas_object_smart_callback_add(button1, "clicked", pwlock_popup_exit_ok_cb,
+ ad);
+
+ button2 = elm_button_add(pp);
+ elm_object_text_set(button2, pwlock_get_string(IDS_COM_SK_CANCEL));
+ elm_object_part_content_set(pp, "button2", button2);
+ evas_object_smart_callback_add(button2, "clicked", pwlock_popup_exit_cancel_cb,
+ ad);
+
+ remove_waiting_popup(ad);
+ evas_object_show(pp);
+}
+
void show_waiting_popup(struct appdata *ad, const char *msg_str)
{
if (!ad) {
return;
}
+
Evas_Object *popup = NULL;
Evas_Object *progressbar = NULL;
Evas_Object *box = NULL;
Evas_Object *label = NULL;
+ Eina_Strbuf *popup_str;
+
remove_waiting_popup(ad);
popup = elm_popup_add(ad->win);
ad->waiting_popup = popup;
box = elm_box_add(popup);
if (msg_str != NULL) {
+ popup_str = eina_strbuf_new();
label = elm_label_add(popup);
- elm_object_style_set(label, "popup_description/default");
elm_label_line_wrap_set(label, EINA_TRUE);
- elm_object_text_set(label, msg_str);
+ if (popup_str != NULL && eina_strbuf_append_printf(popup_str,
+ "<font color=#000000>%s</font>", msg_str) == EINA_TRUE) {
+ elm_object_text_set(label, eina_strbuf_string_get(popup_str));
+ }
evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(label, EVAS_HINT_FILL,
EVAS_HINT_FILL);
evas_object_show(label);
elm_box_pack_end(box, label);
+
+ if (popup_str != NULL) {
+ eina_strbuf_free(popup_str);
+ }
}
progressbar = elm_progressbar_add(popup);
@@ -1564,10 +1969,12 @@ void show_waiting_popup(struct appdata *ad, const char *msg_str)
void remove_waiting_popup(struct appdata *ad)
{
+ _DBG("%s", __func__);
if (!ad) {
return;
}
if (ad->waiting_popup) {
+ _DBG("delete waiting popup");
evas_object_del(ad->waiting_popup);
ad->waiting_popup = NULL;
}
@@ -1583,3 +1990,14 @@ Eina_Bool show_puk_do(void *data)
return ECORE_CALLBACK_CANCEL;
}
+
+void update_pw_entry(struct appdata *ad, char *input_data)
+{
+ _DBG("%s", __func__);
+
+ if (input_data == NULL)
+ return;
+ elm_entry_entry_set(_editfield_entry_get(ad->layout_entry), input_data);
+ elm_entry_cursor_end_set(_editfield_entry_get(ad->layout_entry));
+ _done_cb(ad, NULL, NULL);
+}