From 33fa905692fcc3c16d20587e6e83e80549f3d904 Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Wed, 6 May 2015 16:48:08 +0900 Subject: [PATCH 01/16] Fix edje warning ERR<13934>:edje lib/edje/edje_util.c:3105 _edje_object_size_min_restricted_calc() file /usr/apps/org.tizen.settings-tv-ref/res/edje/org.tizen.settings-tv-ref.edj, group change_passcode_view has a non-fixed part '...'. Adding 'fixed: 1 1;' to source EDC may help. Continuing discarding faulty part. Change-Id: I50537cdf72fbb3b23d23a50cfd7c5afda70498e1 --- data/viewer/change_passcode.edc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/data/viewer/change_passcode.edc b/data/viewer/change_passcode.edc index a26f3c9..fe9cb05 100644 --- a/data/viewer/change_passcode.edc +++ b/data/viewer/change_passcode.edc @@ -183,6 +183,7 @@ group { rel2 { to: "cancel_btn_swallow_padding"; } + fixed: 1 1; align: 0.0 0.0; } } @@ -260,6 +261,7 @@ group { rel2 { to: "service_content_area_padding"; } + fixed: 1 1; align: 0.0 0.0; visible: 0; } @@ -297,6 +299,7 @@ group { rel2 { to: "service_content_area_swallow_padding"; } + fixed: 1 1; align: 0.0 0.0; } } @@ -410,4 +413,4 @@ group { target: "bg"; } } -} \ No newline at end of file +} -- 2.7.4 From ddc19f81b8d95f7069b387cc646364df2f06ff79 Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Wed, 6 May 2015 19:41:45 +0900 Subject: [PATCH 02/16] git mv include/def.h include/common_defs.h This is not to confuse with def.h in pulse library Change-Id: I61b1754d9155d1c0a48a6f3e9dd0bffd5d005bf4 --- data/org.tizen.settings-tv-ref-theme.edc | 2 +- data/org.tizen.settings-tv-ref.edc | 2 +- data/viewer/maincatalog.edc | 0 include/{def.h => common_defs.h} | 6 +++--- src/main.cpp | 2 +- src/view_maincatalog.cpp | 2 +- src/view_need_pwd.cpp | 2 +- src/view_pwd_popup.cpp | 2 +- src/view_sublist.cpp | 2 +- src/view_system_clock.cpp | 2 +- src/view_uigadget.cpp | 2 +- ug/system/clock/CMakeLists.txt | 0 ug/system/clock/edje/CMakeLists.txt | 0 ug/system/clock/edje/ug_clock.edc | 0 ug/system/clock/edje/ug_clock_theme.edc | 0 ug/system/clock/edje/widgets/button.edc | 0 ug/system/clock/include/defs.h | 0 ug/system/clock/include/ug_clock.h | 0 ug/system/clock/include/util.h | 0 ug/system/clock/src/ClockSublistView.cpp | 0 ug/system/clock/src/ug_clock.cpp | 0 ug/system/clock/src/util.cpp | 0 ug/wifi-direct/src/WifiDirectMainView.cpp | 0 23 files changed, 12 insertions(+), 12 deletions(-) mode change 100755 => 100644 data/viewer/maincatalog.edc rename include/{def.h => common_defs.h} (99%) mode change 100755 => 100644 src/view_need_pwd.cpp mode change 100755 => 100644 src/view_pwd_popup.cpp mode change 100755 => 100644 ug/system/clock/CMakeLists.txt mode change 100755 => 100644 ug/system/clock/edje/CMakeLists.txt mode change 100755 => 100644 ug/system/clock/edje/ug_clock.edc mode change 100755 => 100644 ug/system/clock/edje/ug_clock_theme.edc mode change 100755 => 100644 ug/system/clock/edje/widgets/button.edc mode change 100755 => 100644 ug/system/clock/include/defs.h mode change 100755 => 100644 ug/system/clock/include/ug_clock.h mode change 100755 => 100644 ug/system/clock/include/util.h mode change 100755 => 100644 ug/system/clock/src/ClockSublistView.cpp mode change 100755 => 100644 ug/system/clock/src/ug_clock.cpp mode change 100755 => 100644 ug/system/clock/src/util.cpp mode change 100755 => 100644 ug/wifi-direct/src/WifiDirectMainView.cpp diff --git a/data/org.tizen.settings-tv-ref-theme.edc b/data/org.tizen.settings-tv-ref-theme.edc index f8ece3b..610d8fc 100644 --- a/data/org.tizen.settings-tv-ref-theme.edc +++ b/data/org.tizen.settings-tv-ref-theme.edc @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#include "../include/def.h" +#include "../include/common_defs.h" collections { #include "widget/button.edc" #include "widget/progressbar.edc" diff --git a/data/org.tizen.settings-tv-ref.edc b/data/org.tizen.settings-tv-ref.edc index aef0b96..976f7ee 100644 --- a/data/org.tizen.settings-tv-ref.edc +++ b/data/org.tizen.settings-tv-ref.edc @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "../include/def.h" +#include "../include/common_defs.h" collections { #include "viewer/maincatalog.edc" diff --git a/data/viewer/maincatalog.edc b/data/viewer/maincatalog.edc old mode 100755 new mode 100644 diff --git a/include/def.h b/include/common_defs.h similarity index 99% rename from include/def.h rename to include/common_defs.h index 83af87b..fa0519e 100644 --- a/include/def.h +++ b/include/common_defs.h @@ -14,8 +14,8 @@ * limitations under the License. */ -#ifndef __DEF_H__ -#define __DEF_H__ +#ifndef __COMMON_DEFS_H__ +#define __COMMON_DEFS_H__ #define WIN_WIDTH 1920 #define WIN_HEIGHT 1080 @@ -306,4 +306,4 @@ #define KEY_SYSTEM_LANGUAGE "db/menu_widget/language" #define KEY_SYSTEM_COUNTRY "db/menu_widget/regionformat" -#endif /* __DEF_H__ */ +#endif /* __COMMON_DEFS_H__ */ diff --git a/src/main.cpp b/src/main.cpp index f05100a..c4f3084 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -15,7 +15,7 @@ */ #include -#include "def.h" +#include "common_defs.h" #include #include "settingviewmgr.h" #include "utils.h" diff --git a/src/view_maincatalog.cpp b/src/view_maincatalog.cpp index 8c76c26..a2114f7 100644 --- a/src/view_maincatalog.cpp +++ b/src/view_maincatalog.cpp @@ -16,7 +16,7 @@ #include -#include "def.h" +#include "common_defs.h" #include "stdbool.h" #include "settingviewmgr.h" #include "utils.h" diff --git a/src/view_need_pwd.cpp b/src/view_need_pwd.cpp old mode 100755 new mode 100644 index c5f52c4..ef51729 --- a/src/view_need_pwd.cpp +++ b/src/view_need_pwd.cpp @@ -15,7 +15,7 @@ */ #include -#include "def.h" +#include "common_defs.h" #include "utils.h" #include "settings_provider.h" #include "view_need_pwd.h" diff --git a/src/view_pwd_popup.cpp b/src/view_pwd_popup.cpp old mode 100755 new mode 100644 index f970635..ac78c3a --- a/src/view_pwd_popup.cpp +++ b/src/view_pwd_popup.cpp @@ -15,7 +15,7 @@ */ #include -#include "def.h" +#include "common_defs.h" #include "view_pwd_popup.h" #include "utils.h" #include "settings_provider.h" diff --git a/src/view_sublist.cpp b/src/view_sublist.cpp index 27f5b8f..19b827b 100644 --- a/src/view_sublist.cpp +++ b/src/view_sublist.cpp @@ -15,7 +15,7 @@ */ #include -#include "def.h" +#include "common_defs.h" #include "stdbool.h" #include "settingviewmgr.h" #include "utils.h" diff --git a/src/view_system_clock.cpp b/src/view_system_clock.cpp index 25f7b5f..3f08dd4 100644 --- a/src/view_system_clock.cpp +++ b/src/view_system_clock.cpp @@ -15,7 +15,7 @@ */ #include -#include "def.h" +#include "common_defs.h" #include "stdbool.h" #include "settingviewmgr.h" #include "utils.h" diff --git a/src/view_uigadget.cpp b/src/view_uigadget.cpp index 1bed124..c0ccdb1 100644 --- a/src/view_uigadget.cpp +++ b/src/view_uigadget.cpp @@ -17,7 +17,7 @@ #include #include "view_uigadget.h" #include -#include "def.h" +#include "common_defs.h" #include "settingviewmgr.h" diff --git a/ug/system/clock/CMakeLists.txt b/ug/system/clock/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/ug/system/clock/edje/CMakeLists.txt b/ug/system/clock/edje/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/ug/system/clock/edje/ug_clock.edc b/ug/system/clock/edje/ug_clock.edc old mode 100755 new mode 100644 diff --git a/ug/system/clock/edje/ug_clock_theme.edc b/ug/system/clock/edje/ug_clock_theme.edc old mode 100755 new mode 100644 diff --git a/ug/system/clock/edje/widgets/button.edc b/ug/system/clock/edje/widgets/button.edc old mode 100755 new mode 100644 diff --git a/ug/system/clock/include/defs.h b/ug/system/clock/include/defs.h old mode 100755 new mode 100644 diff --git a/ug/system/clock/include/ug_clock.h b/ug/system/clock/include/ug_clock.h old mode 100755 new mode 100644 diff --git a/ug/system/clock/include/util.h b/ug/system/clock/include/util.h old mode 100755 new mode 100644 diff --git a/ug/system/clock/src/ClockSublistView.cpp b/ug/system/clock/src/ClockSublistView.cpp old mode 100755 new mode 100644 diff --git a/ug/system/clock/src/ug_clock.cpp b/ug/system/clock/src/ug_clock.cpp old mode 100755 new mode 100644 diff --git a/ug/system/clock/src/util.cpp b/ug/system/clock/src/util.cpp old mode 100755 new mode 100644 diff --git a/ug/wifi-direct/src/WifiDirectMainView.cpp b/ug/wifi-direct/src/WifiDirectMainView.cpp old mode 100755 new mode 100644 -- 2.7.4 From 46bdd5af7cf1ab5155b185a27b730d44c0f6dcee Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Thu, 7 May 2015 15:34:15 +0900 Subject: [PATCH 03/16] Fix compile warnings /home/abuild/rpmbuild/BUILD/org.tizen.settings-tv-ref-0.1/ug/wifi-direct/src/WifiDirectMainView.cpp: In member function 'void CWifiDirectMainView::m_ProcessConnectionReq(const char*)': /home/abuild/rpmbuild/BUILD/org.tizen.settings-tv-ref-0.1/ug/wifi-direct/src/WifiDirectMainView.cpp: 763:45: warning: the address of 'is_pbc' will always evaluate as 'true' [-Waddress] ret = m->pWifiDirectMgr->GetWPStype(&is_pbc); ^ /home/abuild/rpmbuild/BUILD/org.tizen.settings-tv-ref-0.1/src/view_maincatalog.cpp: In member function 'virtual void CMainCatalogView::Refresh()': /usr/include/eina-1/eina/eina_array.h:493:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] (index < eina_array_count(array)) && ((item = *((iterator)++))); \ ^ /home/abuild/rpmbuild/BUILD/org.tizen.settings-tv-ref-0.1/src/view_maincatalog.cpp:1188:3: note: in expansion of macro 'EINA_ARRAY_ITER_NEXT' EINA_ARRAY_ITER_NEXT(m->sub_item_btn, i, obj, a) { ^ /home/abuild/rpmbuild/BUILD/org.tizen.settings-tv-ref-0.1/src/view_sublist.cpp: In member function 'bool CSublistView::m_DrawListItems(Eina_List*)': /usr/include/eina-1/eina/eina_array.h:493:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] (index < eina_array_count(array)) && ((item = *((iterator)++))); \ ^ /home/abuild/rpmbuild/BUILD/org.tizen.settings-tv-ref-0.1/src/view_sublist.cpp:359:4: note: in expansion of macro 'EINA_ARRAY_ITER_NEXT' EINA_ARRAY_ITER_NEXT(btns, j, obj, a) ^ /home/abuild/rpmbuild/BUILD/org.tizen.settings-tv-ref-0.1/src/view_pwd_popup.cpp: In function 'Evas_Object* _add_pwd_cancel_btn(SPasscodePopupView*)': /home/abuild/rpmbuild/BUILD/org.tizen.settings-tv-ref-0.1/src/view_pwd_popup.cpp:196:63: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] utils_get_translation_str((char *) MSGID_CANCEL), EINA_TRUE); ^ /home/abuild/rpmbuild/BUILD/org.tizen.settings-tv-ref-0.1/src/view_system_clock.cpp: In member function 'bool CSystemClockView::m_AddSysclkSublistItem(Eina_List*, const char*)': /usr/include/eina-1/eina/eina_array.h:493:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] (index < eina_array_count(array)) && ((item = *((iterator)++))); \ ^ /home/abuild/rpmbuild/BUILD/org.tizen.settings-tv-ref-0.1/src/view_system_clock.cpp:257:2: note: in expansion of macro 'EINA_ARRAY_ITER_NEXT' EINA_ARRAY_ITER_NEXT(array, j, obj, aiter) { ^ Change-Id: Ia11848ec772103e14d5fb5d5d40ac37b65058afb --- include/utils.h | 3 +-- src/utils.cpp | 3 +-- src/view_maincatalog.cpp | 7 +++---- src/view_need_pwd.cpp | 4 +--- src/view_pwd_popup.cpp | 3 +-- src/view_sublist.cpp | 4 ++-- src/view_system_clock.cpp | 4 ++-- ug/include/WifiDirectMgr.h | 2 +- ug/src/WifiDirectMgr.cpp | 2 +- ug/wifi-direct/src/WifiDirectMainView.cpp | 2 +- 10 files changed, 14 insertions(+), 20 deletions(-) diff --git a/include/utils.h b/include/utils.h index f303486..cd7e1b4 100644 --- a/include/utils.h +++ b/include/utils.h @@ -23,8 +23,7 @@ #define i18n_init() bindtextdomain(PACKAGE, LOCALEDIR) char *utils_get_translation_str(const char *msgid); -Evas_Object *utils_add_btn(Evas_Object *parent, - char *style, const char *text, Eina_Bool event); +Evas_Object *utils_add_btn(Evas_Object *parent, const char *style, const char *text, Eina_Bool event); Evas_Object *utils_add_scroller(Evas_Object *base); Evas_Object *utils_add_box(Evas_Object *base); Evas_Object *utils_add_ctxpopup(Evas_Object *base, char *style); diff --git a/src/utils.cpp b/src/utils.cpp index d376f00..da5ab94 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -126,8 +126,7 @@ char *utils_get_translation_str(const char *msgid) * callback or not. * @return The button's evas object, NULL on error. */ -Evas_Object *utils_add_btn(Evas_Object *base, - char *style, const char *text, Eina_Bool event) +Evas_Object *utils_add_btn(Evas_Object *base, const char *style, const char *text, Eina_Bool event) { Evas_Object *btn; diff --git a/src/view_maincatalog.cpp b/src/view_maincatalog.cpp index a2114f7..de8c4f8 100644 --- a/src/view_maincatalog.cpp +++ b/src/view_maincatalog.cpp @@ -656,8 +656,7 @@ bool CMainCatalogView::m_DrawSubItems(const char *name) EINA_LIST_FOREACH(list, l, obj) { item = (struct settingitem *) obj; - btn = utils_add_btn(m->base, (char *)SUBITEMBTN_STYLE, - settingitem_get_display_name(item), EINA_FALSE); + btn = utils_add_btn(m->base, SUBITEMBTN_STYLE, settingitem_get_display_name(item), EINA_FALSE); if (!btn) { _ERR("Add btn failed"); evas_object_del(m->subitem_box); @@ -810,7 +809,7 @@ bool CMainCatalogView::m_AddIconBtns(Eina_List *list) } for (int i = 0; i < m->main_item_count; i++) { - btn = utils_add_btn(m->base, (char *)MAINICONBTN_STYLE, NULL, EINA_FALSE); + btn = utils_add_btn(m->base, MAINICONBTN_STYLE, NULL, EINA_FALSE); if (!btn) { _ERR("Add btn failed"); return false; @@ -1177,7 +1176,7 @@ void CMainCatalogView::Refresh(void) char *sld; const char *id; - int i; + unsigned int i; struct settingitem *item; Eina_Array_Iterator a; Evas_Object *btn, *pb, *icon; diff --git a/src/view_need_pwd.cpp b/src/view_need_pwd.cpp index ef51729..dfa6fca 100644 --- a/src/view_need_pwd.cpp +++ b/src/view_need_pwd.cpp @@ -189,9 +189,7 @@ static Evas_Object *_add_view_cancel_btn(SNeedPasscodeView *data) if (!data || !data->base) return NULL; - btn = utils_add_btn(data->base, (char *)PWD_BASIC_BTN, - utils_get_translation_str((char *)MSGID_CANCEL), - EINA_TRUE); + btn = utils_add_btn(data->base, PWD_BASIC_BTN, MSGID_CANCEL, EINA_TRUE); if (!btn) { _ERR("utils add button failed."); return NULL; diff --git a/src/view_pwd_popup.cpp b/src/view_pwd_popup.cpp index ac78c3a..1ba5d15 100644 --- a/src/view_pwd_popup.cpp +++ b/src/view_pwd_popup.cpp @@ -192,8 +192,7 @@ static Evas_Object *_add_pwd_cancel_btn(SPasscodePopupView *data) if (!data || !data->base) return NULL; - btn = utils_add_btn(data->base, PWD_BASIC_BTN, - utils_get_translation_str((char *) MSGID_CANCEL), EINA_TRUE); + btn = utils_add_btn(data->base, PWD_BASIC_BTN, MSGID_CANCEL, EINA_TRUE); if (!btn) { _ERR("utils add button failed."); return NULL; diff --git a/src/view_sublist.cpp b/src/view_sublist.cpp index 19b827b..52f14ed 100644 --- a/src/view_sublist.cpp +++ b/src/view_sublist.cpp @@ -325,7 +325,7 @@ bool CSublistView::m_DrawListItems(Eina_List *list) Evas_Object *btn, *tmp; char *sel; const char *name, *val; - int check, i, j; + unsigned int check, i, j; if (!list || !m->popup_box) { _ERR("Invalid argument"); @@ -353,7 +353,7 @@ bool CSublistView::m_DrawListItems(Eina_List *list) ldata = (struct listitem *) obj; name = listitem_get_display_name(ldata); - btn = utils_add_btn(m->popup_box, (char *) CTXPOPUPBTN_STYLE, name, EINA_TRUE); + btn = utils_add_btn(m->popup_box, CTXPOPUPBTN_STYLE, name, EINA_TRUE); if (!btn) { _ERR("Add button failed"); EINA_ARRAY_ITER_NEXT(btns, j, obj, a) diff --git a/src/view_system_clock.cpp b/src/view_system_clock.cpp index 3f08dd4..ecab021 100644 --- a/src/view_system_clock.cpp +++ b/src/view_system_clock.cpp @@ -183,7 +183,7 @@ bool CSystemClockView::m_AddSysclkSublistItem(Eina_List *list, const char *selva void* obj; Eina_List *iter; const char *disp, *value; - int idx, i, j; + unsigned int idx, i, j; if (!list || !m->ctxpopup || !selval) { _ERR("invalid arguments."); @@ -216,7 +216,7 @@ bool CSystemClockView::m_AddSysclkSublistItem(Eina_List *list, const char *selva goto error; } - btn = utils_add_btn(box, (char *) CTXPOPUPBTN_STYLE, disp, EINA_TRUE); + btn = utils_add_btn(box, CTXPOPUPBTN_STYLE, disp, EINA_TRUE); if (!btn) { _ERR("utils add button failed."); goto error; diff --git a/ug/include/WifiDirectMgr.h b/ug/include/WifiDirectMgr.h index cc5eae8..c6e5d8d 100644 --- a/ug/include/WifiDirectMgr.h +++ b/ug/include/WifiDirectMgr.h @@ -33,7 +33,7 @@ public: bool Connect(const char *macaddr); bool Disconnect(const char *macaddr); bool AcceptConnection(char *macaddr); - bool GetWPStype(bool samewithpbc); + bool GetWPStype(Eina_Bool *is_pbc); bool SetWPStype(wifi_direct_wps_type_e *type); bool SetDeviceStateChangedCb(wifi_direct_device_state_changed_cb cb, void *data); diff --git a/ug/src/WifiDirectMgr.cpp b/ug/src/WifiDirectMgr.cpp index 40264ea..90697cb 100644 --- a/ug/src/WifiDirectMgr.cpp +++ b/ug/src/WifiDirectMgr.cpp @@ -286,7 +286,7 @@ bool CWifiDirectMgr::AcceptConnection(char *macaddr) } -bool CWifiDirectMgr::GetWPStype(bool samewithpbc) +bool CWifiDirectMgr::GetWPStype(Eina_Bool *is_pbc) { _DBG("Not Yet"); #if 0 diff --git a/ug/wifi-direct/src/WifiDirectMainView.cpp b/ug/wifi-direct/src/WifiDirectMainView.cpp index ca7e97f..2a230f1 100644 --- a/ug/wifi-direct/src/WifiDirectMainView.cpp +++ b/ug/wifi-direct/src/WifiDirectMainView.cpp @@ -772,7 +772,7 @@ void CWifiDirectMainView::m_ProcessConnectionReq(const char *addr) return; } - if (is_pbc == true) { + if (is_pbc) { ret = m_CreateReqPopupLayout(); if (ret != true) _ERR("Create rep popup failed."); -- 2.7.4 From bfacd0879f2ca1c1328fb647d1cc16fa8114066a Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Fri, 8 May 2015 19:08:09 +0900 Subject: [PATCH 04/16] Fix 'Class has non-virtual destructor' warning Also, applied cpplint check fixes Change-Id: I63a0275d8ca510bb3685478757c184735f879ade --- src/main.cpp | 113 +++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 67 insertions(+), 46 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index c4f3084..2885fc0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -15,19 +15,19 @@ */ #include -#include "common_defs.h" +#include #include -#include "settingviewmgr.h" -#include "utils.h" + +#include "common_defs.h" #include "json_marco.h" #include "settings_provider.h" +#include "settingviewmgr.h" +#include "utils.h" -#include #define PARAM_SETTINGS_ITEM "settings-item" #define MAIN_CATALOG "maincatalog" - SET_TAG("org.tizen.settings-tv-ref"); Evas_Object *_add_win(const char *name) @@ -52,7 +52,6 @@ Evas_Object *_add_win(const char *name) } class CApp : public CBaseApp { - struct _appdata { Evas_Object *win; CSettingMgr *mgr; @@ -60,10 +59,9 @@ class CApp : public CBaseApp { char *item; unsigned int app_control; } ad; -protected: - virtual bool OnCreate(void) - { +protected: + virtual bool OnCreate(void) { Evas_Object *win; int r; @@ -91,50 +89,74 @@ protected: ad.item = NULL; ad.app_control = 0; - /* Set Default value by vconf */ + /* Set default vconf values */ /* Proxy */ - if(vconf_set_int(VCONF_PROXY_METHOD, 0)) _DBG("Fail to set vconf"); - if(vconf_set_str(VCONF_PROXY_IP, "0.0.0.0")) _DBG("Fail to set vconf"); - if(vconf_set_str(VCONF_PROXY_URL, "")) _DBG("Fail to set vconf"); + if (vconf_set_int(VCONF_PROXY_METHOD, 0)) + _DBG("Fail to set vconf"); + if (vconf_set_str(VCONF_PROXY_IP, "0.0.0.0")) + _DBG("Fail to set vconf"); + if (vconf_set_str(VCONF_PROXY_URL, "")) + _DBG("Fail to set vconf"); /* Network */ - if(vconf_set_str(WIRED_DNS_KEY, "0.0.0.0")) _DBG("Fail to set vconf"); - if(vconf_set_str(WIRED_GATEWAY_KEY, "0.0.0.0")) _DBG("Fail to set vconf"); - if(vconf_set_str(WIRED_IP_LAST_MODE, "Obtain automatically")) _DBG("Fail to set vconf"); - if(vconf_set_str(WIRED_DNS_LAST_MODE, "Obtain automatically")) _DBG("Fail to set vconf"); - if(vconf_set_str(WIRED_IP_KEY, "0.0.0.0")) _DBG("Fail to set vconf"); - if(vconf_set_str(WIRED_SUBMASK_KEY, "0.0.0.0")) _DBG("Fail to set vconf"); - - if(vconf_set_str(WIRELESS_DNS_KEY, "0.0.0.0")) _DBG("Fail to set vconf"); - if(vconf_set_str(WIRELESS_GATEWAY_KEY, "0.0.0.0")) _DBG("Fail to set vconf"); - if(vconf_set_str(WIRELESS_IP_LAST_MODE, "Obtain automatically")) _DBG("Fail to set vconf"); - if(vconf_set_str(WIRELESS_DNS_LAST_MODE, "Obtain automatically")) _DBG("Fail to set vconf"); - if(vconf_set_str(WIRELESS_IP_KEY, "0.0.0.0")) _DBG("Fail to set vconf"); - if(vconf_set_str(WIRELESS_SUBMASK_KEY, "0.0.0.0")) _DBG("Fail to set vconf"); + if (vconf_set_str(WIRED_DNS_KEY, "0.0.0.0")) + _DBG("Fail to set vconf"); + if (vconf_set_str(WIRED_GATEWAY_KEY, "0.0.0.0")) + _DBG("Fail to set vconf"); + if (vconf_set_str(WIRED_IP_LAST_MODE, "Obtain automatically")) + _DBG("Fail to set vconf"); + if (vconf_set_str(WIRED_DNS_LAST_MODE, "Obtain automatically")) + _DBG("Fail to set vconf"); + if (vconf_set_str(WIRED_IP_KEY, "0.0.0.0")) + _DBG("Fail to set vconf"); + if (vconf_set_str(WIRED_SUBMASK_KEY, "0.0.0.0")) + _DBG("Fail to set vconf"); + + if (vconf_set_str(WIRELESS_DNS_KEY, "0.0.0.0")) + _DBG("Fail to set vconf"); + if (vconf_set_str(WIRELESS_GATEWAY_KEY, "0.0.0.0")) + _DBG("Fail to set vconf"); + if (vconf_set_str(WIRELESS_IP_LAST_MODE, "Obtain automatically")) + _DBG("Fail to set vconf"); + if (vconf_set_str(WIRELESS_DNS_LAST_MODE, "Obtain automatically")) + _DBG("Fail to set vconf"); + if (vconf_set_str(WIRELESS_IP_KEY, "0.0.0.0")) + _DBG("Fail to set vconf"); + if (vconf_set_str(WIRELESS_SUBMASK_KEY, "0.0.0.0")) + _DBG("Fail to set vconf"); /* Time */ - if(vconf_set_int(KEY_SYSTEM_CLOCK_MODE, 0)) _DBG("Fail to set vconf"); - if(vconf_set_int(KEY_SLEEPTIMER, 0)) _DBG("Fail to set vconf"); - if(vconf_set_int(KEY_SLEEPTIMER_TIMERID, 0)) _DBG("Fail to set vconf"); - if(vconf_set_str(KEY_WAKEUP_TIMER_SETUP, "OFF")) _DBG("Fail to set vconf"); - - if(vconf_set_int(VCONF_KEY_24HOUR_MODE, 0)) _DBG("Fail to set vconf"); - if(vconf_set_str(KEY_CHANGE_PASSCODE, "0000")) _DBG("Fail to set vconf"); - if(vconf_set_int(KEY_SUBTITLE_LANGUAGE, 0)) _DBG("Fail to set vconf"); + if (vconf_set_int(KEY_SYSTEM_CLOCK_MODE, 0)) + _DBG("Fail to set vconf"); + if (vconf_set_int(KEY_SLEEPTIMER, 0)) + _DBG("Fail to set vconf"); + if (vconf_set_int(KEY_SLEEPTIMER_TIMERID, 0)) + _DBG("Fail to set vconf"); + if (vconf_set_str(KEY_WAKEUP_TIMER_SETUP, "OFF")) + _DBG("Fail to set vconf"); + + if (vconf_set_int(VCONF_KEY_24HOUR_MODE, 0)) + _DBG("Fail to set vconf"); + if (vconf_set_str(KEY_CHANGE_PASSCODE, "0000")) + _DBG("Fail to set vconf"); + if (vconf_set_int(KEY_SUBTITLE_LANGUAGE, 0)) + _DBG("Fail to set vconf"); /* Broadcasting */ - if(vconf_set_bool(KEY_CHANNEL_LOCK, false)) _DBG("Fail to set vconf"); + if (vconf_set_bool(KEY_CHANNEL_LOCK, false)) + _DBG("Fail to set vconf"); /* Lang and Region */ - if(vconf_set_str(KEY_SYSTEM_LANGUAGE, "en_US.UTF-8")) _DBG("Fail to set vconf"); - if(vconf_set_str(KEY_SYSTEM_COUNTRY, "en_US.UTF-8")) _DBG("Fail to set vconf"); + if (vconf_set_str(KEY_SYSTEM_LANGUAGE, "en_US.UTF-8")) + _DBG("Fail to set vconf"); + if (vconf_set_str(KEY_SYSTEM_COUNTRY, "en_US.UTF-8")) + _DBG("Fail to set vconf"); return true; } - virtual void OnTerminate(void) - { + virtual void OnTerminate(void) { CSettingMgr::Finalize(); ad.mgr = NULL; @@ -146,8 +168,8 @@ protected: if(ad.item) free(ad.item); } - virtual void OnAppControl(app_control_h app_control) - { + + virtual void OnAppControl(app_control_h app_control) { _DBG(" ******************* OnAppControl *********************"); CSettingMgr *mgr; int r; @@ -159,8 +181,7 @@ protected: if (ad.app_control) { app_control_get_extra_data(app_control, PARAM_SETTINGS_ITEM, ¶m); if ((!param && !ad.item) || - (param && ad.item && - !strcmp(ad.item, param))) { + (param && ad.item && !strcmp(ad.item, param))) { refresh = 1; relaunch = 0; } else { @@ -171,8 +192,7 @@ protected: if (relaunch) { CSettingMgr::Finalize(); } else { - if (refresh) - { + if (refresh) { if (!ad.mgr) return; @@ -203,13 +223,14 @@ protected: } public: - virtual int Run(int argc, char **argv) { memset(&ad, 0x00, sizeof(_appdata)); ad.name = PACKAGE; return CBaseApp::Run(argc, argv); } + + virtual ~CApp(void){} }; int main(int argc, char **argv) -- 2.7.4 From 7dc036342f0d73af27945bfc1279d01ac11332af Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Wed, 13 May 2015 11:08:57 +0900 Subject: [PATCH 05/16] Fix SIGSEGV in CMainCatalogView Change-Id: If8eedf3017e088aaec58c05d11916f53bb9493c0 --- src/view_maincatalog.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/view_maincatalog.cpp b/src/view_maincatalog.cpp index de8c4f8..f154e5a 100644 --- a/src/view_maincatalog.cpp +++ b/src/view_maincatalog.cpp @@ -72,6 +72,10 @@ struct SMainCatalog { CSettingMgr *mgr; struct settingview_data *main_setting_view; struct settingview_data *subsetting_view; + + SMainCatalog() { + memset(this, 0, sizeof(*this)); + } }; /** -- 2.7.4 From 09c479c8cbfed2227148a08827f2b14cfdec32b6 Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Wed, 13 May 2015 16:14:40 +0900 Subject: [PATCH 06/16] Strip out all profiles and comments from PNG images Change-Id: Ic7a1ac57494def5c2d15df67988178f1e4b76322 --- data/images/allbrowser_menu_bg.png | Bin 167 -> 183 bytes data/images/btn_down.png | Bin 233 -> 249 bytes data/images/btn_up.png | Bin 229 -> 245 bytes data/images/checkbox_uncheck_foc.png | Bin 212 -> 228 bytes data/images/checkbox_uncheck_nor.png | Bin 249 -> 265 bytes data/images/ico_arrow_down.png | Bin 516 -> 532 bytes data/images/ico_arrow_up.png | Bin 500 -> 516 bytes data/images/ico_hyperlink_arrow.png | Bin 219 -> 235 bytes data/images/ico_settings_accessibility.png | Bin 3772 -> 3788 bytes data/images/ico_settings_channel.png | Bin 739 -> 755 bytes data/images/ico_settings_device.png | Bin 234 -> 250 bytes data/images/ico_settings_network.png | Bin 1020 -> 1036 bytes data/images/ico_settings_picture.png | Bin 423 -> 439 bytes data/images/ico_settings_sound.png | Bin 535 -> 551 bytes data/images/ico_settings_support.png | Bin 832 -> 848 bytes data/images/ico_settings_system.png | Bin 675 -> 691 bytes data/images/ico_spincontrol_check.png | Bin 206 -> 222 bytes data/images/input_box_nor.png | Bin 1333 -> 1349 bytes data/images/listview_menu_bg.png | Bin 363 -> 379 bytes data/images/modal_dialogs_bg.png | Bin 859 -> 875 bytes data/images/progress_wheel.png | Bin 1182 -> 1198 bytes data/images/round_rectangle_4X4.png | Bin 130 -> 146 bytes data/images/round_rectangle_8X8_top.png | Bin 150 -> 166 bytes data/images/scrollbar_horizontal.png | Bin 127 -> 143 bytes data/images/scrollbar_vertical.png | Bin 134 -> 150 bytes data/images/search_searchbar_bg_nor.png | Bin 133 -> 149 bytes data/images/search_searchbar_small_bg_nor.png | Bin 75 -> 91 bytes data/images/second_depth_bg.png | Bin 3099 -> 3115 bytes data/images/setting_list_dot.png | Bin 140 -> 156 bytes data/images/settings_bg_shadow.png | Bin 83 -> 99 bytes data/images/tooltip_arrow.png | Bin 203 -> 219 bytes data/images/tooltip_bg.png | Bin 259 -> 275 bytes ug/channel/edje/images/radiobtn_off_br.png | Bin 577 -> 593 bytes ug/channel/edje/images/radiobtn_off_dark.png | Bin 466 -> 482 bytes ug/channel/edje/images/radiobtn_on_dark.png | Bin 639 -> 655 bytes ug/channel/edje/images/round_rectangle_4X4.png | Bin 130 -> 146 bytes ug/channel/edje/images/second_depth_bg.png | Bin 3099 -> 3115 bytes ug/channel/edje/images/wi_progress_bg.png | Bin 612 -> 628 bytes ug/network/edje/images/btn_down.png | Bin 233 -> 249 bytes ug/network/edje/images/btn_focused.png | Bin 155 -> 171 bytes ug/network/edje/images/btn_up.png | Bin 229 -> 245 bytes ug/network/edje/images/check_nor.png | Bin 623 -> 639 bytes ug/network/edje/images/ico_dropdown_menu_check.png | Bin 228 -> 244 bytes ug/network/edje/images/ico_spincontrol_check.png | Bin 206 -> 222 bytes ug/network/edje/images/ico_spincontrol_down.png | Bin 259 -> 275 bytes ug/network/edje/images/ico_spincontrol_up.png | Bin 241 -> 257 bytes ug/network/edje/images/ico_wifi.png | Bin 534 -> 550 bytes ug/network/edje/images/ico_wifi_lock.png | Bin 593 -> 609 bytes ug/network/edje/images/modal_dialogs_bg.png | Bin 859 -> 875 bytes ug/network/edje/images/progress_wheel.png | Bin 1182 -> 1198 bytes ug/network/edje/images/radiobtn_off_foc.png | Bin 466 -> 482 bytes ug/network/edje/images/radiobtn_off_nor.png | Bin 577 -> 593 bytes ug/network/edje/images/round_rectangle_4X4.png | Bin 130 -> 146 bytes ug/network/edje/images/round_rectangle_4X4_bottom.png | Bin 107 -> 123 bytes ug/network/edje/images/round_rectangle_4X4_top.png | Bin 106 -> 122 bytes ug/network/edje/images/round_rectangle_8X8_top.png | Bin 150 -> 166 bytes ug/network/edje/images/second_depth_bg.png | Bin 3099 -> 3115 bytes ug/network/edje/images/setting_ico_no_network.png | Bin 1930 -> 1946 bytes ug/network/edje/images/setting_ico_no_network.png.png | Bin 1930 -> 1946 bytes .../edje/images/setting_ico_plug_network_Cable.png | Bin 1048 -> 1064 bytes ug/proxy/edje/images/ico_dropdown_menu_check.png | Bin 228 -> 244 bytes ug/proxy/edje/images/ico_spincontrol_down.png | Bin 259 -> 275 bytes ug/proxy/edje/images/ico_spincontrol_up.png | Bin 241 -> 257 bytes ug/proxy/edje/images/modal_dialogs_bg.png | Bin 859 -> 875 bytes ug/proxy/edje/images/round_rectangle_4X4.png | Bin 130 -> 146 bytes ug/proxy/edje/images/round_rectangle_8X8_top.png | Bin 150 -> 166 bytes .../clock/edje/images/ico_dropdown_menu_check.png | Bin 228 -> 244 bytes ug/system/clock/edje/images/round_rectangle_4X4.png | Bin 130 -> 146 bytes ug/system/clock/edje/images/second_depth_bg.png | Bin 3099 -> 3115 bytes .../clock/edje/images/spincontrol_arrow_down.png | Bin 263 -> 279 bytes ug/system/clock/edje/images/spincontrol_arrow_up.png | Bin 248 -> 264 bytes .../edje/images/ico_dropdown_menu_check.png | Bin 228 -> 244 bytes ug/wifi-direct/edje/images/round_rectangle_4X4.png | Bin 130 -> 146 bytes ug/wifi-direct/edje/images/second_depth_bg.png | Bin 3099 -> 3115 bytes 74 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/images/allbrowser_menu_bg.png b/data/images/allbrowser_menu_bg.png index efdd16e41591a7755c6a27e661467a878df31499..5ea56f49b758fc5cfe0929170a8d685052e5c8ec 100644 GIT binary patch delta 23 fcmZ3^xSer=3NK5#qpu?aW7`757t`V=Dz*UtRFVhD delta 9 QcmdnaxSVl<%0!c901*`fT>t<8 diff --git a/data/images/btn_down.png b/data/images/btn_down.png index 7d853496a44ef16bcf2f399557e23ed99eb13d31..44a3166778f1d576b9708fbcb4ce815e5cf3c1cf 100644 GIT binary patch delta 23 fcmaFK_>*yh3NK5#qpu?aW7`757t`V=DxLrUU@Qoa delta 9 Qcmey#_>ysg%0!c+02OxxBLDyZ diff --git a/data/images/btn_up.png b/data/images/btn_up.png index d13c7df5bd147b564a3df5f6bf6ff4b55002a69d..788bf6730a28423ce1304b748eaaf569382c63ff 100644 GIT binary patch delta 23 fcmaFL_?2;j3NK5#qpu?aW7`757t`V=Djop^&i%0!cc02MO?7XSbN diff --git a/data/images/checkbox_uncheck_foc.png b/data/images/checkbox_uncheck_foc.png index b100b998742d735f6caaf4eb09340f7ce64d72ca..00d1286516ff27cba5b469ad04dcc07d39627771 100644 GIT binary patch delta 23 fcmcb@_=ItS3NK5#qpu?aW7`757t`V=DsBbk6lSda)n delta 9 QcmeBV`pGy!WunPd01^)a)Bpeg diff --git a/data/images/ico_arrow_down.png b/data/images/ico_arrow_down.png index 488e3985fadc26152a927a8e9fbb67dd52f2d87b..999a45ea48e228f3db8798a80dcf17d19fcbf3c6 100644 GIT binary patch delta 25 hcmZo+nZhzbnU8@b-O<;Pfw66Y;frbU8x`2YX_ diff --git a/data/images/ico_settings_accessibility.png b/data/images/ico_settings_accessibility.png index f624b52fcbfe9d8919406158d00f294e35f17823..3b9e7109c2fdfe2abca50e2d90cc5ea090138ac4 100644 GIT binary patch delta 25 hcmdlZdq#GGG9Lp=x}&cn17q6)!xz)yH!9BN0|00&2yOrX delta 10 RcmX>jyGM3{@ delta 10 RcmdnayqtN0@c7Sby@W&jp515^M2 diff --git a/data/images/ico_settings_system.png b/data/images/ico_settings_system.png index 3e09798ef03c51b90085659473137b74bf851b97..41143483baa16df6a5b786eed13e08291aa429fa 100644 GIT binary patch delta 25 hcmZ3?x|wx?G9Lp=x}&cn17q6)!xz)yH!3zU0RUd^2j>6) delta 10 RcmdnYx|nr>@513dr$ diff --git a/data/images/listview_menu_bg.png b/data/images/listview_menu_bg.png index 3a4d30be0dd686ab3dd6c0231cb0ad6b3dc5ea1b..b8ee750888449dbf1e51fa8d43b6c4409cc75995 100644 GIT binary patch delta 25 hcmaFO^qXmdG9Lp=x}&cn17q6)!xz)yH!6BD0sw1s2si)$ delta 10 Rcmey(^qOgc@LXPltI%aZQs>&U>^w!rYkwD^gNaR5y82T%Y2 delta 8 PcmeBYte>DV(IgrG4Oar> diff --git a/data/images/scrollbar_vertical.png b/data/images/scrollbar_vertical.png index 447f94034e75a897f8404fd3196807976241ec8d..8dd91f11310c3121a81ae3c9b9181976a2dd4203 100644 GIT binary patch delta 23 ecmZo;oW?jog_kAW(btiIv2B6ji)rx_6;lCD#Rp~p delta 9 QcmbQn*v2?PWui$E01o5=`Tzg` diff --git a/data/images/search_searchbar_bg_nor.png b/data/images/search_searchbar_bg_nor.png index 34add3a8d610ad608e19227a1d2d91262982eeaa..3faae22d9c8251cdd1a024d172674b6496f6f791 100644 GIT binary patch delta 23 ecmZo=oXR*sg_kAW(btiIv2B6ji)rx_6;l9CmI07FRzvj6}9 delta 7 Ocma#{o}e<(L>&ML=mJLo diff --git a/data/images/second_depth_bg.png b/data/images/second_depth_bg.png index 3c3251d3340aec00cb8226236bb86014d997e86f..602e2724c46424c7ad67cad0fb6f46ad2a5a6b3b 100644 GIT binary patch delta 25 hcmbO&v07q+G9Lp=x}&cn17q6)!xz)yH!A+(1^{8v2z~$n delta 10 RcmZ22F~YOSOQ-F diff --git a/data/images/tooltip_arrow.png b/data/images/tooltip_arrow.png index 2dd617c8a1d934808802b0bec4a73c4f11272f2d..eeace2ca4b0f4c7a05c8a6416da1189811157e0b 100644 GIT binary patch delta 23 fcmX@jc$;y83NK5#qpu?aW7`757t`V=Dy{+mTIL8f delta 9 Qcmcc3c$#s7%0!dp026rw$p8QV diff --git a/data/images/tooltip_bg.png b/data/images/tooltip_bg.png index 6f5ba6470769b33afc221e831e537ab9d016c239..8381930258ecde387ef7a33d766360f011a713f8 100644 GIT binary patch delta 23 fcmZo>n#?pog_kAW(btiIv2B6ji)rx_6(0crPUr{U delta 9 QcmbQt)XX$NWunP_01rO{a{vGU diff --git a/ug/channel/edje/images/radiobtn_off_br.png b/ug/channel/edje/images/radiobtn_off_br.png index 6bd4c7e4f58953acb06313278acf48204935a46c..e7e58ccdb24dcce55779f8c5e64c3855df4667c9 100644 GIT binary patch delta 25 hcmX@ea*<_%G9Lp=x}&cn17q6)!xz)yH!3PH0RUs12fqLS delta 10 Rcmcb}a*$<$@*yh3NK5#qpu?aW7`757t`V=DxLrUU@Qoa delta 9 Qcmey#_>ysg%0!c+02OxxBLDyZ diff --git a/ug/network/edje/images/btn_focused.png b/ug/network/edje/images/btn_focused.png index bbd24e6a64886aab2988cd7a610632456ab3110d..76ade5dc90b2c09a985a5fc39f6c04cbe61d1c33 100644 GIT binary patch delta 23 fcmbQuxSDZ-3NK5#qpu?aW7`757t`V=DpmmiQg#QW delta 9 QcmZ3@IGb^T%0!cL01!z7IRF3v diff --git a/ug/network/edje/images/btn_up.png b/ug/network/edje/images/btn_up.png index d13c7df5bd147b564a3df5f6bf6ff4b55002a69d..788bf6730a28423ce1304b748eaaf569382c63ff 100644 GIT binary patch delta 23 fcmaFL_?2;j3NK5#qpu?aW7`757t`V=Djop^&i%0!cc02MO?7XSbN diff --git a/ug/network/edje/images/check_nor.png b/ug/network/edje/images/check_nor.png index 2f2753b82c90f1bc291b745eb11059032ea7a3c9..810a67849ee6592eb31230edb6281ff26b2d6ab4 100644 GIT binary patch delta 25 hcmaFQ@}FgbG9Lp=x}&cn17q6)!xz)yH!Auu0RU{62uT0{ delta 10 Rcmey*@}6aa@n#?pog_kAW(btiIv2B6ji)rx_6(0crPUr{U delta 9 QcmbQt)XX$NWunP_01rO{a{vGU diff --git a/ug/network/edje/images/ico_spincontrol_up.png b/ug/network/edje/images/ico_spincontrol_up.png index 729f54ca93c6f5e0bfae1cf65f9dc831b7159013..9adb1654d765617d3a47cce6940b15c7ba260ed7 100644 GIT binary patch delta 23 fcmey!*vK?Ng_kAW(btiIv2B6ji)rx_6)yk)S11T5 delta 9 QcmZo<`p7szWunPh01<}+yZ`_I diff --git a/ug/network/edje/images/ico_wifi.png b/ug/network/edje/images/ico_wifi.png index 26418843fcd011876c1a50b0727446910e1d5a8a..2a24aaa613295d7b6cf93a3fbb121bc4d6341ca4 100644 GIT binary patch delta 25 hcmbQnvW#VdG9Lp=x}&cn17q6)!xz)yH!6N*1OQz%2t5D* delta 10 RcmZ3+GL2<|@M07!`k6951J delta 7 Ocmb=xongXN% diff --git a/ug/network/edje/images/round_rectangle_8X8_top.png b/ug/network/edje/images/round_rectangle_8X8_top.png index 1403c5458c9ef857911b4097c103a2e3b6f3ac34..3ab184fa85ee65cac2e90ffef9281a8555662b01 100644 GIT binary patch delta 23 fcmbQnxQuav3NK5#qpu?aW7`757t`V=DwYBOQI!Xl delta 9 QcmZ3+IE`_F%0!bQ01xy7DgXcg diff --git a/ug/network/edje/images/second_depth_bg.png b/ug/network/edje/images/second_depth_bg.png index 3c3251d3340aec00cb8226236bb86014d997e86f..602e2724c46424c7ad67cad0fb6f46ad2a5a6b3b 100644 GIT binary patch delta 25 hcmbO&v07q+G9Lp=x}&cn17q6)!xz)yH!A+(1^{8v2z~$n delta 10 RcmZ22F diff --git a/ug/network/edje/images/setting_ico_no_network.png.png b/ug/network/edje/images/setting_ico_no_network.png.png index acc62fe1f4a7b6ad4f594e3865b91196f3fee81a..6c60adf712fa7fbee468b9ae5d7466e20d75b6f6 100644 GIT binary patch delta 25 gcmeC;pT$2xnU8@b-O<;Pfw66Y;frbU8x=Fz0bAV%wEzGB delta 10 RcmbQm-^D*cd82VUI{*`p14sY> diff --git a/ug/network/edje/images/setting_ico_plug_network_Cable.png b/ug/network/edje/images/setting_ico_plug_network_Cable.png index e9de81c87d2227162dddd47f59d47499ae4139cf..e657d2fb3bdba700079ea4af2e8d5de30a40779a 100644 GIT binary patch delta 25 hcmbQiv4UfQG9Lp=x}&cn17q6)!xz)yH!6N-1^`}D2u%P0 delta 10 RcmZ3%F@s}*@n#?pog_kAW(btiIv2B6ji)rx_6(0crPUr{U delta 9 QcmbQt)XX$NWunP_01rO{a{vGU diff --git a/ug/proxy/edje/images/ico_spincontrol_up.png b/ug/proxy/edje/images/ico_spincontrol_up.png index 729f54ca93c6f5e0bfae1cf65f9dc831b7159013..9adb1654d765617d3a47cce6940b15c7ba260ed7 100644 GIT binary patch delta 23 fcmey!*vK?Ng_kAW(btiIv2B6ji)rx_6)yk)S11T5 delta 9 QcmZo<`p7szWunPh01<}+yZ`_I diff --git a/ug/proxy/edje/images/modal_dialogs_bg.png b/ug/proxy/edje/images/modal_dialogs_bg.png index f772b061ee57d58ff8efd4d5fe70b6e2603e3082..b825c26ac096423670d23e6034147eba9d054d2f 100644 GIT binary patch delta 25 hcmcc3_L^;iG9Lp=x}&cn17q6)!xz)yH!4~&0|03a2oeAQ delta 10 RcmaFOcAIU2@ Date: Thu, 21 May 2015 11:13:03 +0900 Subject: [PATCH 07/16] add missing size hint Change-Id: I0e2bd79039d6ab0c85fa0284182b5faf21d80893 Signed-off-by: Minkyu Kang --- src/view_maincatalog.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/view_maincatalog.cpp b/src/view_maincatalog.cpp index f154e5a..591efcd 100644 --- a/src/view_maincatalog.cpp +++ b/src/view_maincatalog.cpp @@ -1069,6 +1069,8 @@ bool CMainCatalogView::Create(struct settingview_data *view, void *prev) _CHECK(m->win = m->mgr->Window()) _CHECK(m->base = elm_layout_add(m->win)) _COMMAND { + evas_object_size_hint_weight_set(m->base, + EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(m->win, m->base); } _WHEN_SUCCESS { -- 2.7.4 From 3d2eb7e26dc71139bbb42c237b8ca2f47a6247be Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Thu, 21 May 2015 20:49:33 +0900 Subject: [PATCH 08/16] Revert to original C impl I tried to go as way back as possible, so there are couple things that need to re-applied: - accessibility menu - PNG image warnings - edje/edc warnings - test cases Change-Id: I5c79b244a27a365bdd4d784670cd43d0a38c8e12 --- CMakeLists.txt | 31 +- data/images/allbrowser_menu_bg.png | Bin 183 -> 17782 bytes data/images/btn_down.png | Bin 249 -> 17853 bytes data/images/btn_text_foc.png | Bin 248 -> 17864 bytes data/images/btn_text_nor.png | Bin 248 -> 17860 bytes data/images/btn_up.png | Bin 245 -> 17851 bytes data/images/checkbox_check_foc.png | Bin 365 -> 18058 bytes data/images/checkbox_check_nor.png | Bin 373 -> 18051 bytes data/images/checkbox_uncheck_foc.png | Bin 228 -> 17866 bytes data/images/checkbox_uncheck_nor.png | Bin 265 -> 17882 bytes data/images/ico_arrow_down.png | Bin 532 -> 15473 bytes data/images/ico_arrow_up.png | Bin 516 -> 15473 bytes data/images/ico_hyperlink_arrow.png | Bin 235 -> 15115 bytes data/images/ico_settings.png | Bin 4072 -> 21525 bytes data/images/ico_settings_accessibility.png | Bin 3788 -> 0 bytes data/images/ico_settings_channel.png | Bin 755 -> 18483 bytes data/images/ico_settings_device.png | Bin 250 -> 17841 bytes data/images/ico_settings_network.png | Bin 1036 -> 18793 bytes data/images/ico_settings_picture.png | Bin 439 -> 18088 bytes data/images/ico_settings_sound.png | Bin 551 -> 18239 bytes data/images/ico_settings_support.png | Bin 848 -> 18628 bytes data/images/ico_settings_system.png | Bin 691 -> 18371 bytes data/images/ico_spincontrol_check.png | Bin 222 -> 18264 bytes data/images/input_box_highlight.png | Bin 7730 -> 10237 bytes data/images/input_box_nor.png | Bin 1349 -> 4567 bytes data/images/list_highlight.png | Bin 9249 -> 9239 bytes data/images/listview_menu_bg.png | Bin 379 -> 18418 bytes data/images/modal_dialogs_bg.png | Bin 875 -> 18657 bytes data/images/progress_wheel.png | Bin 1198 -> 18939 bytes data/images/radiobtn_br_off_nor.png | Bin 553 -> 18307 bytes data/images/radiobtn_on_foc.png | Bin 511 -> 18282 bytes data/images/round_rectangle_4X4.png | Bin 146 -> 18179 bytes data/images/round_rectangle_8X8_top.png | Bin 166 -> 17774 bytes data/images/scrollbar_horizontal.png | Bin 143 -> 17735 bytes data/images/scrollbar_vertical.png | Bin 150 -> 17745 bytes data/images/search_searchbar_bg_foc.png | Bin 173 -> 17789 bytes data/images/search_searchbar_bg_nor.png | Bin 149 -> 17740 bytes data/images/search_searchbar_small_bg_foc.png | Bin 90 -> 17688 bytes data/images/search_searchbar_small_bg_nor.png | Bin 91 -> 17688 bytes data/images/second_depth_bg.png | Bin 3115 -> 22286 bytes data/images/setting_highlight.png | Bin 2660 -> 5209 bytes data/images/setting_list_dot.png | Bin 156 -> 2869 bytes data/images/setting_list_dot_s.png | Bin 221 -> 2899 bytes data/images/settings_bg.png | Bin 77190 -> 117649 bytes data/images/settings_bg_shadow.png | Bin 99 -> 17691 bytes data/images/slider_thumb.png | Bin 1395 -> 18869 bytes data/images/tooltip_arrow.png | Bin 219 -> 17852 bytes data/images/tooltip_bg.png | Bin 275 -> 17912 bytes data/org.tizen.settings-tv-ref-theme.edc | 2 +- data/org.tizen.settings-tv-ref.edc | 2 +- data/viewer/change_passcode.edc | 5 +- data/viewer/icon.edc | 60 +- data/viewer/maincatalog.edc | 1 - data/widget/progressbar.edc | 1 - include/dbg.h | 40 + include/{common_defs.h => def.h} | 65 +- include/settingviewmgr.h | 154 -- include/timeout_handler.h | 26 +- include/utils.h | 3 +- include/view_bottomslider.h | 24 + include/view_bottomsublist.h | 24 + include/view_device_manager.h | 24 + include/view_maincatalog.h | 53 +- include/view_need_pwd.h | 31 +- include/view_pwd_popup.h | 27 +- include/view_resetpopup.h | 24 + include/view_sublist.h | 50 +- include/view_system_clock.h | 51 +- include/view_uigadget.h | 54 +- include/view_upgrade_popup.h | 45 + include/viewmgr.h | 95 + json/accessibility.json | 57 - json/maincatalog.json | 8 +- org.tizen.settings-tv-ref.png | Bin 4072 -> 21525 bytes org.tizen.settings-tv-ref_4x2.png | Bin 91860 -> 89073 bytes src/{data_wrapper.cpp => data_wrapper.c} | 73 +- src/main.c | 324 +++ src/main.cpp | 243 -- src/{parser.cpp => parser.c} | 65 +- src/{settings_provider.cpp => settings_provider.c} | 126 +- src/{timeout_handler.cpp => timeout_handler.c} | 116 +- src/{utils.cpp => utils.c} | 47 +- src/view_bottomslider.c | 88 + src/view_bottomsublist.c | 88 + src/view_device_manager.c | 58 + src/view_maincatalog.c | 2111 ++++++++++++++++ src/view_maincatalog.cpp | 1557 ------------ src/{view_need_pwd.cpp => view_need_pwd.c} | 310 +-- src/{view_pwd_popup.cpp => view_pwd_popup.c} | 250 +- src/view_resetpopup.c | 88 + src/view_sublist.c | 775 ++++++ src/view_sublist.cpp | 655 ----- src/{view_system_clock.cpp => view_system_clock.c} | 616 +++-- src/view_uigadget.c | 352 +++ src/view_uigadget.cpp | 346 --- src/view_upgrade_popup.c | 50 + src/{settingviewmgr.cpp => viewmgr.c} | 557 ++--- testcase/settings.txt | 1 - testcase/settings_all.txt | 462 ---- ug/channel/CMakeLists.txt | 18 +- ug/channel/edje/images/btn_text_foc.png | Bin 248 -> 17864 bytes ug/channel/edje/images/btn_text_nor.png | Bin 248 -> 17860 bytes ug/channel/edje/images/list_highlight.png | Bin 9249 -> 9239 bytes ug/channel/edje/images/radiobtn_off_br.png | Bin 593 -> 18295 bytes ug/channel/edje/images/radiobtn_off_dark.png | Bin 482 -> 18125 bytes ug/channel/edje/images/radiobtn_on_br.png | Bin 750 -> 18488 bytes ug/channel/edje/images/radiobtn_on_dark.png | Bin 655 -> 18330 bytes ug/channel/edje/images/round_rectangle_4X4.png | Bin 146 -> 18179 bytes ug/channel/edje/images/second_depth_bg.png | Bin 3115 -> 22286 bytes .../edje/images/thumbnail_highlight_glowrect.png | Bin 8909 -> 11341 bytes ug/channel/edje/images/wi_progress_bar.png | Bin 339 -> 3171 bytes ug/channel/edje/images/wi_progress_bg.png | Bin 628 -> 3537 bytes ug/channel/edje/widgets/progressbar.edc | 1 - ug/channel/include/ChannelMainView.h | 34 - ug/channel/include/ChannelResultView.h | 25 - ug/channel/include/ChannelSearchView.h | 26 - ug/channel/include/dbg.h | 36 + ug/channel/include/defs.h | 3 - ug/channel/include/tv_scan.h | 65 + ug/channel/include/ug_auto_program.h | 10 + ug/channel/include/util.h | 9 +- ug/channel/include/view_result_page.h | 24 + ug/channel/include/view_scan_start.h | 25 + ug/channel/include/view_search_page.h | 25 + ug/channel/include/viewmgr_auto_program.h | 46 + ug/channel/src/ChannelMainView.cpp | 356 --- ug/channel/src/ChannelResultView.cpp | 136 - ug/channel/src/ChannelSearchView.cpp | 364 --- ug/channel/src/tv_scan.c | 669 +++++ .../src/{ug_auto_program.cpp => ug_auto_program.c} | 91 +- ug/channel/src/{util.cpp => util.c} | 2 +- ug/channel/src/view_result_page.c | 240 ++ ug/channel/src/view_scan_start.c | 697 ++++++ ug/channel/src/view_search_page.c | 614 +++++ ug/channel/src/viewmgr_auto_program.c | 279 +++ ug/include/NetConMgr.h | 57 - ug/include/TVServiceMgr.h | 34 - ug/include/UgCommon.h | 22 - ug/include/WifiDirectMgr.h | 52 - ug/include/WifiMgr.h | 83 - ug/network/CMakeLists.txt | 23 +- ug/network/edje/images/btn_down.png | Bin 249 -> 17853 bytes ug/network/edje/images/btn_focused.png | Bin 171 -> 275 bytes ug/network/edje/images/btn_normal.png | Bin 1404 -> 4033 bytes ug/network/edje/images/btn_up.png | Bin 245 -> 17851 bytes ug/network/edje/images/check_foc.png | Bin 647 -> 18316 bytes ug/network/edje/images/check_nor.png | Bin 639 -> 18363 bytes ug/network/edje/images/ico_dropdown_menu_check.png | Bin 244 -> 17850 bytes ug/network/edje/images/ico_spincontrol_check.png | Bin 222 -> 18264 bytes ug/network/edje/images/ico_spincontrol_down.png | Bin 275 -> 17890 bytes ug/network/edje/images/ico_spincontrol_up.png | Bin 257 -> 17871 bytes ug/network/edje/images/ico_wifi.png | Bin 550 -> 18239 bytes ug/network/edje/images/ico_wifi_lock.png | Bin 609 -> 18310 bytes ug/network/edje/images/modal_dialogs_bg.png | Bin 875 -> 18657 bytes ug/network/edje/images/progress_wheel.png | Bin 1198 -> 18939 bytes ug/network/edje/images/radiobtn_br_off_nor.png | Bin 553 -> 18307 bytes ug/network/edje/images/radiobtn_off_foc.png | Bin 482 -> 18125 bytes ug/network/edje/images/radiobtn_off_nor.png | Bin 593 -> 18295 bytes ug/network/edje/images/radiobtn_on_foc.png | Bin 511 -> 18282 bytes ug/network/edje/images/radiobtn_on_nor.png | Bin 502 -> 18195 bytes ug/network/edje/images/round_rectangle_4X4.png | Bin 146 -> 18179 bytes .../edje/images/round_rectangle_4X4_bottom.png | Bin 123 -> 17711 bytes ug/network/edje/images/round_rectangle_4X4_top.png | Bin 122 -> 17710 bytes ug/network/edje/images/round_rectangle_8X8_top.png | Bin 166 -> 17774 bytes ug/network/edje/images/second_depth_bg.png | Bin 3115 -> 22286 bytes ug/network/edje/images/setting_ico_no_network.png | Bin 1946 -> 20127 bytes .../edje/images/setting_ico_no_network.png.png | Bin 1946 -> 20127 bytes .../edje/images/setting_ico_plug_network_Cable.png | Bin 1064 -> 19103 bytes ug/network/edje/images/sub_popup_bg.png | Bin 789 -> 3615 bytes ug/network/include/IpSettingView.h | 71 - ug/network/include/NetworkMainView.h | 99 - ug/network/include/WifiPasscodeView.h | 43 - ug/network/include/common.h | 49 +- ug/network/include/connection_mgr.h | 57 + ug/network/include/dbg.h | 40 + ug/network/include/defs.h | 40 +- ug/network/include/ip_setting_view.h | 25 + ug/network/include/main_view.h | 28 + ug/network/include/network_viewmgr.h | 61 + ug/network/include/util.h | 15 +- ug/network/include/vconf_mgr.h | 39 + ug/network/include/wifi_mgr.h | 69 + ug/network/include/wifi_passcode_view.h | 28 + ug/network/src/IpSettingView.cpp | 1691 ------------- ug/network/src/NetworkMainView.cpp | 1710 ------------- ug/network/src/WifiPasscodeView.cpp | 584 ----- ug/network/src/connection_mgr.c | 650 +++++ ug/network/src/ip_setting_view.c | 2629 ++++++++++++++++++++ ug/network/src/main_view.c | 2543 +++++++++++++++++++ ug/network/src/network_viewmgr.c | 259 ++ ..._network_settings.cpp => ug_network_settings.c} | 71 +- ug/network/src/{util.cpp => util.c} | 2 +- ug/network/src/vconf_mgr.c | 404 +++ ug/network/src/wifi_mgr.c | 615 +++++ ug/network/src/wifi_passcode_view.c | 956 +++++++ ug/proxy/CMakeLists.txt | 17 +- ug/proxy/edje/images/ico_dropdown_menu_check.png | Bin 244 -> 17850 bytes ug/proxy/edje/images/ico_spincontrol_down.png | Bin 275 -> 17890 bytes ug/proxy/edje/images/ico_spincontrol_up.png | Bin 257 -> 17871 bytes ug/proxy/edje/images/modal_dialogs_bg.png | Bin 875 -> 18657 bytes ug/proxy/edje/images/round_rectangle_4X4.png | Bin 146 -> 18179 bytes ug/proxy/edje/images/round_rectangle_8X8_top.png | Bin 166 -> 17774 bytes ug/proxy/include/ProxyMainView.h | 55 - ug/proxy/include/common.h | 35 + ug/proxy/include/connection_mgr.h | 37 + ug/proxy/include/dbg.h | 40 + ug/proxy/include/defs.h | 35 +- ug/proxy/include/main_view.h | 25 + ug/proxy/include/util.h | 13 +- ug/proxy/include/vconf_mgr.h | 28 + ug/proxy/include/wifi_mgr.h | 31 + ug/proxy/src/ProxyMainView.cpp | 1165 --------- ug/proxy/src/connection_mgr.c | 369 +++ ug/proxy/src/main_view.c | 2068 +++++++++++++++ .../{ug_proxy_settings.cpp => ug_proxy_settings.c} | 62 +- ug/proxy/src/{util.cpp => util.c} | 2 +- ug/proxy/src/vconf_mgr.c | 111 + ug/proxy/src/wifi_mgr.c | 287 +++ ug/src/NetConMgr.cpp | 614 ----- ug/src/TVServiceMgr.cpp | 295 --- ug/src/WifiDirectMgr.cpp | 476 ---- ug/src/WifiMgr.cpp | 533 ---- ug/system/clock/CMakeLists.txt | 14 +- .../clock/edje/images/ico_dropdown_menu_check.png | Bin 244 -> 17850 bytes .../clock/edje/images/round_rectangle_4X4.png | Bin 146 -> 18179 bytes ug/system/clock/edje/images/second_depth_bg.png | Bin 3115 -> 22286 bytes .../clock/edje/images/spincontrol_arrow_down.png | Bin 279 -> 17900 bytes .../clock/edje/images/spincontrol_arrow_up.png | Bin 264 -> 17881 bytes ug/system/clock/edje/ug_clock.edc | 2 +- ug/system/clock/edje/ug_clock_theme.edc | 2 +- ug/system/clock/include/ClockMainView.h | 31 - ug/system/clock/include/ClockSpinControlView.h | 33 - ug/system/clock/include/ClockSublistView.h | 30 - ug/system/clock/include/ClockTimeSpinControlView.h | 33 - ug/system/clock/include/dbg.h | 33 + ug/system/clock/include/ug_clock.h | 8 - .../clock/include/{defs.h => ug_clock_define.h} | 23 +- ug/system/clock/include/ug_clock_spin_control.h | 26 + ug/system/clock/include/ug_clock_sublist.h | 24 + .../clock/include/ug_clock_time_spin_control.h | 25 + .../clock/include/{util.h => ug_clock_utils.h} | 0 ug/system/clock/src/ClockMainView.cpp | 459 ---- ug/system/clock/src/ClockSpinControlView.cpp | 529 ---- ug/system/clock/src/ClockSublistView.cpp | 358 --- ug/system/clock/src/ClockTimeSpinControlView.cpp | 624 ----- ug/system/clock/src/ug_clock.c | 1189 +++++++++ ug/system/clock/src/ug_clock.cpp | 177 -- ug/system/clock/src/ug_clock_spin_control.c | 797 ++++++ ug/system/clock/src/ug_clock_sublist.c | 516 ++++ ug/system/clock/src/ug_clock_time_spin_control.c | 842 +++++++ ug/system/clock/src/{util.cpp => ug_clock_utils.c} | 12 +- ug/wifi-direct/CMakeLists.txt | 15 +- .../edje/images/ico_dropdown_menu_check.png | Bin 244 -> 17850 bytes ug/wifi-direct/edje/images/loading_96_01.png | Bin 12311 -> 14922 bytes ug/wifi-direct/edje/images/loading_96_02.png | Bin 12383 -> 14977 bytes ug/wifi-direct/edje/images/loading_96_03.png | Bin 12496 -> 15099 bytes ug/wifi-direct/edje/images/loading_96_04.png | Bin 12497 -> 15112 bytes ug/wifi-direct/edje/images/loading_96_05.png | Bin 12384 -> 15010 bytes ug/wifi-direct/edje/images/loading_96_06.png | Bin 12205 -> 14824 bytes ug/wifi-direct/edje/images/loading_96_07.png | Bin 12339 -> 14980 bytes ug/wifi-direct/edje/images/loading_96_08.png | Bin 12470 -> 15089 bytes ug/wifi-direct/edje/images/loading_96_09.png | Bin 12445 -> 15054 bytes ug/wifi-direct/edje/images/loading_96_10.png | Bin 12189 -> 14752 bytes ug/wifi-direct/edje/images/loading_96_11.png | Bin 12282 -> 14882 bytes ug/wifi-direct/edje/images/loading_96_12.png | Bin 12401 -> 14976 bytes ug/wifi-direct/edje/images/loading_96_13.png | Bin 12447 -> 15052 bytes ug/wifi-direct/edje/images/loading_96_14.png | Bin 12368 -> 14991 bytes ug/wifi-direct/edje/images/loading_96_15.png | Bin 12195 -> 14803 bytes ug/wifi-direct/edje/images/loading_96_16.png | Bin 12376 -> 14991 bytes ug/wifi-direct/edje/images/loading_96_17.png | Bin 12510 -> 15112 bytes ug/wifi-direct/edje/images/loading_96_18.png | Bin 12555 -> 15135 bytes ug/wifi-direct/edje/images/round_rectangle_4X4.png | Bin 146 -> 18179 bytes ug/wifi-direct/edje/images/second_depth_bg.png | Bin 3115 -> 22286 bytes ug/wifi-direct/include/WifiDirectMainView.h | 81 - ug/wifi-direct/include/dbg.h | 38 + ug/wifi-direct/include/defs.h | 21 +- ug/wifi-direct/include/util.h | 9 +- ug/wifi-direct/include/wifi_direct_mgr.h | 81 + ug/wifi-direct/include/wifi_direct_view.h | 25 + ug/wifi-direct/src/WifiDirectMainView.cpp | 1553 ------------ .../src/{ug_wifi_direct.cpp => ug_wifi_direct.c} | 48 +- ug/wifi-direct/src/{util.cpp => util.c} | 2 +- ug/wifi-direct/src/wifi_direct_mgr.c | 612 +++++ ug/wifi-direct/src/wifi_direct_view.c | 2040 +++++++++++++++ 284 files changed, 26072 insertions(+), 17697 deletions(-) delete mode 100644 data/images/ico_settings_accessibility.png create mode 100644 include/dbg.h rename include/{common_defs.h => def.h} (85%) delete mode 100644 include/settingviewmgr.h create mode 100644 include/view_bottomslider.h create mode 100644 include/view_bottomsublist.h create mode 100644 include/view_device_manager.h create mode 100644 include/view_resetpopup.h create mode 100644 include/view_upgrade_popup.h create mode 100644 include/viewmgr.h delete mode 100644 json/accessibility.json rename src/{data_wrapper.cpp => data_wrapper.c} (95%) create mode 100644 src/main.c delete mode 100644 src/main.cpp rename src/{parser.cpp => parser.c} (91%) rename src/{settings_provider.cpp => settings_provider.c} (88%) rename src/{timeout_handler.cpp => timeout_handler.c} (56%) rename src/{utils.cpp => utils.c} (87%) create mode 100644 src/view_bottomslider.c create mode 100644 src/view_bottomsublist.c create mode 100644 src/view_device_manager.c create mode 100644 src/view_maincatalog.c delete mode 100644 src/view_maincatalog.cpp rename src/{view_need_pwd.cpp => view_need_pwd.c} (69%) rename src/{view_pwd_popup.cpp => view_pwd_popup.c} (81%) create mode 100644 src/view_resetpopup.c create mode 100644 src/view_sublist.c delete mode 100644 src/view_sublist.cpp rename src/{view_system_clock.cpp => view_system_clock.c} (56%) create mode 100644 src/view_uigadget.c delete mode 100644 src/view_uigadget.cpp create mode 100644 src/view_upgrade_popup.c rename src/{settingviewmgr.cpp => viewmgr.c} (52%) delete mode 100644 testcase/settings.txt delete mode 100644 testcase/settings_all.txt delete mode 100644 ug/channel/include/ChannelMainView.h delete mode 100644 ug/channel/include/ChannelResultView.h delete mode 100644 ug/channel/include/ChannelSearchView.h create mode 100644 ug/channel/include/dbg.h create mode 100644 ug/channel/include/tv_scan.h create mode 100644 ug/channel/include/view_result_page.h create mode 100644 ug/channel/include/view_scan_start.h create mode 100644 ug/channel/include/view_search_page.h create mode 100644 ug/channel/include/viewmgr_auto_program.h delete mode 100644 ug/channel/src/ChannelMainView.cpp delete mode 100644 ug/channel/src/ChannelResultView.cpp delete mode 100644 ug/channel/src/ChannelSearchView.cpp create mode 100644 ug/channel/src/tv_scan.c rename ug/channel/src/{ug_auto_program.cpp => ug_auto_program.c} (85%) rename ug/channel/src/{util.cpp => util.c} (99%) create mode 100644 ug/channel/src/view_result_page.c create mode 100644 ug/channel/src/view_scan_start.c create mode 100644 ug/channel/src/view_search_page.c create mode 100644 ug/channel/src/viewmgr_auto_program.c delete mode 100644 ug/include/NetConMgr.h delete mode 100644 ug/include/TVServiceMgr.h delete mode 100644 ug/include/UgCommon.h delete mode 100644 ug/include/WifiDirectMgr.h delete mode 100644 ug/include/WifiMgr.h delete mode 100644 ug/network/include/IpSettingView.h delete mode 100644 ug/network/include/NetworkMainView.h delete mode 100644 ug/network/include/WifiPasscodeView.h create mode 100644 ug/network/include/connection_mgr.h create mode 100644 ug/network/include/dbg.h create mode 100644 ug/network/include/ip_setting_view.h create mode 100644 ug/network/include/main_view.h create mode 100644 ug/network/include/network_viewmgr.h create mode 100644 ug/network/include/vconf_mgr.h create mode 100644 ug/network/include/wifi_mgr.h create mode 100644 ug/network/include/wifi_passcode_view.h delete mode 100644 ug/network/src/IpSettingView.cpp delete mode 100644 ug/network/src/NetworkMainView.cpp delete mode 100644 ug/network/src/WifiPasscodeView.cpp create mode 100644 ug/network/src/connection_mgr.c create mode 100644 ug/network/src/ip_setting_view.c create mode 100644 ug/network/src/main_view.c create mode 100644 ug/network/src/network_viewmgr.c rename ug/network/src/{ug_network_settings.cpp => ug_network_settings.c} (89%) rename ug/network/src/{util.cpp => util.c} (99%) create mode 100644 ug/network/src/vconf_mgr.c create mode 100644 ug/network/src/wifi_mgr.c create mode 100644 ug/network/src/wifi_passcode_view.c delete mode 100644 ug/proxy/include/ProxyMainView.h create mode 100644 ug/proxy/include/common.h create mode 100644 ug/proxy/include/connection_mgr.h create mode 100644 ug/proxy/include/dbg.h create mode 100644 ug/proxy/include/main_view.h create mode 100644 ug/proxy/include/vconf_mgr.h create mode 100644 ug/proxy/include/wifi_mgr.h delete mode 100644 ug/proxy/src/ProxyMainView.cpp create mode 100644 ug/proxy/src/connection_mgr.c create mode 100644 ug/proxy/src/main_view.c rename ug/proxy/src/{ug_proxy_settings.cpp => ug_proxy_settings.c} (89%) rename ug/proxy/src/{util.cpp => util.c} (99%) create mode 100644 ug/proxy/src/vconf_mgr.c create mode 100644 ug/proxy/src/wifi_mgr.c delete mode 100644 ug/src/NetConMgr.cpp delete mode 100644 ug/src/TVServiceMgr.cpp delete mode 100644 ug/src/WifiDirectMgr.cpp delete mode 100644 ug/src/WifiMgr.cpp delete mode 100644 ug/system/clock/include/ClockMainView.h delete mode 100644 ug/system/clock/include/ClockSpinControlView.h delete mode 100644 ug/system/clock/include/ClockSublistView.h delete mode 100644 ug/system/clock/include/ClockTimeSpinControlView.h create mode 100644 ug/system/clock/include/dbg.h rename ug/system/clock/include/{defs.h => ug_clock_define.h} (90%) create mode 100644 ug/system/clock/include/ug_clock_spin_control.h create mode 100644 ug/system/clock/include/ug_clock_sublist.h create mode 100644 ug/system/clock/include/ug_clock_time_spin_control.h rename ug/system/clock/include/{util.h => ug_clock_utils.h} (100%) delete mode 100644 ug/system/clock/src/ClockMainView.cpp delete mode 100644 ug/system/clock/src/ClockSpinControlView.cpp delete mode 100644 ug/system/clock/src/ClockSublistView.cpp delete mode 100644 ug/system/clock/src/ClockTimeSpinControlView.cpp create mode 100644 ug/system/clock/src/ug_clock.c delete mode 100644 ug/system/clock/src/ug_clock.cpp create mode 100644 ug/system/clock/src/ug_clock_spin_control.c create mode 100644 ug/system/clock/src/ug_clock_sublist.c create mode 100644 ug/system/clock/src/ug_clock_time_spin_control.c rename ug/system/clock/src/{util.cpp => ug_clock_utils.c} (96%) delete mode 100644 ug/wifi-direct/include/WifiDirectMainView.h create mode 100644 ug/wifi-direct/include/dbg.h create mode 100644 ug/wifi-direct/include/wifi_direct_mgr.h create mode 100644 ug/wifi-direct/include/wifi_direct_view.h delete mode 100644 ug/wifi-direct/src/WifiDirectMainView.cpp rename ug/wifi-direct/src/{ug_wifi_direct.cpp => ug_wifi_direct.c} (84%) rename ug/wifi-direct/src/{util.cpp => util.c} (99%) create mode 100644 ug/wifi-direct/src/wifi_direct_mgr.c create mode 100644 ug/wifi-direct/src/wifi_direct_view.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 8356404..bc5f3ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,19 +80,24 @@ ADD_DEFINITIONS("-DJSON_HELPER_FILE=\"${JSONHELPERFILE}\"") INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) ADD_EXECUTABLE(${PROJECT_NAME} - src/main.cpp - src/settingviewmgr.cpp - src/parser.cpp - src/data_wrapper.cpp - src/utils.cpp - src/view_maincatalog.cpp - src/view_uigadget.cpp - src/view_sublist.cpp - src/settings_provider.cpp - src/view_pwd_popup.cpp - src/view_system_clock.cpp - src/view_need_pwd.cpp - src/timeout_handler.cpp + src/main.c + src/parser.c + src/data_wrapper.c + src/utils.c + src/viewmgr.c + src/view_maincatalog.c + src/view_uigadget.c + src/view_sublist.c + src/view_bottomsublist.c + src/view_bottomslider.c + src/settings_provider.c + src/view_pwd_popup.c + src/view_device_manager.c + src/view_resetpopup.c + src/view_upgrade_popup.c + src/view_system_clock.c + src/view_need_pwd.c + src/timeout_handler.c ) FOREACH (flag ${HOMEPANEL_PKGS_CFLAGS}) diff --git a/data/images/allbrowser_menu_bg.png b/data/images/allbrowser_menu_bg.png index 5ea56f49b758fc5cfe0929170a8d685052e5c8ec..55a4ed88d0e55b5816adf2dea6d9644a90a3a3ac 100644 GIT binary patch literal 17782 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 delta 233 zcmV@@NMR-ek4YJm%haQmV0?hg06Zec)4_!cCK&e^t*1Sn0P} jCeCshv$%+tDBIu{Dvb1DwR&h^00000NkvXXu0mjfhel~N diff --git a/data/images/btn_text_foc.png b/data/images/btn_text_foc.png index 4a30fecd9d447fee770c3267769c1f84e2938c5e..c43ca3c388f629adf187ddfcef456af6f55157ee 100644 GIT binary patch literal 17864 zcmeI3cT`i^x5qDv^rli�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 Nc)I$ztaD0e0sy7jT801s diff --git a/data/images/btn_text_nor.png b/data/images/btn_text_nor.png index 4834090145bd9fff0a691a63919bed5dfc3da6e5..b6430162903c900f10246ee5d2e8637ed953a602 100644 GIT binary patch literal 17860 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 literal 248 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 delta 229 zcmVL_t&-(|yoE zNxgor-Qz<{)4+#U}s$iRvym7nNdPEdLFIQ z+Ow<*H@v3uA9q4%`%cc()iGRHq~Kliud8XE+z-V8zW1BV7x~Ezxk*ZvIwJIKL1|cf fV+c=5ur=5N2Tt@&)2F=`00000NkvXXu0mjfsMKc{ diff --git a/data/images/checkbox_check_foc.png b/data/images/checkbox_check_foc.png index 08ccc2541611cdcaeca33a8015f018c45ce8c62a..3880414e6cc859b66368209b7f5a2fd3e1efab70 100644 GIT binary patch literal 18058 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 diff --git a/data/images/checkbox_check_nor.png b/data/images/checkbox_check_nor.png index 543ad01ac625def3b8c932335910d2b1cbc86a97..8e954b809b69f1ac5e7b0c31d174ff84151817c1 100644 GIT binary patch literal 18051 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 delta 358 zcmZqfW&FxCL9(8ifq`NEW63!{DnGy{#P$FG|E~S`P~ocoH(vZdb^m|(tp8Eak-ar*3) zlVVKhn z-}hvxRb|T`3v_jVv86i5bXJJU6yaXG+h- o9#@q2>uqUrXFc)o3d<~W#yItt|B~Z;f$nDTboFyt=akR{0D4in!2kdN diff --git a/data/images/checkbox_uncheck_foc.png b/data/images/checkbox_uncheck_foc.png index 00d1286516ff27cba5b469ad04dcc07d39627771..f7c57a3a03d0698119454e3185b3f41c2ee67691 100644 GIT binary patch literal 17866 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 O0000&c3ywCe}&Uv2qIiEB0czmMQ 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 z zPH*E|#6&50HUy8Q$fFGq$)&9)CdHKa8ra!I3I{tgbM;hxGBOV zoDak+!UX{$+!Wyw&IjTZ;er4WZi;XT=L7MIa6y0wH$}LF^MQCpxFA4;n<8Ao`9QoP zTo53_O%X2Pd>~#CE(j3erU;jCJ`k@67X*lKQ-n)6ABb0k3j##ADZ(Y355z0N1py-5 z6yXxi2jUgsf&dY2if{?%1M!M*L4XK1MYx3Xfp|r@AV7qhB3#1xK)fPc5Fo-$5ia3; zAYKtJ2oT|>2$yg^5U&Uq1c-1`giAOdh*yLQ0z|ke!X=y!#4ExD0V3QK;S$aV;uYb7 z01<8q#U(xcq$iyXKHljEKF8STcyiBH{Ptjr88IfOCZr?>F!%D9~SIh zX37I%()`0nN1s$PW-ZxY=}A2BDPQ*Of@jp-wrI00j}M_0t(GVb88vK6t}UL+1zcbQ zm59)#Poi(130idVm+O4C)aKAnrZoYxqN7?%@_6T6R>H(*Ij!DMwK*|`quY3Ou5?U_ z&M~q4UQOlTy|32FQ5n}|6!p;G{Hf-WGYyu6w4t^JRq}GJ>v*vk01?DcS)4!1@M^@O z`Lq-@#aPuN05h#mo3u*P`K9};WbLGcu2KnLnG?Lh>#bfEIAXxo($ON%eEYtC15&@1 A6#xJL delta 249 zcmVWWuQRhW$ZvAm%riA1~D8Y)z2}y^| z-ULKEg}pQnTC?sq3qXweC05onB1QxQ|ph(HYmu|@qgbD=qmh68;8^)V-vmmQq600000NkvXXu0mjfxSwa! diff --git a/data/images/ico_arrow_down.png b/data/images/ico_arrow_down.png index 999a45ea48e228f3db8798a80dcf17d19fcbf3c6..5b55a18d8b05507837c63554fc842afa06327a58 100644 GIT binary patch literal 15473 zcmeI3e{d6J8pq$#;+57aQh##xOoR0&$tG!jE=iyy)mAT+X@d=%c-`#2X?B`q_p)1> z_U4?5rvk@x98eL8iXBf8IpG}ia89mO1`p>B90xh6a04Tb!X1bX;teS3yGfd)Z`=2J zqxXk1@6NQz^M2pw`|kUBpZCrFvnv)f-Cj{PvkU-G(b(W`MxQrnf29|p|Es>)5l0`> zt*NK8h-)ak(0AAl#jJC&Sxn|y#%y9NE`!<3 zS{$hUx0+GIrG(rDQu}cDY=P$--DH2Gql# zbSG3UWk@KqGA1KFeyH$CQC3AMq0@Z1u+*t~^m=We+?AbIT+R)YP_pb0MJC0`jM->n zCP)ed$Z7HTxS5JtzZBg`c4p%as06!Z$TUMm>P+&mekn|-v&Op#fzSEKoyl05kH9l9 z2IDA2K{sz6_ZH-+q)JLunqb~JdBWMNVkEyfqo$xK6Q;qGI6<1GWYW^5kXa!&sz273 zgq$iRgOU{UW~yw#$ldFFKHW{NVnUF*l$+fQ-aEh4c_ZlOROm&eXf>Fu28$zTcCxiD z)@HfYlzB)&=QftnW&S=n&#!1%0%;|6hj~$7ak> z4Wfcdr@Nq}P+_HynHKn~(XAswOiUjaGM7}KwhKM_k!_eeUvkHXmXqGiEXQjHjhEMI z6(Yc+TJyJ+%gm;UV;698lr#PX=@XC96@>{>!Dp<}y(TtMq=?$ZC1G7Vs)_%y4Ks$L zGjL}&qn*hy@&B*}3b*w8t-$2A(2sou^0muHxkNh@yv#`1jxe%XO_W$5WD_%`Q1IlH-rkv3 z^jwD?DVf|e<(QqHI~#wxYa9J_!PEyQpBQY~Wt#rh+ElOnc^aU(NA7Z{7J(-PPTf{A0WF*H7L4_jQkLoWGwRs=L9t&(-t@m&iJ7Hyk)w0LMv@2b~YkF0$e zy@KI9)mP;`!~D&p3ZY_@{@j>@D6kbK22{z2&ED# z!p5Dp@?W1@`$n6*=D8Ef<@FD*=WoB`Jv9k>oqb!^T;E-`OKwqm`WHT8tKMHzqyqI# zll$qt5nexVLOnmD{@sP%pB%k-Uir{Py-QBrcVpkNL$m)jLqG6&>g!E=PyIrjdf5fA zvTW$s;p4LN^{3zYM7nZM^A2m^;hp!MZtj=PO^KZtxZ;s}c2vSc6Rj)n!*@0K9Qcb0&2ZuMlaq{epsh@w_cm6tg_puJ}Mg2n+56%htw3mV#>zn*9 I&2L-w9Y+2eYybcN delta 517 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 K|MC4>hW`Z%$OZ)f delta 501 zcmV0lP^=K~zY`<(Iuq z!!QuX|8}A_rKM_xDuD+OV&EZI;RTT3HQ+H|t9S%>4pt^4c6O#x6*{yfC>%pdYR6~C zsk(7q();+?=lIU4AZ%9ThI#)H7z4s*=Zv2BNQi5pObZK+Yk#3^KMN{Zw{Q_lETA`%zv|X0y{d6C;-UAw}f(LB@rkP-xk00000NkvXXu0mjfq$%ZD diff --git a/data/images/ico_hyperlink_arrow.png b/data/images/ico_hyperlink_arrow.png index 5a80a5ba19cd909e98785852f9f25c1d7d01ad53..ff4fadf1d62cdf2977306412242579b1620224b3 100644 GIT binary patch literal 15115 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 literal 4072 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 a!~X#ONwCRFssVcd0000_ri8__ORRaK^QtZ0| zkE55gkUsk9Pu{)O0|Csb-dzOt96^i1iJa(}v|uMq$%aF}o6QNF$k^yvBBDZP5;UJz zJ7fuDiLX$z;UB{He@`mWH73^W_`-U-v|DlqYI0AUt+q}qQa*jkrmkGmWUjY`79UCe ze3O1d?j_$l9RlF^CEF^ZNvMk~eOJHbk6?uT$aFOdL0;pHweLb&&o-TJmS#Kh-Z&AB zw=5i~t35ZftjAo`P4wG1_drwzGZh`2()5umjKDOXN7q|Dt-3EFVl&U!sF|_UL@RK( zZ@7Bp?weRFf+!PWR71d_rP_s+%p zv8_hE6-Kh*8O;K=&msz`XFWIbNiH;sI<(U^PUZ$~WF=kH!@OQ|FW95O2>oK*qxoe> zO7$$_M*b!;{EoSZEBGrGuqGrauV>!N4$G919M9g$FG5gq(aB%)ZmW9QsPP7_WjUQ8 zXf+>QHnJD2EbDK=o6}F0D=A%M4L9(oCe05=ET2E+1y-wAIr;j}8XOjA>0@|ENvWQX zbFDEN%w}))W^ZOO&JeK``f6TKddulq$Vh4N$`J2T9XA_9>BEtHna}fiKF>dKA+wAb z#2@jzRI`udMc(Z(PmAD{su8cr?J41-262AK*Z5ID`}&eadrBvQj~-j(5>vVja&6zOSHE&rO%- z7;6~)QXZC|_()djvzcJXpd>C<(kkQx6Tad!#VcCREi`yk!&K!P=_6UisfMjtMAgRa z34>jbc8=mHDTIq#oJJ`LUP|@s<|BE((dGeoH_N3s7nsjv10H8DekbcR4b8RBlo>Z8 zf!i2bKIBlNXn^~!+B#`RZs6>&zM`FzLE)>F%rU zi~eN%1+uk!P1b*%C^KP$k&Tk6lRoEjI2n{E0Ib3^!H~Y6IbG;b@0A?HT)Dn}J z(-p@E>zJq}C8i8uoy5g8MpqAh(R;BldL% zv&w-fg5$#Y>5(B3?Dlw<4C>jx4O5*H-j-D>YtdT%r+MW-VP;i@dPsNGmEIW%D#x%S z7`1`N<%7=M_GPQ32K+e^DwR9DeyBAE5 z7OY^t74-nX%UHnw;c4ourd$zd^gaIL{j=57@=}l=KG>e;*#spSQKSqG zY4jW~mFEajh;>*8ApOLQ5w{|z`v6ews7;I&1N$O7r12+FAx*ExhZD=1zd|uWUWS66mYibMq1< znI8jrmM?|E;u<<=dYMXOt)fnTXl07^h4YivRF~&NIQtJEG$up$g zui24k;@muh#3IEyh)V2f4VflLr6#T#(sRbZQpA8?R%ee;T>nW)WjLM~(38g3MI{nv zYx+1do(on4}vN*J^`?&mSHIQW6_mDw-Pr4R}p<0pJ7jEb1JQF)&}58D|_vDU!8c z!P7g=0UEGuZ*XR_2D|0Jx)`VYkT~an_>ha7jYty&ccZdePzW>-+7-h0g57xH9scF9D2;3z~UZ=`Qk*VVDu$M}vI^}vJAmPpYF0C|w?)NX1H zAmy{+Yl(&w_K);srmf2~*D+*#8*n+4&EyEt1yd2clqE`if!q82f;rMtpBE!;%}jrI zuiIU=vornSfO8*%QG*inSyF4~b>wRRa6JRYr9kP&%m`akLq^Br`O`z!cc%MKsT@d+ zkWw<_8>7yXtMgz@AC0D3SKmry@|C z9&lvpE`7aA-b0;PCZaO~>Q9x}=yRSgz20A@bL}^{`Q{%|qz_GNOvg4~RG0- z+j}Mj)NJI_LHX+f@=eTDbZ~{#x?s6F7zPj=%o(43Tp9>*#LJ_F&T8I^c~)P;XD!`hvnwON|)SpT}i00m)aGZJ@s0U#aP& zqRf;2GW-86d}K5oypQtG{Zh^~wBli`bhv1vl@+FLz$X=M{lL45GWq`RH~#yrd-{jL zba1(X(mBpBd?C&(HYsSm#E=svHNEqz!m2V{A$wsc0B#7toE{-1FPFkh5}%g=kFdltdHbx^)<}&M6f3csW;A(z*U~rDn2^h#he*&5D*2hh3jO{NKBBX7?-HwVO=9Up?o)o#-bQRQmotr#o;Y;; zpU7m+lZNI5%IVJ*MdO+Y?p*Fyc&kIae1eZNooNwm&|{g#6h6pxijVaC@|`}*kSD^b z6oMRx7cnht3vB^$#`hNubxg1Ca_6DY{c7?;dyDRvhH>y9{FlSUSS9vQgrAwheq|^~ zAxiY++ICzM=BjKhfJO|1W^Wz5r|?*NgX!>YX#J&*R%iq5#WvVsg8;y>{rcaIOuHL% zF*qzC9p`*MvF$ZN$>5J{Pzdr8Jcg<0W28rW@pi%dL$CoL>QVM#^~wwVs;W|E=4{DC zUu3`rp!KiAF2CO3@ka$t`8FG+WcZguC!!?~HihVa2_M_a845e6ZRJ z0c~i_>AGl}(4)g8GY}`apA_&;s{K6tg7^O=Q2rM?NZNsf_a?Rg0000IX8$VnKcZR8O)G5dcD7W!aMKY)3>iXI@X~n#M(*GNsxGbAxPj<0FNVWECXV zt}}^~IQLT6x^BI`K8M(YoH+J`gvjH<)=GTGcsjWTB+e%sz7Tip(cGKx3*OHwXNH;= zZoR+^UzyA*Y2~Wr=1Va`SgS_zq2Uc;LKh;|f@v>&jJyM!PSI4{Kp%toNm zijuWl)c{*a2QN2JYo1vP+Zwwl_)a(7l`ZlJTP-bVrzv-&5TG5FpnD0>Heid)N|Ut( zayS6@CcH;KUEUdE%P9$AwwxpYw2>I62Y6`!S6Us8=>twMK*-bd z9unvT12AJpPb1)38Bp7@j`s$@%?H4&O_ z&l`f;w}70HSB{f@OKkMdC6>Q@IXE!TX>w231^3ADzyhh>t=4hg=R*Yg)68^V^;_vE z<=s(+9J77(kEhHoZf!le_J~LK&shyV?<5 z>3j9M>vVYtky``YcU(E7D<9K*OWXC>;4I5xyfgC52SSxcHGsT#p;j@g0ijl?H31J)p8 zT@CIeX*>Xw4}FTMG=!gux?!#Pl-Auc4N>~F zYt=Y{bwRjoIz~=rP8OX;mqA;lRo1^+tG<@~h;_Z3Wb$Rxo3eM-f4H~FLm3|HWTYhZ ze8Y*2&~@Q)*n8^I8;)X?<;oM+7+=q|Yv0gr(C%v^HKLTCsbaK6D*53ng7*zBfhmNla7LvA>XE({uTp-Fnp% zyL5}rmD*gjj=j85B`5>gd|1TT^kUKZ(;Zv9M7?InSO1{hS>JPdn?>pq$M&WX!#`60 zV4n)+&crwykIrc>>m6iOBL3nx9| zIc;)U_OzG+)Goi^Qo-v2Ui(S=Cc6{)du$IB8`vXk`}5a6O)0c5$g+BGD`rc|*SH*8 zK)Ot|)5?u-oeWdn#8zquqtNy3}IFeWHU^`7kY=9l~TDO9A* zi&w;J7UZ8pVi6_?#}b>#Q=VE}{b~NQXJ{5{hvoB9CnJu%78>92c8Ay{6|-_U(bc;k zB{jvV(5TS5(C~egTJdOJ)}<=_3g@{f0i8w@IafJD(utPevW9J6+V z1>P6M&Q<6I*ZAg*rDa#|iOe>m=DiNB8veNT0Ce7Np7Jqo+K|tQvxHBYvx~1~6Z*cY zKNT$wZS4Bn8oT?hHufU!G%oeck)-lA^o3^zzZ(c1CpWnEOZQV6C=C~6Ib|heP0in# zk7d}HmtWd(NyALTtg-oV^ZDlI>8hEU@E6L%nZubcGJDJ1cZKXyD!p8Kn`nGvVAmz* zvC>N4=v_$Xi%#~tc9$3wWfjRhuPCa>Tc1~Mk!(?z{hW07+TW!QOY_S%UmNV?>?$s$ zlpes5JVZ%l_lxh2C08XMxO3q5c}*_<*p~u@;=9Bn0&fNgp&U@JGg{7!X&tyfl`;Y) zIkm29?L_pKZfx3dkDO(j*YI>*%l8S+3iZ%2+s2VV#P5bYD6V^VR zm06NmKYF?A>X_OXc`Ua3>|>R)JF=Y-flux}!1h@WwrTO6Jq`2jy%J%GwTvR&8kU0M zp-GNKFRqnc3@(_#jf-Ob!33P`$MmDsUn{?Mc6+Q|TlS!=$?`5W+by~mdr)eTuo$-3 z2INJ`u#wo0M(ISkteKk)+b>a*poQup{&VBysLt`6avfov6Nicp4b~M&cs=+tu}ETO zIIShAg)9(l74gUOCtSE8T>RY#KDp@FXvY|>1iv_^Ep6~r)!?>nY+$e6N4*ri*O?@^ zCGslRL{$M(0NIOvrG7`{j#dN2)A{i;rz|I9AJeT!h(fWNuTORFr_ssSw^?s_`@==k zpbvKYg`R7vpNh^C$%kxELZxV%#aZk;^_R{%h07wxWhOQT%OvoG){EDZB%y6;ZE>Ag zSA}gB6GjT=VJH7gs#Fb?zK^)5G+2H_E5KBG&&1m`?QBjwSA1_M(73&NA!|Gs%&*38|NEJSw^Dw3p#vi`YkOz5@uObtJ05=J z4OhqZec~i>=w987i422G+l)CE50^WZk1=h}-@Oj|WZ1P`@Qe!DIn-p*?jiZr$f1s8 z(nRa=tkYQsA|M~S-Mh}0h7aRgdiM%a$M3A8y=m89j33sh)M#;?xJ{e5(KWcy@wQ{e zRg@d$9qk=@A-Th{vEoccMsc~TcllUY)va*PnGvyU^_HHgs?fhh7N0-MMr!s{O@>it z?$1p3iu6PT$j!GjRlE$A8!M``taO{w9@Tk??TLM+<+9M-Io^G6Z*6eSWLvl43}^J= z)`g_$6N1>^PNbh`is6rWpS=@>C+hixUa%4Ul$oL^`v78QX;%szYnqNOdZ z?Of_aYH|%_|Hb)tweL4y?P{oR*jD{81OeYOJ#6Wxi*^fr1`hu3?;ykE9 zG)+m#rGdU4pXWvK`#O+s;AeJpiqH_89~2IOL4P4KH)k%RP=2Zmr0MUYpULN${dB-U zyHGzO)P@*H4GO>$_4g5dX;MEs2?G9W9KWCdpJhG-Je24|q|haS^pl7G^c4KQd;|F^ z|L!!tx_>!)8rk#P;(VuF^88Xp3?ctQw&YonEvLfD3Zd!whr$LBaWrax9hK^XS;?|* z-=FATpX43Mz65G;;0`pDvG=#7{uYR+hoccO^i)&cXr~NAsUlIz2t^nY1%s^$ zveJ_whB-a$2{;<=-$ePYFJl}kf$SOjucCbG`F#v?bCj`fAPwh>CmQQv=yQjV$pjQ$ zh3EnEP~8cJdB8ouc!Y`?cqeWr0<7YJQ&EMhDihT3h~-IsFaII59u*(7ltZ6G6X>Bm zcB%T zbcmmX`C%v{av(i*LRX~}J+YR{j4jds`_?ZGAM$d!@WTZJ5|?(NrsS7x__e-#Egwso z<=u?J;g<>x2EUZ6L;@Q6UF)~g`l|daBmcO7|BmuX{8jQ_j}h!e^ktUtE1{Nq{W?e> z)sq&C3n1!{=sEGp_DjRRTeOv>{C+=usW3n8KQsZ4@}ve(a5M~=f+G>3e!e6$^jqV%G0|VILMSZN zhZtog6NHsOEG6cRl%&LB?;w)XqQ1lu@ z&v)GN-ll7QXk+Z}v{Wm6f|mQME5qmq{f38re3q_uGfJJAOIN!YrQekHzGNCk`SWND z&8t*P7uyx6w)Fc#B8EOS#wNzzR^$+(kCPsmeoY8ms&p#!IW21#9X}O1|4O*Z@maW% zPOI+TmP^D+EB)S(ep?FtdSCiO_4ry}|C1lS&FDWFl_3^u5C$O3O%^WZd>FheTns>% zn=D++`7n4{xEO#iH(9ut^I`C^a4`U3ZnAJO=fmJ-;bH*7++^Wm&WFLv!o>iDxyi!C zoDYMSg^K|QbCZROIUfcu3l{?r<|Ydlb3P1S7A^)L%uN<9=6o2uEL;pgn42tI%=s{Q zS-2R0FgIDanDb%qvT!i~VQ#W;G3UeJW#M7~!rWxxV$O%b%fiI~gt^JW#hed=mxYS~ z2y>H#i#Z<#FAEm~5auQe7jr%gUKTC}Ak0k`F6Mj~yewP{K$x2>T+I0}cv-j@fG{^% zxR~={@Un0*0AX%2#l`dONl&6L{qfFV`g5F;-Rv6lXFx%CBO7x72$KPT$io2eVUhkm z0suiU0C?w4e|$6z07R)L-R>Iz0K1m4o{n9}tL`*&BVlWy#>Me;=tFa&SoC@BbGnB> zaq{_UHu0cPjXIwWE)HEQp_}j6qaDEKb3nUp^3d=?I*I@2KCd?#bIE8zr+Ex^+t>QLcRJ8` zI>mxoU85eC9*B=>;zY8ak(cR{ntS8lC+v5BKST@`y#24np>e2ipNos|K`|g>&5(N6 zthALQPwkoM)3uy^@_)6nRk7L4j{RLa7hzMYoFgl9)`zVc35wreH~Fk#%iA?6Y~r=y z?)D~y6(XBd5(V5~St?ZsNS{8*rTvI2`+oI`=7j1sX{8tP0@P|{5imBIDDaXS&D9Wz zakn&b-|x5ILHp`R*Lgsc{Ve6J1mekQKzaMR`v}g_kGY~dLk(*PyS#<^oEwu67KDcA z{p(N0&h4K}NRQC06>N=WgV4_BWBO*}*gt4+_&rjmR*g`%j>eIPHNo#qn=7QjNl&38 zQPe+Eb1QQ*PdXUAOS!24s;c2No{N~jIISp7$)CQE-N)r~ty*fp(DSgX92qt68c{ud zP+H zE=ovmM?Y{&xcWO=VTVapM4fjzM`&4-C|_*H}46_pwJAGrq z-(p-_WeA-mg~9IIjoy67m49$8N+i#{X9_BDf%9s5o3(o&Pok#4z=R6Wa}cw3tI`uW zM9P9}^K)>aMm(pGm4Iu|gpZ}Rgjf)TYn#T5o6(xofzgzMHZ{2xihEQ<`zY12x8uF#NM|i^6L4T@R}tH`F*`4l0Zk z=W3jc5J?{4VN)VE?aeL=6}%0SwCUFi^ho_U?(o+*FjLyVnRaRG(mw+NjP)(_ign!& F{TI#t!A1Z8 delta 743 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 delta 234 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 KKTpr;=zjs9adv0` delta 1026 zcmV+d1pWKzk^zhekQsjj0000c_i*L_000DMK}|sb0fwM4=$2mq00YBGL_t(Y$HkUy zXq9Cc$A8DIy~#Gyxv85)5z`F8aK%K_k}@$6Vih#MSR#E8f(Q{ZdI5<}O|N5|J+w&ZE&W<4TzrTOn=X$R5zwhhizOE}K zcNVkmFkgm**_jijR-MHKmB z=JFj|7z8fRo5Fub2~LsC7|+qb{Pa;S;5e%|%nv|w8n?GF%4Ojd>H%Nzn4N!Sh7J$;yl<#)hfR(-9-503 zaxcBWhiqpT{ghKd1;yl0Mk&{bGeQUd5a%-2sHcJTKt30UQNeKZhL5QSgEQ*Y%A`b3 z4ob`+&jZatNJOvyLPACOhNe^jbaj-uc{6CV1)r@c^kd)9*f|+oYJcyW%yePB>cmUYOx`?a_cr!@o)iCL>AP=vyAcI?_Mql7hCZ1jk^I6Uy z06&q>iirAV4)7{pMP#2+MHSsZ7ER&WlpT<)p_G5qfk)cI0Z;>+NG5FH3NHjviv#5|(B*SCaR74IN@tjG+~iT} z*u!ova)wsmej3vf-UoEDo@L~+kavT-jw5)~b8HXF(ujJ}ZLYP_f~4Y5=5jarnqP;? zShs&A(|5fW)j@wW5vh7N?XpMhx684}msUUbhPor#0;VR1k9e9I{$L~B46v7S%2`Yy zc|jw(K_~6RiF1jUS;j_cso^+vN$v=-7u%@5ZRcAla2PO+UcHXqC{6L5&QHZQ*|!+HV8@0lV}iFAS>`H2?qr07*qoM6N<$f?4wD>;M1& diff --git a/data/images/ico_settings_picture.png b/data/images/ico_settings_picture.png index 0a858be4b8fc6355718d3ddf7e855c8dbbe59f8b..b6c097b19ee8e780410fe8b18aad887c7883406d 100644 GIT binary patch literal 18088 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 N%FNER*kpU;e*ym^02%-Q delta 425 zcmV;a0apH~jRCg^f%2i$9&AcV^<+=m2u4bi@=_ z#1~I0sY^!y=$|$is-k`IOf!N&&j5O9fQs)4^{4F1%pm!mS;YrBECqmvjOrjBFw3!> diff --git a/data/images/ico_settings_sound.png b/data/images/ico_settings_sound.png index 7ce35a298391c1d07ef046ba6a157721ffba9db1..79881550d005f73e219108533c66fae1a013ba7e 100644 GIT binary patch literal 18239 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 diff --git a/data/images/ico_settings_support.png b/data/images/ico_settings_support.png index 99feb46d79c0be4821c242e79622f98dab4e02d7..31e676c93676480066fc8610b81ecc8ce2510319 100644 GIT binary patch literal 18628 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 P00000NkvXXu0mjf_iJ^2 diff --git a/data/images/ico_settings_system.png b/data/images/ico_settings_system.png index 41143483baa16df6a5b786eed13e08291aa429fa..63c78b1624245ab28085311ade866753938f60a8 100644 GIT binary patch literal 18371 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 N002ovPDHLkV1mfbJDmUk diff --git a/data/images/ico_spincontrol_check.png b/data/images/ico_spincontrol_check.png index 16599e95d545df51d1d079030ba833a5e0eb1535..3b57522f783466425759203110f54effb8fe7690 100644 GIT binary patch literal 18264 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 IM6N<$g5VunAOHXW diff --git a/data/images/input_box_highlight.png b/data/images/input_box_highlight.png index 4c195cfb76436ffe8af094aa5cfd552f78417574..8420123e66175a573c71113db00e7dce86bf2077 100644 GIT binary patch literal 10237 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 diff --git a/data/images/input_box_nor.png b/data/images/input_box_nor.png index 5bd788ea8df8c88cf2272e26a8879b19032a4610..5d137a28e0e4f2f658792b07834df3d578c76fb3 100644 GIT binary patch literal 4567 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 Du!BY; diff --git a/data/images/listview_menu_bg.png b/data/images/listview_menu_bg.png index b8ee750888449dbf1e51fa8d43b6c4409cc75995..bb007f7f8bfe6123626dc09f71d9d80597a2bc5b 100644 GIT binary patch literal 18418 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 l_`2XL?e$!m=ktAG?sx}&cn17q6)!xz)yfeMT~ zT^vIyZoR#HlIxHG14H1~|NkxHSgJcX^_rF5Po1*l?ZVr0j$8cQRw(`bW|d9U+i#z* z{yLFm7k$3(&G|j$Z#Umgf0z9K$?x(VzlAnmt=a!e|Jq}V>YGn*^B&wUEP2F*&2XZl gPl~`WVs6wf_GVbO;i=U@U}!RUy85}Sb4q9e07)i-uK)l5 diff --git a/data/images/modal_dialogs_bg.png b/data/images/modal_dialogs_bg.png index b825c26ac096423670d23e6034147eba9d054d2f..0ae9c5875e9e2e4afddd42325caa8d72a01a0e46 100644 GIT binary patch literal 18657 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

O3xuZ!1 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 z zocmm`W%&*TssenQNz!nVd9qW|*hcq_*X-|Nn;!H(4f<-)zFho-4#qWb?Fjx3t*tM- zC5}4WcrfKy%B~RD=MJ~_Q$@kOq=wFI;*6nd60GOVW|Iec*Oabl*fe~VHC)i%Bkgk4 zCFwkRE4`o9kC}*Tv9B&UQIeEjyveJ0FsSTuu*Ybhe5!uKllNtT?-ouzXiY^KJSiIq zVvOD%{m{AaNeEMQyrHh-FwBXCCpsPtb?n|&&Q2R?>aZ9U zh}hFO5&I!V95*i}F{Un3Eb?{gYAg!%!jL)M_casONN!X~m76#%yLUo%t4(@- zzWBlEUglWb;<&iUx%>$uUrE}~b^t(2)9?fq!PW*%V$fkkGQ*t$3!wXQ4x#{nF%0k} zlDsG^h&zQ!^D$5wD!HKqp^*)gTy$-Ag zQ&>bu0NvZiA01$zG_8x~e4Z+XD?z5Ku)GYEjHeoe5Ny{$a115|q6^c7lC+Qrh&~F2 z(A7a95SkFA7D5}2(1IgTPy_<4qmM@DLB3r|SYgg543q4Eb~H8r)*Qz&Q1WE4e9>?? zo6Ux?wP6e<6^=lmP;f0I9EpT-YC!!1eOSZ*sE@z$jL3H#Q;I){N%LjV7(S3GU7|Z< zJIg>xX{wI9keL&tYJ(|ei^nFObJQ|O!!e@^ESf9!(q_irFS z!hh+;5BFb3&!Tz!oSa``r#ycRqXf|Y5;onh%-5_E*Qi!L@%*^-m#+DUn6Na#B$Ts-*)(BJo-Xw5~2%OLvtP3azCz zOJt@dNW+$s_GBW9_-|BxsSDO&kZB%)|4QX&&0jTaZP8Xf{w$&oiDG4n<%}Ihqmj`h zqz*!h;_eRhAnB}z>LPSVP!x)Yf)a^jZ4VTQtWP1%4D#3T-=s|$r0r8V^i7(~k=Ak7 zrJz=mbfDU+QAj9JM+eD~Mz}+DDM+L~Szil<(AJ&i$B~{D{+qNtlg8PEh~Bg6O!fYM z+Qc7Zerw8-=Fdr;z*#B9Nv!E@#);zhYw34~H*I>m@Fg<+DO0P^Kqq3bFxu}E`0pss=+6rOdmC&|iVwGhpOKob^>-0} zh6jsHWKxW&oSgV?mf?)xuMuEn418)&_NM(G%z-~~$Nz2y{@oJ#|2_jhbC={v^r2G7 zSors}{a*0zCT(Uae_c=Cw}Ic+ABIdqdoY-EA`45S6R8xquMZUi|5^C6P0WwG5E{qu zW-x6TWC~Ur1OHR;AEP)wuC1H-Z4K-1Xkh}eGQ;U1P&pfI#c&CG-r?D za(o z;o{B*3MW z;coJ9apwc_@^FEGa5s6lxbp#ddALA8xSKp&-1&gKJX|0k+)W-X?tDOA9xf0N?j{cx zcRnC54;Kgscaw*UJ0FmjhYJLRyUD}Foe#*%!vzAu-Q?lo&Ijb>;Q|5SZt`$(=L7Qc zaDjkuH@V^x{`sUQ#fS5FC!6ye=MG^O=f6V$5R#>%EdT_q1c1;z0PuN|^WFyl+qD3o z-;MM5XaWGpF^+7#Z4Ll)c37Dj;{)2>B-naMJIF+yME9@tyku3_B6SIBvRP)+RcD)p z8r$STzV5AZER>yR9PZQN-g457C8<#rAvq>!8oNVUy|TX`@xIKpwPJn zO>lI|Jf#W=mX_Ka8|O#OXt))3#cfEw!o9%b&U=lxs*#%TH+j3$(Z`}I4z%0lnyA+= zOV%yklpJPyzqBn8p}IcZRqRp5ou1)KA?#J8Mq0VKEsSc={kk$i!&~QYh)p6rOn-my zS*!N#<8utRUkqMy0UB2qWF}rTv01k04BwbLGw{ZIL+{%yZ4u3p!f$c}a=n=-&x$VH ztOr5Wc(1ovuPQb050+X{(iU8O8CNDQGVdz3YpIpA>!@2%!%uoMHWt_Lt>J$K+g5P=+5oLaOw}9u@fxaF_R&M;fUxx{qx85#VKj!I>E_;66PT&Vi9#QUhcek8S)Zcpn^ zNM7RDSXBtDGdt6K I6SwgH0!iFsiU0rr literal 511 zcmeAS@N?(olHy`uVBq!ia0vp^Y9P$P3?%12mYf5mCIt9|xc>kD-?g7s$aB*FX$St_ zeDVMLum6#=|KEKDwC%swr2ltc|9|l2|J42euRs6)`|tl7&;Q>8ioE^*@JpQYyq|uszfsw(}#WBR< z^w}x5`I-!P+NN^yv52zC1+W(diG2Ng|6E3l`WodU+WSx2$8TEu)=KKHWpbmV+A`C* zQO{Z=1jYP$aN{18l|?WcU9_Msj`g4a=YB-O<3hWfpsV6>pqbs+xJA@ToYloI!~^DncHmB z4PR}WpImTEez~pv&T-xU+x3kgTe~DWM4ftp5DT diff --git a/data/images/round_rectangle_4X4.png b/data/images/round_rectangle_4X4.png index b0c09a8d4272f4d2dcecb6a42070778feb997dd6..5a1f51d38f87ccd9c29476b13310fb47e158e57c 100644 GIT binary patch literal 18179 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 delta 129 zcmZqfW1Pe|L9&vCfq}tm#<|%*iY49A*O7s-ZGqv7Y4Je5r>Bc!2*>re3> diff --git a/data/images/round_rectangle_8X8_top.png b/data/images/round_rectangle_8X8_top.png index 3ab184fa85ee65cac2e90ffef9281a8555662b01..dc618e3e557c474f8d3650f87230b2b2c31e2df5 100644 GIT binary patch literal 17774 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 Mjf-`WmG92~0w%OV delta 150 zcmV;H0BQg3iUFnpkQsjj0001f;SYxZ000DMK}|sb0fwM4=$2mq003P{L_t&-(}l`0 z4nRNvMA2Cn5Lt)YLev@u(BOc$2npG!eT_{>EN{yBLf3LSCOqJo=&|7mLBYz?OnFZl z-nAid9FgR}A(62Vw_p?1vWl~+#K5=FuqoA--GF|ak2tf!gU${S6951J07*qoM6N<$ Eg2=Nz5dZ)H diff --git a/data/images/scrollbar_horizontal.png b/data/images/scrollbar_horizontal.png index b5336120acaad500fb9cdba5e2ed879bd37a7ff9..227ddc2d5833629be0a6bd9baa5919049baf7b7d 100644 GIT binary patch literal 17735 zcmeI3cT`i^_Qx*+LvI#DMVwF+MA9iHhEPJ4CJ-dpLmH8ikVGkt42TrVfQV9sK^>)| zf}#j0AcBg3;9voiQ9wiod;=mj;CCqkUNyh@t>1fpytQ)IO4(_f@&OZCzWUae@ zy_1cC>{3|(02J(OEnUG+8So`7EeXD_ZfLzY(ZIF!4b zy*UC7-F!fL_sd6~ zH;i3;Kv`S6S)eI*bQvIsihSJ>`MU_S`T^<{$5?E z+^YwYN+}|gYU8ZJH%Y?-q&z$j%XJ&=R97!FqW(ZlHA7Sfr!2vQ8z}ubbO!)3<5j@f z4vhviDi$_28pW0=|QKZ>#he^?e^o_%t&7 z=hbK0;g~JqHWKgttiJQc;qIRiA-cbo$MMSmxWknON(g&(^ zMwM=PxQvAPP3Z+xjkXvuuLBgVSZURi$afl5wi5FXYQt{DEOgPdk2kbMyB;9J+-=nd zO?W@xqBmP#iC=pY!0i1LRc?bm8eZgL@`wCIQfapF(tXw^OEnw8;=C%|Eiqk{eY}hhwgL!Q-#xmmjT&i_66SD0uth_Ssea&Jo3_6-( ztFLu`e%u12^6nT?jj{Ip{UnS|>ER#j&i_tsncrgF;_s@}r=OE%V7pW+;Z_^nr$`ES zR3EnbW@LAI_w{aUw_3Nx;3nC0FSCH(-?=^0b-le~-I5;V9)li9Ml#0S{Zy*!-7o2R-Ql`3>35gR^V_=0YhiMS8~9+;{qp{Ufryuq0j?Q7QSBfY?ay>1BX&H zW3x|gVp1X{&o<8`&*oKyQDJ{p`k4x=GS83Uisp6ebT;eQu;LnjOz(Aj?L?Vn;5GlOf#i&kNSPc8n%(ANEXX$OSa25 zE+*VC4B!ydk#+5VyO6eAHzS><9-}5b-4|clOgPnQ{j0UoA$INNF6}PATEE&;DR5Va)tR*pYaQwu?lhcixSwK}W`cfz=}qfRdyv+7Y5T^Yjrt|oC6^g? zMco_Ecn*}5`$ulXd7h@YZ`@LBU65X|;(l2{S=PL)Ql|u`yo~#->*xM1xmA*LY00^s zhm!4uC4MD)s4Op4)}Y@A#yoLA;_$R52#|KRJ z+<24Nhh$Njl$#!6yGj<+uc~3EyQST;VX3l8`4K}g2lw0Wtw$sg5ov0*k8f6VuM-Rh zYC)3|D)-wlluu`Vs58kq zoOQ8R3rR!9dlWo4cjn}=`u;p4lIpEa(a21 z`{rMV3p7T0lN;k3*@}_tLtos#D@A=yJ$OA-UMDg-(j&?=mK#G^+Kf&z3~cTo@jER) zSSDINNn@d%acAM{4E2b)h#iDB<0}SNOluKL&pWM@bc&s?{W2Uvuh7Wf_iE>-{-Nk+ z>Cfc4cB>{MZ*JiRpJ=Rp6PdLr2QgnCpJ?U~^

l;;)sJ8(sWfZ%r7 zE|niwM{SVICtN;IqUYD@oY(J>R2W*ZGQ`m*d~4P1y;T>*d|t`9%l1U>dDZcte~U8( z>DhUa`XMS^ji|E!K;go6)g+Z)9_n@k^{7R2ZeL63IC>!`ucnmV#B5>qJ%0kv*rb@4 zoAf+M(O=-dCEmK)?k?u;*vf2We6;&mJYrh7Kez8);zz$N1x|he z{dM9k;-gYpiX{(9|7cZjF(JFg-CzC6MzQXvt7GY}1K|or3huuiuYIP)wG8g=8fZ!Rt zZisw~-PX7FUIJ^d=}`Ky^gW@7_Z{2YPnPWNr8Rc$P~yD4qAYmYVl{rScWwFF#?6D5 z1%pNHJqtW8d!(MlZ}WR8cu5#bxaV9~cDyXLuynIe=|D)u#of%2KD7+v#>a0eg8yDL ze!n#XXY#mWD1Zd?INuDdC#m&!u4hK08S0Dc~uOc78V9q=@cAA(Bfcrg$` zeq8WI6aWaOL0l@$harG@F<5MW6V2CU*EC^lx{0QTp(DzXOJaDlZ9{krw-6^XEyRb0 zqidQHWeGueFn}LJK!pYQ`TFzmK_;4$aq-~yiDslGY_f~M$3)Y7Vn7(haXpO0;W1!_ z2tzmxg+arNaR{`b0S=AUhhb1?EE0`EVsLOY8gF2XM;pPW4^5&h_>I7$Gx4sL*3-j* zmWigfK)}T#k%57Mh(IiY!($=QI2;a%!XPmiIM@Tu5B3*OgW&#rt*IcN<5)8IG#;BP zU~~Lo6LG0toSgy_P0fjcW{&B3`Eh3k^5;*p11Tbds9Yo(fkJ*qYEF=;o{$)hVA|8E0_s1B@w4OCmUT z1e;CAGmNk(1_OhFW3Yzc{Jabd;9kbyj>AxKSS-efiNP7sCnx!({HxHG9NNx_9GVVI z2SXcqp_oj%0Tyn6Wzyi7H3n2T4r^=-ryF`1VbNHW;Tjb7bLctpuR=TX*kBQ&`p)Sy zarXb$A-)mjtD$V!d@yx_=cE*vSd(SOjS=u=>t}~Ad$L?`sXRVoVi%fde%^*N^<}1f zOlT%|GoDJDC^SUcM6NPGz+be^p4NV$cm4lX;Gb=w|MnG_&0U%|)t|+n z6Oo_O_H)BOTePXA{Bl2iE(2fhKLVYGXL5LcQ~{CgM`baPTz?h;IomipCSm3(geP%) zIXp)Wok0W(%(t4qsRI98TR-*R8joH4|q&V=enU%PvO$JZm4ut>F&=K5HZuEL7L~N zCN8#9P~E`$LIx3>8ng-8dp$dd;Y+b(gVzN9M5V(`OQ7xF)OpV8*38w-X`j|jCDWXH zx5)xA)e7Djf;XkenY+@jYR61<{dazuozTBCDkPR@5C{2$yg^5U&Uq1c-1`giAOdh*yLQ0z|ke z!X=y!#4ExD0V3QK;S$aV;uYb701Ai_-%F5!G2UJ)(`5aFf>mvBB1uLu_eh;UPcOE@2hSA+`!M7Sx!C7ch$E5Zc< zBHR>;OLq1-PliAEaAzR+6z79I*4x1+Kw&gnS4RK{SpfiH5diRh9Q^D9fSo7+cnSLP z$pE0rIkN4BHQ3kP&eEJ5)VA*~S~g-mU|H3=x?8fUwqvuj?%NPets|QK6p6LN&J{NX z_hwe9rCmdYT(JFDO{TVVKNT0D^N=IP=X!f`$JoFP|(fe6b* zLw8QIkI$MG+<4vD!*Z}n=j#7cn$uk0%*}cAG)M4ESo~Q=_y1uwPP>Eyr{8e8WmtXe e=ljm1O8if*#b349-+K;dB7>)^pUXO@geCxKAu~<@ diff --git a/data/images/scrollbar_vertical.png b/data/images/scrollbar_vertical.png index 8dd91f11310c3121a81ae3c9b9181976a2dd4203..ccc9be0d224c131a83217e01ebb8bfaa0a8dc12b 100644 GIT binary patch literal 17745 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 S+B&FHfW5V|Ri5S6-Twnc%6EqV literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-t3?!qQvP6NDT!2rA>;M1%UHh>kpp>KT+_gZJ z93?@1!3?5v-_5!8eje`;r9z;XnWu|m2*>s0gphX`Whn^)Z(qE~5KXwi5G2dRBdMU( w$mmjL!m!ehgY}u?(*;@!e@S#(&*GM3P*sus_tRBpFVF-APgg&ebxsLQ00z%JrT_o{ diff --git a/data/images/search_searchbar_bg_nor.png b/data/images/search_searchbar_bg_nor.png index 3faae22d9c8251cdd1a024d172674b6496f6f791..ad1a285d66c3bf941d9f0c7e8f16102e3846dc35 100644 GIT binary patch literal 17740 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 Wk9+DCd6j@;01h@T*2Px7yZ;9iK2@Ut delta 132 zcmX@p#W7>`s^LS1_O*MSN@G>GjOw;!7aiF;jp00i_>zopr06A?k*#H0l diff --git a/data/images/search_searchbar_small_bg_foc.png b/data/images/search_searchbar_small_bg_foc.png index 8c1c0c9e92757732ee1921488b56f2ce3f398301..0a81cdcca66f15284f4c0bd3f55e479b49a7d261 100644 GIT binary patch literal 17688 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 Q1wbO;XzOZIWbM22-?q3!>Hq)$ delta 73 zcmbQy#TYd~!ikZYfq~&x{FGoI#TMWb;_BM}9|*+%t8M^_@O!#AhHzX@PHFVdQ&MBb@06u0F@&Et; diff --git a/data/images/search_searchbar_small_bg_nor.png b/data/images/search_searchbar_small_bg_nor.png index 6bb01f81afac11b068d311ccf8aea92fcc0598de..72121449cb0b7129bbaffb6329b3bec0723dc3cf 100644 GIT binary patch literal 17688 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 VS@c}d>qp20ob23e3v4#;`ZxG?NC*G` delta 73 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 literal 3115 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 literal 2660 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 TH%ZO200000NkvXXu0mjfeoa$b delta 139 zcmdlgHivP7WIYQ514ABL8IWXPNq6*hWMFJtVEAHMJdhvk>Eal|aXs|RTCN5I3AcyW zDLz diff --git a/data/images/setting_list_dot_s.png b/data/images/setting_list_dot_s.png index 81b6efdb3f0ed836681f257ec05660860e1852a4..76f5e78b775a7b7faedad591fca0a17848ed8faf 100644 GIT binary patch literal 2899 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 literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^93afW3?x5a^xFxf>;rs4T>t<7|M#XK+35JXUH^eb ziIfES1v98`|Mq#KqVWf<1Alg{e!K4ZlNHjTuFkuF@|K=1jv*Y^lM@nBlF|}WfpoeU zBNLw=o1UOSLh6GygNOtkJ~lay=IM=-SzSIeZr%8in}dtfn1P|_H*>j}OPVRr5C%_I KKbLh*2~7ZNcUjf| diff --git a/data/images/settings_bg.png b/data/images/settings_bg.png index 4de3ac9cf708935fe2ab35310c78ba23b09c8f6d..72e6b0b45b9c752632c295ac446dce846c13fe0b 100644 GIT binary patch literal 117649 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 M%&wT$T=07Mf0jEqYybcN diff --git a/data/images/settings_bg_shadow.png b/data/images/settings_bg_shadow.png index 6713c95c9444a5b917a271b33afbb358db8d8aca..e38f2a4c7a673949239e9be69537ea4819e654da 100644 GIT binary patch literal 17691 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 c#>XXrk&80pjtv<6>QCwSDiu0V;q-)&Kwi delta 81 zcmbQ;#h5%n(u;+Gfnl0^>~$c;lJ4m1$iUdP!0^SicpzWO)5S4_<9c$6KbP0l+XkKL4+LT diff --git a/data/images/slider_thumb.png b/data/images/slider_thumb.png index 93971c1477cb15be0a38bda72cc4e03840cbf454..ae976f0c5c4f0b61656cbcb85c00979ba1ebad0d 100644 GIT binary patch literal 18869 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 literal 1395 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 o$`;9`ypiB<<>p_1|&h7!2kdN delta 203 zcmV;+05t!+ivimKkQsjj0000gC3kTE000DMK}|sb0fwM4=$2mq005FnL_t&t*JaMJ zZ30mg1<|wqE0B>82?V4xKt>t#K{HSdT@bhga<3r4AeqO11S=#gPdN7mgIs6iJCSQW zx%o3}dfONpA9pW%+!-5cC?*z`hka(|VQ*<+qO_{J(5|*$b5=uJt#DTxd>EOTeonb{ zI^V8pK?)Bg#LZdfN2T;x!b5d+a#8!H7p(z)g?}_}H&5kkRstAc8G--+002ovPDHLk FV1nu_Ox^$h diff --git a/data/images/tooltip_bg.png b/data/images/tooltip_bg.png index 8381930258ecde387ef7a33d766360f011a713f8..f7c6412496fff064e40980b274317375fd3146e0 100644 GIT binary patch literal 17912 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 delta 259 zcmV+e0sQ{>ivg1YkQsjj0001$DvkUA000DMK}|sb0fwM4=$2mq007EKL_t&-({0aB zjzK{Xfbp+dKSIKb%*F*Q-Gtk?fW!^B0Ey)!PQW1$u@Nh=VKO@Yym|AwW`PlD-}aZP zQ~?0m(uq1%bvn@|&$O$rbsx~wuoeK>G?Z)#AennZ4iO^#;Z1u|Fyzxy2BDgCPy#9G22}xmnk%an;)7x|+57ollN@3wb`MQO5jl^Eh_w zb9g+0#b6MWU(Ou(A`!q)q(Yej22XgN_o + +#ifdef LOG_TAG +#undef LOG_TAG +#endif +#define LOG_TAG "org.tizen.settings-tv-ref" + +#ifndef _ERR +#define _ERR(fmt, args...) (LOGE("[%s:%d] "fmt"\n", __func__, __LINE__, ##args)) +#endif + +#ifndef _DBG +#define _DBG(fmt, args...) (LOGD("[%s:%d] "fmt"\n", __func__, __LINE__, ##args)) +#endif + +#ifndef _INFO +#define _INFO(fmt, args...) \ + (LOGI("[%s:%d] "fmt"\n", __func__, __LINE__, ##args)) +#endif + +#endif /* __DBG_H__ */ diff --git a/include/common_defs.h b/include/def.h similarity index 85% rename from include/common_defs.h rename to include/def.h index fa0519e..fed4bd5 100644 --- a/include/common_defs.h +++ b/include/def.h @@ -14,8 +14,8 @@ * limitations under the License. */ -#ifndef __COMMON_DEFS_H__ -#define __COMMON_DEFS_H__ +#ifndef __DEF_H__ +#define __DEF_H__ #define WIN_WIDTH 1920 #define WIN_HEIGHT 1080 @@ -266,44 +266,23 @@ #define TEXT_STYLE_MEDIUM "Tizen Sans:style=Medium" #define TEXT_STYLE_BOLD "Tizen Sans:style=Bold" -/* VCONF KEYS */ - -/* Proxy */ -#define VCONF_NETWORK_TYPE "db/menu/network/network_type" -#define VCONF_PROXY_METHOD "db/menu/proxy/method" -#define VCONF_PROXY_IP "db/menu/proxy/ip" -#define VCONF_PROXY_URL "db/menu/proxy/url" - -/* Network */ -#define WIRED_DNS_KEY "db/menu/network/wired_dns" -#define WIRED_GATEWAY_KEY "db/menu/network/wired_gateway" -#define WIRED_IP_LAST_MODE "db/menu/network/wired_ip_mode" -#define WIRED_DNS_LAST_MODE "db/menu/network/wired_dns_mode" -#define WIRED_IP_KEY "db/menu/network/wired_ip" -#define WIRED_SUBMASK_KEY "db/menu/network/wired_subnet" - -#define WIRELESS_DNS_KEY "db/menu/network/wireless_dns" -#define WIRELESS_GATEWAY_KEY "db/menu/network/wireless_gateway" -#define WIRELESS_IP_LAST_MODE "db/menu/network/wireless_ip_mode" -#define WIRELESS_DNS_LAST_MODE "db/menu/network/wireless_dns_mode" -#define WIRELESS_IP_KEY "db/menu/network/wireless_ip" -#define WIRELESS_SUBMASK_KEY "db/menu/network/wireless_subnet" - -/* Time */ -#define KEY_SYSTEM_CLOCK_MODE "db/menu/system/time/clock/clock_mode" -#define KEY_SLEEPTIMER "db/menu/system/time/sleeptimer/value" -#define KEY_SLEEPTIMER_TIMERID "db/menu/system/time/sleeptimer/timer_id" -#define KEY_WAKEUP_TIMER_SETUP "db/menu/system/time/ontimer1/setup" - -#define VCONF_KEY_24HOUR_MODE "db/menu/system/clock/24hour_mode" -#define KEY_CHANGE_PASSCODE "db/menu/system/change_pin" -#define KEY_SUBTITLE_LANGUAGE "db/menu/subtitle/subtitlelanguage" - -/* Broadcasting */ -#define KEY_CHANNEL_LOCK "db/menu/broadcasting/channel_lock" - -/* Lang and Region */ -#define KEY_SYSTEM_LANGUAGE "db/menu_widget/language" -#define KEY_SYSTEM_COUNTRY "db/menu_widget/regionformat" - -#endif /* __COMMON_DEFS_H__ */ +/* Key defines */ +#define KEY_UP "Up" +#define KEY_DOWN "Down" +#define KEY_LEFT "Left" +#define KEY_RIGHT "Right" +#define KEY_ENTER "Return" +#define KEY_EXIT "XF86Close" + +#define KEY_0 "0" +#define KEY_1 "1" +#define KEY_2 "2" +#define KEY_3 "3" +#define KEY_4 "4" +#define KEY_5 "5" +#define KEY_6 "6" +#define KEY_7 "7" +#define KEY_8 "8" +#define KEY_9 "9" + +#endif /* __DEF_H__ */ diff --git a/include/settingviewmgr.h b/include/settingviewmgr.h deleted file mode 100644 index 3acf9d2..0000000 --- a/include/settingviewmgr.h +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __SETTING_VIEW_MGR_H__ -#define __SETTING_VIEW_MGR_H__ - - -#include -#include "data_wrapper.h" -//#include "viewmgr.h" - - -#define SELECTED_ITEM_ID "bottomslider_selected_item" - -#define VCLASS_TITLE_MAIN_VIEW "Main View" -#define VCLASS_TITLE_BOTTOM_SLIDER "Bottom Slider" -#define VCLASS_TITLE_BOTTOM_SUBLIST "Bottom Sublist" -#define VCLASS_TITLE_DEVICE_MANAGER "Device Manager" -#define VCLASS_TITLE_CHANGE_PASSCODE "Change Passcode" -#define VCLASS_TITLE_RESET_POPUP "Reset Popup" -#define VCLASS_TITLE_SUBLIST "Sublist" -#define VCLASS_TITLE_SYSTEM_CLOCK "System Clock" -#define VCLASS_TITLE_UG "UI Gadget" -#define VCLASS_TITLE_UPGRADE "Upgrade Software" -#define VCLASS_TITLE_NEED_PASSCODE "Need Passcode" - - -struct evas_obj_data { - Evas_Object *subitem_box; - Evas_Object *cur_btn; - - const char *display_name; -}; - -struct obj_geometry_data { - int width; - int height; - int x; - int y; -}; - -class CSettingMgr; - - -class CSettingBaseView { -private: - char *m_title; - -public: - CSettingBaseView(const char *pViewId); - virtual ~CSettingBaseView(); - const char *ViewId(void) { return m_title; } - - virtual bool Create(struct settingview_data *view, void *prev) { return false; } - virtual void Show(void) {} - virtual void Pause(void) {} - virtual void Resume(void) {} - virtual void Refresh(void) {} - virtual void Update(void) {} - virtual void Hide(void) {} - virtual void Destroy(void) {} - virtual void LangChanged(void) {} - virtual void Frozen(void) {} - virtual void Active(void) {} - - const char *Title(void) { return m_title; } - virtual Evas_Object *Base(void); - - int hide_view; - - - /*void(*show)(Evas_Object *base); - void(*pause)(Evas_Object *base); - void(*resume)(Evas_Object *base); - void(*refresh)(Evas_Object *base); - void(*update)(Evas_Object *base); - void(*hide)(Evas_Object *base); - void(*destroy)(Evas_Object *base); - void(*lang_changed)(Evas_Object *base); - void(*frozen)(Evas_Object *base); - void(*active)(Evas_Object *base); - int hide_view;*/ -}; - -/* -struct setting_class { - const char *title; - Evas_Object * (*create)(CSettingMgr *mgr, - struct settingview_data *view, void *prev); - void (*show)(Evas_Object *base); - void (*pause)(Evas_Object *base); - void (*resume)(Evas_Object *base); - void (*refresh)(Evas_Object *base); - void (*update)(Evas_Object *base); - void (*hide)(Evas_Object *base); - void (*destroy)(Evas_Object *base); - void (*lang_changed)(Evas_Object *base); - void (*frozen)(Evas_Object *base); - void (*active)(Evas_Object *base); - int hide_view; -};*/ - - -class CSettingMgr { -private: - static CSettingMgr *instance; - struct SSettingMgr *m; - -protected: - CSettingMgr() : m(0) {} - virtual ~CSettingMgr() {} - -public: - static bool Initialize(Evas_Object *win); - static void Finalize(void); - - static CSettingMgr *GetInstance(void); - - bool ViewPush(const char *name, void *data); - void ViewPop(void); - Evas_Object *Window(void); - - settingview_data *GetView(const char *name); - settingmgr_data *GetData(void); - Eina_List *GetViewList(void); - - bool LaunchItem(const char *name); - Eina_Array *GetItemPath(void); - void ViewRefresh(void); - void SetRefreshFlag(unsigned int val); - unsigned int GetRefreshFlag(void); - void SetRelaunchFlag(unsigned int val); - unsigned int GetRelaunchFlag(void); - void FreezeTimeout(void); - void ThawTimeout(void); - Eina_Bool GetTimeoutFreezeState(void); - void LangChanged(void); -}; - - -#endif /* __SETTING_VIEW_MGR_H__ */ diff --git a/include/timeout_handler.h b/include/timeout_handler.h index ee94854..5b0aaad 100644 --- a/include/timeout_handler.h +++ b/include/timeout_handler.h @@ -17,33 +17,15 @@ #ifndef __TIMEOUT_HANDLER_H__ #define __TIMEOUT_HANDLER_H__ - #define TIMEOUT_SECS 60 - -class CTimeoutHandler { -private: - struct STimeoutHandler *m; - -public: - CTimeoutHandler() : m(0) {} - virtual ~CTimeoutHandler() {} - - bool Create(double val); - virtual void Destroy(void); - - void FreezeTimer(void); - void ThawTimer(void); - void ChangeInterval(double val); -}; -/*struct timeout_handler; +struct timeout_handler; void timeout_handler_freeze_timer(struct timeout_handler *data); void timeout_handler_thaw_timer(struct timeout_handler *data); -void timeout_handler_change_interval(struct timeout_handler *data, double val); - +void timeout_handler_change_interval(struct timeout_handler *data, + double val); struct timeout_handler *timeout_handler_init(double val); -void timeout_handler_fini(struct timeout_handler *data);*/ - +void timeout_handler_fini(struct timeout_handler *data); #endif /* __TIMEOUT_HANDLER_H__ */ diff --git a/include/utils.h b/include/utils.h index cd7e1b4..f303486 100644 --- a/include/utils.h +++ b/include/utils.h @@ -23,7 +23,8 @@ #define i18n_init() bindtextdomain(PACKAGE, LOCALEDIR) char *utils_get_translation_str(const char *msgid); -Evas_Object *utils_add_btn(Evas_Object *parent, const char *style, const char *text, Eina_Bool event); +Evas_Object *utils_add_btn(Evas_Object *parent, + char *style, const char *text, Eina_Bool event); Evas_Object *utils_add_scroller(Evas_Object *base); Evas_Object *utils_add_box(Evas_Object *base); Evas_Object *utils_add_ctxpopup(Evas_Object *base, char *style); diff --git a/include/view_bottomslider.h b/include/view_bottomslider.h new file mode 100644 index 0000000..bff6532 --- /dev/null +++ b/include/view_bottomslider.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VIEW_BOTTOMSLIDER_H__ +#define __VIEW_BOTTOMSLIDER_H__ + +#include "viewmgr.h" + +struct setting_class *view_bottomslider_get_vclass(void); + +#endif /* __VIEW_BOTTOMSLIDER_H__ */ diff --git a/include/view_bottomsublist.h b/include/view_bottomsublist.h new file mode 100644 index 0000000..ad32007 --- /dev/null +++ b/include/view_bottomsublist.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VIEW_BOTTOMSUBLIST_H__ +#define __VIEW_BOTTOMSUBLIST_H__ + +#include "viewmgr.h" + +struct setting_class *view_bottomsublist_get_vclass(void); + +#endif /* __VIEW_BOTTOMSUBLIST_H__ */ diff --git a/include/view_device_manager.h b/include/view_device_manager.h new file mode 100644 index 0000000..09d9ee1 --- /dev/null +++ b/include/view_device_manager.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VIEW_DEVICE_MANAGER_H__ +#define __VIEW_DEVICE_MANAGER_H__ + +#include "viewmgr.h" + +struct setting_class *view_device_manager_get_vclass(void); + +#endif /* __VIEW_DEVICE_MANAGER_H__ */ diff --git a/include/view_maincatalog.h b/include/view_maincatalog.h index 0124b7c..675379a 100644 --- a/include/view_maincatalog.h +++ b/include/view_maincatalog.h @@ -17,57 +17,8 @@ #ifndef __VIEW_MAINMENU_H__ #define __VIEW_MAINMENU_H__ +#include "viewmgr.h" -#include "settingviewmgr.h" - - -class CMainCatalogView : - public CSettingBaseView, - public CListenerMgr, - public IMouseClickedListener, - public IKeyUpListener, - public IKeyDownListener -{ -private: - struct SMainCatalog *m; - - static void sm_CbViewAniFinish(void *data, Evas_Object *obj, const char *emission, const char *source); - void m_OnViewAniFinish(Evas_Object *obj, const char *emission, const char *source); - - static void sm_CbMainItemBtnMouseIN(void *data, Evas *e, Evas_Object *obj, void *ei); - void m_OnMainItemMouseIN(Evas *e, Evas_Object *obj, void *ei); - - void m_SubItemClicked(Evas_Object *obj); - bool m_DrawSubItems(const char *name); - void m_MoveFromMainitemToSubitem(Evas_Object *mainbtn); - void m_MoveFromSubitemToMainitem(Evas_Object *btn); - bool m_AddIconBtns(Eina_List *list); - void m_DrawMainItems(void); - -public: - CMainCatalogView(const char *pViewId) : - CSettingBaseView(pViewId), - IMouseClickedListener(this), - IKeyUpListener(this), - IKeyDownListener(this), - m(0) {} - virtual ~CMainCatalogView() {} - - Evas_Object *Base(void); - - virtual bool Create(struct settingview_data *view, void *prev); - virtual void Show(void); - virtual void Refresh(void); - virtual void Hide(void); - virtual void Destroy(void); - virtual void LangChanged(void); - virtual void Frozen(void); - virtual void Active(void); - - virtual void OnMouseClicked(int id, Evas_Object *obj); - virtual void OnKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Up *ev); - virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev); -}; - +struct setting_class *view_maincatalog_get_vclass(void); #endif /* __VIEW_MAINMENU_H__ */ diff --git a/include/view_need_pwd.h b/include/view_need_pwd.h index 0ae50bc..7dafdf2 100644 --- a/include/view_need_pwd.h +++ b/include/view_need_pwd.h @@ -17,35 +17,8 @@ #ifndef __VIEW_NEED_PASSCODE_H__ #define __VIEW_NEED_PASSCODE_H__ +#include "viewmgr.h" -#include "settingviewmgr.h" - - -class CNeedPasscodeView : - public CSettingBaseView { -private: - struct SNeedPasscodeView *m; - -private: - static void sm_CbCtxpopupDismissed(void *priv, Evas_Object *obj, void *ev); - void m_OnCtxpopupDismissed(Evas_Object *obj, void *ev); - - static void sm_CbKeyDown(void *priv, Evas *e, Evas_Object *obj, void *ei); - void m_OnKeyDown(Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev); - - int m_AddViewEntries(void); - -public: - CNeedPasscodeView(const char *pViewId) : CSettingBaseView(pViewId), m(0) {} - virtual ~CNeedPasscodeView() {} - - Evas_Object *Base(void); - - virtual bool Create(struct settingview_data *view, void *prev); - virtual void Show(void); - virtual void Refresh(void); - virtual void Hide(void); - virtual void Destroy(void); -}; +struct setting_class *view_need_passcode_get_vclass(void); #endif /* __VIEW_NEED_PASSCODE_H__ */ diff --git a/include/view_pwd_popup.h b/include/view_pwd_popup.h index 9a40adf..58cb88f 100644 --- a/include/view_pwd_popup.h +++ b/include/view_pwd_popup.h @@ -17,31 +17,8 @@ #ifndef __VIEW_PASSCODE_POPUP_H__ #define __VIEW_PASSCODE_POPUP_H__ +#include "viewmgr.h" -#include "settingviewmgr.h" - - -//struct setting_class *view_passcode_popup_get_vclass(void); -class CPasscodePopupView : - public CSettingBaseView { -private: - struct SPasscodePopupView *m; - -private: - static void sm_CbCtxpopupDismissed(void *priv, Evas_Object *obj, void *ev); - void m_OnCtxpopupDismissed(Evas_Object *obj, void *ev); - -public: - CPasscodePopupView(const char *pViewId) : CSettingBaseView(pViewId), m(0) {} - virtual ~CPasscodePopupView() {} - - Evas_Object *Base(void); - - virtual bool Create(struct settingview_data *view, void *prev); - virtual void Show(void); - virtual void Hide(void); - virtual void Destroy(void); -}; - +struct setting_class *view_passcode_popup_get_vclass(void); #endif /* __VIEW_PASSCODE_POPUP_H__ */ diff --git a/include/view_resetpopup.h b/include/view_resetpopup.h new file mode 100644 index 0000000..d9673d9 --- /dev/null +++ b/include/view_resetpopup.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VIEW_RESETPOPUP_H__ +#define __VIEW_RESETPOPUP_H__ + +#include "viewmgr.h" + +struct setting_class *view_resetpopup_get_vclass(void); + +#endif /* __VIEW_RESETPOPUP_H__ */ diff --git a/include/view_sublist.h b/include/view_sublist.h index 81dd8c1..930faaa 100644 --- a/include/view_sublist.h +++ b/include/view_sublist.h @@ -17,54 +17,8 @@ #ifndef __VIEW_SUBLIST_H__ #define __VIEW_SUBLIST_H__ +#include "viewmgr.h" -#include "settingviewmgr.h" - - -class CSublistView : - public CSettingBaseView, - public CListenerMgr, - public IFocusedListener, - public IUnfocusedListener, - public IMouseClickedListener, - public IKeyDownListener -{ -private: - struct SSublistView *m; - -private: - static void sm_CbCtxpopupDismissed(void *data, Evas_Object *obj, void *ev); - void m_OnCtxpopupDismissed(Evas_Object *obj, void *ev); - - bool m_DrawCtxpopupLayout(void); - bool m_DrawSublist(void); - void m_ExitView(void); - void m_SetSelectedValue(Evas_Object *obj); - bool m_DrawListItems(Eina_List *list); - -public: - CSublistView(const char *pViewId) : - CSettingBaseView(pViewId), - IFocusedListener(this), - IUnfocusedListener(this), - IMouseClickedListener(this), - IKeyDownListener(this), - m(0) {} - virtual ~CSublistView() {} - - Evas_Object *Base(void); - - virtual bool Create(struct settingview_data *view, void *prev); - virtual void Show(void); - virtual void Hide(void); - virtual void Destroy(void); - -public: - virtual void OnMouseClicked(int id, Evas_Object *obj); - virtual void OnFocused(int id, Evas_Object *obj, Elm_Object_Item *item); - virtual void OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item); - virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev); -}; - +struct setting_class *view_sublist_get_vclass(void); #endif /* __VIEW_SUBLIST_H__ */ diff --git a/include/view_system_clock.h b/include/view_system_clock.h index 80175aa..2e9eb3f 100644 --- a/include/view_system_clock.h +++ b/include/view_system_clock.h @@ -17,55 +17,8 @@ #ifndef _VIEW_SYSTEM_CLOCK_H__ #define _VIEW_SYSTEM_CLOCK_H__ +#include "viewmgr.h" -#include "settingviewmgr.h" - - -class CSystemClockView : - public CSettingBaseView, - public CListenerMgr, - public IFocusedListener, - public IUnfocusedListener, - public IMouseClickedListener, - public IKeyDownListener -{ -private: - struct SSystemClockView *m; - -private: - static void sm_CbCtxpopupDismissed(void *priv, Evas_Object *obj, void *ev); - void m_OnCtxpopupDismissed(Evas_Object *obj, void *ev); - - void m_ExitView(void); - - bool m_DrawSysclkSublist(void); - bool m_AddSysclkSublistItem(Eina_List *list, const char *selval); - -public: - CSystemClockView(const char *pViewId) : - CSettingBaseView(pViewId), - IFocusedListener(this), - IUnfocusedListener(this), - IMouseClickedListener(this), - IKeyDownListener(this), - m(0) {} - virtual ~CSystemClockView() {} - - Evas_Object *Base(void); - - virtual bool Create(struct settingview_data *view, void *prev); - virtual void Show(void); - virtual void Refresh(void); - virtual void Hide(void); - virtual void Destroy(void); - -public: - // If buttons are clicked - virtual void OnFocused(int id, Evas_Object *obj, Elm_Object_Item *item); - virtual void OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item); - virtual void OnMouseClicked(int id, Evas_Object *obj); - virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev); -}; - +struct setting_class *view_system_clock_get_vclass(void); #endif /* _VIEW_SYSTEM_CLOCK_H__ */ diff --git a/include/view_uigadget.h b/include/view_uigadget.h index 367c256..d35ee8b 100644 --- a/include/view_uigadget.h +++ b/include/view_uigadget.h @@ -17,58 +17,8 @@ #ifndef __VIEW_UIGADGET_H__ #define __VIEW_UIGADGET_H__ +#include "viewmgr.h" -#include -#include "settingviewmgr.h" - - -class CUiGadget { -private: - ui_gadget_h m_handler; -private: - static void sm_CbLayout(ui_gadget_h ug, enum ug_mode mode, void *priv); - static void sm_CbResult(ui_gadget_h ug, service_h result, void *priv); - static void sm_CbDestroy(ui_gadget_h ug, void *priv); - static void sm_CbEnd(ui_gadget_h ug, void *priv); - -protected: - - virtual void t_OnLayout(ui_gadget_h ug, ug_mode mode) {} - virtual void t_OnResult(ui_gadget_h ug, service_h result) {} - virtual void t_OnDestroy(ui_gadget_h ug) {} - virtual void t_OnEnd(ui_gadget_h ug) {} - -public: - CUiGadget() : m_handler(0) {} - - bool Create(ui_gadget_h parent, const char *name, ug_mode mode, service_h service); - virtual void Destroy(void); -}; - -class CUiGadgetView : - public CSettingBaseView, - public CUiGadget { -private: - struct SUiGadgetView *m; - -protected: - virtual void t_OnDestroy(ui_gadget_h ug); - -private: - bool m_Load(void); - void m_BackToMainview(void); - -public: - CUiGadgetView(const char *pViewId) : CSettingBaseView(pViewId), m(0) {} - virtual ~CUiGadgetView() {} - - Evas_Object *Base(void); - - virtual bool Create(struct settingview_data *view, void *prev); - virtual void Show(void); - virtual void Hide(void); - virtual void Destroy(void); -}; - +struct setting_class *view_uigadget_get_vclass(void); #endif /* __VIEW_UIGADGET_H__ */ diff --git a/include/view_upgrade_popup.h b/include/view_upgrade_popup.h new file mode 100644 index 0000000..9364ead --- /dev/null +++ b/include/view_upgrade_popup.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VIEW_UPGRADE_POPUP_H__ +#define __VIEW_UPGRADE_POPUP_H__ + +#include "viewmgr.h" + +#define UPGRADE_SW_TITLE "Software upgrade" +#define UPGRADE_SW_NOW "Update now" +#define UPGRADE_SW_AVAIL_TEXT "A new software update is available.\ +
Upgrade from version A to version B?" +#define UPGRADE_SW_UNAVAIL_TEXT "There are no new updates\ +
for you at the moment." +#define NETWORK_DISCONNECTED_TEXT "Please check that your network \ +
has been configured." +#define INTERNET_DISCONNECTED_TEXT "Fail to connect.\ +
Please contact your Internet Service Provider." +#define UPDATE_UP_TEXT "Checking for updates..." +#define UPDATE_MIDDLE_TEXT "Last checked for updates
" +#define DYNAMIC_TEXT "Checking for network..." + +#define UPGRADE_BTN_BOX_PADDING 20 + +enum { + UPGRADE_BTN_0, + UPGRADE_BTN_1, + UPGRADE_BTN_MAX +}; +struct setting_class *view_upgrade_popup_get_vclass(void); + +#endif /* __VIEW_UPGRADE_POPUP_H__ */ \ No newline at end of file diff --git a/include/viewmgr.h b/include/viewmgr.h new file mode 100644 index 0000000..40843aa --- /dev/null +++ b/include/viewmgr.h @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VIEWMGR_H__ +#define __VIEWMGR_H__ + +#include +#include "data_wrapper.h" + +#define SELECTED_ITEM_ID "bottomslider_selected_item" + +#define VCLASS_TITLE_MAIN_VIEW "Main View" +#define VCLASS_TITLE_BOTTOM_SLIDER "Bottom Slider" +#define VCLASS_TITLE_BOTTOM_SUBLIST "Bottom Sublist" +#define VCLASS_TITLE_DEVICE_MANAGER "Device Manager" +#define VCLASS_TITLE_CHANGE_PASSCODE "Change Passcode" +#define VCLASS_TITLE_RESET_POPUP "Reset Popup" +#define VCLASS_TITLE_SUBLIST "Sublist" +#define VCLASS_TITLE_SYSTEM_CLOCK "System Clock" +#define VCLASS_TITLE_UG "UI Gadget" +#define VCLASS_TITLE_UPGRADE "Upgrade Software" +#define VCLASS_TITLE_NEED_PASSCODE "Need Passcode" + +struct setting_mgr; + +struct evas_obj_data { + Evas_Object *subitem_box; + Evas_Object *cur_btn; + + const char *display_name; +}; + +struct obj_geometry_data { + int width; + int height; + int x; + int y; +}; + +struct setting_class { + const char *title; + Evas_Object * (*create)(struct setting_mgr *mgr, + struct settingview_data *view, void *prev); + void (*show)(Evas_Object *base); + void (*pause)(Evas_Object *base); + void (*resume)(Evas_Object *base); + void (*refresh)(Evas_Object *base); + void (*update)(Evas_Object *base); + void (*hide)(Evas_Object *base); + void (*destroy)(Evas_Object *base); + void (*lang_changed)(Evas_Object *base); + void (*frozen)(Evas_Object *base); + void (*active)(Evas_Object *base); + int hide_view; +}; + +struct setting_mgr *settingmgr_init(Evas_Object *win); +void settingmgr_fini(struct setting_mgr *mgr); +int settingmgr_view_push(struct setting_mgr *mgr, + const char *name, void *data); +void settingmgr_view_pop(struct setting_mgr *mgr); +Evas_Object *settingmgr_get_win(struct setting_mgr *mgr); +struct settingview_data *settingmgr_get_view(struct setting_mgr *mgr, + const char *name); +struct settingmgr_data *settingmgr_get_data(struct setting_mgr *mgr); +Eina_List *settingmgr_get_view_list(struct setting_mgr *mgr); +int settingmgr_launch_item(struct setting_mgr *mgr, + const char *name); +Eina_Array *settingmgr_get_item_path(struct setting_mgr *mgr); +void settingmgr_view_refresh(struct setting_mgr *mgr); +void settingmgr_set_refresh_flag(struct setting_mgr *mgr, + unsigned int val); +unsigned int settingmgr_get_refresh_flag(struct setting_mgr *mgr); +void settingmgr_set_relaunch_flag(struct setting_mgr *mgr, + unsigned int val); +unsigned int settingmgr_get_relaunch_flag(struct setting_mgr *mgr); +void settingmgr_freeze_timeout(struct setting_mgr *mgr); +void settingmgr_thaw_timeout(struct setting_mgr *mgr); +Eina_Bool settingmgr_get_timeout_freeze_state(struct setting_mgr *mgr); +void settingmgr_lang_changed(struct setting_mgr *mgr); + +#endif /* __VIEWMGR_H__ */ diff --git a/json/accessibility.json b/json/accessibility.json deleted file mode 100644 index ecf70d5..0000000 --- a/json/accessibility.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "settingitems": { - "screen-reader": { - "display-name": "Screen Reader", - "style": "title.value", - "setting-ui": { - "style": "ctxpopup" - }, - "data": { - "key": "settings/accessibility/screen_reader", - "type": "bool", - "list": [ - { - "display-value": "OFF", - "value": "0" - }, - { - "display-value": "ON", - "value": "1" - } - ] - } - }, - "magnifier": { - "display-name": "Magnifier", - "style": "title.value", - "status": "disabled", - "setting-ui": { - "style": "ctxpopup" - }, - "data": { - "key": "settings/accessibility/magnifier", - "type": "bool", - "list": [ - { - "display-value": "OFF", - "value": "0" - }, - { - "display-value": "ON", - "value": "1" - } - ] - } - } - }, - "settingtree": { - "accessibility": { - "subsettingitems": [ - "screen-reader", - "magnifier" - ], - "parentitem": "maincatalog" - } - } -} - diff --git a/json/maincatalog.json b/json/maincatalog.json index 887a747..85aa908 100644 --- a/json/maincatalog.json +++ b/json/maincatalog.json @@ -34,11 +34,6 @@ "display-name": "SUPPORT", "style": "animicon", "resource-file": "support.edj" - }, - "accessibility": { - "display-name": "ACCESSIBILITY", - "style": "animicon", - "resource-file": "accessibility.edj" } }, "settingtree": { @@ -50,8 +45,7 @@ "network", "device-manager", "system", - "support", - "accessibility" + "support" ], "parentitem": "maincatalog" } diff --git a/org.tizen.settings-tv-ref.png b/org.tizen.settings-tv-ref.png index a29a76d5f1ec3e8fb42137202e64d8a17e10df3b..8b143f37dc9bea4b8827822d768feb5ebc6273d3 100644 GIT binary patch literal 21525 zcmeI4cT`hZ)aWlodY2+12%*jIp5>CD}9XJgFAgoFt5tzp1Hf;o|TYg_vP0QvE6A3PxA_6YzWGeWAV85_Hz&?rAwlsCJM zni{*eFUlF|fdGKO@hmeJbF&pjg`GDaRrR97Zt0;+8A#YoRb#{G6L-stya?gFFc4w*gpnOzu`O#KZ zSwC?j2}O#wxQS#KMS&_C?aY<-))%u2BFf=pT;2c;Ng15OZ=Vwn*bRk31woC(^#ESr z5IG6ZXpq?`dMfIW`kiX}S-h~Tc#Y@;89kCPdO$h&rs_jLSracTD~-nt$RPwAx}6;7 z0b^mnf%nqV5D=ENn;wD(*xuq`z{^Ph*pDNk)d5#|;8FjXYZ`!+C_wM5*D4FV76wFh zES_cp6DZ<9rr^6&jF9pMgWhjd@2cC@wt4^{CxHPo+O7S-KB|(wKB=1( zRQAH}8i)=-j*jyOi~U93$^bBn4jnuY0+*c(lP3!EJjmrv_KlYN9-l*@dpp}R^>bX|5W8?K!rhtX zo{#zuPW2~}UUi&YiqqPwBtP6^9RjuLI96E+(9fID`P@{`xV{B>0E$sf}wq z@tPIqO%kT`h+U2*Z9=+OF80o7dJ~Xdf~2;X={0k93vJd-1z&vGsI!{Y3Gy8PG6#I0om99kb$5B7$d!6LPEoC0wDIi; zV)0fFQIQuds!wEuNRynppMV}w6umfEdgc*9P0Y4a|C0bhx^Rs~QYpd!RdyJginf)$ zmEmjceD+gZ613x_(xe1eO`3T@N%?xuc&ceXx1Ml>h(%dx3vrIn#T^IJghZ>gN^{Z0 zs6lwE;_-E!+&6zo_fqqvmnr9pP(h}I_DRm9&T+W=Q)1a$LhOPa5er!hEeqlcEDIc) zwq#k3%0BmZ&F1(_yWDh{7iktH7KspP5EYAi8KzVDcg<-f<7`xm?^c*THi^nVE^$6X zw)YC7j^2af+~lE?u1u~w$j5Kd)wEN|Y=)@=mM^i%N^FrY)yar=u*a1S$kBFeG%5CF>^hB(n&B%?k=27QQJY zx7f1iHjgVfXLhkf(?Z;AzJT;qN|8ljmhq|?i3*p7ehiUyi++od z+I^FpC-(ETFWAYQn9Bl%INT|VBF~3Qw(>mb9lPK!P?NULS`({KSa4TXO}QR@|9BWwM@%EHF3OtUzv zn0utAxF(M_ugWmVuqb=PrKR+@iq49HO6JnV*F+N~6`mCrVJ?nLE|qO1E$c~jNf)ax z-q=?lri>b+Dq^)^4fT8GOD}gu?oCGD?RBM#Z68xsz%Ew(H2tr|=PQnP^S2_i%rb|x zT$o&{{H|<8$HwSg?iNW^6v8; z;tqedwYc9vONZKw$>N|A`JH4@_vuHWMruakF6GOdU?*^bW$|cf<%5929oPnw;wMGl zJM)V3Q0X_2H`ew&(v6iJmEA@ysBHU)X|+q7hw#JT!$BY~j2q8|ASPTT+!p`qZtw+; zhMP)q6Npbw$JSJ?=TxaMsKi|^zP#8}%;DPcKE9Y^XF07ep$|zFVI2B)WPlj91dDA6 zrQnT-im;4Sy6GKlb#hQFRWe|3Qq6B#{fl~v`kPD_F(cW>!n%?IiiIL>&~fQ%iE5=6 zBF@%5!&X^VIv#qbWJLr@q`W-pr}x&jqUN&Z$mc_t(!d>d-a&W!nm3CX1> z>qi^P-1?wGBaqK{oqO|m0QXI@pk~%)7Z7+*YB2h>+F1cM!%b}ggW$yX3AK_zTy5eH zgchr=@)pF`>Qm}ZWy)nUX85yvLKNic#I7VJ#QUfgau_64xV&>&a`x|jgot>0(B>6e z31&+s?sPAUe{{@Rn5;te;ahVXzEJ_f#Y{A~Op0ciqcGF*DiHyOCd5{2q& zNT0m*te~j13f}Mh(s^a+jc~RtRZ3y%QYw`f<=FT$%IP!D*0w)sOn_5+`6g5Bs{pD0SY;@OaaGfQj_LIc>;R)N?oqfg5`Uwj>3xi?j zVZ>LRuVp(*B{797yD48i?TQUOeb(9uUJ~pRb5d1|R=pZ#eW_q>8aE=iszud)y8a+* zBS4r^iqhi7?H6;L-s(XMD?6mqJ8YD4sCAI;mU$;~eC6^`lFMfQ^{nKqi=iT)CmkkoD?*l?`lj8e zQ5)4X=-HPVhq24@weo#uH=m<7pH3_uw|s7y@mS8@^Bwvf^dM=-sJ-TPO-4!8S@){- z;JWe<=baUnZ0WwKk99%6F&>T#XUi%~)olf%cG`Bfrx~Y0eR=o$x@*P)c-M<-jcV;b zDzB-GsZB)5z~hZEMd-TzCQiO#_G>30DAFN*ah7 zc&i~?k=nt&2(w^AbEjZ;Cs{a1Ns$a1D2H+2i9o~H13f*w{Nw@^K;Qk!VXnUwgF)=y ztDxN#Kq}uFWVbRfW>-V`BG@HGB!!(sA!6*(vLa%V60%}qLhKMxF>$b%C>SCuEG8x= zAuT5+#s2#NQY6D%L4D!Qa;EB91sv75+E*u@^t}=$;!%tMIm4a zL>N;;*e}Qn4GR?Z^5gvBeLPm^WBVL=^llMg|7B%{)E-(b5mC;g9Lb?<4!i2K~%~yb)kigdgg>uMSBVSovH zI1CN@FJAsq7uydCj&u(CPhNi3{HqTG134WpKQzqC38AB|h#9*G5($@s$;db(Bqb$< zoyDDHg<+x+j>0e}2wWI~K*-3*ILaajiS@HSVdp}|E2V2xBj&J-3<8;6ZoGf|M35d`M^ix^yj&1) zMerYC`$xflo3tNO`PcRIM;iG1`h&uqU|8#%=nm8r$@zrG*y~ ztqA$OHLT)atiIiBe?T?E>Ua@=~HG%~M zw|ImLHy*%?C?+gbND@Zt(~gZa!GrBV1TOaEnK{aPz^^ z9^t|Qf?GVog_{qS_6Qdi5ZvMsF5G;uv`4tGfZ!I7aN*{Ir9Hxh1q8QvgbOzxEbS34 zEFieWBV4%oU}=wVVFAG{9^t~x2TOZ|3kwKt5hpIPpKp31yfCkK24LRfz(#K zEwl6Cw%_57{PgGg!_R$H&6f7B#vVEn=qod8dyN`)Nk89LaiBOs6ghIRPE?Cv)v*t$ zOe9ez(6?wkT7Q0fb1);41l zfI{PRaY~>Ye}wR@LW)in$2(jffgTc5wobDO|k}5ELQrJTGlH|8B4&Tk3;spdQVxpF{0zs*`duPseyQof*vsO#LnWoPxTNVMQMBGj(l{aQS$NPED`_!~U-lpUue1>V4!S2A+6xwe9SL$PNfV`!!{ zZrn5HD}Mn9twN<~9Z@FpDG9km$2mTwoX>WrZ|paU3IUu8jTLTmN;S)Vmbno zYv!1VTP+Xo)6RIz>sMSU|0I29(Bg1uHuW8^+*WA!*W?}*uHI4UYw1ORP;$^0(_3M8 z4c&MQIgU?{yYi~4GxDlTHVef<2HSL=#u&G(*%h6=M#q=@d7|i2Lk2avzpYAwsUg%q zw=3o0z1s(EoB#_dzw;v+DXI9|B z6{y8mxuy}{duxb8x0Bzz?6Umx%nu*G-s)x5?mI`AG(Z0O)*RV`R}_vM`dWv0bg|2w zOlK0#5=4Ijs#CPC-*H?BR}!aC*SY%ST)jZd-j*iNwMFXe>_m8j*r@nruCLVfw{KPA z^=}NCJ^(EyTdTWkC4YKn)8|bS0u}PFS~>RYyp-|i=d1^}#AX;EzZo4B`$e@y>|4 z0jVe)*0^L8RuD0cvZHYbZ0uj-R3J&z1ra}i3JF=@hXB^*#tg?$QAt@Br`|q*Ze(X8 z9NkFksO-xdq@&%=!{{lQ47a>9DVgGLjq=19wU?#cz%R{dy2)m50AxueN3FA|ipr*4 zvwSHpl{jp=Xw%uEN@uQt==ZE)o?@PP&Eleis4!G~J-EgRV`rx8cN9tf?5VRrJU32F zy-K9Titr<58(m6pNbPUC7xn3QpL`kxis}syj3)_3vdjt%c2&w^Eivd0o|5WXqEfqK zFv^j=XqL*G0KciG8M09TMF&e0mGaIkHOXtqp0;p>OM>mfwoD?_0&cuy@t7#pZ@ic2 zrt04ll@_BMAfSa3pBopSABLq)z-HH`A9yt9cTm`UvMuJ4qPHWPmr5nHV#tL1ak_+f0H+VsQs4LFFJ$t^(KztpIQehh(b z8*2qw*U3q&Zjiq0p@>A|eW@u5ihs1uo@ph))(E=d8=8!#_PKV&zU;yZ0bzSbFz?th z$f6MZ=0@)wXP>$AF9)rG_ixzbqBio1S1ZOV3KnvPmK|ZTK^hD5GjlcI+0_Z7kV9UP zBx=g2qN0!8$BKR42^`PlMb92a_hb|L$tQ*YvxSh*N}JRo$X1h}kbWFzRRH@Am4!rp z{LFiKt(EIN12ua?<@Z6?(h%b!y zTu8X9K-AGTa3ZtizXQPUYL%6=YikbD$g#0`CV#_RT1@olJaO}r^fW5;`)`xR4}Lpq){F?~1Z zS58(PRH!p|jzulJcb|+9n5Wl6(A%(cs}y^Z>5j;CSy3RnbJFc;w;6>`4JQq=XV^vF zLRt_-lvsiiQtoTIwT%~bleG6 z_ZaqP)re0_F)JrLFz8-LyqmGz@d+T-3YMz7>NwuSzo_A>jZ91f1=$hQB)EX zIb3wf3<(;=t;U=T5x)MKk^VlT2Y4cVk+MOd39g{B5`9p`^?)3neoZ6PX~oA^sQdcL zPU$_Sw3R20tTy&wb6yRcim^K3T9jM+XT700nKpS)!j&I zVO+Y;YVap9_scd*C9BhR_q)->>L#qV;PsvtjZT<5% z=eMnXVdJ&P84Y4yCQ%_qORk3qi`iO}3)Te`diY=|=Js=<`wZz9cJiWcZYRaN zB_emEdGB?*&3O)b@lf2BuHJMtgq2qAzl*t(JKkO;T_1N&N@UCioGP>PVu#=6OVKk_ zenXaP34hZ_P)&L%pI(l@UM(q%DrwmWMe}MxCpAmIHnf$-KnSV9b52RM`n|g7SkbyY zG@zQFu%z&VpS6vxxvzC#+gqYUJtk{@uiHp&n~V3)Gx5eLOvD@Lw=W5te=DM1gld5Z zYNRi`)M&v&Tgwo+ldpP_x2Kps0;pOdKlG3i4lQ-ZJ8464DQX%ve#3JP`k?6w{Nw|LlO*9x}SI|vLd*l1|A0#E3J^+5GLK7ixyHS zr^V~#;gc?TDKZLG>U-BpAD6%uonhzJCA#`uxz_qLZ>>!&u=q||1fd^)*-&}!6hRs*`__JSk9k5hId!w=}{ z`k+qrXuL1q zUmnyIO)|YfNUbr4QXK4-ZWZi74c|Q;tMf|F#1N>VB(GkKi~Ph0qqT91w9iT#ds$%}bnWa!PdI@`r_pN`qBQg0UMPEg2n7Li>-!ZDfnQwuzH<^y3R7lOgMd6sm9 zi|8G4Lr(K$Dt_NPv-m=Qp74b0GQ*5kakkj;popouO!=XjkXo)yGHK<|$&Ez>jG$j< zl1snIX}xS+Do7oS*XbCS7Mvd3K!_yI>lF7;+m20G zw6&OBLT^Ow81@e3O126Dbe~llQVj?`8Q@8DmfpK^I?Hy>*5Q%Cq%P!GpkLw|X!@k< za+GaVk?qn!hzE`LrbM#eXD`Vh$(aS@TF4Ndtv=RRb6?=p$&bgG-pvTU8?Wb#5v7Co3HhB!tB+~Qlf33PgR2M`+JRmo9 zK_kqFU^b2;5H>SwC~eP7m7_CSmA+NI6Gn#rG1x(-L(JMy=|fT+ZJ<&D_or#b1*^w- zn?j?4l&IYE)(-Yev1}}Hcz4E@4(5){h-0qTRviZs$XZo3e~wJ}iH|MucbF_9OlD#m z_oVQ>*miRZMdcQj+fTd^I#3=Xc(%Os5)H!Urqs}-~a#s literal 4072 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 KL=HmIuOYXQz?Bo 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 #include #include #include #include "data_wrapper.h" -#include +#include "dbg.h" struct settingui_args { char *keyname; @@ -106,15 +105,13 @@ static void _free_slider_item(struct slideritem *item) static void _free_list_item(Eina_List *list) { struct listitem *litem; - void* obj; if (!list) { _ERR("Invalid argument"); return; } - EINA_LIST_FREE(list, obj) { - litem = (struct listitem *) obj; + EINA_LIST_FREE(list, litem) { free(litem->display_name); free(litem->value); free(litem); @@ -150,15 +147,13 @@ static void _free_uidata(struct uidata *data) static void _free_ui_args(Eina_List *list) { struct settingui_args *args; - void* obj; if (!list) { _ERR("Invalid argument"); return; } - EINA_LIST_FREE(list, obj) { - args = (struct settingui_args *) obj; + EINA_LIST_FREE(list, args) { free(args->keyname); free(args->value); free(args); @@ -192,19 +187,15 @@ static void _free_setting_ui(struct setting_ui *data) */ static void _free_str_list(Eina_List *list) { - void* obj; - char* item; + char *item; if (!list) { _ERR("Invalid argument"); return; } - EINA_LIST_FREE(list, obj) - { - item = (char *) obj; + EINA_LIST_FREE(list, item) free(item); - } } /** @@ -223,7 +214,7 @@ static void _free_settingitem_cb(void *data) return; } - item = (struct settingitem *)data; + item = data; free(item->display_name); free(item->style); @@ -283,7 +274,7 @@ static struct slideritem *_read_slider_data_from_json( return NULL; } - item = (struct slideritem *) calloc(1, sizeof(struct slideritem)); + item = calloc(1, sizeof(struct slideritem)); if (!item) return NULL; @@ -347,7 +338,7 @@ static Eina_List *_read_list_data_from_json( list = NULL; for (i = 0; i < length; i++) { - item = (struct listitem *) calloc(1, sizeof(struct listitem)); + item = calloc(1, sizeof(struct listitem)); if (!item) { _free_list_item(list); return NULL; @@ -405,13 +396,13 @@ static Eina_List *_get_settingui_args_list( goto error; } - data = (struct settingui_args *) calloc(1, sizeof(*data)); + data = calloc(1, sizeof(*data)); if (!data) { _ERR("Allocate memory failed"); goto error; } - data->keyname = (char *) calloc(1, sizeof(char) * ARRAY_SIZE); + data->keyname = calloc(1, sizeof(char) * ARRAY_SIZE); if (!data->keyname) { _ERR("Allocate memory failed"); free(data); @@ -459,7 +450,7 @@ static struct uidata *_get_datainfo_from_json( return NULL; } - data = (struct uidata *) calloc(1, sizeof(struct uidata)); + data = calloc(1, sizeof(struct uidata)); if (!data) return NULL; @@ -556,7 +547,7 @@ static void _get_iteminfo_from_json(struct json_parser *jparser, jparser, buf); } else if (!strncmp(list[i], JSONSTR_SETTINGUI, strlen(list[i]))) { - item->setting_ui = (struct setting_ui *) calloc(1, sizeof(struct setting_ui)); + item->setting_ui = calloc(1, sizeof(struct setting_ui)); if (!item->setting_ui) continue; @@ -659,7 +650,7 @@ static struct settingitem *_get_settingitem_from_json( return NULL; } - item = (struct settingitem *) calloc(1, sizeof(*item)); + item = calloc(1, sizeof(*item)); if (!item) return NULL; @@ -760,7 +751,6 @@ static int _write_settingitems_to_hash(Eina_Hash *hash, _ERR("parser_init failed!\n"); return -1; } - _DBG("CREATED Parser [Path = %s]",path); reader = parser_get_json_reader(jparser); if (!reader) { @@ -779,7 +769,7 @@ static int _write_settingitems_to_hash(Eina_Hash *hash, if (!newer) continue; - existed = (struct settingitem *) eina_hash_find(hash, list[i]); + existed = eina_hash_find(hash, list[i]); if (!existed) eina_hash_add(hash, list[i], newer); else @@ -787,7 +777,7 @@ static int _write_settingitems_to_hash(Eina_Hash *hash, } newer = _get_settingitem_from_json(jparser, name); - existed = (struct settingitem *) eina_hash_find(hash, name); + existed = eina_hash_find(hash, name); if (!existed) eina_hash_add(hash, name, newer); else @@ -855,7 +845,7 @@ struct settingmgr_data *viewmgr_data_init(void) { struct settingmgr_data *data; - data = (struct settingmgr_data *) calloc(1, sizeof(struct settingmgr_data)); + data = calloc(1, sizeof(struct settingmgr_data)); if (!data) { _ERR("calloc data failed\n"); return NULL; @@ -880,8 +870,7 @@ struct settingmgr_data *viewmgr_data_init(void) */ void viewmgr_data_fini(struct settingmgr_data *data) { - char* node; - void* obj; + char *node; if (!data) { _ERR("Parameter error!"); @@ -891,11 +880,8 @@ void viewmgr_data_fini(struct settingmgr_data *data) _hash_fini(data->jsonhash); if (data->parsed_json_file) { - EINA_LIST_FREE(data->parsed_json_file, obj) - { - node = (char *) obj; + EINA_LIST_FREE(data->parsed_json_file, node) free(node); - } } free(data); @@ -916,7 +902,7 @@ struct settingitem *viewmgr_data_get_settingitem( if (!name || !data) return NULL; - item = (struct settingitem *) eina_hash_find(data->jsonhash, name); + item = eina_hash_find(data->jsonhash, name); return item; } @@ -931,8 +917,7 @@ struct settingitem *viewmgr_data_get_settingitem( int viewmgr_data_read_jsonfile_into_hash( struct settingmgr_data *data, const char *name) { - char* tmp; - void* obj; + char *tmp; const char *style, *ui_name; struct settingitem *item; Eina_Hash *hash; @@ -959,8 +944,7 @@ int viewmgr_data_read_jsonfile_into_hash( if (style && ui_name && !strncmp(style, STYLE_UIGADGET, strlen(style))) return 0; - EINA_LIST_FOREACH(list, l, obj) { - tmp = (char *) obj; + EINA_LIST_FOREACH(list, l, tmp) { if (!strncmp(tmp, name, BUF_SIZE)) flag = 0; } @@ -993,7 +977,6 @@ struct settingview_data *viewmgr_data_build_view( Eina_List *list, *l; struct settingitem *item; const char *node; - void* obj; struct settingview_data *vdata; if (!sdata || !name) { @@ -1014,8 +997,7 @@ struct settingview_data *viewmgr_data_build_view( list = settingitem_get_subitems(vdata->parentitem); if (list) { vdata->childitems = eina_array_new(1); - EINA_LIST_FOREACH(list, l, obj) { - node = (const char *) obj; + EINA_LIST_FOREACH(list, l, node) { item = viewmgr_data_get_settingitem(sdata, node); if (!item) { _ERR("childitem not found, continuing"); @@ -1461,7 +1443,7 @@ Eina_List *viewdata_get_childitems_list(struct settingview_data *view) list = NULL; cnt = eina_list_count(subitems); for (i = 0; i < cnt; i++) { - subitem = (struct settingitem *) eina_array_data_get(view->childitems, i); + subitem = eina_array_data_get(view->childitems, i); list = eina_list_append(list, subitem); } @@ -1494,7 +1476,7 @@ struct settingview_data *viewdata_allocate(void) { struct settingview_data *vdata; - vdata = (struct settingview_data *) calloc(1, sizeof(*vdata)); + vdata = calloc(1, sizeof(*vdata)); if (!vdata) { _ERR("Allocate memory failed\n"); return NULL; @@ -1537,7 +1519,6 @@ Eina_List *settingitem_get_slider_group_list(struct settingitem *item, Eina_List *l, *group, *result; struct settingitem *sitem; const char *node; - void* obj; int found; if (!item || !sdata || !name) { @@ -1551,8 +1532,7 @@ Eina_List *settingitem_get_slider_group_list(struct settingitem *item, found = 0; - EINA_LIST_FOREACH(group, l, obj) { - node = (const char *) obj; + EINA_LIST_FOREACH(group, l, node) { if (!strncmp(name, node, strlen(name))) { found = 1; break; @@ -1564,8 +1544,7 @@ Eina_List *settingitem_get_slider_group_list(struct settingitem *item, result = NULL; - EINA_LIST_FOREACH(group, l, obj) { - node = (const char *) obj; + EINA_LIST_FOREACH(group, l, node) { sitem = viewmgr_data_get_settingitem(sdata, node); if (_check_slider_item(sitem)) result = eina_list_append(result, node); diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..c833162 --- /dev/null +++ b/src/main.c @@ -0,0 +1,324 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include "dbg.h" +#include "def.h" +#include "viewmgr.h" +#include "utils.h" +#include "json_marco.h" +#include "settings_provider.h" + +#define PARAM_SETTINGS_ITEM "settings-item" +#define MAIN_CATALOG "maincatalog" + +struct _appdata { + Evas_Object *win; + struct setting_mgr *mgr; + const char *name; + char *item; + unsigned int service; +}; + +/** +* Refresh first view stored in view list. +* +* Get first _settinginfo from view_list of setting_mgr, then call vclass->refresh +* and vclass-update to refresh. +* +* @param priv [in] The function specific data which holds _appdata pointer. +* @return void. +*/ +static void _refresh(void *priv) +{ + struct _appdata *data; + + if (!priv) + return; + + data = priv; + + if (!data->mgr) + return; + + settingmgr_view_refresh(data->mgr); +} + +/** +* Add a basic win for settings app. +* +* @param name [in] Window name. +* @return Window evas object, NULL on error. +*/ +static Evas_Object *_add_win(const char *name) +{ + Evas_Object *win; + + win = elm_win_add(NULL, name, ELM_WIN_BASIC); + if (!win) { + _ERR("failed to create window!"); + return NULL; + } + + elm_win_title_set(win, name); + elm_win_alpha_set(win, EINA_TRUE); + + elm_win_focus_highlight_enabled_set(win, EINA_TRUE); + elm_win_focus_highlight_style_set(win, DEFAULT_FOCUS_INVISIBLE); + + evas_object_show(win); + + return win; +} + +/** +* An app event callback for app_efl_main. +* +* This callback is invoked once as app is launched, this function will +* initialize app. +* +* @param data [in] The function specific data passed by app_efl_main. +* @return true if success, false if fail. +*/ +static bool _create(void *data) +{ + struct _appdata *ad; + Evas_Object *win; + int r; + + ad = data; + if (!ad) + return false; + + elm_theme_overlay_add(NULL, EDJ_THEME); + + win = _add_win(ad->name); + if (!win) + return false; + + r = UG_INIT_EFL(win, UG_OPT_INDICATOR_ENABLE); + if (r == -1) { + _ERR("ug init efl failed."); + evas_object_del(win); + return false; + } + + r = provider_init(); + if (r != 0) { + _ERR("Fail to init provider module"); + evas_object_del(win); + return false; + } + + ad->win = win; + ad->service = 0; + + return true; +} + +/** +* An app event callback for app_efl_main. +* +* This callback is invoked once just before app is terminated, +* this functions will release all resources. +* +* @param data [in] The function specific data passed by app_efl_main. +* @return void. +*/ +static void _terminate(void *data) +{ + struct _appdata *ad; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + ad = data; + + settingmgr_fini(ad->mgr); + + provider_fini(); + + if (ad->win) + evas_object_del(ad->win); + + free(ad->item); +} + +/** +* An app event callback for app_efl_main. +* +* This callback is invoked when the window of app become invisible. +* +* @param data [in] The function specific data passed by app_efl_main. +* @return void. +*/ +static void _pause(void *data) +{ +} + +/** +* An app event callback for app_efl_main. +* +* This callback is invoked when the window of app become visible. +* +* @param data [in] The function specific data passed by app_efl_main. +* @return void. +*/ +static void _resume(void *data) +{ +} + +/** +* An app event callback for app_efl_main. +* +* This callback is invoked after _create callback (just after app enters main loop) +* or after "re-launch". +* +* @param service [in] The launching arguments. +* @param data [in] The function specific data passed by app_efl_main. +* @return void. +*/ +static void _service(service_h service, void *data) +{ + struct _appdata *ad; + struct setting_mgr *mgr; + int r; + char *param; + unsigned int relaunch, refresh; + + if (!data) + return; + + ad = data; + param = NULL; + + if (ad->service) { + service_get_extra_data(service, PARAM_SETTINGS_ITEM, ¶m); + if ((!param && !ad->item) || + (param && ad->item && + !strcmp(ad->item, param))) { + refresh = 1; + relaunch = 0; + } else { + refresh = 0; + relaunch = 1; + } + + if (relaunch) { + settingmgr_fini(ad->mgr); + } else { + if (refresh) + _refresh(ad); + + return; + } + } + + mgr = settingmgr_init(ad->win); + if (!mgr) + app_efl_exit(); + + r = service_get_extra_data(service, PARAM_SETTINGS_ITEM, ¶m); + if (r == SERVICE_ERROR_NONE && param) { + r = settingmgr_launch_item(mgr, param); + if (r != 0) { + _ERR("the item is not exist."); + app_efl_exit(); + } + } else { + settingmgr_view_push(mgr, MAIN_CATALOG, NULL); + } + + ad->mgr = mgr; + ad->service = 1; + + free(ad->item); + ad->item = param; +} + +/** +* An app event callback for app_efl_main. +* +* This callback is invoked when system language is changed. +* +* @param data [in] The function specific data passed by app_efl_main. +* @return void. +*/ +static void _lang_changed(void *data) +{ + struct _appdata *ad; + + if (!data) { + _ERR("Invalid argument"); + return; + } + + ad = data; + if (!ad->mgr) + return; + + settingmgr_lang_changed(ad->mgr); +} + +/** +* An app event callback for app_efl_main. +* +* This callback is invoked when system region is changed. +* +* @param data [in] The function specific data passed by app_efl_main. +* @return void. +*/ +static void _region_changed(void *data) +{ +} + +/** +* App launching entry. +* +* @param argc [in] The launching argument numbers. +* @param argv [in] The launching argument array. +* @return 0 if success. +*/ +int main(int argc, char **argv) +{ + struct _appdata ad; + app_event_callback_s cbs = { + .create = _create, + .terminate = _terminate, + .pause = _pause, + .resume = _resume, + .service = _service, + .low_memory = NULL, + .low_battery = NULL, + .device_orientation = NULL, + .language_changed = _lang_changed, + .region_format_changed = _region_changed, + }; + + memset(&ad, 0x00, sizeof(ad)); + ad.name = PACKAGE; + + i18n_init(); + + app_efl_main(&argc, &argv, &cbs, &ad); + + return 0; +} diff --git a/src/main.cpp b/src/main.cpp deleted file mode 100644 index 2885fc0..0000000 --- a/src/main.cpp +++ /dev/null @@ -1,243 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include - -#include "common_defs.h" -#include "json_marco.h" -#include "settings_provider.h" -#include "settingviewmgr.h" -#include "utils.h" - - -#define PARAM_SETTINGS_ITEM "settings-item" -#define MAIN_CATALOG "maincatalog" - -SET_TAG("org.tizen.settings-tv-ref"); - -Evas_Object *_add_win(const char *name) -{ - Evas_Object *win; - - win = elm_win_add(NULL, name, ELM_WIN_BASIC); - if (!win) { - _ERR("failed to create window!"); - return NULL; - } - - elm_win_title_set(win, name); - elm_win_alpha_set(win, EINA_TRUE); - - elm_win_focus_highlight_enabled_set(win, EINA_TRUE); - elm_win_focus_highlight_style_set(win, DEFAULT_FOCUS_INVISIBLE); - - evas_object_show(win); - - return win; -} - -class CApp : public CBaseApp { - struct _appdata { - Evas_Object *win; - CSettingMgr *mgr; - const char *name; - char *item; - unsigned int app_control; - } ad; - -protected: - virtual bool OnCreate(void) { - Evas_Object *win; - int r; - - elm_theme_overlay_add(NULL, EDJ_THEME); - - win = _add_win(ad.name); - if (!win) - return false; - - r = UG_INIT_EFL(win, UG_OPT_INDICATOR_ENABLE); - if (r == -1) { - _ERR("ug init efl failed."); - evas_object_del(win); - return false; - } - - r = provider_init(); - if (r != 0) { - _ERR("Fail to init provider module"); - evas_object_del(win); - return false; - } - - ad.win = win; - ad.item = NULL; - ad.app_control = 0; - - /* Set default vconf values */ - - /* Proxy */ - if (vconf_set_int(VCONF_PROXY_METHOD, 0)) - _DBG("Fail to set vconf"); - if (vconf_set_str(VCONF_PROXY_IP, "0.0.0.0")) - _DBG("Fail to set vconf"); - if (vconf_set_str(VCONF_PROXY_URL, "")) - _DBG("Fail to set vconf"); - - /* Network */ - if (vconf_set_str(WIRED_DNS_KEY, "0.0.0.0")) - _DBG("Fail to set vconf"); - if (vconf_set_str(WIRED_GATEWAY_KEY, "0.0.0.0")) - _DBG("Fail to set vconf"); - if (vconf_set_str(WIRED_IP_LAST_MODE, "Obtain automatically")) - _DBG("Fail to set vconf"); - if (vconf_set_str(WIRED_DNS_LAST_MODE, "Obtain automatically")) - _DBG("Fail to set vconf"); - if (vconf_set_str(WIRED_IP_KEY, "0.0.0.0")) - _DBG("Fail to set vconf"); - if (vconf_set_str(WIRED_SUBMASK_KEY, "0.0.0.0")) - _DBG("Fail to set vconf"); - - if (vconf_set_str(WIRELESS_DNS_KEY, "0.0.0.0")) - _DBG("Fail to set vconf"); - if (vconf_set_str(WIRELESS_GATEWAY_KEY, "0.0.0.0")) - _DBG("Fail to set vconf"); - if (vconf_set_str(WIRELESS_IP_LAST_MODE, "Obtain automatically")) - _DBG("Fail to set vconf"); - if (vconf_set_str(WIRELESS_DNS_LAST_MODE, "Obtain automatically")) - _DBG("Fail to set vconf"); - if (vconf_set_str(WIRELESS_IP_KEY, "0.0.0.0")) - _DBG("Fail to set vconf"); - if (vconf_set_str(WIRELESS_SUBMASK_KEY, "0.0.0.0")) - _DBG("Fail to set vconf"); - - /* Time */ - if (vconf_set_int(KEY_SYSTEM_CLOCK_MODE, 0)) - _DBG("Fail to set vconf"); - if (vconf_set_int(KEY_SLEEPTIMER, 0)) - _DBG("Fail to set vconf"); - if (vconf_set_int(KEY_SLEEPTIMER_TIMERID, 0)) - _DBG("Fail to set vconf"); - if (vconf_set_str(KEY_WAKEUP_TIMER_SETUP, "OFF")) - _DBG("Fail to set vconf"); - - if (vconf_set_int(VCONF_KEY_24HOUR_MODE, 0)) - _DBG("Fail to set vconf"); - if (vconf_set_str(KEY_CHANGE_PASSCODE, "0000")) - _DBG("Fail to set vconf"); - if (vconf_set_int(KEY_SUBTITLE_LANGUAGE, 0)) - _DBG("Fail to set vconf"); - - /* Broadcasting */ - if (vconf_set_bool(KEY_CHANNEL_LOCK, false)) - _DBG("Fail to set vconf"); - - /* Lang and Region */ - if (vconf_set_str(KEY_SYSTEM_LANGUAGE, "en_US.UTF-8")) - _DBG("Fail to set vconf"); - if (vconf_set_str(KEY_SYSTEM_COUNTRY, "en_US.UTF-8")) - _DBG("Fail to set vconf"); - - return true; - } - - virtual void OnTerminate(void) { - CSettingMgr::Finalize(); - ad.mgr = NULL; - - provider_fini(); - - if (ad.win) - evas_object_del(ad.win); - - if(ad.item) - free(ad.item); - } - - virtual void OnAppControl(app_control_h app_control) { - _DBG(" ******************* OnAppControl *********************"); - CSettingMgr *mgr; - int r; - char *param; - unsigned int relaunch, refresh; - - param = NULL; - - if (ad.app_control) { - app_control_get_extra_data(app_control, PARAM_SETTINGS_ITEM, ¶m); - if ((!param && !ad.item) || - (param && ad.item && !strcmp(ad.item, param))) { - refresh = 1; - relaunch = 0; - } else { - refresh = 0; - relaunch = 1; - } - - if (relaunch) { - CSettingMgr::Finalize(); - } else { - if (refresh) { - if (!ad.mgr) - return; - - ad.mgr->ViewRefresh(); - } - } - } - - if (!CSettingMgr::Initialize(ad.win)) - app_efl_exit(); - mgr = CSettingMgr::GetInstance(); - - r = app_control_get_extra_data(app_control, PARAM_SETTINGS_ITEM, ¶m); - if (r == APP_CONTROL_ERROR_NONE && param) { - if (!mgr->LaunchItem(param)) { - _ERR("the item is not exist."); - app_efl_exit(); - } - } else { - mgr->ViewPush(MAIN_CATALOG, NULL); - } - - ad.mgr = mgr; - ad.app_control = 1; - - free(ad.item); - ad.item = param; - } - -public: - virtual int Run(int argc, char **argv) { - memset(&ad, 0x00, sizeof(_appdata)); - ad.name = PACKAGE; - - return CBaseApp::Run(argc, argv); - } - - virtual ~CApp(void){} -}; - -int main(int argc, char **argv) -{ - CApp app; - app.Run(argc, argv); - - return 0; -} - diff --git a/src/parser.cpp b/src/parser.c similarity index 91% rename from src/parser.cpp rename to src/parser.c index 22088ac..2ffb44b 100644 --- a/src/parser.cpp +++ b/src/parser.c @@ -14,10 +14,9 @@ * limitations under the License. */ -#include #include #include "parser.h" -#include +#include "dbg.h" #include "stdlib.h" struct json_parser { @@ -103,7 +102,7 @@ struct json_parser *parser_init(const char *path) return NULL; } - jparser = (struct json_parser *) calloc(1, sizeof(*jparser)); + jparser = calloc(1, sizeof(*jparser)); if (!jparser) return NULL; @@ -256,22 +255,14 @@ char **parser_get_itemlist_from_json(struct json_parser *jparser, cursor = 0; - // For Debugging - //_DBG("[START][ name = %s ][Parser = %x][Reader = %x]",name, jparser, jparser->reader); - //_DBG("Member cnt = %d", json_reader_count_members(jparser->reader)); - //_DBG("Current Member = %s", json_reader_get_member_name(jparser->reader)); if (flag == DRAWING_INFO) { - if (!json_reader_read_member(jparser->reader, JSONSTR_SETTING_ITEMS)) - { - cursor++; + if (!json_reader_read_member(jparser->reader, + JSONSTR_SETTING_ITEMS)) goto error; - } } else if (flag == SUBMENU_INFO) { - if (!json_reader_read_member(jparser->reader, JSONSTR_SETTING_TREE)) - { - cursor++; + if (!json_reader_read_member(jparser->reader, + JSONSTR_SETTING_TREE)) goto error; - } } else { goto error; } @@ -279,10 +270,7 @@ char **parser_get_itemlist_from_json(struct json_parser *jparser, cursor++; if (!json_reader_read_member(jparser->reader, name)) - { - cursor++; goto error; - } cursor++; @@ -293,6 +281,7 @@ char **parser_get_itemlist_from_json(struct json_parser *jparser, return list; error: + cursor++; _restore_json_reader_location(jparser, cursor); *cnt = 0; @@ -323,38 +312,22 @@ char **parser_get_settingui_args_from_json(struct json_parser *jparser, cursor = 0; if (!json_reader_read_member(jparser->reader, JSONSTR_SETTING_ITEMS)) - { - cursor++; - _DBG("[%s] Fail to read member from json", JSONSTR_SETTING_ITEMS); goto error; - } cursor++; if (!json_reader_read_member(jparser->reader, name)) - { - cursor++; - _DBG("[%s] Fail to read member from json", name); goto error; - } cursor++; if (!json_reader_read_member(jparser->reader, pnode)) - { - cursor++; - _DBG("[%s] Fail to read member from json", pnode); goto error; - } cursor++; if (!json_reader_read_member(jparser->reader, JSONSTR_SETTINGUI_ARGS)) - { - cursor++; - _DBG("[%s] Fail to read member from json", JSONSTR_SETTINGUI_ARGS); goto error; - } cursor++; @@ -365,6 +338,7 @@ char **parser_get_settingui_args_from_json(struct json_parser *jparser, return list; error: + cursor++; _restore_json_reader_location(jparser, cursor); *cnt = 0; @@ -394,27 +368,18 @@ char **parser_get_data_list_from_json(struct json_parser *jparser, cursor = 0; if (!json_reader_read_member(jparser->reader, JSONSTR_SETTING_ITEMS)) - { - cursor++; - _DBG("[%s] Fail to read member from json", JSONSTR_SETTING_ITEMS); goto error; - } + cursor++; if (!json_reader_read_member(jparser->reader, name)) - { - cursor++; - _DBG("[%s] Fail to read member from json", name); goto error; - } + cursor++; if (!json_reader_read_member(jparser->reader, JSONSTR_DATA)) - { - cursor++; - _DBG("[%s] Fail to read member from json", JSONSTR_DATA); goto error; - } + cursor++; *cnt = json_reader_count_members(jparser->reader); @@ -424,6 +389,7 @@ char **parser_get_data_list_from_json(struct json_parser *jparser, return list; error: + cursor++; _restore_json_reader_location(jparser, cursor); *cnt = 0; @@ -465,7 +431,7 @@ char *parser_get_string_value_from_json(struct json_parser *jparser, return NULL; } - result = (char *) calloc(1, sizeof(char) * ARRAY_SIZE); + result = calloc(1, sizeof(char) * ARRAY_SIZE); if (!result) { g_free(output); return NULL; @@ -527,7 +493,7 @@ Eina_List *parser_get_string_list_from_json(struct json_parser *jparser, list = NULL; for (i = 0; i < cnt; i++) { - result = (char *) calloc(1, sizeof(char) * ARRAY_SIZE); + result = calloc(1, sizeof(char) * ARRAY_SIZE); if (!result) { free(arr[0]); free(arr); @@ -570,11 +536,10 @@ int parser_get_array_length_from_json(struct json_parser *jparser, for (i = 1; i < cnt; i++) { if (!json_reader_read_member(jparser->reader, arr[i])) { - while(i){ + while(i) { json_reader_end_member(jparser->reader); i--; } - free(arr[0]); free(arr); return 0; diff --git a/src/settings_provider.cpp b/src/settings_provider.c similarity index 88% rename from src/settings_provider.cpp rename to src/settings_provider.c index 3ad54cd..8e9ad3c 100644 --- a/src/settings_provider.cpp +++ b/src/settings_provider.c @@ -14,8 +14,7 @@ * limitations under the License. */ -#include -#include +#include "dbg.h" #include "settings_provider.h" #include //#include "tvtimer.h" @@ -42,8 +41,6 @@ #define KEY_SUBTITLE_LANGUAGE "db/menu/subtitle/subtitlelanguage" #define KEY_SYSTEM_LANGUAGE "db/menu_widget/language" #define KEY_SYSTEM_COUNTRY "db/menu_widget/regionformat" -#define KEY_ACCESSIBILITY_SCREEN_READER "db/menu/accessibility/screen_reader" -#define KEY_ACCESSIBILITY_MAGNIFIER "db/menu/accessibility/magnifier" #define SYSTEM_LANGUAGE_DEFAULT_VALUE "en_US.utf8" #define WAKEUP_TIMER_SETUP_DEFAULT_VALUE "OFF" @@ -69,9 +66,7 @@ enum item_type { SYSTEM_RESET, SYSTEM_PASSCODE, SYSTEM_CLOCK_MODE, - CHANNEL_LOCK, - SCREEN_READER, - MAGNIFIER, + CHANNEL_LOCK }; struct keymap { @@ -81,88 +76,80 @@ struct keymap { static struct keymap item_keymap[] = { { - "settings/picture/picturemode", - PICTURE_MODE + .key = "settings/picture/picturemode", + .type = PICTURE_MODE }, { - "settings/picture/contrast", - PICTURE_CONTRAST + .key = "settings/picture/contrast", + .type = PICTURE_CONTRAST }, { - "settings/picture/brightness", - PICTURE_BRIGHTNESS + .key = "settings/picture/brightness", + .type = PICTURE_BRIGHTNESS }, { - "settings/picture/sharpness", - PICTURE_SHARPNESS + .key = "settings/picture/sharpness", + .type = PICTURE_SHARPNESS }, { - "settings/picture/color", - PICTURE_COLOR + .key = "settings/picture/color", + .type = PICTURE_COLOR }, { - "settings/picture/tint", - PICTURE_TINT + .key = "settings/picture/tint", + .type = PICTURE_TINT }, { - "settings/picture/homebaropacity", - PICTURE_HOMEBAR_OPACITY + .key = "settings/picture/homebaropacity", + .type = PICTURE_HOMEBAR_OPACITY }, { - "settings/picture/screenadjustment", - PICTURE_SCREEN_ADJUSTMENT + .key = "settings/picture/screenadjustment", + .type = PICTURE_SCREEN_ADJUSTMENT }, { - "settings/sound/soundmode", - SOUND_MODE + .key = "settings/sound/soundmode", + .type = SOUND_MODE }, { - "settings/sound/speakersettings", - SPEAKER_SETTINGS + .key = "settings/sound/speakersettings", + .type = SPEAKER_SETTINGS }, { - "settings/system/sleeptimer", - SYSTEM_SLEEPTIMER + .key = "settings/system/sleeptimer", + .type = SYSTEM_SLEEPTIMER }, { - "settings/system/wakeup_timer_setup", - SYSTEM_WAKEUPTIMER + .key = "settings/system/wakeup_timer_setup", + .type = SYSTEM_WAKEUPTIMER }, { - "settings/system/subtitle", - SYSTEM_SUBTITLE + .key = "settings/system/subtitle", + .type = SYSTEM_SUBTITLE }, { - "settings/system/country", - SYSTEM_COUNTRY + .key = "settings/system/country", + .type = SYSTEM_COUNTRY }, { - "settings/system/language", - SYSTEM_LANGUAGE + .key = "settings/system/language", + .type = SYSTEM_LANGUAGE }, { - "settings/system/reset", - SYSTEM_RESET + .key = "settings/system/reset", + .type = SYSTEM_RESET }, { - "settings/system/change_passcode", - SYSTEM_PASSCODE + .key = "settings/system/change_passcode", + .type = SYSTEM_PASSCODE }, { - "settings/system/clock_mode", - SYSTEM_CLOCK_MODE + .key = "settings/system/clock_mode", + .type = SYSTEM_CLOCK_MODE }, { - "settings/channel/channel_lock", - CHANNEL_LOCK - }, - { - "settings/accessibility/screen_reader", - SCREEN_READER - }, - { - "settings/accessibility/magnifier", - MAGNIFIER + .key = "settings/channel/channel_lock", + .type = CHANNEL_LOCK } }; @@ -180,7 +167,6 @@ struct sleeptimer_data { //tvtimer_h timer; }; -#if 0 static unsigned int sleeptimer_value[] = { 0, 30, @@ -190,7 +176,6 @@ static unsigned int sleeptimer_value[] = { 150, 180 }; -#endif /** * An timer foreach iteration callback for tvtimer_foreach_item. @@ -316,7 +301,6 @@ static enum item_type _find_type(const char *key) return result; } -#if 0 /** * Find array index according to given array value and size. * @@ -342,7 +326,6 @@ static int _find_index(unsigned int *array, int size, int val, int *index) return -1; } -#endif /** * Set data with integer value. @@ -417,7 +400,7 @@ static int _set_int(const char *key, int val) static int _get_int(const char *key, int *val) { enum item_type type; - int status; + int status, size, index; if (!key || !val) { _ERR("Invalid argument"); @@ -455,7 +438,6 @@ static int _get_int(const char *key, int *val) break; #if 0 - int size, idex; size = _ARRAY_SIZE(speakersettings_item); if (_find_index(speakersettings_item, size, *val, &index) == -1) { @@ -531,13 +513,13 @@ static int _set_string(const char *key, const char *val) switch (type) { case SYSTEM_LANGUAGE: - status = vconf_set_str(KEY_SYSTEM_LANGUAGE, (char *) val); + status = vconf_set_str(KEY_SYSTEM_LANGUAGE, val); break; case SYSTEM_COUNTRY: - status = vconf_set_str(KEY_SYSTEM_COUNTRY, (char *)val); + status = vconf_set_str(KEY_SYSTEM_COUNTRY, val); break; case SYSTEM_PASSCODE: - status = vconf_set_str(KEY_CHANGE_PASSCODE, (char *)val); + status = vconf_set_str(KEY_CHANGE_PASSCODE, val); break; default: break; @@ -623,12 +605,6 @@ static int _set_bool(const char *key, const int val) case CHANNEL_LOCK: r = vconf_set_bool(KEY_CHANNEL_LOCK, val); break; - case SCREEN_READER: - r = vconf_set_bool(KEY_ACCESSIBILITY_SCREEN_READER, val); - break; - case MAGNIFIER: - r = vconf_set_bool(KEY_ACCESSIBILITY_MAGNIFIER, val); - break; default: break; } @@ -658,12 +634,6 @@ static int _get_bool(const char *key, int *val) case CHANNEL_LOCK: r = vconf_get_bool(KEY_CHANNEL_LOCK, val); break; - case SCREEN_READER: - r = vconf_get_bool(KEY_ACCESSIBILITY_SCREEN_READER, val); - break; - case MAGNIFIER: - r = vconf_get_bool(KEY_ACCESSIBILITY_MAGNIFIER, val); - break; default: break; } @@ -744,7 +714,7 @@ char *provider_get_list_value(struct settingitem *item) return NULL; } - result = (char *) calloc(1, ARRAY_SIZE); + result = calloc(1, ARRAY_SIZE); if (!result) { _ERR("Fail to allocate memory"); return NULL; @@ -857,7 +827,6 @@ char *provider_get_selected_display_name(struct settingitem *item) const char *val, *disp; Eina_List *list, *tmp; struct listitem *litem; - void* obj; if (!item) { _ERR("Invalid argument"); @@ -878,8 +847,7 @@ char *provider_get_selected_display_name(struct settingitem *item) disp = NULL; - EINA_LIST_FOREACH(list, tmp, obj) { - litem = (struct listitem *) obj; + EINA_LIST_FOREACH(list, tmp, litem) { val = listitem_get_value(litem); if (val && !strncmp(sel, val, strlen(sel))) { disp = listitem_get_display_name(litem); @@ -888,7 +856,7 @@ char *provider_get_selected_display_name(struct settingitem *item) } if (!disp) - disp = listitem_get_display_name((struct listitem *) eina_list_nth(list, 0)); + disp = listitem_get_display_name(eina_list_nth(list, 0)); provider_release_list_value(sel); diff --git a/src/timeout_handler.cpp b/src/timeout_handler.c similarity index 56% rename from src/timeout_handler.cpp rename to src/timeout_handler.c index 9a06a1e..66c4734 100644 --- a/src/timeout_handler.cpp +++ b/src/timeout_handler.c @@ -14,16 +14,16 @@ * limitations under the License. */ -#include +#include +#include +#include "dbg.h" #include "stdlib.h" #include "stdbool.h" #include "timeout_handler.h" - #define EVENT_HANDLER_NUM 6 - -struct STimeoutHandler { +struct timeout_handler { Ecore_Event_Handler * event_handler[EVENT_HANDLER_NUM]; Ecore_Timer *timer; }; @@ -45,14 +45,14 @@ struct STimeoutHandler { */ static Eina_Bool _event_occrued_cb(void *data, int type, void *event) { - struct STimeoutHandler *handler; + struct timeout_handler *handler; if (!data) { _ERR("Invalid argument"); return EINA_FALSE; } - handler = (struct STimeoutHandler *) data; + handler = data; ecore_timer_reset(handler->timer); @@ -79,104 +79,114 @@ static Eina_Bool _timer_expired_cb(void *data) /** * Freeze given ecore timer. * -* @param data [in] The STimeoutHandler data pointer, it include given ecore timer pointer. +* @param data [in] The timeout_handler data pointer, it include given ecore timer pointer. * @return void. */ -void CTimeoutHandler::FreezeTimer(void) +void timeout_handler_freeze_timer(struct timeout_handler *data) { - ASSERT(m); - - if (!m->timer) { + if (!data || !data->timer) { _ERR("Invalid argument"); return; } - ecore_timer_freeze(m->timer); + ecore_timer_freeze(data->timer); } /** * Thaw given ecore timer. * -* @param data [in] The STimeoutHandler data pointer, it include given ecore timer pointer. +* @param data [in] The timeout_handler data pointer, it include given ecore timer pointer. * @return void. */ -void CTimeoutHandler::ThawTimer(void) +void timeout_handler_thaw_timer(struct timeout_handler *data) { - ASSERT(m); - - if (!m->timer) { + if (!data || !data->timer) { _ERR("Invalid argument"); return; } - ecore_timer_thaw(m->timer); - ecore_timer_reset(m->timer); + ecore_timer_thaw(data->timer); + ecore_timer_reset(data->timer); } /** * Change timer interval value. * -* @param data [in] The STimeoutHandler data pointer, it include given ecore timer pointer. +* @param data [in] The timeout_handler data pointer, it include given ecore timer pointer. * @param val [in] New interval value to be set. * @return void. */ -void CTimeoutHandler::ChangeInterval(double val) +void timeout_handler_change_interval(struct timeout_handler *data, + double val) { - ASSERT(m); - - if (!m->timer) { + if (!data || !data->timer) { _ERR("Invalid argument"); return; } if (val == 0.0) { - ecore_timer_freeze(m->timer); + ecore_timer_freeze(data->timer); } else if (val > 0.0) { - ecore_timer_interval_set(m->timer, val); - ecore_timer_reset(m->timer); - ecore_timer_thaw(m->timer); + ecore_timer_interval_set(data->timer, val); + ecore_timer_reset(data->timer); + ecore_timer_thaw(data->timer); } } /** -* Create and init STimeoutHandler data. +* Create and init timeout_handler data. * * @param val [in] Timer interval value. -* @return The STimeoutHandler data pointer, NULL if error. +* @return The timeout_handler data pointer, NULL if error. */ -bool CTimeoutHandler::Create(double val) +struct timeout_handler *timeout_handler_init(double val) { - ASSERT(!m); + struct timeout_handler *data; - m = new STimeoutHandler; - if (!m) { + data = calloc(1, sizeof(*data)); + if (!data) { _ERR("Fail to allocate memory for timeout handler"); - return false; + return NULL; } - m->event_handler[0] = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _event_occrued_cb, m); - m->event_handler[1] = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _event_occrued_cb, m); - m->event_handler[2] = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN,_event_occrued_cb, m); - m->event_handler[3] = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP, _event_occrued_cb, m); - m->event_handler[4] = ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE, _event_occrued_cb, m); - m->event_handler[5] = ecore_event_handler_add(ECORE_EVENT_MOUSE_WHEEL, _event_occrued_cb, m); - - m->timer = ecore_timer_add(val, _timer_expired_cb, NULL); - - return true; + data->event_handler[0] = ecore_event_handler_add( + ECORE_EVENT_KEY_DOWN, _event_occrued_cb, data); + data->event_handler[1] = ecore_event_handler_add( + ECORE_EVENT_KEY_UP, _event_occrued_cb, data); + data->event_handler[2] = ecore_event_handler_add( + ECORE_EVENT_MOUSE_BUTTON_DOWN, + _event_occrued_cb, data); + data->event_handler[3] = ecore_event_handler_add( + ECORE_EVENT_MOUSE_BUTTON_UP, + _event_occrued_cb, data); + data->event_handler[4] = ecore_event_handler_add( + ECORE_EVENT_MOUSE_MOVE, _event_occrued_cb, data); + data->event_handler[5] = ecore_event_handler_add( + ECORE_EVENT_MOUSE_WHEEL, _event_occrued_cb, data); + + data->timer = ecore_timer_add(val, _timer_expired_cb, NULL); + + return data; } - -void CTimeoutHandler::Destroy(void) +/** +* Release given timeout_handler data. +* +* @param data [in] The timeout_handler data pointer. +* @return void. +*/ +void timeout_handler_fini(struct timeout_handler *data) { - ASSERT(m); - int i; + if (!data) { + _ERR("Invalid argument"); + return; + } + for (i = 0; i < EVENT_HANDLER_NUM; i++) - ecore_event_handler_del(m->event_handler[i]); + ecore_event_handler_del(data->event_handler[i]); - ecore_timer_del(m->timer); - delete m; - m = NULL; + ecore_timer_del(data->timer); + free(data); } diff --git a/src/utils.cpp b/src/utils.c similarity index 87% rename from src/utils.cpp rename to src/utils.c index da5ab94..3184ddf 100644 --- a/src/utils.cpp +++ b/src/utils.c @@ -17,7 +17,7 @@ #include #include #include -#include +#include "dbg.h" #include "utils.h" #include "data_wrapper.h" @@ -36,8 +36,8 @@ static void _set_focus_down(Eina_Array *btns, int p, int n) if (!btns) return; - cur = (Evas_Object *) eina_array_data_get(btns, p); - next = (Evas_Object *) eina_array_data_get(btns, n); + cur = eina_array_data_get(btns, p); + next = eina_array_data_get(btns, n); if (!cur || !next) return; @@ -61,8 +61,8 @@ static void _set_focus_up(Eina_Array *btns, int p, int n) if (!btns) return; - cur = (Evas_Object *) eina_array_data_get(btns, p); - next = (Evas_Object *) eina_array_data_get(btns, n); + cur = eina_array_data_get(btns, p); + next = eina_array_data_get(btns, n); if (!cur || !next) return; @@ -126,7 +126,8 @@ char *utils_get_translation_str(const char *msgid) * callback or not. * @return The button's evas object, NULL on error. */ -Evas_Object *utils_add_btn(Evas_Object *base, const char *style, const char *text, Eina_Bool event) +Evas_Object *utils_add_btn(Evas_Object *base, + char *style, const char *text, Eina_Bool event) { Evas_Object *btn; @@ -139,8 +140,10 @@ Evas_Object *utils_add_btn(Evas_Object *base, const char *style, const char *tex if (!btn) return NULL; - evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, + EVAS_HINT_FILL); if (style) elm_object_style_set(btn, style); @@ -149,8 +152,10 @@ Evas_Object *utils_add_btn(Evas_Object *base, const char *style, const char *tex elm_object_text_set(btn, utils_get_translation_str(text)); if (event == EINA_TRUE) { - evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_IN, _btn_mouse_in_cb, NULL); - evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_OUT, _btn_mouse_out_cb, NULL); + evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_IN, + _btn_mouse_in_cb, NULL); + evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_OUT, + _btn_mouse_out_cb, NULL); } evas_object_show(btn); @@ -177,16 +182,17 @@ Evas_Object *utils_add_scroller(Evas_Object *base) if (!scroller) return NULL; - evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(scroller, + EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(scroller, + EVAS_HINT_FILL, EVAS_HINT_FILL); -#if 0 elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_FALSE); - elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); + elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_OFF); elm_object_focus_allow_set(scroller, EINA_FALSE); evas_object_show(scroller); -#endif return scroller; } @@ -210,8 +216,10 @@ Evas_Object *utils_add_box(Evas_Object *base) if (!box) return NULL; - evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(box, + EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(box, + EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_focus_allow_set(box, EINA_FALSE); evas_object_show(box); @@ -241,6 +249,9 @@ Evas_Object *utils_add_ctxpopup(Evas_Object *base, char *style) return NULL; } + if (style) + elm_object_style_set(ctxpopup, style); + return ctxpopup; } @@ -349,7 +360,7 @@ void utils_set_focus_directions(Eina_Array *btns, int cnt) return; if (cnt == 1) { - btn = (Evas_Object *) eina_array_data_get(btns, 0); + btn = eina_array_data_get(btns, 0); if (!btn) return; diff --git a/src/view_bottomslider.c b/src/view_bottomslider.c new file mode 100644 index 0000000..4c75d0b --- /dev/null +++ b/src/view_bottomslider.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dbg.h" +#include "def.h" +#include "stdbool.h" +#include "viewmgr.h" +#include "utils.h" +#include "data_wrapper.h" +#include "settings_provider.h" +#include "view_bottomslider.h" + +/** +* This function is invoked to create view layout. +* +* @param mgr [in] The setting_mgr data pointer passed by @settingmgr_view_push. +* @param view [in] The settingview_data data pointer passed by @settingmgr_view_push. +* @param prev [in] The parameter data which passed by prev view or NULL. +* @return View layout evas object, NULL on error. +*/ +static Evas_Object *_create(struct setting_mgr *mgr, + struct settingview_data *view, void *prev) +{ + /*TODO:Implement this function*/ + return NULL; +} + +/** +* This function is invoked to show view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _show(Evas_Object *base) +{ +} + +/** +* This function is invoked to destroy view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _destroy(Evas_Object *base) +{ +} + +/** +* This function is invoked to hide view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _hide(Evas_Object *base) +{ +} + +static struct setting_class _vclass = { + .title = VCLASS_TITLE_BOTTOM_SLIDER, + .create = _create, + .show = _show, + .destroy = _destroy, + .hide = _hide, + .hide_view = 1 +}; + +/** +* This function is invoked to get bottom slider view class object. +* +* @return The setting_class data static pointer, NULL on error. +*/ +struct setting_class *view_bottomslider_get_vclass(void) +{ + return &_vclass; +} diff --git a/src/view_bottomsublist.c b/src/view_bottomsublist.c new file mode 100644 index 0000000..6c64141 --- /dev/null +++ b/src/view_bottomsublist.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dbg.h" +#include "def.h" +#include "stdbool.h" +#include "viewmgr.h" +#include "utils.h" +#include "data_wrapper.h" +#include "settings_provider.h" +#include "view_bottomsublist.h" + +/** +* This function is invoked to create view layout. +* +* @param mgr [in] The setting_mgr data pointer passed by @settingmgr_view_push. +* @param view [in] The settingview_data data pointer passed by @settingmgr_view_push. +* @param prev [in] The parameter data which passed by prev view or NULL. +* @return View layout evas object, NULL on error. +*/ +static Evas_Object *_create(struct setting_mgr *mgr, + struct settingview_data *view, void *prev) +{ + /*TODO:Implement this function*/ + return NULL; +} + +/** +* This function is invoked to show view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _show(Evas_Object *base) +{ +} + +/** +* This function is invoked to destroy view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _destroy(Evas_Object *base) +{ +} + +/** +* This function is invoked to destroy view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _hide(Evas_Object *base) +{ +} + +static struct setting_class _vclass = { + .title = VCLASS_TITLE_BOTTOM_SUBLIST, + .create = _create, + .show = _show, + .destroy = _destroy, + .hide = _hide, + .hide_view = 1 +}; + +/** +* This function is invoked to get bottom sublist view class object. +* +* @return The setting_class data static pointer, NULL on error. +*/ +struct setting_class *view_bottomsublist_get_vclass(void) +{ + return &_vclass; +} diff --git a/src/view_device_manager.c b/src/view_device_manager.c new file mode 100644 index 0000000..c5543e8 --- /dev/null +++ b/src/view_device_manager.c @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dbg.h" +#include "def.h" +#include "stdbool.h" +#include "viewmgr.h" +#include "utils.h" +#include "data_wrapper.h" +#include "settings_provider.h" +#include "view_maincatalog.h" +#include "view_device_manager.h" + +static Evas_Object *_create(struct setting_mgr *mgr, + struct settingview_data *view, void *prev) +{ + /*TODO:Implement this function*/ + return NULL; +} + +static void _show(Evas_Object *base) +{ +} + +static void _destroy(Evas_Object *base) +{ +} + +static void _hide(Evas_Object *base) +{ +} + +static struct setting_class _vclass = { + .title = VCLASS_TITLE_DEVICE_MANAGER, + .create = _create, + .show = _show, + .destroy = _destroy, + .hide = _hide, + .hide_view = 0 +}; + +struct setting_class *view_device_manager_get_vclass(void) +{ + return &_vclass; +} diff --git a/src/view_maincatalog.c b/src/view_maincatalog.c new file mode 100644 index 0000000..b2cfe58 --- /dev/null +++ b/src/view_maincatalog.c @@ -0,0 +1,2111 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include + +#include "dbg.h" +#include "def.h" +#include "stdbool.h" +#include "viewmgr.h" +#include "utils.h" +#include "view_maincatalog.h" +#include "data_wrapper.h" +#include "settings_provider.h" + +#define DATA_ID "main_setting_data" +#define SUBITEM_DATA_ID "subitem_data_id" +#define SYSTEM_CLOCK_DATA "system_clock_data" +#define ICON_PART "iconpart" +#define PROGRESS_BAR_DATA "progressbar" + +#define SETTING_ID "setting_id" +#define E_CREATE_ITEMS 0 + +#define MAX_PROGRESS_VALUE 100.0 +#define MIN_PROGRESS_VALUE 0.0 +#define ICON_BUTTON_NO_DISP_NAME "No Display Name" +#define CHANGE_PASSCODE_NAME "change-passcode" +#define PASSCODE_MASK "****" +#define DISABLED "disabled" +#define ENABLED "enabled" +#define SIG_CLICKED "clicked" + +enum focused_state { + FOCUS_MAIN_ITEM = 1, + FOCUS_SUB_ITEM +}; + +struct _view_data { + Evas_Object *win; + Evas_Object *base; + Eina_Array *sub_item_btn; + Eina_Array *main_item_btn; + Eina_Array *main_icon_base; + Eina_Array *item_path; + Evas_Object *focused_sub_item_btn; + Evas_Object *focused_main_item_btn; + Evas_Object *subitem_box; + Evas_Object *mainitem_box; + + int focus_status; + int main_item_count; + int sub_item_count; + + struct setting_mgr *mgr; + struct settingview_data *main_setting_view; + struct settingview_data *subsetting_view; +}; + +/** +* This function will be invoked when focus moves from subitem to main item. +* +* @param[in]: data : the user data. +* @param[in]: btn : subitem which focus is on. +* +* @return: void. +*/ +static void _move_from_subitem_to_main_item(struct _view_data *data, + Evas_Object *btn) +{ + if (!data || !btn) + return; + + data->focus_status = FOCUS_MAIN_ITEM; + data->focused_sub_item_btn = btn; + + elm_object_focus_set(data->focused_main_item_btn, EINA_TRUE); +} + +/** +* Evas_Object_Event_Cb type callback for handling key press event. +* +* @param[in]: data : the user data. +* @param[in]: e : the evas canvas. +* @param[in]: obj : the corresponding object which the key press event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _subitem_key_pressed_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _view_data *priv; + Evas_Object *pb; + Evas_Object *next; + + if (!data || !ei || !obj) + return; + + ev = ei; + if (!ev->keyname) + return; + + priv = data; + + if (!strcmp(ev->keyname, KEY_LEFT) || + !strcmp(ev->keyname, KEY_BACK)) { + pb = evas_object_data_get(obj, PROGRESS_BAR_DATA); + if (pb) + elm_object_signal_emit(pb, + SIG_UNCTRL_PB_UNFOCUSED, SRC_PB_PROG); + + _move_from_subitem_to_main_item(priv, obj); + } else if (!strncmp(ev->keyname, KEY_DOWN, strlen(ev->keyname))) { + pb = evas_object_data_get(obj, PROGRESS_BAR_DATA); + if (pb) + elm_object_signal_emit(pb, + SIG_UNCTRL_PB_UNFOCUSED, SRC_PB_PROG); + + next = elm_object_focus_next_object_get(obj, + ELM_FOCUS_DOWN); + if (!next) { + _ERR("focus next object get failed."); + return; + } + + pb = evas_object_data_get(next, PROGRESS_BAR_DATA); + if (pb) + elm_object_signal_emit(pb, + SIG_UNCTRL_PB_FOCUSED, SRC_PB_PROG); + } else if (!strncmp(ev->keyname, KEY_UP, strlen(ev->keyname))) { + pb = evas_object_data_get(obj, PROGRESS_BAR_DATA); + if (pb) + elm_object_signal_emit(pb, + SIG_UNCTRL_PB_UNFOCUSED, SRC_PB_PROG); + + next = elm_object_focus_next_object_get(obj, ELM_FOCUS_UP); + if (!next) { + _ERR("focus next object get failed."); + return; + } + + pb = evas_object_data_get(next, PROGRESS_BAR_DATA); + if (pb) + elm_object_signal_emit(pb, + SIG_UNCTRL_PB_FOCUSED, SRC_PB_PROG); + } else if (!strncmp(ev->keyname, KEY_EXIT, strlen(ev->keyname))) { + app_efl_exit(); + } +} + +/** +* Get geometry data of object such as width, height. +* +* @param[in]: obj : the object which you want to get geometry data from. +* @param[out]: param : the geometry data. +* +* @return: void. +*/ +static void _get_geometry_data(Evas_Object *obj, + struct obj_geometry_data *param) +{ + int x, y, w, h; + + if (!param || !obj) { + _ERR("Invalid argument"); + return; + } + + x = y = w = h = 0; + + evas_object_geometry_get(obj, &x, &y, &w, &h); + + param->x = x; + param->y = y; + param->width = w; + param->height = h; +} + +/** +* Entry of showing UI gadget views. +* +* param[in]: data : the user data. +* param[in]: item : item data. +* param[in]: obj : object whose next view is UI gadget. +* +* @return: 0 - success, -1 - fail. +*/ +static int _push_ug_view(struct _view_data *data, + struct settingitem *item, Evas_Object *obj) +{ + const char *id; + struct evas_obj_data param; + int r; + + if (!data || !item || !obj) { + _ERR("Invalid argument"); + return -1; + } + + id = settingitem_get_id(item); + if (!id) { + _ERR("Fail to get item id"); + return -1; + } + + param.subitem_box = data->subitem_box; + param.display_name = settingitem_get_display_name(item); + param.cur_btn = obj; + + r = settingmgr_view_push(data->mgr, id, (void *)¶m); + if (r != 0) { + _ERR("Fail to push view"); + return -1; + } + + return 0; +} + +/** +* Entry of showing sublist views. +* +* param[in]: data : the user data. +* param[in]: item : item data. +* param[in]: obj : object whose next view is sublist. +* +* @return: 0 - success, -1 - fail. +*/ +static int _push_sublist_view(struct _view_data *data, + struct settingitem *item, Evas_Object *obj) +{ + const char *id; + int r; + struct obj_geometry_data ogd; + + if (!data || !item || !obj) { + _ERR("Invalid argument"); + return -1; + } + + id = settingitem_get_id(item); + if (!id) { + _ERR("Fail to get item id"); + return -1; + } + + _get_geometry_data(obj, &ogd); + + r = settingmgr_view_push(data->mgr, id, (void *)&ogd); + if (r != 0) { + _ERR("Fail to push view"); + return -1; + } + + elm_object_signal_emit(obj, SUBITEMBTN_BUTTON_CLICKED, + SUBITEMBTN_BUTTON_SOURCE); + + return 0; +} + +/** +* Entry of showing bottom sublist views. +* +* param[in]: data : the user data. +* param[in]: item : item data. +* +* @return: 0 - success, -1 - fail. +*/ +static int _push_bottom_sublist_view(struct _view_data *data, + struct settingitem *item) +{ + const char *id; + int r; + + if (!data || !item) { + _ERR("Invalid argument"); + return -1; + } + + id = settingitem_get_id(item); + if (!id) { + _ERR("Fail to get item id"); + return -1; + } + + r = settingmgr_view_push(data->mgr, id, NULL); + if (r != 0) { + _ERR("Fail to push view"); + return -1; + } + + return 0; +} + +/** +* Entry of showing bottom slider views. +* +* param[in]: data : the user data. +* param[in]: item : item data. +* param[in]: obj : object whose next view bottom slider. +* +* @return: 0 - success, -1 - fail. +*/ +static int _push_bottom_slider_view(struct _view_data *data, + struct settingitem *item, Evas_Object *obj) +{ + const char *id; + int r; + Eina_List *list; + Evas_Object *pb; + + if (!data || !item || !obj) { + _ERR("Invalid argument"); + return -1; + } + + id = settingitem_get_id(item); + if (!id) { + _ERR("Fail to get item id"); + return -1; + } + + pb = evas_object_data_get(obj, PROGRESS_BAR_DATA); + if (pb) + elm_object_signal_emit(pb, + SIG_UNCTRL_PB_UNFOCUSED, SRC_PB_PROG); + + list = settingitem_get_slider_group_list( + viewdata_get_parentitem(data->subsetting_view), + settingmgr_get_data(data->mgr), id); + + r = settingmgr_view_push(data->mgr, id, list); + if (r != 0) { + _ERR("Fail to push view"); + return -1; + } + + return 0; +} + +/** +* Entry of showing passcode popup views. +* +* param[in]: data : the user data. +* param[in]: item : item data. +* +* @return: 0 - success, -1 - fail. +*/ +static int _push_passcode_popup_view(struct _view_data *data, + struct settingitem *item) +{ + const char *id; + int r; + + if (!data || !item) { + _ERR("Invalid argument"); + return -1; + } + + id = settingitem_get_id(item); + if (!id) { + _ERR("Fail to get item id"); + return -1; + } + + r = settingmgr_view_push(data->mgr, id, NULL); + if (r != 0) { + _ERR("Fail to push view"); + return -1; + } + + return 0; +} + +/** +* Entry of showing device manager view. +* +* param[in]: data : the user data. +* param[in]: item : item data read from json file. +* +* @return: 0 - success, -1 - fail. +*/ +static int _push_device_manager_view(struct _view_data *data, + struct settingitem *item) +{ + const char *id; + struct evas_obj_data param; + int r; + + if (!data || !item) { + _ERR("Invalid argument"); + return -1; + } + + id = settingitem_get_id(item); + if (!id) { + _ERR("Fail to get item id"); + return -1; + } + + param.display_name = settingitem_get_display_name(item); + param.subitem_box = data->subitem_box; + + r = settingmgr_view_push(data->mgr, id, ¶m); + if (r != 0) { + _ERR("Fail to push view"); + return -1; + } + + return 0; +} + +/** +* Entry of showing reset popup view. +* +* param[in]: data : the user data. +* param[in]: item : item data read from json file. +* +* @return: 0 - success, -1 - fail. +*/ +static int _push_reset_popup_view(struct _view_data *data, + struct settingitem *item) +{ + const char *id; + int r; + + if (!data || !item) { + _ERR("Invalid argument"); + return -1; + } + + id = settingitem_get_id(item); + if (!id) { + _ERR("Fail to get item id"); + return -1; + } + + r = settingmgr_view_push(data->mgr, id, NULL); + if (r != 0) { + _ERR("Fail to push view"); + return -1; + } + + return 0; +} + +/** +* Entry of showing software upgrade popup view. +* +* param[in]: data : the user data. +* param[in]: item : item data read from json file. +* +* @return: 0 - success, -1 - fail. +*/ +static int _push_upgrade_popup_view(struct _view_data *data, + struct settingitem *item) +{ + const char *id; + int r; + + if (!data || !item) { + _ERR("Invalid argument"); + return -1; + } + + id = settingitem_get_id(item); + if (!id) { + _ERR("Fail to get item id"); + return -1; + } + + r = settingmgr_view_push(data->mgr, id, NULL); + if (r != 0) { + _ERR("Fail to push view"); + return -1; + } + + return 0; +} + +/** +* Entry of showing clock sublist view. +* +* param[in]: data : the user data. +* param[in]: item : item data read from json file. +* param[in]: obj : object whose next view is clock sublist view. +* +* @return: 0 - success, -1 - fail. +*/ +static int _push_clock_sublist_view(struct _view_data *data, + struct settingitem *item, Evas_Object *obj) +{ + const char *id; + struct evas_obj_data param; + struct obj_geometry_data ogd; + int r; + + if (!data || !item || !obj) { + _ERR("Invalid argument"); + return -1; + } + + id = settingitem_get_id(item); + if (!id) { + _ERR("Fail to get item id"); + return -1; + } + + _get_geometry_data(obj, &ogd); + + param.display_name = settingitem_get_display_name(item); + param.subitem_box = data->subitem_box; + param.cur_btn = obj; + + evas_object_data_set(obj, SYSTEM_CLOCK_DATA, (void *)&ogd); + + r = settingmgr_view_push(data->mgr, id, ¶m); + if (r != 0) { + _ERR("Fail to push view"); + return -1; + } + + elm_object_signal_emit(obj, + SUBITEMBTN_BUTTON_CLICKED, SUBITEMBTN_BUTTON_SOURCE); + + return 0; +} +/** +* Entry of showing channel lock view. +* +* param[in]: data : the user data. +* param[in]: item : item data read from json file. +* param[in]: obj : the channel lock object. +* +* @return: 0 - success, -1 - fail. +*/ +static int _push_need_passcode_view(struct _view_data *data, + struct settingitem *item, Evas_Object *obj) +{ + const char *id; + int r; + struct obj_geometry_data ogd; + + if (!data || !item || !obj) { + _ERR("Invalid argument"); + return -1; + } + + id = settingitem_get_id(item); + if (!id) { + _ERR("Fail to get item id"); + return -1; + } + + _get_geometry_data(obj, &ogd); + + r = settingmgr_view_push(data->mgr, id, &ogd); + if (r != 0) { + _ERR("Fail to push view"); + return -1; + } + + elm_object_signal_emit(obj, SUBITEMBTN_BUTTON_CLICKED, + SUBITEMBTN_BUTTON_SOURCE); + + return 0; +} + +/** +* This function will be invoked when subitem is clicked. +* +* @param[in]: data : the user data. +* @param[in]: obj : the subitem object. +* +* @return: void. +*/ +static void _submenu_item_clicked(void *data, Evas_Object *obj) +{ + struct _view_data *priv; + const char *style; + struct settingitem *item; + + if (!data || !obj) { + _ERR("Invalid argument"); + return; + } + + priv = data; + + if (priv->focus_status != FOCUS_SUB_ITEM) + return; + + item = evas_object_data_get(obj, SUBITEM_DATA_ID); + if (!item) { + _ERR("Get sub item failed"); + return; + } + + style = settingitem_get_settingui_style(item); + if (!style) { + _ERR("setting-ui style is null."); + return; + } + + if (!strncmp(style, STYLE_UIGADGET, strlen(style))) { + if (_push_ug_view(priv, item, obj) != 0) + _ERR("Fail to push ug"); + } else if (!strncmp(style, STYLE_CTXPOPUP, + strlen(style))) { + if (_push_sublist_view(priv, item, obj) != 0) + _ERR("Fail to push sublist"); + } else if (!strncmp(style, STYLE_BOTTOM_CTXPOPUP, + strlen(style))) { + if (_push_bottom_sublist_view(priv, item) != 0) + _ERR("Fail to push bottom sublist"); + } else if (!strncmp(style, STYLE_BOTTOMSLIDER, + strlen(style)) || !strncmp(style, + STYLE_BOTTOM2WAYSLIDER, + strlen(style))) { + if (_push_bottom_slider_view(priv, + item, obj) != 0) + _ERR("Fail to push bottom slider"); + } else if (!strncmp(style, STYLE_PASSCODE_POPUP, + strlen(style))) { + if (_push_passcode_popup_view(priv, item) != 0) + _ERR("Fail to push passcode popup"); + } else if (!strncmp(style, STYLE_DEVICE_MANAGER, + strlen(style))) { + if (_push_device_manager_view(priv, item) != 0) + _ERR("Fail to push device mgr view"); + } else if (!strncmp(style, STYLE_RESET_POPUP, + strlen(style))) { + if (_push_reset_popup_view(priv, item) != 0) + _ERR("Fail to push reset popup"); + } else if (!strncmp(style, STYLE_UPGRADE_POPUP, + strlen(style))) { + if (_push_upgrade_popup_view(priv, item) != 0) + _ERR("Fail to push upgrade popup"); + } else if (!strncmp(style, STYLE_CLOCK_CTXPOPUP, + strlen(style))) { + if (_push_clock_sublist_view( + priv, item, obj) != 0) + _ERR("Fail to push clock sublist"); + } else if (!strncmp(style, STYLE_NEED_PASSCODE, + strlen(style))) { + if (_push_need_passcode_view( + priv, item, obj) != 0) + _ERR("Fail to push need passcode view"); + } + + priv->focused_sub_item_btn = obj; +} + +/** +* Evas_Smart_Cb type callback for handling click event. +* +* @param[in]: data : the user data. +* @param[in]: obj : the corresponding object which the click event occurred. +* @param[in]: ev : event info. +* +* @return: void. +*/ +static void _subitem_btn_clicked_cb(void *data, + Evas_Object *obj, void *ev) +{ + struct _view_data *priv; + Evas_Object *icon; + + if (!data || !obj) { + _ERR("Invalid argument"); + return; + } + + priv = data; + + _submenu_item_clicked(priv, obj); + + elm_object_signal_emit(priv->focused_main_item_btn, + MAINICONBTN_FOCUSED_ON_SUBITEM, + MAINICONBTN_MAIN_ITEM_SOURCE); + + icon = elm_object_part_content_get(priv->focused_main_item_btn, + MAINICONBTN_ICON_SWALLOW); + if (icon) + elm_object_signal_emit(icon, MAIN_BTN_HIGHLIGHT, MAIN_BTN); +} + +/** +* Get item value from item. +* +* @param[in]: item : the item data read from json file. +* +* @return: the value of item or null if error occurred. +*/ +static char *_settingitems_get_value(struct settingitem *item) +{ + char *result; + const char *name, *style; + + if (!item) { + _ERR("Invalid argument"); + return NULL; + } + + result = NULL; + + name = settingitem_get_id(item); + if (name && !strncmp(name, CHANGE_PASSCODE_NAME, strlen(name))) { + result = strdup(PASSCODE_MASK); + return result; + } + + style = settingitem_get_settingui_style(item); + if (!style) { + _ERR("Fail to get setting ui style"); + return NULL; + } + + if (!strncmp(style, STYLE_UIGADGET, strlen(style))) + return provider_get_list_value(item); + else + return provider_get_selected_display_name(item); +} + +/** +* Get percentage value of progress from item data. +* +* @param[in]: item : item data read from json file. +* +* @return: the percentage value or -1.0 if error occurred. +*/ +static double _get_progress_percentage(struct settingitem *item) +{ + struct slideritem *sitem; + double val, persent; + + if (!item) { + _ERR("Invalid argument"); + return -1.0; + } + + sitem = settingitem_get_data_slideritem(item); + if (!sitem) { + _ERR("Get slider item failed"); + return -1.0; + } + + val = provider_get_slider_value(item); + persent = slideritem_find_slider_value(val, sitem); + + return persent; +} + +/** +* Get displaying value of item. +* +* @param[in]: item : item data read from json file. +* @param[in]: value : the percentage value. +* +* @return: the display value. +*/ +static double _get_display_value(struct settingitem *item, double value) +{ + struct slideritem *sitem; + double disp; + + if (!item) { + _ERR("Invalid argument"); + return -1.0; + } + + sitem = settingitem_get_data_slideritem(item); + if (!sitem) { + _ERR("Get slider item failed"); + return -1.0; + } + + disp = slideritem_find_slider_display_value(value, sitem); + + return disp; +} + +/** +* Create slider of subitem. +* +* @param[in]: item : the item data read from json file. +* @param[in]: base : the base layout of subitems. +* @param[in]: btn : the subitem the slider will be created on. +* +* @return: void. +*/ +static void _set_subitem_btn_slider(struct settingitem *item, + Evas_Object *base, Evas_Object *btn) +{ + Evas_Object *pb; + double val, percent; + char buf[BUF_SIZE]; + + if (!item || !base || !btn) { + _ERR("Invalid argument"); + return; + } + + elm_object_style_set(btn, SUBITEMBTN_TITLE_SLIDER_VALUE); + + pb = elm_progressbar_add(base); + if (!pb) { + _ERR("Add progress bar failed."); + return; + } + + elm_object_style_set(pb, SUBITEMBTN_TITILE_SLIDER); + + percent = _get_progress_percentage(item); + val = _get_display_value(item, percent); + elm_progressbar_value_set(pb, percent); + + snprintf(buf, sizeof(buf), "%d", (int)val); + elm_object_part_text_set(btn, SUBITEMBTN_VALUE, buf); + elm_object_part_content_set(btn, SUBITEMBTN_SLIDER_SWALLOW, pb); + + evas_object_data_set(btn, PROGRESS_BAR_DATA, pb); +} + +/** +* Get tint g-value. +* +* @param[in]: item : the item data read from json file. +* @param[in]: tint_r : the tint r-value. +* +* @return: the tint g-value. +*/ +static double _get_disp_tint_g_val(struct settingitem *item, double tint_r) +{ + const char *strval; + struct slideritem *sitem; + double val; + + if (!item) { + _ERR("Invalid argument"); + return -1.0; + } + + sitem = settingitem_get_data_slideritem(item); + if (!sitem) { + _ERR("Get slider item failed"); + return -1.0; + } + + strval = slideritem_get_max_display_value(sitem); + if (strval) + val = atof(strval); + else + val = 100; + + return val - tint_r; +} + +/** +* Create two way slider. +* +* @param[in]: item : the item data read from json file. +* @param[in]: base : the base layout of subitems. +* @param[in]: btn : the subitem which the two way slider will be created on. +* +* @return: void. +*/ +static void _set_subitem_btn_value_slider(struct settingitem *item, + Evas_Object *base, Evas_Object *btn) +{ + Evas_Object *pb; + double tint_r, tint_g, percent; + char buf[BUF_SIZE]; + + if (!item || !base || !btn) { + _ERR("Invalid argument"); + return; + } + + elm_object_style_set(btn, SUBITEMBTN_TITLE_SLIDER_VALUE); + + pb = elm_progressbar_add(base); + if (!pb) { + _ERR("Add progress bar failed."); + return; + } + + elm_object_style_set(pb, SUBITEMBTN_TITILE_SLIDER); + percent = _get_progress_percentage(item); + elm_progressbar_value_set(pb, percent); + + tint_r = _get_display_value(item, percent); + tint_g = _get_disp_tint_g_val(item, tint_r); + + snprintf(buf, sizeof(buf), "R%d", (int)tint_r); + elm_object_part_text_set(btn, SUBITEMBTN_VALUE, + utils_get_translation_str(buf)); + snprintf(buf, sizeof(buf), "G%d", (int)tint_g); + elm_object_part_text_set(btn, SUBITEMBTN_G_VALUE, + utils_get_translation_str(buf)); + + elm_object_part_content_set(btn, SUBITEMBTN_SLIDER_SWALLOW, pb); + + evas_object_data_set(btn, PROGRESS_BAR_DATA, pb); +} + +/** +* Create style for subitem. +* +* @param[in]: base : the base layout of subitems. +* @param[in]: obj : the subitem which the style will be created on. +* @param[in]: style : the style read from json file. +* @param[in]: item : the item data read from json file. +* +* @return: void. +*/ +static void _draw_subitem_with_style(Evas_Object *base, Evas_Object *obj, + const char *style, struct settingitem *item) +{ + char *val; + + if (!style || !base || !obj || !item) + return; + + if (!strncmp(style, STYLE_SUBBUTTON_TITLE_VALUE, strlen(style))) { + val = _settingitems_get_value(item); + elm_object_part_text_set(obj, SUBITEMBTN_VALUE, + utils_get_translation_str(val)); + free(val); + } else if (!strncmp(style, STYLE_SUBBUTTON_TITLE_ICON, strlen(style))) { + elm_object_style_set(obj, SUBITEMBTN_TITLE_ICON); + } else if (!strncmp(style, STYLE_SUBBUTTON_TITLE_SLIDER_VALUE, + strlen(style))) { + _set_subitem_btn_slider(item, base, obj); + } else if (!strncmp(style, STYLE_SUBBUTTON_TITLE_2WAYSLIDER_VALUE, + strlen(style))) { + _set_subitem_btn_value_slider(item, base, obj); + } +} + +/** +* Release resources of subitems. +* +* @param[in]: data : the user data. +* +* @return: void. +*/ +static void _release_subitems(struct _view_data *data) +{ + Evas_Object *btn; + Eina_Array_Iterator a; + unsigned int i; + + if (!data) { + _ERR("Invalid argument"); + return; + } + + if (data->sub_item_btn) { + EINA_ARRAY_ITER_NEXT(data->sub_item_btn, i, btn, a) + evas_object_del(btn); + eina_array_free(data->sub_item_btn); + } + + if (data->subsetting_view) + viewdata_release(data->subsetting_view); + + if (data->subitem_box) + evas_object_del(data->subitem_box); +} + +/** +* Refresh subitems when subitems are changed. +* +* @param[in]: data : the user data. +* +* @return: 0 - success, -1 - fail. +*/ +static int _refresh_subitems(struct _view_data *data) +{ + Evas_Object *btn; + Eina_Array_Iterator a; + unsigned int i; + struct settingitem *item; + const char *style; + + if (!data) { + _ERR("Invalid argument"); + return -1; + } + + EINA_ARRAY_ITER_NEXT(data->sub_item_btn, i, btn, a) { + item = evas_object_data_get(btn, SUBITEM_DATA_ID); + style = settingitem_get_style(item); + if (style) + _draw_subitem_with_style(data->base, btn, style, item); + } + + return 0; +} + +/** +* Evas_Object_Event_Cb type callback for handling mouse out event. +* +* @param[in]: data : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the mouse out event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _subitem_btn_mouse_out_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + /* TODO: Add necessary operations if needed. */ +} + +/** +* Evas_Object_Event_Cb type callback for handling mouse in event. +* +* @param[in]: data : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the mouse in event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _subitem_btn_mouse_in_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + struct _view_data *priv; + Evas_Object *icon, *pb; + + if (!obj || !data) + return; + + priv = data; + + elm_object_focus_set(obj, EINA_TRUE); + + if (priv->focus_status == FOCUS_MAIN_ITEM) { + priv->focus_status = FOCUS_SUB_ITEM; + elm_object_signal_emit(priv->focused_main_item_btn, + MAINICONBTN_FOCUSED_ON_SUBITEM, + MAINICONBTN_MAIN_ITEM_SOURCE); + + icon = elm_object_part_content_get(priv->focused_main_item_btn, + MAINICONBTN_ICON_SWALLOW); + if (icon) + elm_object_signal_emit(icon, + MAIN_BTN_HIGHLIGHT, MAIN_BTN); + } + + pb = evas_object_data_get(priv->focused_sub_item_btn, + PROGRESS_BAR_DATA); + if (pb) + elm_object_signal_emit(pb, SIG_UNCTRL_PB_UNFOCUSED, + SRC_PB_PROG); + + pb = evas_object_data_get(obj, PROGRESS_BAR_DATA); + if (pb) + elm_object_signal_emit(pb, SIG_UNCTRL_PB_FOCUSED, SRC_PB_PROG); + + priv->focused_sub_item_btn = obj; +} + +/** +* Create subitems of settings. +* +* @param[in]: data : the user data. +* @param[in]: name : the name of subitem. +* +* @return: 0 - success, -1 - fail. +*/ +static int _draw_subitems(struct _view_data *data, const char *name) +{ + Evas_Object *box, *btn, *tmp; + struct settingview_data *view; + struct settingitem *item; + Eina_List *list, *l; + int cnt; + Eina_Array_Iterator a; + unsigned int i; + const char *style, *status; + Eina_Array *enabled; + + if (!data || !name || !data->base) { + _ERR("Invalid argument"); + return -1; + } + + view = settingmgr_get_view(data->mgr, name); + if (!view) { + _ERR("get subview failed\n"); + return -1; + } + + list = viewdata_get_childitems_list(view); + if (!list) { + _ERR("childitem list is empty!"); + if (view) + viewdata_release(view); + return -1; + } + + cnt = eina_list_count(list); + + data->sub_item_btn = eina_array_new(1); + enabled = eina_array_new(1); + if (!data->sub_item_btn || !enabled) { + _ERR("Create Eina Array failed\n"); + EINA_LIST_FREE(list, item); + if (view) + viewdata_release(view); + return -1; + } + + box = utils_add_box(data->base); + if (!box) { + _ERR("Add box failed\n"); + EINA_LIST_FREE(list, item); + eina_array_free(data->sub_item_btn); + if (view) + viewdata_release(view); + return -1; + } + + EINA_LIST_FOREACH(list, l, item) { + btn = utils_add_btn(data->base, SUBITEMBTN_STYLE, + settingitem_get_display_name(item), EINA_FALSE); + if (!btn) { + _ERR("Add btn failed"); + evas_object_del(box); + EINA_LIST_FREE(list, item); + EINA_ARRAY_ITER_NEXT(data->sub_item_btn, i, tmp, a) + evas_object_del(tmp); + eina_array_free(data->sub_item_btn); + if (view) + viewdata_release(view); + return -1; + } + + style = settingitem_get_style(item); + if (style) + _draw_subitem_with_style(data->base, btn, style, item); + + evas_object_smart_callback_add(btn, "clicked", + _subitem_btn_clicked_cb, data); + evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, + _subitem_key_pressed_cb, data); + evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_IN, + _subitem_btn_mouse_in_cb, data); + evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_OUT, + _subitem_btn_mouse_out_cb, data); + + elm_box_pack_end(box, btn); + eina_array_push(data->sub_item_btn, btn); + + evas_object_data_set(btn, SUBITEM_DATA_ID, item); + + status = settingitem_get_status(item); + if (status && !strncmp(status, DISABLED, strlen(status))) { + elm_object_disabled_set(btn, EINA_TRUE); + evas_object_freeze_events_set(btn, EINA_TRUE); + } else { + eina_array_push(enabled, btn); + } + } + + data->subsetting_view = view; + data->sub_item_count = cnt; + data->subitem_box = box; + + elm_object_part_content_set(data->base, MAIN_VIEW_SUBITEM_SWALLOW, box); + + utils_set_focus_directions(enabled, eina_array_count(enabled)); + + EINA_LIST_FREE(list, item); + eina_array_free(enabled); + + return 0; +} + +/** +* This function will be invoked when the main item is clicked. +* +* @param[in]: data : the user data. +* @param[in]: mainbtn : the main item which the clicked event is occurred. +* +* @return: void. +*/ +static void _move_from_main_item_to_subitem(struct _view_data *data, + Evas_Object *mainbtn) +{ + Evas_Object *btn, *pb, *icon; + int i; + + if (!data || !mainbtn) + return; + + data->focus_status = FOCUS_SUB_ITEM; + + for (i = 0; i < data->sub_item_count; i++) { + btn = eina_array_data_get(data->sub_item_btn, i); + if (!btn) { + _ERR("Get subitem btn failed\n"); + data->focus_status = FOCUS_MAIN_ITEM; + return; + } + + if (elm_object_disabled_get(btn) != EINA_TRUE) + break; + } + + if (i >= data->sub_item_count) { + data->focus_status = FOCUS_MAIN_ITEM; + return; + } + + pb = evas_object_data_get(btn, PROGRESS_BAR_DATA); + if (pb) + elm_object_signal_emit(pb, SIG_UNCTRL_PB_FOCUSED, SRC_PB_PROG); + + elm_object_focus_set(btn, EINA_TRUE); + + data->focused_main_item_btn = mainbtn; + elm_object_signal_emit(mainbtn, MAINICONBTN_FOCUSED_ON_SUBITEM, + MAINICONBTN_MAIN_ITEM_SOURCE); + + icon = elm_object_part_content_get(mainbtn, MAINICONBTN_ICON_SWALLOW); + if (icon) + elm_object_signal_emit(icon, MAIN_BTN_HIGHLIGHT, MAIN_BTN); +} + +/** +* Evas_Object_Event_Cb type callback for handling key press event. +* +* @param[in]: data : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the key press event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _main_setting_key_pressed_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _view_data *priv; + Evas_Object *next, *icon; + const char *name; + + if (!data || !ei || !obj) + return; + + ev = ei; + if (!ev->keyname) + return; + + priv = data; + + if (!strcmp(ev->keyname, KEY_DOWN)) { + icon = elm_object_part_content_get(obj, + MAINICONBTN_ICON_SWALLOW); + if (!icon) { + _ERR("part %s content get failed.", + MAINICONBTN_ICON_SWALLOW); + return; + } + + elm_object_signal_emit(icon, MAIN_BTN_UNFOCUSED, MAIN_BTN); + + next = elm_object_focus_next_object_get(obj, ELM_FOCUS_DOWN); + if (!next) { + _ERR("next object get failed."); + return; + } + + priv->focused_main_item_btn = next; + + icon = elm_object_part_content_get(next, + MAINICONBTN_ICON_SWALLOW); + if (!icon) { + _ERR("part %s content get failed.", + MAINICONBTN_ICON_SWALLOW); + return; + } + + elm_object_signal_emit(icon, MAIN_BTN_FOCUSED, MAIN_BTN); + + _release_subitems(priv); + + name = evas_object_data_get(next, SETTING_ID); + if (name) + _draw_subitems(priv, name); + } else if (!strcmp(ev->keyname, KEY_UP)) { + icon = elm_object_part_content_get(obj, + MAINICONBTN_ICON_SWALLOW); + if (!icon) { + _ERR("part %s content get failed.", + MAINICONBTN_ICON_SWALLOW); + return; + } + + elm_object_signal_emit(icon, MAIN_BTN_UNFOCUSED, MAIN_BTN); + + next = elm_object_focus_next_object_get(obj, ELM_FOCUS_UP); + if (!next) { + _ERR("next object get failed."); + return; + } + + priv->focused_main_item_btn = next; + + icon = elm_object_part_content_get(next, + MAINICONBTN_ICON_SWALLOW); + if (!icon) { + _ERR("part %s content get failed.", + MAINICONBTN_ICON_SWALLOW); + return; + } + + elm_object_signal_emit(icon, MAIN_BTN_FOCUSED, MAIN_BTN); + + _release_subitems(priv); + + name = evas_object_data_get(next, SETTING_ID); + if (name) + _draw_subitems(priv, name); + } else if (!strcmp(ev->keyname, KEY_RIGHT)) { + _move_from_main_item_to_subitem(priv, obj); + } else if (!strcmp(ev->keyname, KEY_EXIT) || + !strcmp(ev->keyname, KEY_BACK)) { + app_efl_exit(); + } +} + +/** +* Evas_Object_Event_Cb type callback for handling mouse in event. +* +* @param[in]: data : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the mouse in event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _mainitem_btn_mouse_in_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + struct _view_data *priv; + const char *name; + Evas_Object *icon; + + if (!data || !obj) { + _ERR("Invalid argument"); + return; + } + + priv = data; + + if (priv->focus_status == FOCUS_SUB_ITEM) + _move_from_subitem_to_main_item(priv, + priv->focused_sub_item_btn); + + icon = elm_object_part_content_get(priv->focused_main_item_btn, + MAINICONBTN_ICON_SWALLOW); + if (icon) + elm_object_signal_emit(icon, MAIN_BTN_UNFOCUSED, MAIN_BTN); + + icon = elm_object_part_content_get(obj, MAINICONBTN_ICON_SWALLOW); + if (icon) + elm_object_signal_emit(icon, MAIN_BTN_FOCUSED, MAIN_BTN); + + _release_subitems(priv); + + name = evas_object_data_get(obj, SETTING_ID); + if (name) + _draw_subitems(priv, name); + + elm_object_focus_set(obj, EINA_TRUE); + priv->focused_main_item_btn = obj; +} + +/** +* Evas_Object_Event_Cb type callback for handling mouse out event. +* +* @param[in]: data : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the mouse out event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _mainitem_btn_mouse_out_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + /* TODO: Add necessary operations if needed. */ +} + +/** +* Evas_Smart_Cb type callback for handling click event. +* +* @param[in]: data : the user data. +* @param[in]: obj : the corresponding object which the click event occurred. +* @param[in]: ev : event info. +* +* @return: void. +*/ +static void _mainitem_btn_clicked_cb(void *data, + Evas_Object *obj, void *ev) +{ + struct _view_data *priv; + + if (!data || !obj) { + _ERR("Invalid argument"); + return; + } + + priv = data; + _move_from_main_item_to_subitem(priv, obj); +} + +/** +* Create main items of settings. +* +* @param[in]: data : the user data. +* @param[in]: list : the eina list containing data of main items. +* +* @return: 0 - success, -1 - fail. +*/ +static int _add_icon_btns(struct _view_data *data, Eina_List *list) +{ + Evas_Object *btn, *icon; + const char *id, *name; + struct settingitem *item; + char buf[BUF_SIZE]; + int i; + + if (!data || !list || !data->base) { + _ERR("Invalid argument"); + return -1; + } + + for (i = 0; i < data->main_item_count; i++) { + btn = utils_add_btn(data->base, MAINICONBTN_STYLE, + NULL, EINA_FALSE); + if (!btn) { + _ERR("Add btn failed\n"); + return -1; + } + + item = eina_list_nth(list, i); + if (item) { + name = settingitem_get_display_name(item); + elm_object_text_set(btn, + utils_get_translation_str(name)); + } else { + elm_object_text_set(btn, ICON_BUTTON_NO_DISP_NAME); + } + + evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, + _main_setting_key_pressed_cb, data); + evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_IN, + _mainitem_btn_mouse_in_cb, data); + evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_OUT, + _mainitem_btn_mouse_out_cb, data); + evas_object_smart_callback_add(btn, SIG_CLICKED, + _mainitem_btn_clicked_cb, data); + + icon = elm_layout_add(btn); + if (icon) { + id = settingitem_get_id(item); + if (!id) { + _ERR("get item name failed."); + evas_object_del(btn); + return -1; + } + + snprintf(buf, sizeof(buf), "%s/%s.edj", + EDJEDIR, PACKAGE); + elm_layout_file_set(icon, buf, id); + elm_object_part_content_set(btn, + MAINICONBTN_ICON_SWALLOW, icon); + elm_object_signal_emit(icon, MAIN_BTN_NORMAL, MAIN_BTN); + eina_array_push(data->main_icon_base, icon); + } + + elm_box_pack_end(data->mainitem_box, btn); + evas_object_data_set(btn, SETTING_ID, settingitem_get_id(item)); + eina_array_push(data->main_item_btn, btn); + } + + return 0; +} + +/** +* Create all the UI components of settings. +* +* @param[in]: data : the user data. +* +* @return: 0 - success, -1 - fail. +*/ +static int _draw_main_items(struct _view_data *data) +{ + Evas_Object *box, *btn, *tmp, *icon; + Eina_Array *btns, *icons; + Eina_List *list; + int cnt, i; + Eina_Array_Iterator a; + + if (!data || !data->base) + return -1; + + box = utils_add_box(data->base); + if (!box) + return -1; + + data->mainitem_box = box; + + cnt = 0; + list = viewdata_get_childitems_list(data->main_setting_view); + if (list) + cnt = eina_list_count(list); + + if (cnt == 0) { + _ERR("There is no child item"); + evas_object_del(box); + viewdata_free_childitems_list(list); + return -1; + } + + data->main_item_count = cnt; + + btns = eina_array_new(1); + if (!btns) { + _ERR("Create Eina Array failed\n"); + evas_object_del(box); + viewdata_free_childitems_list(list); + return -1; + } + + data->main_item_btn = btns; + + icons = eina_array_new(1); + if (!icons) { + _ERR("new array for icon base failed."); + evas_object_del(box); + viewdata_free_childitems_list(list); + eina_array_free(btns); + return -1; + } + + data->main_icon_base = icons; + + if (_add_icon_btns(data, list) == -1) { + _ERR("Fail to add icon buttons"); + goto error; + } + + elm_object_part_content_set(data->base, MAIN_VIEW_ICON_SWALLOW, box); + + if (!data->item_path) { + btn = eina_array_data_get(btns, 0); + if (!btn) + goto error; + + if (_draw_subitems(data, + evas_object_data_get(btn, SETTING_ID)) == -1) + goto error; + + icon = eina_array_data_get(icons, 0); + if (!icon) { + if (data->subsetting_view) + viewdata_release(data->subsetting_view); + goto error; + } + + elm_object_signal_emit(icon, MAIN_BTN_FOCUSED, MAIN_BTN); + + data->focus_status = FOCUS_MAIN_ITEM; + + elm_object_focus_set(btn, EINA_TRUE); + data->focused_main_item_btn = btn; + } + + utils_set_focus_directions(data->main_item_btn, cnt); + + viewdata_free_childitems_list(list); + + return 0; + +error: + evas_object_del(box); + viewdata_free_childitems_list(list); + EINA_ARRAY_ITER_NEXT(btns, i, tmp, a) + evas_object_del(tmp); + eina_array_free(btns); + + EINA_ARRAY_ITER_NEXT(icons, i, tmp, a) + evas_object_del(tmp); + eina_array_free(icons); + + return -1; +} + +/** +* Edje_Signal_Cb type callback for handling signal. +* +* @param[in]: data : the user data. +* @param[in]: obj : the object signal occurred on. +* @param[in]: emission : the signal name. +* @param[in]: source : the source name. +* +* @return: void. +*/ +static void _view_anim_finish(void *data, Evas_Object *obj, + const char *emission, const char *source) +{ + struct _view_data *priv; + + if (!data) + return; + + priv = data; + + _draw_main_items(priv); +} + +/** +* This function moves focus from main item to subitem and +* does corresponding operations. +* +* @param[in]: data : the user data. +* +* @return: void. +*/ +void _move_focus_on_subitem(struct _view_data *data) +{ + const char *path, *id; + unsigned int i; + Evas_Object *icon, *subbtn, *pb; + Eina_Array *subbtns; + Eina_Array_Iterator a; + struct settingitem *item; + + if (!data) + return; + + subbtns = data->sub_item_btn; + + path = eina_array_data_get(data->item_path, 0); + + EINA_ARRAY_ITER_NEXT(subbtns, i, subbtn, a) { + item = evas_object_data_get(subbtn, SUBITEM_DATA_ID); + id = settingitem_get_id(item); + if (!id) + return; + + if (!strncmp(id, path, ARRAY_SIZE)) { + icon = elm_object_part_content_get( + data->focused_main_item_btn, + MAINICONBTN_ICON_SWALLOW); + if (icon) + elm_object_signal_emit(icon, + MAIN_BTN_HIGHLIGHT, MAIN_BTN); + + data->focus_status = FOCUS_SUB_ITEM; + data->focused_sub_item_btn = subbtn; + + elm_object_focus_set(subbtn, EINA_TRUE); + elm_object_signal_emit(data->focused_main_item_btn, + MAINICONBTN_FOCUSED_ON_SUBITEM, + MAINICONBTN_MAIN_ITEM_SOURCE); + + pb = evas_object_data_get(subbtn, PROGRESS_BAR_DATA); + if (pb) + elm_object_signal_emit(pb, + SIG_UNCTRL_PB_FOCUSED, + SRC_PB_PROG); + } + } +} + +/** +* Change the language of names of buttons. +* +* @param[in]: list : eina list of item data. +* @param[in]: btns : eina array containing buttons. +* @param[in]: cnt : number of buttons. +* +* @return: void. +*/ +static void _change_buttons_name(Eina_List *list, + Eina_Array *btns, int cnt) +{ + struct settingitem *item; + Evas_Object *btn; + const char *name; + int i; + + if (!list || !btns || !cnt) { + _ERR("Invalid argument"); + return; + } + + for (i = 0; i < cnt; i++) { + item = eina_list_nth(list, i); + btn = eina_array_data_get(btns, i); + if (!item || !btn) + return; + + name = settingitem_get_display_name(item); + if (name) + elm_object_text_set(btn, + utils_get_translation_str(name)); + } +} + +/** +* Create all UI components of settings view. +* +* @param[in]: mgr : the view manager of settings. +* @param[in]: view : the view data. +* @param[in]: prev : the user data. +* +* @return: the base layout of settings or null if error occurred. +*/ +static Evas_Object *_create(struct setting_mgr *mgr, + struct settingview_data *view, void *prev) +{ + Evas_Object *base, *win; + struct _view_data *data; + + if (!mgr || !view) { + _ERR("Invalid argument"); + return NULL; + } + + win = settingmgr_get_win(mgr); + if (!win) { + _ERR("Fail to get win"); + return NULL; + } + + data = calloc(1, sizeof(*data)); + if (!data) + return NULL; + + base = elm_layout_add(win); + if (!base) { + free(data); + return NULL; + } + + if (!elm_layout_file_set(base, EDJ_FILE, MAIN_VIEW_PAGE)) + goto error; + + data->mgr = mgr; + data->win = win; + data->base = base; + data->main_setting_view = view; + data->subsetting_view = NULL; + data->item_path = settingmgr_get_item_path(mgr); + + evas_object_data_set(base, DATA_ID, data); + + elm_object_signal_callback_add(base, MAIN_VIEW_ANIM_FINISH, + MAIN_VIEW_SOURCE, _view_anim_finish, data); + + if (!data->item_path) + elm_object_signal_emit(data->base, MAIN_VIEW_LOAD, ""); + else + _view_anim_finish(data, NULL, NULL, NULL); + + return base; + +error: + evas_object_del(base); + free(data); + + return NULL; +} + +/** +* Show the view of settings. +* +* @param[in]: base : the base layout of settings. +* +* @return: void. +*/ +static void _show(Evas_Object *base) +{ + struct _view_data *data; + unsigned int cnt, i; + const char *name, *path; + Evas_Object *btn, *icon; + Eina_Array *btns; + Eina_Array_Iterator a; + + if (!base) { + _ERR("Invalid argument"); + return; + } + + data = evas_object_data_get(base, DATA_ID); + if (!data) { + _ERR("evas object data get failed. id: %s", DATA_ID); + return; + } + + path = NULL; + + if (data->item_path) { + btns = data->main_item_btn; + + cnt = eina_array_count(data->item_path); + if (cnt > 1) { + path = eina_array_data_get(data->item_path, cnt - 2); + if (!path) + return; + } + + EINA_ARRAY_ITER_NEXT(btns, i, btn, a) { + name = evas_object_data_get(btn, SETTING_ID); + if (!name) + return; + + if (!strncmp(name, path, ARRAY_SIZE)) { + _draw_subitems(data, name); + + icon = eina_array_data_get( + data->main_icon_base, i); + if (icon) + elm_object_signal_emit(icon, + MAIN_BTN_FOCUSED, + MAIN_BTN); + + elm_object_focus_set(btn, EINA_TRUE); + + data->focus_status = FOCUS_MAIN_ITEM; + data->focused_main_item_btn = btn; + + _move_focus_on_subitem(data); + } + } + } + + evas_object_show(base); +} + +/** +* Hide the view of settings. +* +* @param[in]: base : the base layout of settings. +* +* @return: void. +*/ +static void _hide(Evas_Object *base) +{ + if (!base) { + _ERR("Invalid argument"); + return; + } + + evas_object_hide(base); +} + +/** +* Refresh the view of settings. +* +* @param[in]: base : the base layout of settings. +* +* @return: void. +*/ +static void _refresh(Evas_Object *base) +{ + struct _view_data *data; + char *sld; + const char *id; + int i; + struct settingitem *item; + Eina_Array_Iterator a; + Evas_Object *btn, *pb, *icon; + + if (!base) + return; + + data = evas_object_data_get(base, DATA_ID); + if (!data) + return; + + sld = evas_object_data_del(base, SELECTED_ITEM_ID); + if (sld) { + EINA_ARRAY_ITER_NEXT(data->sub_item_btn, i, btn, a) { + item = evas_object_data_get(btn, SUBITEM_DATA_ID); + id = settingitem_get_id(item); + if (!id) + continue; + + if (item && !strncmp(sld, id, strlen(sld))) { + data->focused_sub_item_btn = btn; + break; + } + } + } + + if (data->focus_status == FOCUS_SUB_ITEM) { + elm_object_focus_set(data->focused_sub_item_btn, EINA_TRUE); + + elm_object_signal_emit(data->focused_main_item_btn, + MAINICONBTN_FOCUSED_ON_SUBITEM, + MAINICONBTN_MAIN_ITEM_SOURCE); + + icon = elm_object_part_content_get(data->focused_main_item_btn, + MAINICONBTN_ICON_SWALLOW); + if (icon) + elm_object_signal_emit(icon, + MAIN_BTN_HIGHLIGHT, MAIN_BTN); + + if (_refresh_subitems(data) == -1) + _ERR("Refresh subitems failed"); + + pb = evas_object_data_get(data->focused_sub_item_btn, + PROGRESS_BAR_DATA); + if (pb) + elm_object_signal_emit(pb, + SIG_UNCTRL_PB_FOCUSED, SRC_PB_PROG); + } + + if (settingmgr_get_timeout_freeze_state(data->mgr) == EINA_TRUE) + settingmgr_thaw_timeout(data->mgr); +} + +/** +* Destroy the view of settings. +* +* @param[in]: base : the base layout of settings. +* +* @return: void. +*/ +static void _destroy(Evas_Object *base) +{ + struct _view_data *data; + Eina_Array_Iterator a; + Evas_Object *tmp; + unsigned int i; + + if (!base) { + _ERR("Parameter error!"); + return; + } + + data = evas_object_data_get(base, DATA_ID); + + if (data->sub_item_btn) { + EINA_ARRAY_ITER_NEXT(data->sub_item_btn, i, tmp, a) + evas_object_del(tmp); + eina_array_free(data->sub_item_btn); + } + + if (data->main_item_btn) { + EINA_ARRAY_ITER_NEXT(data->main_item_btn, i, tmp, a) + evas_object_del(tmp); + eina_array_free(data->main_item_btn); + } + + if (data->main_icon_base) { + EINA_ARRAY_ITER_NEXT(data->main_icon_base, i, tmp, a) + evas_object_del(tmp); + eina_array_free(data->main_icon_base); + } + + if (data->main_setting_view) + viewdata_release(data->main_setting_view); + + if (data->subsetting_view) + viewdata_release(data->subsetting_view); + + free(data); + evas_object_del(base); +} + +/** +* Change the language of view of settings. +* +* @param[in]: base : the base layout of settings. +* +* @return: void. +*/ +static void _lang_changed(Evas_Object *base) +{ + struct _view_data *data; + Eina_List *l; + int cnt; + + if (!base) { + _ERR("Invalid argument"); + return; + } + + data = evas_object_data_get(base, DATA_ID); + if (!data) + return; + + cnt = 0; + l = viewdata_get_childitems_list(data->main_setting_view); + if (l) + cnt = eina_list_count(l); + + _change_buttons_name(l, data->main_item_btn, cnt); + + cnt = 0; + l = viewdata_get_childitems_list(data->subsetting_view); + if (l) + cnt = eina_list_count(l); + + _change_buttons_name(l, data->sub_item_btn, cnt); +} + +/** +* Froze the view of settings. +* +* @param[in]: base : the base layout of settings. +* +* @return: void. +*/ +static void _frozen(Evas_Object *base) +{ + struct _view_data *data; + + if (!base) { + _ERR("Invalid argument"); + return; + } + + data = evas_object_data_get(base, DATA_ID); + if (!data) { + _ERR("Fail to get mainview data"); + return; + } + + evas_object_freeze_events_set(data->mainitem_box, EINA_TRUE); + evas_object_freeze_events_set(data->subitem_box, EINA_TRUE); +} + +/** +* Activate the view of settings. +* +* @param[in]: base : the base layout of settings. +* +* @return: void. +*/ +static void _active(Evas_Object *base) +{ + struct _view_data *data; + + if (!base) { + _ERR("Invalid argument"); + return; + } + + data = evas_object_data_get(base, DATA_ID); + if (!data) { + _ERR("Fail to get mainview data"); + return; + } + + evas_object_freeze_events_set(data->mainitem_box, EINA_FALSE); + evas_object_freeze_events_set(data->subitem_box, EINA_FALSE); +} + +static struct setting_class _vclass = { + .title = VCLASS_TITLE_MAIN_VIEW, + .create = _create, + .show = _show, + .destroy = _destroy, + .hide = _hide, + .refresh = _refresh, + .frozen = _frozen, + .active = _active, + .lang_changed = _lang_changed, + .hide_view = 0 +}; + +/** +* Return view class of settings view. +* +* @param: void. +* +* @return: the view class of settings view. +*/ +struct setting_class *view_maincatalog_get_vclass(void) +{ + return &_vclass; +} diff --git a/src/view_maincatalog.cpp b/src/view_maincatalog.cpp deleted file mode 100644 index 591efcd..0000000 --- a/src/view_maincatalog.cpp +++ /dev/null @@ -1,1557 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#include -#include "common_defs.h" -#include "stdbool.h" -#include "settingviewmgr.h" -#include "utils.h" -#include "view_maincatalog.h" -#include "data_wrapper.h" -#include "settings_provider.h" -#include "settingviewmgr.h" - -#define DATA_ID "main_setting_data" -#define SUBITEM_DATA_ID "subitem_data_id" -#define SYSTEM_CLOCK_DATA "system_clock_data" -#define ICON_PART "iconpart" -#define PROGRESS_BAR_DATA "progressbar" - -#define SETTING_ID "setting_id" -#define E_CREATE_ITEMS 0 - -#define MAX_PROGRESS_VALUE 100.0 -#define MIN_PROGRESS_VALUE 0.0 -#define ICON_BUTTON_NO_DISP_NAME "No Display Name" -#define CHANGE_PASSCODE_NAME "change-passcode" -#define PASSCODE_MASK "****" -#define DISABLED "disabled" -#define ENABLED "enabled" -#define SIG_CLICKED "clicked" - -enum KeyID { - MAIN_ITEM_BTNS, - SUB_ITEM_BTNS -}; - -enum focused_state { - FOCUS_MAIN_ITEM = 1, - FOCUS_SUB_ITEM -}; - -struct SMainCatalog { - Evas_Object *win; - Evas_Object *base; - Eina_Array *sub_item_btn; - Eina_Array *main_item_btn; - Eina_Array *main_icon_base; - Eina_Array *item_path; - Evas_Object *focused_sub_item_btn; - Evas_Object *focused_main_item_btn; - Evas_Object *subitem_box; - Evas_Object *mainitem_box; - - int focus_status; - int main_item_count; - int sub_item_count; - - CSettingMgr *mgr; - struct settingview_data *main_setting_view; - struct settingview_data *subsetting_view; - - SMainCatalog() { - memset(this, 0, sizeof(*this)); - } -}; - -/** -* This function will be invoked when focus moves from subitem to main item. -* -* @param[in]: data : the user data. -* @param[in]: btn : subitem which focus is on. -* -* @return: void. -*/ -void CMainCatalogView::m_MoveFromSubitemToMainitem(Evas_Object *btn) -{ - if(!btn) return; - m->focus_status = FOCUS_MAIN_ITEM; - m->focused_sub_item_btn = btn; - - elm_object_focus_set(m->focused_main_item_btn, EINA_TRUE); -} - - -static void _get_geometry_data(Evas_Object *obj, - struct obj_geometry_data *param) -{ - int x, y, w, h; - - if (!param || !obj) { - _ERR("Invalid argument"); - return; - } - - x = y = w = h = 0; - - evas_object_geometry_get(obj, &x, &y, &w, &h); - - param->x = x; - param->y = y; - param->width = w; - param->height = h; -} - - -void CMainCatalogView::m_SubItemClicked(Evas_Object *obj) -{ - const char *style; - struct settingitem *item; - - if (m->focus_status != FOCUS_SUB_ITEM) - return; - - item =(struct settingitem *) evas_object_data_get(obj, SUBITEM_DATA_ID); - if (!item) { - _ERR("Get sub item failed"); - return; - } - - style = settingitem_get_settingui_style(item); - if (!style) { - _ERR("setting-ui style is null."); - return; - } - - const char *id; - id = settingitem_get_id(item); - if (!id) { - _ERR("Fail to get item id"); - return ; - } - - if (!strncmp(style, STYLE_UIGADGET, strlen(style))) { - - struct evas_obj_data param; - param.subitem_box = m->subitem_box; - param.display_name = settingitem_get_display_name(item); - param.cur_btn = obj; - - if (!m->mgr->ViewPush(id, (void *)¶m)) - _ERR("Fail to push ug view"); - - } else if (!strncmp(style, STYLE_CTXPOPUP, strlen(style))) { - - struct obj_geometry_data ogd; - _get_geometry_data(obj, &ogd); - - if (!m->mgr->ViewPush(id, (void *)&ogd)) - _ERR("Fail to push sublist"); - else - elm_object_signal_emit(obj, SUBITEMBTN_BUTTON_CLICKED, SUBITEMBTN_BUTTON_SOURCE); - - } else if (!strncmp(style, STYLE_BOTTOM_CTXPOPUP, strlen(style))) { - - if (!m->mgr->ViewPush(id, NULL)) - _ERR("Fail to push view"); - - } else if (!strncmp(style, STYLE_BOTTOMSLIDER, strlen(style)) || !strncmp(style, STYLE_BOTTOM2WAYSLIDER, strlen(style))) { - - Eina_List *list; - Evas_Object *pb; - pb = (Evas_Object *)evas_object_data_get(obj, PROGRESS_BAR_DATA); - if (pb) - elm_object_signal_emit(pb, SIG_UNCTRL_PB_UNFOCUSED, SRC_PB_PROG); - list = settingitem_get_slider_group_list(viewdata_get_parentitem(m->subsetting_view), m->mgr->GetData(), id); - if (!m->mgr->ViewPush(id, list)) - _ERR("Fail to push bottom slider view"); - - } else if (!strncmp(style, STYLE_PASSCODE_POPUP, strlen(style))) { - - if (!m->mgr->ViewPush(id, NULL)) - _ERR("Fail to push passcode view"); - - } else if (!strncmp(style, STYLE_DEVICE_MANAGER, strlen(style))) { - - struct evas_obj_data param; - param.display_name = settingitem_get_display_name(item); - param.subitem_box = m->subitem_box; - - if (!m->mgr->ViewPush(id, ¶m)) - _ERR("Fail to push device_manager view"); - - } else if (!strncmp(style, STYLE_RESET_POPUP, strlen(style))) { - - if (!m->mgr->ViewPush(id, NULL)) - _ERR("Fail to push reset_popup view"); - - } else if (!strncmp(style, STYLE_UPGRADE_POPUP, strlen(style))) { - - if (!m->mgr->ViewPush(id, NULL)) - _ERR("Fail to push reset_popup view"); - - } else if (!strncmp(style, STYLE_CLOCK_CTXPOPUP, strlen(style))) { - - struct evas_obj_data param; - struct obj_geometry_data ogd; - - _get_geometry_data(obj, &ogd); - - param.display_name = settingitem_get_display_name(item); - param.subitem_box = m->subitem_box; - param.cur_btn = obj; - - evas_object_data_set(obj, SYSTEM_CLOCK_DATA, (void *)&ogd); - - if (!m->mgr->ViewPush(id, ¶m)) - _ERR("Fail to push view"); - else - elm_object_signal_emit(obj, SUBITEMBTN_BUTTON_CLICKED, SUBITEMBTN_BUTTON_SOURCE); - - } else if (!strncmp(style, STYLE_NEED_PASSCODE, strlen(style))) { - - struct obj_geometry_data ogd; - _get_geometry_data(obj, &ogd); - - if (!m->mgr->ViewPush(id, &ogd)) - _ERR("Fail to push view"); - else - elm_object_signal_emit(obj, SUBITEMBTN_BUTTON_CLICKED, SUBITEMBTN_BUTTON_SOURCE); - - } - - m->focused_sub_item_btn = obj; -} - -static char *_settingitems_get_value(struct settingitem *item) -{ - char *result; - const char *name, *style; - - if (!item) { - _ERR("Invalid argument"); - return NULL; - } - - result = NULL; - - name = settingitem_get_id(item); - if (name && !strncmp(name, CHANGE_PASSCODE_NAME, strlen(name))) { - result = strdup(PASSCODE_MASK); - return result; - } - - style = settingitem_get_settingui_style(item); - if (!style) { - _ERR("Fail to get setting ui style"); - return NULL; - } - - if (!strncmp(style, STYLE_UIGADGET, strlen(style))) - return provider_get_list_value(item); - else - return provider_get_selected_display_name(item); -} - -/** -* Get percentage value of progress from item data. -* -* @param[in]: item : item data read from json file. -* -* @return: the percentage value or -1.0 if error occurred. -*/ -static double _get_progress_percentage(struct settingitem *item) -{ - struct slideritem *sitem; - double val, persent; - - if (!item) { - _ERR("Invalid argument"); - return -1.0; - } - - sitem = settingitem_get_data_slideritem(item); - if (!sitem) { - _ERR("Get slider item failed"); - return -1.0; - } - - val = provider_get_slider_value(item); - persent = slideritem_find_slider_value(val, sitem); - - return persent; -} - -/** -* Get displaying value of item. -* -* @param[in]: item : item data read from json file. -* @param[in]: value : the percentage value. -* -* @return: the display value. -*/ -static double _get_display_value(struct settingitem *item, double value) -{ - struct slideritem *sitem; - double disp; - - if (!item) { - _ERR("Invalid argument"); - return -1.0; - } - - sitem = settingitem_get_data_slideritem(item); - if (!sitem) { - _ERR("Get slider item failed"); - return -1.0; - } - - disp = slideritem_find_slider_display_value(value, sitem); - - return disp; -} - -/** -* Create slider of subitem. -* -* @param[in]: item : the item data read from json file. -* @param[in]: base : the base layout of subitems. -* @param[in]: btn : the subitem the slider will be created on. -* -* @return: void. -*/ -static void _set_subitem_btn_slider(struct settingitem *item, - Evas_Object *base, Evas_Object *btn) -{ - Evas_Object *pb; - double val, percent; - char buf[BUF_SIZE]; - - if (!item || !base || !btn) { - _ERR("Invalid argument"); - return; - } - - elm_object_style_set(btn, SUBITEMBTN_TITLE_SLIDER_VALUE); - - pb = elm_progressbar_add(base); - if (!pb) { - _ERR("Add progress bar failed."); - return; - } - - elm_object_style_set(pb, SUBITEMBTN_TITILE_SLIDER); - - percent = _get_progress_percentage(item); - val = _get_display_value(item, percent); - elm_progressbar_value_set(pb, percent); - - snprintf(buf, sizeof(buf), "%d", (int)val); - elm_object_part_text_set(btn, SUBITEMBTN_VALUE, buf); - elm_object_part_content_set(btn, SUBITEMBTN_SLIDER_SWALLOW, pb); - - evas_object_data_set(btn, PROGRESS_BAR_DATA, pb); -} - -/** -* Get tint g-value. -* -* @param[in]: item : the item data read from json file. -* @param[in]: tint_r : the tint r-value. -* -* @return: the tint g-value. -*/ -static double _get_disp_tint_g_val(struct settingitem *item, double tint_r) -{ - const char *strval; - struct slideritem *sitem; - double val; - - if (!item) { - _ERR("Invalid argument"); - return -1.0; - } - - sitem = settingitem_get_data_slideritem(item); - if (!sitem) { - _ERR("Get slider item failed"); - return -1.0; - } - - strval = slideritem_get_max_display_value(sitem); - if (strval) - val = atof(strval); - else - val = 100; - - return val - tint_r; -} - -/** -* Create two way slider. -* -* @param[in]: item : the item data read from json file. -* @param[in]: base : the base layout of subitems. -* @param[in]: btn : the subitem which the two way slider will be created on. -* -* @return: void. -*/ -static void _set_subitem_btn_value_slider(struct settingitem *item, - Evas_Object *base, Evas_Object *btn) -{ - Evas_Object *pb; - double tint_r, tint_g, percent; - char buf[BUF_SIZE]; - - if (!item || !base || !btn) { - _ERR("Invalid argument"); - return; - } - - elm_object_style_set(btn, SUBITEMBTN_TITLE_SLIDER_VALUE); - - pb = elm_progressbar_add(base); - if (!pb) { - _ERR("Add progress bar failed."); - return; - } - - elm_object_style_set(pb, SUBITEMBTN_TITILE_SLIDER); - percent = _get_progress_percentage(item); - elm_progressbar_value_set(pb, percent); - - tint_r = _get_display_value(item, percent); - tint_g = _get_disp_tint_g_val(item, tint_r); - - snprintf(buf, sizeof(buf), "R%d", (int)tint_r); - elm_object_part_text_set(btn, SUBITEMBTN_VALUE, - utils_get_translation_str(buf)); - snprintf(buf, sizeof(buf), "G%d", (int)tint_g); - elm_object_part_text_set(btn, SUBITEMBTN_G_VALUE, - utils_get_translation_str(buf)); - - elm_object_part_content_set(btn, SUBITEMBTN_SLIDER_SWALLOW, pb); - - evas_object_data_set(btn, PROGRESS_BAR_DATA, pb); -} - -/** -* Create style for subitem. -* -* @param[in]: base : the base layout of subitems. -* @param[in]: obj : the subitem which the style will be created on. -* @param[in]: style : the style read from json file. -* @param[in]: item : the item data read from json file. -* -* @return: void. -*/ -static void _draw_subitem_with_style(Evas_Object *base, Evas_Object *obj, - const char *style, struct settingitem *item) -{ - char *val; - - if (!style || !base || !obj || !item) - return; - - if (!strncmp(style, STYLE_SUBBUTTON_TITLE_VALUE, strlen(style))) { - val = _settingitems_get_value(item); - elm_object_part_text_set(obj, SUBITEMBTN_VALUE, - utils_get_translation_str(val)); - free(val); - } else if (!strncmp(style, STYLE_SUBBUTTON_TITLE_ICON, strlen(style))) { - elm_object_style_set(obj, SUBITEMBTN_TITLE_ICON); - } else if (!strncmp(style, STYLE_SUBBUTTON_TITLE_SLIDER_VALUE, - strlen(style))) { - _set_subitem_btn_slider(item, base, obj); - } else if (!strncmp(style, STYLE_SUBBUTTON_TITLE_2WAYSLIDER_VALUE, - strlen(style))) { - _set_subitem_btn_value_slider(item, base, obj); - } -} - -/** -* Release resources of subitems. -* -* @param[in]: data : the user data. -* -* @return: void. -*/ -static void _release_subitems(SMainCatalog *data) -{ - Evas_Object *btn; - void* obj; - Eina_Array_Iterator a; - unsigned int i; - - if (!data) { - _ERR("Invalid argument"); - return; - } - - if (data->sub_item_btn) { - EINA_ARRAY_ITER_NEXT(data->sub_item_btn, i, obj, a) - { - btn = (Evas_Object *) obj; - evas_object_del(btn); - } - eina_array_free(data->sub_item_btn); - } - - if (data->subsetting_view) - viewdata_release(data->subsetting_view); - - if (data->subitem_box) - evas_object_del(data->subitem_box); -} - -/** -* Refresh subitems when subitems are changed. -* -* @param[in]: data : the user data. -* -* @return: 0 - success, -1 - fail. -*/ -static int _refresh_subitems(SMainCatalog *data) -{ - Evas_Object *btn; - void* obj; - Eina_Array_Iterator a; - unsigned int i; - struct settingitem *item; - const char *style; - - if (!data) { - _ERR("Invalid argument"); - return -1; - } - - EINA_ARRAY_ITER_NEXT(data->sub_item_btn, i, obj, a) { - btn = (Evas_Object *) obj; - item = (struct settingitem *)evas_object_data_get(btn, SUBITEM_DATA_ID); - style = settingitem_get_style(item); - if (style) - _draw_subitem_with_style(data->base, btn, style, item); - } - - return 0; -} - -static void _subitem_btn_mouse_in_cb(void *data, Evas *e, Evas_Object *obj, void *ei) -{ - SMainCatalog *priv; - Evas_Object *icon, *pb; - - if (!obj || !data) - return; - - priv = (SMainCatalog *)data; - - elm_object_focus_set(obj, EINA_TRUE); - - if (priv->focus_status == FOCUS_MAIN_ITEM) { - priv->focus_status = FOCUS_SUB_ITEM; - elm_object_signal_emit(priv->focused_main_item_btn, - MAINICONBTN_FOCUSED_ON_SUBITEM, - MAINICONBTN_MAIN_ITEM_SOURCE); - - icon = elm_object_part_content_get(priv->focused_main_item_btn, - MAINICONBTN_ICON_SWALLOW); - if (icon) - elm_object_signal_emit(icon, - MAIN_BTN_HIGHLIGHT, MAIN_BTN); - } - - pb =(Evas_Object *) evas_object_data_get(priv->focused_sub_item_btn, - PROGRESS_BAR_DATA); - if (pb) - elm_object_signal_emit(pb, SIG_UNCTRL_PB_UNFOCUSED, - SRC_PB_PROG); - - pb = (Evas_Object *)evas_object_data_get(obj, PROGRESS_BAR_DATA); - if (pb) - elm_object_signal_emit(pb, SIG_UNCTRL_PB_FOCUSED, SRC_PB_PROG); - - priv->focused_sub_item_btn = obj; -} - -/** -* Create subitems of settings. -* -* @param[in]: data : the user data. -* @param[in]: name : the name of subitem. -* -* @return: 0 - success, -1 - fail. -*/ -bool CMainCatalogView::m_DrawSubItems(const char *name) -{ - struct settingview_data *view; - Eina_List *list, *l; - void* obj; - - Evas_Object *btn, *tmp; - struct settingitem *item; - Eina_Array_Iterator a; - unsigned int i; - const char *style, *status; - Eina_Array *enabled; - - if (!name) { - _ERR("Invalid argument"); - return false; - } - - view = m->mgr->GetView(name); - if (!view) { - _ERR("get subview failed"); - return false; - } - - list = viewdata_get_childitems_list(view); - if (!list) { - _ERR("childitem list is empty!"); - if (view) - viewdata_release(view); - return false; - } - - m->sub_item_count = eina_list_count(list); - - m->sub_item_btn = eina_array_new(1); - enabled = eina_array_new(1); - if (!m->sub_item_btn || !enabled) { - _ERR("Create Eina Array failed"); - EINA_LIST_FREE(list, obj); - { - item = (struct settingitem *) obj; - free(item); - } - if (view) - viewdata_release(view); - return false; - } - - m->subitem_box = utils_add_box(m->base); - if (!m->subitem_box) { - _ERR("Add m->subitem_box failed"); - EINA_LIST_FREE(list, obj); - { - item = (struct settingitem *) obj; - free(item); - } - eina_array_free(m->sub_item_btn); - if (view) - viewdata_release(view); - return false; - } - - EINA_LIST_FOREACH(list, l, obj) { - item = (struct settingitem *) obj; - btn = utils_add_btn(m->base, SUBITEMBTN_STYLE, settingitem_get_display_name(item), EINA_FALSE); - if (!btn) { - _ERR("Add btn failed"); - evas_object_del(m->subitem_box); - EINA_LIST_FREE(list, obj); - { - item = (struct settingitem *) obj; - free(item); - } - EINA_ARRAY_ITER_NEXT(m->sub_item_btn, i, obj, a) - { - tmp = (Evas_Object *) obj; - evas_object_del(tmp); - } - eina_array_free(m->sub_item_btn); - if (view) - viewdata_release(view); - return false; - } - - style = settingitem_get_style(item); - if (style) - _draw_subitem_with_style(m->base, btn, style, item); - - Connect(btn, SUB_ITEM_BTNS, TYPE_CLICKED | TYPE_KEY_DOWN); - //evas_object_smart_callback_add(btn, "clicked", _subitem_btn_clicked_cb, data); - //evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, _subitem_key_pressed_cb, data); - evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_IN, _subitem_btn_mouse_in_cb, m); - - elm_box_pack_end(m->subitem_box, btn); - eina_array_push(m->sub_item_btn, btn); - - evas_object_data_set(btn, SUBITEM_DATA_ID, item); - - status = settingitem_get_status(item); - if (status && !strncmp(status, DISABLED, strlen(status))) { - elm_object_disabled_set(btn, EINA_TRUE); - evas_object_freeze_events_set(btn, EINA_TRUE); - } else { - eina_array_push(enabled, btn); - } - } - - m->subsetting_view = view; - - elm_object_part_content_set(m->base, MAIN_VIEW_SUBITEM_SWALLOW, m->subitem_box); - utils_set_focus_directions(enabled, eina_array_count(enabled)); - - EINA_LIST_FREE(list, obj); - { - item = (struct settingitem *) obj; - free(item); - } - eina_array_free(enabled); - - return true; -} - -void CMainCatalogView::m_MoveFromMainitemToSubitem(Evas_Object *mainbtn) -{ - Evas_Object *btn = NULL, *pb, *icon; - int i; - - if (!mainbtn) - return; - - m->focus_status = FOCUS_SUB_ITEM; - - for (i = 0; i < m->sub_item_count; i++) { - btn = (Evas_Object *) eina_array_data_get(m->sub_item_btn, i); - if (!btn) { - _ERR("Get subitem btn failed"); - m->focus_status = FOCUS_MAIN_ITEM; - return; - } - - if (elm_object_disabled_get(btn) != EINA_TRUE) - break; - } - - if (i >= m->sub_item_count) { - m->focus_status = FOCUS_MAIN_ITEM; - return; - } - - pb = (Evas_Object *)evas_object_data_get(btn, PROGRESS_BAR_DATA); - if (pb) - elm_object_signal_emit(pb, SIG_UNCTRL_PB_FOCUSED, SRC_PB_PROG); - - elm_object_focus_set(btn, EINA_TRUE); - - m->focused_main_item_btn = mainbtn; - elm_object_signal_emit(mainbtn, MAINICONBTN_FOCUSED_ON_SUBITEM, MAINICONBTN_MAIN_ITEM_SOURCE); - - icon = elm_object_part_content_get(mainbtn, MAINICONBTN_ICON_SWALLOW); - if (icon) - elm_object_signal_emit(icon, MAIN_BTN_HIGHLIGHT, MAIN_BTN); -} - -void CMainCatalogView::sm_CbMainItemBtnMouseIN(void *data, Evas *e, Evas_Object *obj, void *ei) -{ - CMainCatalogView *instance; - - if(!data){_ERR("Invaild Parameter"); return;} - instance = (CMainCatalogView *)data; - instance->m_OnMainItemMouseIN(e, obj, ei); -} - -void CMainCatalogView::m_OnMainItemMouseIN(Evas *e, Evas_Object *obj, void *ei) -{ - const char *name; - Evas_Object *icon; - - if (!obj) { - _ERR("Invalid argument"); - return; - } - - if (m->focus_status == FOCUS_SUB_ITEM) - m_MoveFromSubitemToMainitem(m->focused_sub_item_btn); - - icon = elm_object_part_content_get(m->focused_main_item_btn, MAINICONBTN_ICON_SWALLOW); - if (icon) - elm_object_signal_emit(icon, MAIN_BTN_UNFOCUSED, MAIN_BTN); - - icon = elm_object_part_content_get(obj, MAINICONBTN_ICON_SWALLOW); - if (icon) - elm_object_signal_emit(icon, MAIN_BTN_FOCUSED, MAIN_BTN); - - _release_subitems(m); - - name =(const char *) evas_object_data_get(obj, SETTING_ID); - if (name) - m_DrawSubItems(name); - - elm_object_focus_set(obj, EINA_TRUE); - m->focused_main_item_btn = obj; -} - - -bool CMainCatalogView::m_AddIconBtns(Eina_List *list) -{ - Evas_Object *btn, *icon; - const char *id, *name; - struct settingitem *item; - char buf[BUF_SIZE]; - - if (!list) { - _ERR("Invalid argument"); - return false; - } - - for (int i = 0; i < m->main_item_count; i++) { - btn = utils_add_btn(m->base, MAINICONBTN_STYLE, NULL, EINA_FALSE); - if (!btn) { - _ERR("Add btn failed"); - return false; - } - - item = (struct settingitem *) eina_list_nth(list, i); - if (item) { - name = settingitem_get_display_name(item); - elm_object_text_set(btn, utils_get_translation_str(name)); - } else { - elm_object_text_set(btn, ICON_BUTTON_NO_DISP_NAME); - } - - Connect(btn, MAIN_ITEM_BTNS, TYPE_CLICKED | TYPE_KEY_DOWN); - evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_IN, sm_CbMainItemBtnMouseIN, this); - //evas_object_smart_callback_add(btn, SIG_CLICKED, _mainitem_btn_clicked_cb, data); - //evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, _main_setting_key_pressed_cb, data); - - icon = elm_layout_add(btn); - if (icon) { - id = settingitem_get_id(item); - if (!id) { - _ERR("get item name failed."); - evas_object_del(btn); - return false; - } - - snprintf(buf, sizeof(buf), "%s/%s.edj", EDJEDIR, PACKAGE); - elm_layout_file_set(icon, buf, id); - elm_object_part_content_set(btn, MAINICONBTN_ICON_SWALLOW, icon); - elm_object_signal_emit(icon, MAIN_BTN_NORMAL, MAIN_BTN); - eina_array_push(m->main_icon_base, icon); - } - - elm_box_pack_end(m->mainitem_box, btn); - evas_object_data_set(btn, SETTING_ID, settingitem_get_id(item)); - eina_array_push(m->main_item_btn, btn); - } - - return true; -} - -/** -* Create all the UI components of settings. -* -* @param[in]: data : the user data. -* -* @return: 0 - success, -1 - fail. -*/ -void CMainCatalogView::m_DrawMainItems(void) -{ - Evas_Object *btn, *icon; - Eina_List *list = NULL; - bool ret = true; - - _CREATE_BEGIN { - _CHECK(m->mainitem_box = utils_add_box(m->base)) - _CHECK(list = viewdata_get_childitems_list(m->main_setting_view)) - _COMMAND{ - m->main_item_count = 0; - m->main_item_count = eina_list_count(list); - } - _CHECK(m->main_item_count) - _CHECK(m->main_item_btn = eina_array_new(1)) - _CHECK(m->main_icon_base = eina_array_new(1)) - _CHECK(m_AddIconBtns(list)) - _COMMAND { - elm_object_part_content_set(m->base, MAIN_VIEW_ICON_SWALLOW, m->mainitem_box); - - if (!m->item_path) { - btn = (Evas_Object *)eina_array_data_get(m->main_item_btn, 0); - if (btn) { - if (m_DrawSubItems((const char *) evas_object_data_get(btn, SETTING_ID))) { - icon = (Evas_Object *)eina_array_data_get(m->main_icon_base, 0); - if (icon) { - elm_object_signal_emit(icon, MAIN_BTN_FOCUSED, MAIN_BTN); - - m->focus_status = FOCUS_MAIN_ITEM; - elm_object_focus_set(btn, EINA_TRUE); - m->focused_main_item_btn = btn; - } - else { - if (m->subsetting_view) - viewdata_release(m->subsetting_view); - ret = false; - } - } - else - ret = false; - } - else - ret = false; - } - - utils_set_focus_directions(m->main_item_btn, m->main_item_count); - viewdata_free_childitems_list(list); - } - _CHECK(ret) - _WHEN_SUCCESS { } - _CHECK_FAIL{/* ret */} - _CHECK_FAIL{/*_add_icon_btns(m, list) != -1*/} - _CHECK_FAIL{if(m->main_icon_base) eina_array_free(m->main_icon_base);} - _CHECK_FAIL{if(m->main_item_btn) eina_array_free(m->main_item_btn);} - _CHECK_FAIL{/* m->main_item_count */} - _CHECK_FAIL{if(list) viewdata_free_childitems_list(list);} - _CHECK_FAIL{if(m->mainitem_box) evas_object_del(m->mainitem_box);} - } _CREATE_END_AND_CATCH { return; } -} - -/** -* Edje_Signal_Cb type callback for handling signal. -* -* @param[in]: data : the user data. -* @param[in]: obj : the object signal occurred on. -* @param[in]: emission : the signal name. -* @param[in]: source : the source name. -* -* @return: void. -*/ -void CMainCatalogView::sm_CbViewAniFinish(void *data, Evas_Object *obj, const char *emission, const char *source) -{ - if(!data){ _ERR("Invalid Param"); return;} - CMainCatalogView *root; - root = (CMainCatalogView *) data; - root->m_OnViewAniFinish(obj, emission, source); -} - - -void CMainCatalogView::m_OnViewAniFinish(Evas_Object *obj, const char *emission, const char *source) -{ - m_DrawMainItems(); -} - - -/** -* This function moves focus from main item to subitem and -* does corresponding operations. -* -* @param[in]: data : the user data. -* -* @return: void. -*/ -void _move_focus_on_subitem(SMainCatalog *data) -{ - const char *path, *id; - unsigned int i; - Evas_Object *icon, *subbtn, *pb; - Eina_Array *subbtns; - void* obj; - Eina_Array_Iterator a; - struct settingitem *item; - - if (!data) - return; - - subbtns = data->sub_item_btn; - - path = (const char*) eina_array_data_get(data->item_path, 0); - - EINA_ARRAY_ITER_NEXT(subbtns, i, obj, a) { - subbtn = (Evas_Object *) obj; - item = (struct settingitem *) evas_object_data_get(subbtn, SUBITEM_DATA_ID); - id = settingitem_get_id(item); - if (!id) - return; - - if (!strncmp(id, path, ARRAY_SIZE)) { - icon = elm_object_part_content_get( - data->focused_main_item_btn, - MAINICONBTN_ICON_SWALLOW); - if (icon) - elm_object_signal_emit(icon, - MAIN_BTN_HIGHLIGHT, MAIN_BTN); - - data->focus_status = FOCUS_SUB_ITEM; - data->focused_sub_item_btn = subbtn; - - elm_object_focus_set(subbtn, EINA_TRUE); - elm_object_signal_emit(data->focused_main_item_btn, - MAINICONBTN_FOCUSED_ON_SUBITEM, - MAINICONBTN_MAIN_ITEM_SOURCE); - - pb = (Evas_Object *) evas_object_data_get(subbtn, PROGRESS_BAR_DATA); - if (pb) - elm_object_signal_emit(pb, - SIG_UNCTRL_PB_FOCUSED, - SRC_PB_PROG); - } - } -} - -/** -* Change the language of names of buttons. -* -* @param[in]: list : eina list of item data. -* @param[in]: btns : eina array containing buttons. -* @param[in]: cnt : number of buttons. -* -* @return: void. -*/ -static void _change_buttons_name(Eina_List *list, - Eina_Array *btns, int cnt) -{ - struct settingitem *item; - Evas_Object *btn; - const char *name; - int i; - - if (!list || !btns || !cnt) { - _ERR("Invalid argument"); - return; - } - - for (i = 0; i < cnt; i++) { - item = (struct settingitem *)eina_list_nth(list, i); - btn = (Evas_Object *)eina_array_data_get(btns, i); - if (!item || !btn) - return; - - name = settingitem_get_display_name(item); - if (name) - elm_object_text_set(btn, - utils_get_translation_str(name)); - } -} - - -Evas_Object* CMainCatalogView::Base(void) -{ - ASSERT(m); - - return m->base; -} - - -/** -* Create all UI components of settings view. -* -* @param[in]: mgr : the view manager of settings. -* @param[in]: view : the view data. -* @param[in]: prev : the user data. -* -* @return: the base layout of settings or null if error occurred. -*/ -bool CMainCatalogView::Create(struct settingview_data *view, void *prev) -{ - ASSERT(!m); - ASSERT(view); - - _CREATE_BEGIN{ - _CHECK(m = new SMainCatalog) - _CHECK(m->mgr = CSettingMgr::GetInstance()) - _CHECK(m->win = m->mgr->Window()) - _CHECK(m->base = elm_layout_add(m->win)) - _COMMAND { - evas_object_size_hint_weight_set(m->base, - EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(m->win, m->base); - } - _WHEN_SUCCESS { - elm_layout_file_set(m->base, EDJ_FILE, MAIN_VIEW_PAGE); - m->main_setting_view = view; - m->subsetting_view = NULL; - m->item_path = m->mgr->GetItemPath(); - evas_object_data_set(m->base, DATA_ID, m); - elm_object_signal_callback_add(m->base, MAIN_VIEW_ANIM_FINISH, MAIN_VIEW_SOURCE, sm_CbViewAniFinish, this); - - if (!m->item_path) - elm_object_signal_emit(m->base, MAIN_VIEW_LOAD, ""); - else - m_OnViewAniFinish(NULL, NULL, NULL); - } - _CHECK_FAIL{if(m->base) evas_object_del(m->base);} - _CHECK_FAIL{/* m->win = m->mgr->Window() */} - _CHECK_FAIL{/* m->mgr = CSettingMgr::GetInstance() */} - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - return true; -} - - -/** -* Show the view of settings. -* -* @param[in]: base : the base layout of settings. -* -* @return: void. -*/ -void CMainCatalogView::Show(void) -{ - ASSERT(m); - - unsigned int cnt, i; - const char *name, *path; - Evas_Object *btn, *icon; - void* obj; - Eina_Array *btns; - Eina_Array_Iterator a; - - path = NULL; - - if (m->item_path) { - btns = m->main_item_btn; - - cnt = eina_array_count(m->item_path); - if (cnt > 1) { - path = (const char *) eina_array_data_get(m->item_path, cnt - 2); - if (!path) - return; - } - - EINA_ARRAY_ITER_NEXT(btns, i, obj, a) { - btn = (Evas_Object *) obj; - name = (const char *) evas_object_data_get(btn, SETTING_ID); - if (!name) - return; - - if (!strncmp(name, path, ARRAY_SIZE)) { - m_DrawSubItems(name); - - icon = (Evas_Object *)eina_array_data_get( - m->main_icon_base, i); - if (icon) - elm_object_signal_emit(icon, - MAIN_BTN_FOCUSED, - MAIN_BTN); - - elm_object_focus_set(btn, EINA_TRUE); - - m->focus_status = FOCUS_MAIN_ITEM; - m->focused_main_item_btn = btn; - - _move_focus_on_subitem(m); - } - } - } - - evas_object_show(m->base); -} - -/** -* Hide the view of settings. -* -* @param[in]: base : the base layout of settings. -* -* @return: void. -*/ -void CMainCatalogView::Hide(void) -{ - ASSERT(m); - - evas_object_hide(m->base); -} - -/** -* Refresh the view of settings. -* -* @param[in]: base : the base layout of settings. -* -* @return: void. -*/ -void CMainCatalogView::Refresh(void) -{ - ASSERT(m); - - char *sld; - const char *id; - unsigned int i; - struct settingitem *item; - Eina_Array_Iterator a; - Evas_Object *btn, *pb, *icon; - void* obj; - - sld = (char *) evas_object_data_del(m->base, SELECTED_ITEM_ID); - if (sld) { - EINA_ARRAY_ITER_NEXT(m->sub_item_btn, i, obj, a) { - btn = (Evas_Object *) obj; - item = (struct settingitem *) evas_object_data_get(btn, SUBITEM_DATA_ID); - id = settingitem_get_id(item); - if (!id) - continue; - - if (item && !strncmp(sld, id, strlen(sld))) { - m->focused_sub_item_btn = btn; - break; - } - } - } - - if (m->focus_status == FOCUS_SUB_ITEM) { - elm_object_focus_set(m->focused_sub_item_btn, EINA_TRUE); - - elm_object_signal_emit(m->focused_main_item_btn, - MAINICONBTN_FOCUSED_ON_SUBITEM, - MAINICONBTN_MAIN_ITEM_SOURCE); - - icon = elm_object_part_content_get(m->focused_main_item_btn, - MAINICONBTN_ICON_SWALLOW); - if (icon) - elm_object_signal_emit(icon, - MAIN_BTN_HIGHLIGHT, MAIN_BTN); - - if (_refresh_subitems(m) == -1) - _ERR("Refresh subitems failed"); - - pb = (Evas_Object *) evas_object_data_get(m->focused_sub_item_btn, - PROGRESS_BAR_DATA); - if (pb) - elm_object_signal_emit(pb, - SIG_UNCTRL_PB_FOCUSED, SRC_PB_PROG); - } - - if (m->mgr->GetTimeoutFreezeState() == EINA_TRUE) - m->mgr->ThawTimeout(); -} - -/** -* Destroy the view of settings. -* -* @param[in]: base : the base layout of settings. -* -* @return: void. -*/ -void CMainCatalogView::Destroy(void) -{ - ASSERT(m); - - Eina_Array_Iterator a; - Evas_Object *tmp; - void* obj; - unsigned int i; - - if (m->sub_item_btn) { - EINA_ARRAY_ITER_NEXT(m->sub_item_btn, i, obj, a) - { - tmp = (Evas_Object *) obj; - evas_object_del(tmp); - } - eina_array_free(m->sub_item_btn); - } - - if (m->main_item_btn) { - EINA_ARRAY_ITER_NEXT(m->main_item_btn, i, obj, a) - { - tmp = (Evas_Object *) obj; - evas_object_del(tmp); - } - eina_array_free(m->main_item_btn); - } - - if (m->main_icon_base) { - EINA_ARRAY_ITER_NEXT(m->main_icon_base, i, obj, a) - { - tmp = (Evas_Object *) obj; - evas_object_del(tmp); - } - eina_array_free(m->main_icon_base); - } - - if (m->main_setting_view) - viewdata_release(m->main_setting_view); - - if (m->subsetting_view) - viewdata_release(m->subsetting_view); - - evas_object_del(m->base); - delete m; - m = NULL; -} - -/** -* Change the language of view of settings. -* -* @param[in]: base : the base layout of settings. -* -* @return: void. -*/ -void CMainCatalogView::LangChanged(void) -{ - ASSERT(m); - - Eina_List *l; - int cnt; - - cnt = 0; - l = viewdata_get_childitems_list(m->main_setting_view); - if (l) - cnt = eina_list_count(l); - - _change_buttons_name(l, m->main_item_btn, cnt); - - cnt = 0; - l = viewdata_get_childitems_list(m->subsetting_view); - if (l) - cnt = eina_list_count(l); - - _change_buttons_name(l, m->sub_item_btn, cnt); -} - -/** -* Froze the view of settings. -* -* @param[in]: base : the base layout of settings. -* -* @return: void. -*/ -void CMainCatalogView::Frozen(void) -{ - ASSERT(m); - - evas_object_freeze_events_set(m->mainitem_box, EINA_TRUE); - evas_object_freeze_events_set(m->subitem_box, EINA_TRUE); -} - -/** -* Activate the view of settings. -* -* @param[in]: base : the base layout of settings. -* -* @return: void. -*/ -void CMainCatalogView::Active(void) -{ - ASSERT(m); - - evas_object_freeze_events_set(m->mainitem_box, EINA_FALSE); - evas_object_freeze_events_set(m->subitem_box, EINA_FALSE); -} - - -void CMainCatalogView::OnMouseClicked(int id, Evas_Object *obj) -{ - _DBG(); - if (!obj) { - _ERR("Invalid argument"); - return; - } - - switch(id) { - case MAIN_ITEM_BTNS: - m_MoveFromMainitemToSubitem(obj); - break; - case SUB_ITEM_BTNS: - { - Evas_Object *icon; - m_SubItemClicked(obj); - - elm_object_signal_emit(m->focused_main_item_btn, MAINICONBTN_FOCUSED_ON_SUBITEM, MAINICONBTN_MAIN_ITEM_SOURCE); - - icon = elm_object_part_content_get(m->focused_main_item_btn, MAINICONBTN_ICON_SWALLOW); - if (icon) - elm_object_signal_emit(icon, MAIN_BTN_HIGHLIGHT, MAIN_BTN); - } - break; - default: - break; - } -} - - -void CMainCatalogView::OnKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Up *ev) -{ - if (!ev->keyname) { - _ERR("ev->keyname is NULL."); - return; - } - switch(id) { - case MAIN_ITEM_BTNS: - { - Evas_Object *next, *icon; - const char *name; - - if (!strcmp(ev->keyname, KEY_UP)) { - icon = elm_object_part_content_get(obj, MAINICONBTN_ICON_SWALLOW); - if (!icon) { - _ERR("part %s content get failed.", MAINICONBTN_ICON_SWALLOW); - return; - } - - elm_object_signal_emit(icon, MAIN_BTN_UNFOCUSED, MAIN_BTN); - - next = elm_object_focus_next_object_get(obj, ELM_FOCUS_UP); - if (!next) { - _ERR("next object get failed."); - return; - } - - m->focused_main_item_btn = next; - - icon = elm_object_part_content_get(next, MAINICONBTN_ICON_SWALLOW); - if (!icon) { - _ERR("part %s content get failed.", MAINICONBTN_ICON_SWALLOW); - return; - } - - elm_object_signal_emit(icon, MAIN_BTN_FOCUSED, MAIN_BTN); - - _release_subitems(m); - - name =(const char *) evas_object_data_get(next, SETTING_ID); - if (name) - m_DrawSubItems(name); - } - } - break; - default: - break; - } -} - - -void CMainCatalogView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) -{ - if (!ev->keyname) { - _ERR("ev->keyname is NULL."); - return; - } - - switch(id) { - case MAIN_ITEM_BTNS: - { - Evas_Object *next, *icon; - const char *name; - - if (!strcmp(ev->keyname, KEY_DOWN)) { - icon = elm_object_part_content_get(obj, MAINICONBTN_ICON_SWALLOW); - if (!icon) { - _ERR("part %s content get failed.", MAINICONBTN_ICON_SWALLOW); - return; - } - - elm_object_signal_emit(icon, MAIN_BTN_UNFOCUSED, MAIN_BTN); - - next = elm_object_focus_next_object_get(obj, ELM_FOCUS_DOWN); - if (!next) { - _ERR("next object get failed."); - return; - } - - m->focused_main_item_btn = next; - - icon = elm_object_part_content_get(next, MAINICONBTN_ICON_SWALLOW); - if (!icon) { - _ERR("part %s content get failed.", MAINICONBTN_ICON_SWALLOW); - return; - } - - elm_object_signal_emit(icon, MAIN_BTN_FOCUSED, MAIN_BTN); - - _release_subitems(m); - name =(const char *) evas_object_data_get(next, SETTING_ID); - if (name) - m_DrawSubItems(name); - } else if (!strcmp(ev->keyname, KEY_RIGHT)) { - m_MoveFromMainitemToSubitem(obj); - } else if (!strcmp(ev->keyname, KEY_EXIT) || !strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - app_efl_exit(); - } - } - break; - - case SUB_ITEM_BTNS: - { - Evas_Object *pb; - Evas_Object *next; - - if (!strcmp(ev->keyname, KEY_LEFT) || !strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - pb = (Evas_Object *) evas_object_data_get(obj, PROGRESS_BAR_DATA); - if (pb) - elm_object_signal_emit(pb, SIG_UNCTRL_PB_UNFOCUSED, SRC_PB_PROG); - - m_MoveFromSubitemToMainitem(obj); - } else if (!strncmp(ev->keyname, KEY_DOWN, strlen(ev->keyname))) { - pb = (Evas_Object *)evas_object_data_get(obj, PROGRESS_BAR_DATA); - if (pb) - elm_object_signal_emit(pb, SIG_UNCTRL_PB_UNFOCUSED, SRC_PB_PROG); - - next = elm_object_focus_next_object_get(obj, ELM_FOCUS_DOWN); - if (!next) { - _ERR("focus next object get failed."); - return; - } - - pb = (Evas_Object *)evas_object_data_get(next, PROGRESS_BAR_DATA); - if (pb) - elm_object_signal_emit(pb, SIG_UNCTRL_PB_FOCUSED, SRC_PB_PROG); - } else if (!strncmp(ev->keyname, KEY_UP, strlen(ev->keyname))) { - pb = (Evas_Object *)evas_object_data_get(obj, PROGRESS_BAR_DATA); - if (pb) - elm_object_signal_emit(pb, SIG_UNCTRL_PB_UNFOCUSED, SRC_PB_PROG); - - next = elm_object_focus_next_object_get(obj, ELM_FOCUS_UP); - if (!next) { - _ERR("focus next object get failed."); - return; - } - - pb = (Evas_Object *)evas_object_data_get(next, PROGRESS_BAR_DATA); - if (pb) - elm_object_signal_emit(pb, SIG_UNCTRL_PB_FOCUSED, SRC_PB_PROG); - } else if (!strncmp(ev->keyname, KEY_EXIT, strlen(ev->keyname))) { - app_efl_exit(); - } - } - break; - default: - break; - } -} - - -#if 0 -static struct setting_class _vclass = { - VCLASS_TITLE_MAIN_VIEW, - _create, - _show, - NULL, - NULL, - _refresh, - NULL, - _hide, - _destroy, - _lang_changed, - _frozen, - _active, - 0 -}; - -/** -* Return view class of settings view. -* -* @param: void. -* -* @return: the view class of settings view. -*/ -struct setting_class *view_maincatalog_get_vclass(void) -{ - return &_vclass; -} -#endif diff --git a/src/view_need_pwd.cpp b/src/view_need_pwd.c similarity index 69% rename from src/view_need_pwd.cpp rename to src/view_need_pwd.c index dfa6fca..b1357ac 100644 --- a/src/view_need_pwd.cpp +++ b/src/view_need_pwd.c @@ -14,8 +14,10 @@ * limitations under the License. */ -#include -#include "common_defs.h" +#include + +#include "dbg.h" +#include "def.h" #include "utils.h" #include "settings_provider.h" #include "view_need_pwd.h" @@ -50,7 +52,7 @@ enum { PWD_ENTRY_MAX }; -struct SNeedPasscodeView { +struct _chnllock_data { Evas_Object *win; Evas_Object *bg; Evas_Object *base; @@ -62,13 +64,13 @@ struct SNeedPasscodeView { char passcode[BUF_SIZE]; - CSettingMgr *mgr; + struct setting_mgr *mgr; struct settingview_data *view; struct obj_geometry_data gd; }; -static void _free_priv_data(SNeedPasscodeView *data); -//static void _hide(Evas_Object *base); +static void _free_priv_data(struct _chnllock_data *data); +static void _hide(Evas_Object *base); /** * Free user data. @@ -77,7 +79,7 @@ static void _free_priv_data(SNeedPasscodeView *data); * * @return: void. */ -static void _free_priv_data(SNeedPasscodeView *data) +static void _free_priv_data(struct _chnllock_data *data) { if (!data) return; @@ -94,6 +96,7 @@ static void _free_priv_data(SNeedPasscodeView *data) if (data->array) eina_array_free(data->array); + free(data); } /** @@ -165,14 +168,14 @@ static Evas_Object *_add_view_base(Evas_Object *ctxpopup) static void _cancel_btn_clicked_cb(void *priv, Evas_Object *obj, void *ev) { - SNeedPasscodeView *data; + struct _chnllock_data *data; if (!priv || !obj) return; - data = (SNeedPasscodeView *) priv; + data = priv; - data->mgr->ViewPop(); + settingmgr_view_pop(data->mgr); } /** @@ -182,14 +185,15 @@ static void _cancel_btn_clicked_cb(void *priv, Evas_Object *obj, * * @return: the created cancel button or null if error occurred. */ -static Evas_Object *_add_view_cancel_btn(SNeedPasscodeView *data) +static Evas_Object *_add_view_cancel_btn(struct _chnllock_data *data) { Evas_Object *btn; if (!data || !data->base) return NULL; - btn = utils_add_btn(data->base, PWD_BASIC_BTN, MSGID_CANCEL, EINA_TRUE); + btn = utils_add_btn(data->base, PWD_BASIC_BTN, + utils_get_translation_str(MSGID_CANCEL), EINA_TRUE); if (!btn) { _ERR("utils add button failed."); return NULL; @@ -209,7 +213,7 @@ static Evas_Object *_add_view_cancel_btn(SNeedPasscodeView *data) * * @return: 0 - wrong passcode, 1 - right passcode. */ -static int _check_passcode(SNeedPasscodeView *data) +static int _check_passcode(struct _chnllock_data *data) { char *passcode; @@ -236,7 +240,7 @@ static int _check_passcode(SNeedPasscodeView *data) * * @return: void. */ -static void _push_next_view(SNeedPasscodeView *data) +static void _push_next_view(struct _chnllock_data *data) { struct settingitem *item; Eina_List *list; @@ -249,7 +253,7 @@ static void _push_next_view(SNeedPasscodeView *data) if (!list) return; - item = (struct settingitem *) eina_list_nth(list, 0); + item = eina_list_nth(list, 0); if (!item) return; @@ -257,7 +261,7 @@ static void _push_next_view(SNeedPasscodeView *data) if (!id) return; - data->mgr->ViewPush(id, &data->gd); + settingmgr_view_push(data->mgr, id, &data->gd); } /** @@ -270,30 +274,27 @@ static void _push_next_view(SNeedPasscodeView *data) * * @return: void. */ -void CNeedPasscodeView::sm_CbKeyDown(void *priv, Evas *e, Evas_Object *obj, void *ei) -{ - CNeedPasscodeView *root = (CNeedPasscodeView*)priv; - if (root) - root->m_OnKeyDown(e, obj, (Evas_Event_Key_Down*)ei); -} - - -void CNeedPasscodeView::m_OnKeyDown(Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) +static void _key_down_cb(void *priv, Evas *e, Evas_Object *obj, + void *ei) { + Evas_Event_Key_Down *event; Eina_Array *array; Evas_Object *entry, *next_entry; + struct _chnllock_data *data; const char *keyname; char *text; int btn_num, i; - if (!obj) + if (!priv || !ei || !obj) return; - array = m->array; + data = priv; + array = data->array; if (!array) return; - keyname = ev->keyname; + event = ei; + keyname = event->keyname; if (!keyname) return; @@ -308,10 +309,10 @@ void CNeedPasscodeView::m_OnKeyDown(Evas *e, Evas_Object *obj, Evas_Event_Key_Do if (btn_num == -1) return; - if (!strncmp(keyname, KEY_BACK, strlen(keyname)) || !strncmp(keyname, KEY_BACK_REMOTE, strlen(keyname))) { - m->mgr->ViewPop(); + if (!strncmp(keyname, KEY_BACK, strlen(keyname))) { + settingmgr_view_pop(data->mgr); } else if (!strncmp(keyname, KEY_DOWN, strlen(keyname))) { - elm_object_focus_set(m->cancel_btn, EINA_TRUE); + elm_object_focus_set(data->cancel_btn, EINA_TRUE); } else if (!strncmp(keyname, KEY_0, strlen(keyname)) || !strncmp(keyname, KEY_1, strlen(keyname)) || !strncmp(keyname, KEY_2, strlen(keyname)) || @@ -323,7 +324,7 @@ void CNeedPasscodeView::m_OnKeyDown(Evas *e, Evas_Object *obj, Evas_Event_Key_Do !strncmp(keyname, KEY_8, strlen(keyname)) || !strncmp(keyname, KEY_9, strlen(keyname))) { elm_entry_entry_set(obj, PWD_SYMBOL); - m->passcode[btn_num] = keyname[0]; + data->passcode[btn_num] = keyname[0]; if (btn_num < PWD_ENTRY_3) { elm_object_focus_next(obj, ELM_FOCUS_NEXT); @@ -332,26 +333,26 @@ void CNeedPasscodeView::m_OnKeyDown(Evas *e, Evas_Object *obj, Evas_Event_Key_Do if (!next_entry) return; - elm_object_focus_next_object_set(m->cancel_btn, + elm_object_focus_next_object_set(data->cancel_btn, next_entry, ELM_FOCUS_UP); } else { - if (_check_passcode(m)) { - Hide(); - _push_next_view(m); + if (_check_passcode(data)) { + _hide(data->base); + _push_next_view(data); } else { text = utils_get_translation_str( MSGID_WRONG_PWD); - elm_object_part_text_set(m->base, + elm_object_part_text_set(data->base, PART_UPTEXT, text); - entry = (Evas_Object *) eina_array_data_get(array, PWD_ENTRY_0); + entry = eina_array_data_get(array, PWD_ENTRY_0); if (!entry) return; elm_object_focus_set(entry, EINA_TRUE); for (i = PWD_ENTRY_0; i < PWD_ENTRY_MAX; i++) { - entry = (Evas_Object *)eina_array_data_get(array, i); + entry = eina_array_data_get(array, i); if (!entry) return; @@ -381,19 +382,19 @@ static void _set_entry_directions(Eina_Array *array, return; for (idx = PWD_ENTRY_0; idx < PWD_ENTRY_3; idx++) { - entry = (Evas_Object *)eina_array_data_get(array, idx); + entry = eina_array_data_get(array, idx); if (!entry) return; elm_object_focus_next_object_set(entry, - (Evas_Object *)eina_array_data_get(array, idx + 1), + eina_array_data_get(array, idx + 1), ELM_FOCUS_NEXT); elm_object_focus_next_object_set(entry, cancel_btn, ELM_FOCUS_DOWN); } elm_object_focus_next_object_set(cancel_btn, - (Evas_Object *)eina_array_data_get(array, PWD_ENTRY_0), + eina_array_data_get(array, PWD_ENTRY_0), ELM_FOCUS_UP); } @@ -408,10 +409,10 @@ static Evas_Object *_add_entry(Evas_Object *parent) { Evas_Object *entry; Elm_Entry_Filter_Limit_Size length = { - 1 + .max_char_count = 1 }; Elm_Entry_Filter_Accept_Set type = { - PWD_RANGE + .accepted = PWD_RANGE }; if (!parent) @@ -443,14 +444,19 @@ static Evas_Object *_add_entry(Evas_Object *parent) * * @return: 0 - Success, -1 - Fail. */ -int CNeedPasscodeView::m_AddViewEntries(void) +static int _add_view_entries(struct _chnllock_data *data) { Eina_Array *array; Evas_Object *box; Evas_Object *entry, *base; int idx; - box = utils_add_box(m->base); + if (!data || !data->base) { + _ERR("invalid arguments."); + return -1; + } + + box = utils_add_box(data->base); if (!box) return -1; @@ -464,7 +470,7 @@ int CNeedPasscodeView::m_AddViewEntries(void) } for (idx = PWD_ENTRY_0; idx < PWD_ENTRY_MAX; idx++) { - base = utils_add_base(m->base); + base = utils_add_base(data->base); if (!base) { _ERR("utils add base failed."); evas_object_del(box); @@ -487,20 +493,20 @@ int CNeedPasscodeView::m_AddViewEntries(void) elm_box_pack_end(box, base); evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN, - sm_CbKeyDown, this); + _key_down_cb, data); } - elm_object_focus_allow_set((Evas_Object*) eina_array_data_get(array, PWD_ENTRY_0), + elm_object_focus_allow_set(eina_array_data_get(array, PWD_ENTRY_0), EINA_TRUE); - elm_object_focus_set((Evas_Object *)eina_array_data_get(array, PWD_ENTRY_0), + elm_object_focus_set(eina_array_data_get(array, PWD_ENTRY_0), EINA_TRUE); - elm_object_part_content_set(m->base, SWALLOW_CONTENT_AREA, box); + elm_object_part_content_set(data->base, SWALLOW_CONTENT_AREA, box); - _set_entry_directions(array, m->cancel_btn); + _set_entry_directions(array, data->cancel_btn); - m->array = array; - m->box = box; + data->array = array; + data->box = box; return 0; } @@ -514,34 +520,23 @@ int CNeedPasscodeView::m_AddViewEntries(void) * * @return: void. */ -void CNeedPasscodeView::sm_CbCtxpopupDismissed(void *priv, Evas_Object *obj, void *ev) +static void _ctxpopup_dismissed(void *priv, Evas_Object *obj, + void *ev) { - CNeedPasscodeView *root = (CNeedPasscodeView*)priv; - if (root) - root->m_OnCtxpopupDismissed(obj, ev); -} + struct _chnllock_data *data; - -void CNeedPasscodeView::m_OnCtxpopupDismissed(Evas_Object *obj, void *ev) -{ - if (!obj) + if (!priv || !obj) return; - Hide(); - - m->mgr->ViewPop(); -} - - + data = priv; + if (!data->base || !data->mgr) + return; -Evas_Object* CNeedPasscodeView::Base(void) -{ - ASSERT(m); + _hide(data->base); - return m->base; + settingmgr_view_pop(data->mgr); } - /** * Create all the UI components of channel lock view. * @@ -552,33 +547,37 @@ Evas_Object* CNeedPasscodeView::Base(void) * @return: the base layout of channel lock view or null * if error occurred. */ -bool CNeedPasscodeView::Create(struct settingview_data *view, void *prev) +static Evas_Object *_create(struct setting_mgr *mgr, + struct settingview_data *view, void *prev) { - ASSERT(!m); - ASSERT(view); - ASSERT(prev); - - CSettingMgr *mgr = CSettingMgr::GetInstance(); - Evas_Object *win, *base, *bg; Evas_Object *ctxpopup; Evas_Object *cancel_btn; - int ret, width, height, xpos, ypos; + struct _chnllock_data *data; + int ret, xpos, ypos; struct obj_geometry_data *tmp; - win = mgr->Window(); - ASSERT(win); + if (!mgr || !view || !prev) { + _ERR("invalid argument."); + return NULL; + } + + win = settingmgr_get_win(mgr); + if (!win) { + _ERR("settings manager get window failed."); + return NULL; + } - m = new SNeedPasscodeView; - if (!m) { + data = calloc(1, sizeof(*data)); + if (!data) { _ERR("calloc memory for _priv_data failed."); - return false; + return NULL; } - tmp = (struct obj_geometry_data *) prev; + tmp = prev; - m->win = win; - m->gd = *tmp; + data->win = win; + data->gd = *tmp; bg = _add_view_bg(win); if (!bg) { @@ -586,61 +585,56 @@ bool CNeedPasscodeView::Create(struct settingview_data *view, void *prev) goto error; } - m->bg = bg; + data->bg = bg; - ctxpopup = utils_add_ctxpopup(win, (char *)CHANGE_PWD_CTXPOPUP_STYLE); + ctxpopup = utils_add_ctxpopup(win, CHANGE_PWD_CTXPOPUP_STYLE); if (!ctxpopup) { _ERR("add ctxpopup failed."); goto error; } - m->ctxpopup = ctxpopup; + data->ctxpopup = ctxpopup; - base = _add_view_base(m->ctxpopup); + base = _add_view_base(data->ctxpopup); if (!base) { _ERR("add view base failed."); goto error; } - m->base = base; + data->base = base; elm_object_content_set(ctxpopup, base); - width = WIN_WIDTH; - height = WIN_HEIGHT; - - xpos = (width - CTXPOPUP_WIDTH) / 2; - ypos = (height - CTXPOPUP_HEIGHT) / 2; - evas_object_move(m->ctxpopup, xpos * ELM_SCALE, + xpos = (WIN_WIDTH - CTXPOPUP_WIDTH) / 2; + ypos = (WIN_HEIGHT - CTXPOPUP_HEIGHT) / 2; + evas_object_move(data->ctxpopup, xpos * ELM_SCALE, ypos * ELM_SCALE); - evas_object_smart_callback_add(m->ctxpopup, - SIG_DISMISSED, sm_CbCtxpopupDismissed, this); + evas_object_smart_callback_add(data->ctxpopup, + SIG_DISMISSED, _ctxpopup_dismissed, data); - cancel_btn = _add_view_cancel_btn(m); + cancel_btn = _add_view_cancel_btn(data); if (!cancel_btn) { _ERR("add cancel button faield."); goto error; } - m->cancel_btn = cancel_btn; + data->cancel_btn = cancel_btn; - ret = m_AddViewEntries(); + ret = _add_view_entries(data); if (ret != 0) goto error; - m->mgr = mgr; - m->view = view; + data->mgr = mgr; + data->view = view; - evas_object_data_set(base, CHNLLOCK_DATA_ID, m); + evas_object_data_set(base, CHNLLOCK_DATA_ID, data); - return true; + return base; error: - _free_priv_data(m); - delete m; - m = NULL; - return false; + _free_priv_data(data); + return NULL; } /** @@ -650,13 +644,22 @@ error: * * @return: void. */ -void CNeedPasscodeView::Show(void) +static void _show(Evas_Object *base) { - ASSERT(m); + struct _chnllock_data *data; + + if (!base) + return; - evas_object_show(m->ctxpopup); - evas_object_show(m->bg); - evas_object_show(m->base); + data = evas_object_data_get(base, CHNLLOCK_DATA_ID); + if (!data) { + _ERR("get data from base failed. ID: %s.", CHNLLOCK_DATA_ID); + return; + } + + evas_object_show(data->ctxpopup); + evas_object_show(data->bg); + evas_object_show(data->base); } /** @@ -666,13 +669,20 @@ void CNeedPasscodeView::Show(void) * * @return: void. */ -void CNeedPasscodeView::Destroy(void) +static void _destroy(Evas_Object *base) { - ASSERT(m); + struct _chnllock_data *data; + + if (!base) + return; + + data = evas_object_data_get(base, CHNLLOCK_DATA_ID); + if (!data) { + _ERR("get data from base failed. ID: %s.", CHNLLOCK_DATA_ID); + return; + } - _free_priv_data(m); - delete m; - m = NULL; + _free_priv_data(data); } /** @@ -682,13 +692,20 @@ void CNeedPasscodeView::Destroy(void) * * @return: void. */ -void CNeedPasscodeView::Hide(void) +static void _hide(Evas_Object *base) { - ASSERT(m); + struct _chnllock_data *data; + + if (!base) + return; + + data = evas_object_data_get(base, CHNLLOCK_DATA_ID); + if (!data) + return; - evas_object_hide(m->base); - evas_object_hide(m->ctxpopup); - evas_object_hide(m->bg); + evas_object_hide(data->base); + evas_object_hide(data->ctxpopup); + evas_object_hide(data->bg); } /** @@ -698,32 +715,30 @@ void CNeedPasscodeView::Hide(void) * * @return: void. */ -void CNeedPasscodeView::Refresh(void) +static void _refresh(Evas_Object *base) { - ASSERT(m); + struct _chnllock_data *data; - m->mgr->ViewPop(); -} + if (!base) + return; + + data = evas_object_data_get(base, CHNLLOCK_DATA_ID); + if (!data) + return; + settingmgr_view_pop(data->mgr); +} -#if 0 /** * view class of channel lock view. */ struct setting_class _vclass = { - VCLASS_TITLE_NEED_PASSCODE, - _create, - _show, - NULL, - NULL, - _refresh, - NULL, - _hide, - _destroy, - NULL, - NULL, - NULL, - 0 + .title = VCLASS_TITLE_NEED_PASSCODE, + .create = _create, + .show = _show, + .destroy = _destroy, + .hide = _hide, + .refresh = _refresh }; /** @@ -737,4 +752,3 @@ struct setting_class *view_need_passcode_get_vclass(void) { return &_vclass; } -#endif diff --git a/src/view_pwd_popup.cpp b/src/view_pwd_popup.c similarity index 81% rename from src/view_pwd_popup.cpp rename to src/view_pwd_popup.c index 1ba5d15..8035306 100644 --- a/src/view_pwd_popup.cpp +++ b/src/view_pwd_popup.c @@ -14,12 +14,13 @@ * limitations under the License. */ -#include -#include "common_defs.h" +#include + +#include "dbg.h" +#include "def.h" #include "view_pwd_popup.h" #include "utils.h" #include "settings_provider.h" -#include "settingviewmgr.h" #define PWD_DATA_ID "change_passcode_data" #define CTXPOPUP_WIDTH 688 @@ -51,7 +52,7 @@ enum { ENTRY_MAX }; -struct SPasscodePopupView { +struct _pwd_data { Evas_Object *win; Evas_Object *bg; Evas_Object *base; @@ -69,11 +70,11 @@ struct SPasscodePopupView { int renew_flag; int wrong_flag; - CSettingMgr *mgr; + struct setting_mgr *mgr; struct settingview_data *view; }; -//static void _hide(Evas_Object *base); +static void _hide(Evas_Object *base); /** * Free user data. @@ -82,7 +83,7 @@ struct SPasscodePopupView { * * @return: void. */ -static void _free_pwd_data(SPasscodePopupView *data) +static void _free_pwd_data(struct _pwd_data *data) { if (!data) return; @@ -98,6 +99,8 @@ static void _free_pwd_data(SPasscodePopupView *data) if (data->array) eina_array_free(data->array); + + free(data); } /** @@ -168,14 +171,14 @@ static Evas_Object *_add_pwd_base(Evas_Object *ctxpopup) */ static void _cancelbtn_clicked_cb(void *priv, Evas_Object *obj, void *ev) { - SPasscodePopupView *data; + struct _pwd_data *data; if (!priv || !obj) return; - data = (SPasscodePopupView *) priv; + data = priv; - data->mgr->ViewPop(); + settingmgr_view_pop(data->mgr); } /** @@ -185,14 +188,15 @@ static void _cancelbtn_clicked_cb(void *priv, Evas_Object *obj, void *ev) * * @return: the created cancel button or null if error occurred. */ -static Evas_Object *_add_pwd_cancel_btn(SPasscodePopupView *data) +static Evas_Object *_add_pwd_cancel_btn(struct _pwd_data *data) { Evas_Object *btn; if (!data || !data->base) return NULL; - btn = utils_add_btn(data->base, PWD_BASIC_BTN, MSGID_CANCEL, EINA_TRUE); + btn = utils_add_btn(data->base, PWD_BASIC_BTN, + utils_get_translation_str(MSGID_CANCEL), EINA_TRUE); if (!btn) { _ERR("utils add button failed."); return NULL; @@ -226,12 +230,12 @@ static void _set_entry_directions(Eina_Array *array, Evas_Object *cancel_btn) return; for (i = ENTRY_0; i < ENTRY_3; i++) { - en = (Evas_Object *) eina_array_data_get(array, i); + en = eina_array_data_get(array, i); if (!en) return; elm_object_focus_next_object_set(en, - (Evas_Object *) eina_array_data_get(array, i + 1), + eina_array_data_get(array, i + 1), ELM_FOCUS_NEXT); elm_object_focus_next_object_set(en, en, ELM_FOCUS_LEFT); elm_object_focus_next_object_set(en, en, ELM_FOCUS_RIGHT); @@ -240,7 +244,7 @@ static void _set_entry_directions(Eina_Array *array, Evas_Object *cancel_btn) ELM_FOCUS_DOWN); } - lasten = (Evas_Object *) eina_array_data_get(array, ENTRY_3); + lasten = eina_array_data_get(array, ENTRY_3); elm_object_focus_next_object_set(lasten, lasten, ELM_FOCUS_UP); elm_object_focus_next_object_set(lasten, cancel_btn, ELM_FOCUS_DOWN); elm_object_focus_next_object_set(lasten, lasten, ELM_FOCUS_LEFT); @@ -251,7 +255,7 @@ static void _set_entry_directions(Eina_Array *array, Evas_Object *cancel_btn) elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_RIGHT); elm_object_focus_next_object_set(cancel_btn, - (Evas_Object *) eina_array_data_get(array, ENTRY_0), ELM_FOCUS_UP); + eina_array_data_get(array, ENTRY_0), ELM_FOCUS_UP); elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_DOWN); } @@ -286,7 +290,7 @@ static char *_get_pwd(struct settingview_data *vdata) * * @return: 0 - wrong passcode, 1 - right passcode. */ -static int _check_pwd(SPasscodePopupView *data) +static int _check_pwd(struct _pwd_data *data) { char *pwd; @@ -340,7 +344,7 @@ static void _clear_pwd(char *pwd) * * @return: void. */ -static void _reset_pwd(SPasscodePopupView *data) +static void _reset_pwd(struct _pwd_data *data) { Evas_Object *btn, *first; Eina_Array *array; @@ -351,7 +355,7 @@ static void _reset_pwd(SPasscodePopupView *data) array = data->array; - first = (Evas_Object *) eina_array_data_get(array, ENTRY_0); + first = eina_array_data_get(array, ENTRY_0); if (!first) return; @@ -359,7 +363,7 @@ static void _reset_pwd(SPasscodePopupView *data) elm_object_focus_next_object_set(data->cancel_btn, first, ELM_FOCUS_UP); for (i = ENTRY_0; i < ENTRY_MAX; i++) { - btn = (Evas_Object *)eina_array_data_get(array, i); + btn = eina_array_data_get(array, i); if (!btn) return; @@ -374,7 +378,7 @@ static void _reset_pwd(SPasscodePopupView *data) * * @return: 0 - Success, -1 - Fail. */ -static int _set_pwd(SPasscodePopupView *data) +static int _set_pwd(struct _pwd_data *data) { int ret; struct settingitem *item; @@ -404,7 +408,7 @@ static int _set_pwd(SPasscodePopupView *data) * * @return: 0 - Success, -1 - Fail. */ -static int _check_reentered_pwd(SPasscodePopupView *data) +static int _check_reentered_pwd(struct _pwd_data *data) { if (!data) return 0; @@ -425,7 +429,7 @@ static int _check_reentered_pwd(SPasscodePopupView *data) * * @return: void. */ -static void _update_pwd_ui(SPasscodePopupView *data, +static void _update_pwd_ui(struct _pwd_data *data, const char *part, const char *msgid) { char *text; @@ -455,19 +459,19 @@ static void _entry_keypress_cb(void *priv, Evas *e, Evas_Event_Key_Down *event; Eina_Array *array; Evas_Object *next_entry; - SPasscodePopupView *data; + struct _pwd_data *data; const char *keyname; int entry_idx, i; if (!priv || !ei || !obj) return; - data = (SPasscodePopupView *) priv; + data = priv; array = data->array; if (!array) return; - event = (Evas_Event_Key_Down *) ei; + event = ei; keyname = event->keyname; if (!keyname) return; @@ -480,8 +484,8 @@ static void _entry_keypress_cb(void *priv, Evas *e, } } - if (!strncmp(keyname, KEY_BACK, strlen(keyname)) || !strncmp(keyname, KEY_BACK_REMOTE, strlen(keyname))) { - data->mgr->ViewPop(); + if (!strncmp(keyname, KEY_BACK, strlen(keyname))) { + settingmgr_view_pop(data->mgr); } else if (!strncmp(keyname, KEY_DOWN, strlen(keyname))) { elm_object_focus_set(data->cancel_btn, EINA_TRUE); } else if (!strncmp(keyname, KEY_0, strlen(keyname)) || @@ -541,7 +545,7 @@ static void _entry_keypress_cb(void *priv, Evas *e, data->new_flag = 0; data->renew_flag = 0; - data->mgr->ViewPop(); + settingmgr_view_pop(data->mgr); } else { _update_pwd_ui(data, PART_UPTEXT, MSGID_DIFFER_PWD); @@ -565,10 +569,10 @@ static Evas_Object *_add_entry(Evas_Object *parent) { Evas_Object *entry; Elm_Entry_Filter_Limit_Size length = { - 1 + .max_char_count = 1 }; Elm_Entry_Filter_Accept_Set type = { - PWD_RANGE + .accepted = PWD_RANGE }; if (!parent) @@ -600,7 +604,7 @@ static Evas_Object *_add_entry(Evas_Object *parent) * * @return: 0 - Success, -1 - Fail. */ -static int _add_pwd_entry(SPasscodePopupView *data) +static int _add_pwd_entry(struct _pwd_data *data) { Eina_Array *array; Evas_Object *box; @@ -659,9 +663,9 @@ static int _add_pwd_entry(SPasscodePopupView *data) elm_object_part_content_set(data->base, SWALLOW_CONTENT_AREA, box); elm_object_focus_allow_set( - (Evas_Object *) eina_array_data_get(array, ENTRY_0), EINA_TRUE); + eina_array_data_get(array, ENTRY_0), EINA_TRUE); elm_object_focus_set( - (Evas_Object *)eina_array_data_get(array, ENTRY_0), EINA_TRUE); + eina_array_data_get(array, ENTRY_0), EINA_TRUE); _set_entry_directions(array, data->cancel_btn); @@ -680,37 +684,24 @@ static int _add_pwd_entry(SPasscodePopupView *data) * * @return: void. */ -void CPasscodePopupView::sm_CbCtxpopupDismissed(void *priv, Evas_Object *obj, void *ev) -{ - CPasscodePopupView *root = (CPasscodePopupView*)priv; - if (root) - root->m_OnCtxpopupDismissed(obj, ev); -} - - -void CPasscodePopupView::m_OnCtxpopupDismissed(Evas_Object *obj, void *ev) +static void _ctxpopup_dismissed(void *priv, Evas_Object *obj, + void *ev) { - if (!obj) - return; + struct _pwd_data *data; - if (!m->base || !m->mgr) + if (!priv || !obj) return; - Hide(); - - m->mgr->ViewPop(); -} - + data = priv; + if (!data->base || !data->mgr) + return; -Evas_Object* CPasscodePopupView::Base(void) -{ - ASSERT(m); + _hide(data->base); - return m->base; + settingmgr_view_pop(data->mgr); } - /** * Create all the UI components of change passcode view. * @@ -721,34 +712,37 @@ Evas_Object* CPasscodePopupView::Base(void) * @return: the base layout of change passcode view or null * if error occurred. */ -bool CPasscodePopupView::Create(struct settingview_data *view, void *prev) +static Evas_Object *_create(struct setting_mgr *mgr, + struct settingview_data *view, void *prev) { - ASSERT(!m); - ASSERT(view); - - CSettingMgr *mgr = CSettingMgr::GetInstance(); - ASSERT(mgr); - Evas_Object *base, *bg; Evas_Object *win; Evas_Object *cancel_btn; Evas_Object *ctxpopup; + struct _pwd_data *data; int ret; - int width, height; int xpos, ypos; - win = mgr->Window(); - ASSERT(win); + if (!mgr || !view) { + _ERR("invalid argument."); + return NULL; + } + + win = settingmgr_get_win(mgr); + if (!win) { + _ERR("settingmgr get window failed."); + return NULL; + } - m = new SPasscodePopupView; - if (!m) { + data = calloc(1, sizeof(*data)); + if (!data) { _ERR("calloc _change_passcode_data failed."); - return false; + return NULL; } - m->win = win; + data->win = win; - _clear_pwd(m->pwd); + _clear_pwd(data->pwd); bg = _add_pwd_bg(win); if (!bg) { @@ -756,61 +750,56 @@ bool CPasscodePopupView::Create(struct settingview_data *view, void *prev) goto error; } - ctxpopup = utils_add_ctxpopup(win, (char *) CHANGE_PWD_CTXPOPUP_STYLE); + ctxpopup = utils_add_ctxpopup(win, CHANGE_PWD_CTXPOPUP_STYLE); if (!ctxpopup) { _ERR("add ctxpopup failed."); goto error; } - m->ctxpopup = ctxpopup; + data->ctxpopup = ctxpopup; - base = _add_pwd_base(m->ctxpopup); + base = _add_pwd_base(data->ctxpopup); if (!base) { _ERR("add change passcode base layout failed."); goto error; } - m->base = base; + data->base = base; elm_object_content_set(ctxpopup, base); - width = WIN_WIDTH; - height = WIN_HEIGHT; - - xpos = (width - CTXPOPUP_WIDTH) / 2; - ypos = (height - CTXPOPUP_HEIGHT) / 2; - evas_object_move(m->ctxpopup, xpos * ELM_SCALE, ypos * ELM_SCALE); + xpos = (WIN_WIDTH - CTXPOPUP_WIDTH) / 2; + ypos = (WIN_HEIGHT - CTXPOPUP_HEIGHT) / 2; + evas_object_move(data->ctxpopup, xpos * ELM_SCALE, ypos * ELM_SCALE); - cancel_btn = _add_pwd_cancel_btn(m); + cancel_btn = _add_pwd_cancel_btn(data); if (!cancel_btn) { _ERR("add change passcode cancel button failed."); goto error; } - m->cancel_btn = cancel_btn; + data->cancel_btn = cancel_btn; - ret = _add_pwd_entry(m); + ret = _add_pwd_entry(data); if (ret != 0) { _ERR("add change passcode input buttons failed."); goto error; } - m->mgr = mgr; - m->bg = bg; - m->view = view; + data->mgr = mgr; + data->bg = bg; + data->view = view; - evas_object_smart_callback_add(m->ctxpopup, - SIG_DISMISSED, sm_CbCtxpopupDismissed, this); + evas_object_smart_callback_add(data->ctxpopup, + SIG_DISMISSED, _ctxpopup_dismissed, data); - evas_object_data_set(base, PWD_DATA_ID, m); + evas_object_data_set(base, PWD_DATA_ID, data); - return true; + return base; error: - _free_pwd_data(m); - delete m; - m = NULL; - return false; + _free_pwd_data(data); + return NULL; } /** @@ -820,11 +809,20 @@ error: * * @return: void. */ -void CPasscodePopupView::Show(void) +static void _show(Evas_Object *base) { - ASSERT(m); + struct _pwd_data *data; + + if (!base) + return; - evas_object_show(m->ctxpopup); + data = evas_object_data_get(base, PWD_DATA_ID); + if (!data) { + _ERR("get data from base failed. ID: %s.", PWD_DATA_ID); + return; + } + + evas_object_show(data->ctxpopup); } /** @@ -834,13 +832,20 @@ void CPasscodePopupView::Show(void) * * @return: void. */ -void CPasscodePopupView::Destroy(void) +static void _destroy(Evas_Object *base) { - ASSERT(m); + struct _pwd_data *data; + + if (!base) + return; - _free_pwd_data(m); - delete m; - m = NULL; + data = evas_object_data_get(base, PWD_DATA_ID); + if (!data) { + _ERR("get data from base failed. ID: %s.", PWD_DATA_ID); + return; + } + + _free_pwd_data(data); } /** @@ -850,33 +855,33 @@ void CPasscodePopupView::Destroy(void) * * @return: void. */ -void CPasscodePopupView::Hide(void) +static void _hide(Evas_Object *base) { - ASSERT(m); + struct _pwd_data *data; - evas_object_hide(m->bg); - evas_object_hide(m->ctxpopup); -} + if (!base) + return; + data = evas_object_data_get(base, PWD_DATA_ID); + if (!data) { + _ERR("get data from base failed. ID: %s.", + PWD_DATA_ID); + return; + } + + evas_object_hide(data->bg); + evas_object_hide(data->ctxpopup); +} -#if 0 /** * view class of change passcode view. */ static struct setting_class _vclass = { - VCLASS_TITLE_CHANGE_PASSCODE, - _create, - _show, - NULL, - NULL, - NULL, - NULL, - _hide, - _destroy, - NULL, - NULL, - NULL, - 0 + .title = VCLASS_TITLE_CHANGE_PASSCODE, + .create = _create, + .show = _show, + .destroy = _destroy, + .hide = _hide }; /** @@ -890,4 +895,3 @@ struct setting_class *view_passcode_popup_get_vclass(void) { return &_vclass; } -#endif diff --git a/src/view_resetpopup.c b/src/view_resetpopup.c new file mode 100644 index 0000000..b53bc33 --- /dev/null +++ b/src/view_resetpopup.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dbg.h" +#include "def.h" +#include "stdbool.h" +#include "viewmgr.h" +#include "utils.h" +#include "data_wrapper.h" +#include "settings_provider.h" +#include "view_resetpopup.h" + +/** +* This function is invoked to create view layout. +* +* @param mgr [in] The setting_mgr data pointer passed by @settingmgr_view_push. +* @param view [in] The settingview_data data pointer passed by @settingmgr_view_push. +* @param prev [in] The parameter data which passed by prev view or NULL. +* @return View layout evas object, NULL on error. +*/ +static Evas_Object *_create(struct setting_mgr *mgr, + struct settingview_data *view, void *prev) +{ + /*TODO:Implement this function*/ + return NULL; +} + +/** +* This function is invoked to show view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _show(Evas_Object *base) +{ +} + +/** +* This function is invoked to destroy view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _destroy(Evas_Object *base) +{ +} + +/** +* This function is invoked to hide view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _hide(Evas_Object *base) +{ +} + +static struct setting_class _vclass = { + .title = VCLASS_TITLE_RESET_POPUP, + .create = _create, + .show = _show, + .destroy = _destroy, + .hide = _hide, + .hide_view = 0 +}; + +/** +* This function is invoked to get reset popup view class object. +* +* @return The setting_class data static pointer, NULL on error. +*/ +struct setting_class *view_resetpopup_get_vclass(void) +{ + return &_vclass; +} diff --git a/src/view_sublist.c b/src/view_sublist.c new file mode 100644 index 0000000..7b9f203 --- /dev/null +++ b/src/view_sublist.c @@ -0,0 +1,775 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "dbg.h" +#include "def.h" +#include "stdbool.h" +#include "viewmgr.h" +#include "utils.h" +#include "data_wrapper.h" +#include "settings_provider.h" +#include "view_sublist.h" + +#define DATA_ID "SUBLISTDATA" +#define MAX_ITEMS 8 +#define ITEMID "itemdata" + +#define SUBLIST_OFFSET 70.0 +#define SUBLIST_WIDTH 310.0 +#define ITEM_HEIGHT 82 +#define ITEM_OFFSET (39 * 2) + +#define SIG_SCROLL_BOTTOM "edge,bottom" +#define SIG_SCROLL_TOP "edge,top" +#define SIG_SCROLL "scroll" +#define SIG_ITEM_FOCUSED "focused" +#define SIG_ITEM_UNFOCUSED "unfocused" +#define SIG_ITEM_CLICKED "clicked" +#define SIG_CTXPOPUP_DISMISSED "dismissed" + +struct _sublist_data { + Evas_Object *win; + Evas_Object *base; + Evas_Object *ctxpopup; + Evas_Object *popup_box; + Evas_Object *scroller; + Eina_Array *sub_btn_array; + + int sub_items_count; + int selected_index; + struct obj_geometry_data *geometry_data; + struct settingview_data *sublist_view; + struct setting_mgr *mgr; +}; + +static void _destroy(Evas_Object *base); +static void _hide(Evas_Object *base); + +/** +* This function is invoked to exit and pop current view. +* +* @param data [in] The _sublist_data data pointer. +* @return void. +*/ +static void _exit_view(struct _sublist_data *data) +{ + if (!data) + return; + + _hide(data->base); + settingmgr_view_pop(data->mgr); +} + +/** +* This function is invoked to get item's data list. +* +* @param data [in] The settingview_data data pointer. +* @param cnt [out] The list element numbers +* @return The Eina_List data pointer, NULL on error. +*/ +static Eina_List *_get_list_data(struct settingview_data *data, int *cnt) +{ + Eina_List *list; + + if (!data || !cnt) { + _ERR("Invalid arguments"); + return NULL; + } + + list = settingitem_get_data_list(viewdata_get_parentitem(data)); + if (!list) { + *cnt = 0; + return NULL; + } + + *cnt = eina_list_count(list); + + return list; +} + +/** +* This function is invoked to get current selected value. +* +* @param data [in] The _sublist_data data pointer. +* @return The selected string value, NULL on error. +*/ +static char *_get_selected_value(struct _sublist_data *data) +{ + struct settingitem *item; + + if (!data || !data->sublist_view) { + _ERR("Invalid argument"); + return NULL; + } + + item = viewdata_get_parentitem(data->sublist_view); + if (!item) { + _ERR("Get item failed"); + return NULL; + } + + return provider_get_list_value(item); +} + +/** +* This function is invoked to set selected value to middleware. +* +* @param data [in] The _sublist_data data pointer. +* @param obj [in] The evas object user selected. +* @return void. +*/ +static void _set_selected_value(struct _sublist_data *data, + Evas_Object *obj) +{ + struct settingitem *item; + char *val; + int r; + + if (!data || !data->sublist_view || !obj) { + _ERR("Invalid argument"); + return; + } + + item = viewdata_get_parentitem(data->sublist_view); + if (!item) { + _ERR("Get item failed"); + return; + } + + val = evas_object_data_get(obj, ITEMID); + if (val) { + r = provider_set_list_value(item, val); + if (r == -1) + _ERR("Set list value failed"); + } +} + +/** +* This function is a @Evas_Smart_Cb type callback, it will be invoked if scroller go to bottom. +* +* @param data [in] The user data. +* @param obj [in] The corresponding object which event occurred. +* @param event [in] The event infomation. +* @return void. +*/ +static void _scroller_bottom_cb(void *data, Evas_Object *obj, void *event) +{ + struct _sublist_data *priv; + + if (!data) { + _ERR("Invalid argument"); + return; + } + + priv = data; + + elm_object_signal_emit(priv->ctxpopup, SUBLIST_SHOW_UP_ARROW, ""); +} + +/** +* This function is a @Evas_Smart_Cb type callback, it will be invoked if scroller go to top. +* +* @param data [in] The user data. +* @param obj [in] The corresponding object which event occurred. +* @param event [in] The event infomation. +* @return void. +*/ +static void _scroller_top_cb(void *data, Evas_Object *obj, void *event) +{ + struct _sublist_data *priv; + + if (!data) { + _ERR("Invalid argument"); + return; + } + + priv = data; + + elm_object_signal_emit(priv->ctxpopup, SUBLIST_SHOW_DOWN_ARROW, ""); +} + +/** +* This function is a @Evas_Smart_Cb type callback, it will be invoked if scroller is scrolling. +* +* @param data [in] The user data. +* @param obj [in] The corresponding object which event occurred. +* @param event [in] The event infomation. +* @return void. +*/ +static void _scroll_event_cb(void *data, Evas_Object *obj, void *event) +{ + struct _sublist_data *priv; + + if (!data) { + _ERR("Invalid argument"); + return; + } + + priv = data; + + elm_object_signal_emit(priv->ctxpopup, SUBLIST_SHOW_BOTH_ARROW, ""); +} + +/** +* This function is a @Evas_Smart_Cb type callback, it will be invoked if evas object get focus. +* +* @param data [in] The user data. +* @param obj [in] The corresponding object which event occurred. +* @param ev [in] The event infomation. +* @return void. +*/ +static void _subitem_focus_in_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _sublist_data *priv; + char *val, *sel; + + if (!obj || !data) { + _ERR("Invalid arguments\n"); + return; + } + + priv = data; + + val = evas_object_data_get(obj, ITEMID); + if (!val) { + _ERR("Get value from btn failed\n"); + return; + } + + sel = _get_selected_value(priv); + if (!sel) { + _ERR("_get_selected_value failed\n"); + return; + } + + if (!strncmp(sel, val, strlen(sel))) + elm_object_signal_emit(obj, CTXPOPUPBTN_ICON_FOCUSED, + CTXPOPUPBTN_ICON_SOURCE); + + elm_object_signal_emit(obj, CTXPOPUPBTN_BUTTON_FOCUSED, + CTXPOPUPBTN_BUTTON_SOURCE); + + provider_release_list_value(sel); +} + +/** +* This function is a @Evas_Smart_Cb type callback, it will be invoked if evas object lose focus. +* +* @param data [in] The user data. +* @param obj [in] The corresponding object which event occurred. +* @param ev [in] The event infomation. +* @return void. +*/ +static void _subitem_focus_out_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _sublist_data *priv; + char *val, *sel; + + if (!obj || !data) { + _ERR("Invalid arguments\n"); + return; + } + + priv = data; + + val = evas_object_data_get(obj, ITEMID); + if (!val) { + _ERR("Get value from btn failed\n"); + return; + } + + sel = _get_selected_value(priv); + if (!sel) { + _ERR("_get_selected_value failed\n"); + return; + } + + if (!strncmp(sel, val, strlen(sel))) + elm_object_signal_emit(obj, CTXPOPUPBTN_BUTTON_HIGHLIGHT, + CTXPOPUPBTN_BUTTON_SOURCE); + else + elm_object_signal_emit(obj, CTXPOPUPBTN_BUTTON_UNFOCUSED, + CTXPOPUPBTN_BUTTON_SOURCE); + + provider_release_list_value(sel); +} + +/** +* This function is a @Evas_Smart_Cb type callback, it will be invoked if evas object be clicked. +* +* @param data [in] The user data. +* @param obj [in] The corresponding object which event occurred. +* @param ev [in] The event infomation. +* @return void. +*/ +static void _subitem_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _sublist_data *priv; + + if (!data || !obj) + return; + + priv = data; + + _set_selected_value(priv, obj); + + _exit_view(priv); +} + +/** +* This function is a @Evas_Smart_Cb type callback, it will be invoked if +* ctxpopup dismissed. +* +* @param data [in] The user data. +* @param obj [in] The corresponding object which event occurred. +* @param ev [in] The event infomation. +* @return void. +*/ +static void _ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _sublist_data *priv; + + if (!data) + return; + + priv = data; + + _exit_view(priv); +} + +/** +* This function is a @Evas_Smart_Cb type callback, it will be invoked if occurred +* key press event. +* +* @param data [in] The user data. +* @param e [in] The evas handler. +* @param obj [in] The corresponding object which event occurred. +* @param ei [in] The event infomation. +* @return void. +*/ +static void _subitem_key_pressed_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _sublist_data *priv; + + if (!data || !ei) + return; + + ev = ei; + priv = data; + + if (!strcmp(ev->keyname, KEY_BACK)) + _exit_view(priv); +} + +/** +* This function is invoked to draw ctxpopup layout. +* +* @param data [in] The _sublist_data data pointer. +* @return 0 if success, -1 if fail. +*/ +static int _draw_ctxpopup_layout(struct _sublist_data *data) +{ + Evas_Object *box, *ctxpopup, *scroller; + + if (!data || !data->ctxpopup) { + _ERR("Invalid argument"); + return -1; + } + + ctxpopup = data->ctxpopup; + scroller = NULL; + + if (data->sub_items_count > MAX_ITEMS) { + scroller = utils_add_scroller(ctxpopup); + if (!scroller) { + _ERR("elm_scroller_add failed\n"); + return -1; + } + + elm_object_style_set(scroller, SUBLIST_SCROLLER_STYLE); + elm_object_content_set(ctxpopup, scroller); + + box = utils_add_box(ctxpopup); + if (!box) { + _ERR("elm_box_add failed\n"); + evas_object_del(scroller); + return -1; + } + + elm_object_content_set(scroller, box); + + evas_object_smart_callback_add(scroller, SIG_SCROLL_BOTTOM, + _scroller_bottom_cb, data); + evas_object_smart_callback_add(scroller, SIG_SCROLL_TOP, + _scroller_top_cb, data); + evas_object_smart_callback_add(scroller, SIG_SCROLL, + _scroll_event_cb, data); + + elm_object_signal_emit(ctxpopup, SUBLIST_SHOW_DOWN_ARROW, ""); + } else { + box = utils_add_box(ctxpopup); + if (!box) { + _ERR("elm_box_add failed\n"); + return -1; + } + + elm_object_content_set(ctxpopup, box); + + elm_object_signal_emit(ctxpopup, SUBLIST_HIDE_BOTH_ARROW, ""); + } + + data->popup_box = box; + data->scroller = scroller; + + return 0; +} + +/** +* This function is invoked to draw list items. +* +* @param data [in] The _sublist_data data pointer. +* @param list [in] The eina list data pointer. +* @return 0 if success, -1 if fail. +*/ +static int _draw_list_items(struct _sublist_data *data, Eina_List *list) +{ + struct listitem *ldata; + Eina_List *l; + Eina_Array *btns; + Eina_Array_Iterator a; + Evas_Object *btn, *tmp; + char *sel; + const char *name, *val; + int check, i, j; + + if (!data || !list || !data->popup_box) { + _ERR("Invalid argument"); + return -1; + } + + sel = _get_selected_value(data); + if (!sel) { + _ERR("Get selected value failed"); + return -1; + } + + btns = eina_array_new(1); + if (!btns) { + _ERR("Allocate array failed\n"); + provider_release_list_value(sel); + return -1; + } + + i = 0; + j = 0; + check = 0; + + EINA_LIST_FOREACH(list, l, ldata) { + name = listitem_get_display_name(ldata); + + btn = utils_add_btn(data->popup_box, CTXPOPUPBTN_STYLE, + name, EINA_TRUE); + if (!btn) { + _ERR("Add button failed\n"); + EINA_ARRAY_ITER_NEXT(btns, j, tmp, a) + evas_object_del(tmp); + eina_array_free(btns); + provider_release_list_value(sel); + return -1; + } + + val = listitem_get_value(ldata); + if (!strncmp(sel, val, strlen(sel))) { + elm_object_signal_emit(btn, + CTXPOPUPBTN_BUTTON_HIGHLIGHT, + CTXPOPUPBTN_BUTTON_SOURCE); + check = i; + } + + evas_object_data_set(btn, ITEMID, val); + + evas_object_smart_callback_add(btn, SIG_ITEM_FOCUSED, + _subitem_focus_in_cb, data); + evas_object_smart_callback_add(btn, SIG_ITEM_UNFOCUSED, + _subitem_focus_out_cb, data); + evas_object_smart_callback_add(btn, SIG_ITEM_CLICKED, + _subitem_btn_clicked_cb, data); + evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, + _subitem_key_pressed_cb, data); + + elm_box_pack_end(data->popup_box, btn); + eina_array_push(btns, btn); + + if (i == 0) + elm_object_focus_set(btn, EINA_TRUE); + + i++; + } + + data->sub_btn_array = btns; + data->selected_index = check; + + provider_release_list_value(sel); + + return 0; +} + +/** +* This function is invoked to draw sub list view. +* +* @param data [in] The _sublist_data data pointer. +* @return 0 if success, -1 if fail. +*/ +static int _draw_sublist(struct _sublist_data *data) +{ + struct settingview_data *view; + Eina_List *list; + double ratio, w; + int cnt, x, y, height; + struct obj_geometry_data *param; + + if (!data || !data->sublist_view || !data->geometry_data) { + _ERR("Invalid argument\n"); + return -1; + } + + view = data->sublist_view; + + cnt = 0; + list = _get_list_data(view, &cnt); + if (!list) { + _ERR("Get item list failed"); + return -1; + } + + data->sub_items_count = cnt; + + if (_draw_ctxpopup_layout(data) == -1) { + _ERR("Fail to draw ctxpopup layout"); + return -1; + } + + if (_draw_list_items(data, list) == -1) { + _ERR("Fail to draw list items"); + return -1; + } + + param = data->geometry_data; + + w = param->width; + if (w <= 0) { + _ERR("Fail to get clicked button width"); + return -1; + } + + ratio = (w - SUBLIST_WIDTH - SUBLIST_OFFSET) / w; + + x = param->x + param->width * ratio; + y = param->y; + + if (data->sub_items_count < MAX_ITEMS) + height = data->sub_items_count * ITEM_HEIGHT; + else + height = MAX_ITEMS * ITEM_HEIGHT + ITEM_OFFSET; + + if (y > WIN_HEIGHT) + y = y - height; + + evas_object_move(data->ctxpopup, x * ELM_SCALE, y * ELM_SCALE); + + utils_set_focus_directions(data->sub_btn_array, data->sub_items_count); + + return 0; +} + +/** +* This function is invoked to create view layout. +* +* @param mgr [in] The setting_mgr data pointer passed by @settingmgr_view_push. +* @param view [in] The settingview_data data pointer passed by @settingmgr_view_push. +* @param prev [in] The parameter data which passed by prev view or NULL. +* @return View layout evas object, NULL on error. +*/ +static Evas_Object *_create(struct setting_mgr *mgr, + struct settingview_data *view, void *prev) +{ + Evas_Object *base, *ctxpopup, *win; + struct _sublist_data *data; + + if (!mgr || !view || !prev) { + _ERR("Invalid argument!\n"); + return NULL; + } + + win = settingmgr_get_win(mgr); + if (!win) { + _ERR("Fail to get win"); + return NULL; + } + + data = calloc(1, sizeof(*data)); + if (!data) { + _ERR("Unable to allocate memory\n"); + return NULL; + } + + base = elm_layout_add(win); + if (!base) { + free(data); + return NULL; + } + + elm_layout_file_set(base, EDJ_FILE, SUBLIST_VIEW_PAGE); + + ctxpopup = utils_add_ctxpopup(win, SUBLIST_CTXPOPUP_STYLE1); + if (!ctxpopup) { + _ERR("Fail to add ctxpopup"); + evas_object_del(base); + free(data); + return NULL; + } + + evas_object_smart_callback_add(ctxpopup, SIG_CTXPOPUP_DISMISSED, + _ctxpopup_dismissed_cb, data); + + data->geometry_data = prev; + + data->mgr = mgr; + data->win = win; + data->base = base; + data->ctxpopup = ctxpopup; + data->sublist_view = view; + + evas_object_data_set(base, DATA_ID, data); + + if (_draw_sublist(data) == -1) { + _ERR("Error in drawing items function\n"); + evas_object_del(base); + evas_object_del(ctxpopup); + if (data->sub_btn_array) + eina_array_free(data->sub_btn_array); + + free(data); + return NULL; + } + + return base; + +} + +/** +* This function is invoked to show view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _show(Evas_Object *base) +{ + struct _sublist_data *data; + + if (!base) { + _ERR("Invalid argument\n"); + return; + } + + data = evas_object_data_get(base, DATA_ID); + if (!data) { + _ERR("Get sublist data failed\n"); + return; + } + + evas_object_show(data->ctxpopup); + evas_object_show(base); +} + +/** +* This function is invoked to destroy view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _destroy(Evas_Object *base) +{ + struct _sublist_data *data; + + if (!base) + return; + + data = evas_object_data_get(base, DATA_ID); + if (!data) { + _ERR("Invalid arguments"); + evas_object_del(data->ctxpopup); + evas_object_del(base); + return; + } + + if (data->sub_btn_array) + eina_array_free(data->sub_btn_array); + + evas_object_del(data->ctxpopup); + evas_object_del(base); + + if (data->sublist_view) + viewdata_release(data->sublist_view); + + free(data); +} + +/** +* This function is invoked to hide view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _hide(Evas_Object *base) +{ + struct _sublist_data *data; + + if (!base) + return; + + data = evas_object_data_get(base, DATA_ID); + if (!data) { + _ERR("Invalid arguments"); + return; + } + + evas_object_hide(base); + evas_object_hide(data->ctxpopup); +} + +static struct setting_class _vclass = { + .title = VCLASS_TITLE_SUBLIST, + .create = _create, + .show = _show, + .destroy = _destroy, + .hide = _hide, + .hide_view = 0 +}; + +/** +* This function is invoked to get sub list view class object. +* +* @return The setting_class data static pointer, NULL on error. +*/ +struct setting_class *view_sublist_get_vclass(void) +{ + return &_vclass; +} diff --git a/src/view_sublist.cpp b/src/view_sublist.cpp deleted file mode 100644 index 52f14ed..0000000 --- a/src/view_sublist.cpp +++ /dev/null @@ -1,655 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include "common_defs.h" -#include "stdbool.h" -#include "settingviewmgr.h" -#include "utils.h" -#include "data_wrapper.h" -#include "settings_provider.h" -#include "view_sublist.h" -#include "settingviewmgr.h" - - -enum EId { - ID_BTNS, -}; - -#define MAX_ITEMS 8 -#define ITEMID "itemdata" - -#define SUBLIST_OFFSET 70.0 -#define SUBLIST_WIDTH 310.0 -#define ITEM_HEIGHT 82 -#define ITEM_OFFSET (39 * 2) - -#define SIG_SCROLL_BOTTOM "edge,bottom" -#define SIG_SCROLL_TOP "edge,top" -#define SIG_SCROLL "scroll" -#define SIG_ITEM_FOCUSED "focused" -#define SIG_ITEM_UNFOCUSED "unfocused" -#define SIG_ITEM_CLICKED "clicked" -#define SIG_CTXPOPUP_DISMISSED "dismissed" - -struct SSublistView { - Evas_Object *win; - Evas_Object *base; - Evas_Object *ctxpopup; - Evas_Object *popup_box; - Evas_Object *scroller; - Eina_Array *sub_btn_array; - - int sub_items_count; - int selected_index; - struct obj_geometry_data *geometry_data; - struct settingview_data *sublist_view; - CSettingMgr *mgr; -}; - -//static void _destroy(Evas_Object *base); -//static void _hide(Evas_Object *base); - -/** -* This function is invoked to exit and pop current view. -* -* @param data [in] The _sublist_data data pointer. -* @return void. -*/ -void CSublistView::m_ExitView(void) -{ - _DBG(); - - Hide(); - - m->mgr->ViewPop(); -} - -/** -* This function is invoked to get item's data list. -* -* @param data [in] The settingview_data data pointer. -* @param cnt [out] The list element numbers -* @return The Eina_List data pointer, NULL on error. -*/ -static Eina_List *_get_list_data(struct settingview_data *data, int *cnt) -{ - Eina_List *list; - - if (!data || !cnt) { - _ERR("Invalid arguments"); - return NULL; - } - - list = settingitem_get_data_list(viewdata_get_parentitem(data)); - if (!list) { - *cnt = 0; - return NULL; - } - - *cnt = eina_list_count(list); - - return list; -} - -/** -* This function is invoked to get current selected value. -* -* @param data [in] The _sublist_data data pointer. -* @return The selected string value, NULL on error. -*/ -static char *_get_selected_value(SSublistView *data) -{ - struct settingitem *item; - - if (!data || !data->sublist_view) { - _ERR("Invalid argument"); - return NULL; - } - - item = viewdata_get_parentitem(data->sublist_view); - if (!item) { - _ERR("Get item failed"); - return NULL; - } - - return provider_get_list_value(item); -} - -/** -* This function is invoked to set selected value to middleware. -* -* @param data [in] The _sublist_data data pointer. -* @param obj [in] The evas object user selected. -* @return void. -*/ -void CSublistView::m_SetSelectedValue(Evas_Object *obj) -{ - struct settingitem *item; - char *val; - int r; - - if (!m->sublist_view || !obj) { - _ERR("Invalid argument"); - return; - } - - item = viewdata_get_parentitem(m->sublist_view); - if (!item) { - _ERR("Get item failed"); - return; - } - - val = (char *) evas_object_data_get(obj, ITEMID); - if (val) { - r = provider_set_list_value(item, val); - if (r == -1) - _ERR("Set list value failed"); - } -} - -/** -* This function is a @Evas_Smart_Cb type callback, it will be invoked if scroller go to bottom. -* -* @param data [in] The user data. -* @param obj [in] The corresponding object which event occurred. -* @param event [in] The event infomation. -* @return void. -*/ -static void _scroller_bottom_cb(void *data, Evas_Object *obj, void *event) -{ - SSublistView *priv; - - if (!data) { - _ERR("Invalid argument"); - return; - } - - priv = (SSublistView *) data; - - elm_object_signal_emit(priv->ctxpopup, SUBLIST_SHOW_UP_ARROW, ""); -} - -/** -* This function is a @Evas_Smart_Cb type callback, it will be invoked if scroller go to top. -* -* @param data [in] The user data. -* @param obj [in] The corresponding object which event occurred. -* @param event [in] The event infomation. -* @return void. -*/ -static void _scroller_top_cb(void *data, Evas_Object *obj, void *event) -{ - SSublistView *priv; - - if (!data) { - _ERR("Invalid argument"); - return; - } - - priv = (SSublistView *) data; - - elm_object_signal_emit(priv->ctxpopup, SUBLIST_SHOW_DOWN_ARROW, ""); -} - -/** -* This function is a @Evas_Smart_Cb type callback, it will be invoked if scroller is scrolling. -* -* @param data [in] The user data. -* @param obj [in] The corresponding object which event occurred. -* @param event [in] The event infomation. -* @return void. -*/ -static void _scroll_event_cb(void *data, Evas_Object *obj, void *event) -{ - SSublistView *priv; - - if (!data) { - _ERR("Invalid argument"); - return; - } - - priv = (SSublistView *) data; - - elm_object_signal_emit(priv->ctxpopup, SUBLIST_SHOW_BOTH_ARROW, ""); -} - - -/** -* This function is a @Evas_Smart_Cb type callback, it will be invoked if -* ctxpopup dismissed. -* -* @param data [in] The user data. -* @param obj [in] The corresponding object which event occurred. -* @param ev [in] The event infomation. -* @return void. -*/ -void CSublistView::sm_CbCtxpopupDismissed(void *data, Evas_Object *obj, void *ev) -{ - _DBG(); - CSublistView *root = (CSublistView*)data; - if (root) - root->m_OnCtxpopupDismissed(obj, ev); -} - - -void CSublistView::m_OnCtxpopupDismissed(Evas_Object *obj, void *ev) -{ - _DBG(); - m_ExitView(); -} - - -/** -* This function is invoked to draw ctxpopup layout. -* -* @param data [in] The _sublist_data data pointer. -* @return 0 if success, -1 if fail. -*/ -bool CSublistView::m_DrawCtxpopupLayout() -{ - _DBG(); - if (!m->ctxpopup) { - _ERR("Invalid argument"); - return false; - } - - if (m->sub_items_count > MAX_ITEMS) { - _DBG(); - m->scroller = utils_add_scroller(m->ctxpopup); - if (!m->scroller) { - _ERR("elm_scroller_add failed"); - return false; - } - - //elm_object_style_set(m->scroller, SUBLIST_SCROLLER_STYLE); - elm_object_content_set(m->ctxpopup, m->scroller); - - m->popup_box = utils_add_box(m->ctxpopup); - if (!m->popup_box) { - _ERR("elm_box_add failed"); - evas_object_del(m->scroller); - return false; - } - - elm_object_content_set(m->scroller, m->popup_box); - - evas_object_smart_callback_add(m->scroller, SIG_SCROLL_BOTTOM, _scroller_bottom_cb, m); - evas_object_smart_callback_add(m->scroller, SIG_SCROLL_TOP, _scroller_top_cb, m); - evas_object_smart_callback_add(m->scroller, SIG_SCROLL, _scroll_event_cb, m); - - elm_object_signal_emit(m->ctxpopup, SUBLIST_SHOW_DOWN_ARROW, ""); - } else { - m->popup_box = utils_add_box(m->ctxpopup); - if (!m->popup_box) { - _ERR("elm_box_add failed"); - return false; - } - - elm_object_content_set(m->ctxpopup, m->popup_box); - - elm_object_signal_emit(m->ctxpopup, SUBLIST_HIDE_BOTH_ARROW, ""); - } - - return true; -} - -/** -* This function is invoked to draw list items. -* -* @param data [in] The _sublist_data data pointer. -* @param list [in] The eina list data pointer. -* @return 0 if success, -1 if fail. -*/ -bool CSublistView::m_DrawListItems(Eina_List *list) -{ - _DBG(); - struct listitem *ldata; - void* obj; - Eina_List *l; - Eina_Array *btns; - Eina_Array_Iterator a; - Evas_Object *btn, *tmp; - char *sel; - const char *name, *val; - unsigned int check, i, j; - - if (!list || !m->popup_box) { - _ERR("Invalid argument"); - return false; - } - - sel = _get_selected_value(m); - if (!sel) { - _ERR("Get selected value failed"); - return false; - } - - btns = eina_array_new(1); - if (!btns) { - _ERR("Allocate array failed"); - provider_release_list_value(sel); - return false; - } - - i = 0; - j = 0; - check = 0; - - EINA_LIST_FOREACH(list, l, obj) { - ldata = (struct listitem *) obj; - name = listitem_get_display_name(ldata); - - btn = utils_add_btn(m->popup_box, CTXPOPUPBTN_STYLE, name, EINA_TRUE); - if (!btn) { - _ERR("Add button failed"); - EINA_ARRAY_ITER_NEXT(btns, j, obj, a) - { - tmp = (Evas_Object *) obj; - evas_object_del(tmp); - } - eina_array_free(btns); - provider_release_list_value(sel); - return false; - } - - val = listitem_get_value(ldata); - if (!strncmp(sel, val, strlen(sel))) { - elm_object_signal_emit(btn, CTXPOPUPBTN_BUTTON_HIGHLIGHT, CTXPOPUPBTN_BUTTON_SOURCE); - check = i; - } - - evas_object_data_set(btn, ITEMID, val); - - _DBG("[%s] Connected", name); - Connect(btn, ID_BTNS, TYPE_FOCUSED | TYPE_UNFOCUSED | TYPE_CLICKED | TYPE_KEY_DOWN); - - //evas_object_smart_callback_add(btn, SIG_ITEM_FOCUSED, sm_CbSubitemFocusIn, this); - //evas_object_smart_callback_add(btn, SIG_ITEM_UNFOCUSED, sm_CbSubitemFocusOut, this); - //evas_object_smart_callback_add(btn, SIG_ITEM_CLICKED, sm_CbSubitemBtnClicked, this); - //evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, sm_CbSubitemKeyPressed, this); - - elm_box_pack_end(m->popup_box, btn); - eina_array_push(btns, btn); - - if (i == 0) - elm_object_focus_set(btn, EINA_TRUE); - - i++; - } - - m->sub_btn_array = btns; - m->selected_index = check; - - provider_release_list_value(sel); - - return true; -} - -/** -* This function is invoked to draw sub list view. -* -* @param data [in] The _sublist_data data pointer. -* @return 0 if success, -1 if fail. -*/ -bool CSublistView::m_DrawSublist(void) -{ - _DBG(); - Eina_List *list; - int cnt; - - if (!m->sublist_view || !m->geometry_data) { - _ERR("Invalid argument\n"); - return false; - } - - cnt = 0; - list = _get_list_data(m->sublist_view, &cnt); - if (!list) { - _ERR("Get item list failed"); - return false; - } - - m->sub_items_count = cnt; - - if (!m_DrawCtxpopupLayout()) { - _ERR("Fail to draw ctxpopup layout"); - return false; - } - - if (!m_DrawListItems(list)) { - _ERR("Fail to draw list items"); - return false; - } - - evas_object_move(m->ctxpopup, m->geometry_data->x + m->geometry_data->width , m->geometry_data->y); - - utils_set_focus_directions(m->sub_btn_array, m->sub_items_count); - - return true; -} - - - -Evas_Object* CSublistView::Base(void) -{ - ASSERT(m); - - return m->base; -} - - -/** -* This function is invoked to create view layout. -* -* @param mgr [in] The setting_mgr data pointer passed by @settingmgr_view_push. -* @param view [in] The settingview_data data pointer passed by @settingmgr_view_push. -* @param prev [in] The parameter data which passed by prev view or NULL. -* @return View layout evas object, NULL on error. -*/ -bool CSublistView::Create(struct settingview_data *view, void *prev) -{ - ASSERT(!m); - ASSERT(view); - ASSERT(prev); - _DBG(); - - _CREATE_BEGIN { - _CHECK(m = new SSublistView) - _CHECK(m->mgr = CSettingMgr::GetInstance()) - _CHECK(m->win = m->mgr->Window()) - _CHECK(m->base = elm_layout_add(m->win)) - _COMMAND { - elm_layout_file_set(m->base, EDJ_FILE, SUBLIST_VIEW_PAGE); - } - //_CHECK(m->ctxpopup = utils_add_ctxpopup(m->win, (char *) SUBLIST_CTXPOPUP_STYLE1)) - _CHECK(m->ctxpopup = utils_add_ctxpopup(m->win, NULL)) - _COMMAND { - evas_object_smart_callback_add(m->ctxpopup, SIG_CTXPOPUP_DISMISSED, sm_CbCtxpopupDismissed, this); - m->geometry_data = (struct obj_geometry_data *) prev; - _DBG("m-geometry_data w:%d, h:%d, x:%d, y:%d", - m->geometry_data->width, - m->geometry_data->height, - m->geometry_data->x, - m->geometry_data->y - ); - - m->sublist_view = view; - } - _CHECK(m_DrawSublist()) - _WHEN_SUCCESS { } - _CHECK_FAIL{ if (m->sub_btn_array) eina_array_free(m->sub_btn_array); } - _CHECK_FAIL{ if(m->ctxpopup) evas_object_del(m->ctxpopup); } - _CHECK_FAIL{ if(m->base) evas_object_del(m->base); } - _CHECK_FAIL{/* m->win = m->mgr->Window() */} - _CHECK_FAIL{/* m->mgr = CSettingMgr::GetInstance() */} - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - return true; -} - -/** -* This function is invoked to show view layout. -* -* @param base [in] The view layout evas object. -* @return void. -*/ -void CSublistView::Show(void) -{ - ASSERT(m); - _DBG(); - - evas_object_show(m->ctxpopup); - evas_object_show(m->base); -} - -/** -* This function is invoked to destroy view layout. -* -* @param base [in] The view layout evas object. -* @return void. -*/ -void CSublistView::Destroy(void) -{ - ASSERT(m); - _DBG(); - - if (m->sub_btn_array) - eina_array_free(m->sub_btn_array); - - evas_object_del(m->ctxpopup); - evas_object_del(m->base); - - if (m->sublist_view) - viewdata_release(m->sublist_view); - - delete m; - m = NULL; -} - -/** -* This function is invoked to hide view layout. -* -* @param base [in] The view layout evas object. -* @return void. -*/ -void CSublistView::Hide(void) -{ - ASSERT(m); - _DBG(); - - evas_object_hide(m->base); - evas_object_hide(m->ctxpopup); -} - - -void CSublistView::OnMouseClicked(int id, Evas_Object *obj) -{ - _DBG(); - if (id != ID_BTNS) - return; - - if (!obj) - return; - - m_SetSelectedValue(obj); - - m_ExitView(); -} - - -void CSublistView::OnFocused(int id, Evas_Object *obj, Elm_Object_Item *item) -{ - _DBG(); - if (id != ID_BTNS) - return; - - char *val, *sel; - - if (!obj) { - _ERR("Invalid arguments\n"); - return; - } - - val = (char *)evas_object_data_get(obj, ITEMID); - if (!val) { - _ERR("Get value from btn failed\n"); - return; - } - - sel = _get_selected_value(m); - if (!sel) { - _ERR("_get_selected_value failed\n"); - return; - } - - if (!strncmp(sel, val, strlen(sel))) - elm_object_signal_emit(obj, CTXPOPUPBTN_ICON_FOCUSED, - CTXPOPUPBTN_ICON_SOURCE); - - elm_object_signal_emit(obj, CTXPOPUPBTN_BUTTON_FOCUSED, - CTXPOPUPBTN_BUTTON_SOURCE); - - provider_release_list_value(sel); -} - - -void CSublistView::OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item) -{ - _DBG(); - if (id != ID_BTNS) - return; - - char *val, *sel; - - if (!obj) { - _ERR("Invalid arguments\n"); - return; - } - - val = (char *)evas_object_data_get(obj, ITEMID); - if (!val) { - _ERR("Get value from btn failed\n"); - return; - } - - sel = _get_selected_value(m); - if (!sel) { - _ERR("_get_selected_value failed\n"); - return; - } - - if (!strncmp(sel, val, strlen(sel))) - elm_object_signal_emit(obj, CTXPOPUPBTN_BUTTON_HIGHLIGHT, - CTXPOPUPBTN_BUTTON_SOURCE); - else - elm_object_signal_emit(obj, CTXPOPUPBTN_BUTTON_UNFOCUSED, - CTXPOPUPBTN_BUTTON_SOURCE); - - provider_release_list_value(sel); -} - - -void CSublistView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) -{ - _DBG(); - if (id != ID_BTNS) - return; - - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) - m_ExitView(); -} diff --git a/src/view_system_clock.cpp b/src/view_system_clock.c similarity index 56% rename from src/view_system_clock.cpp rename to src/view_system_clock.c index ecab021..4ca6666 100644 --- a/src/view_system_clock.cpp +++ b/src/view_system_clock.c @@ -14,10 +14,12 @@ * limitations under the License. */ -#include -#include "common_defs.h" +#include + +#include "dbg.h" +#include "def.h" #include "stdbool.h" -#include "settingviewmgr.h" +#include "viewmgr.h" #include "utils.h" #include "data_wrapper.h" #include "settings_provider.h" @@ -40,11 +42,7 @@ #define SIG_UNFOCUSED "unfocused" #define SIG_CLICKED "clicked" -enum EId { - ID_BTNS, -}; - -struct SSystemClockView { +struct _sysclk_data { Evas_Object *win; Evas_Object *base; Evas_Object *ctxpopup; @@ -54,12 +52,14 @@ struct SSystemClockView { int count; int sel_idx; struct settingview_data *vdata; - CSettingMgr *mgr; + struct setting_mgr *mgr; struct evas_obj_data ugd; struct obj_geometry_data *ogd; }; +static void _destroy(Evas_Object *base); +static void _hide(Evas_Object *base); /** * Exit system clock sublist view. @@ -68,13 +68,14 @@ struct SSystemClockView { * * @return: void. */ -void CSystemClockView::m_ExitView(void) +static void _exit_view(struct _sysclk_data *data) { - ASSERT(m); + if (!data || !data->base) + return; - Hide(); + _hide(data->base); - m->mgr->ViewPop(); + settingmgr_view_pop(data->mgr); } /** @@ -112,7 +113,7 @@ static Eina_List *_get_item_list(struct settingview_data *vdata, int *count) * * @return: the selected value or null if error occurred. */ -static char *_get_selected_value(SSystemClockView *data) +static char *_get_selected_value(struct _sysclk_data *data) { struct settingitem *item; @@ -138,7 +139,7 @@ static char *_get_selected_value(SSystemClockView *data) * * @return: void. */ -static void _set_selected_value(SSystemClockView *data, Evas_Object *obj) +static void _set_selected_value(struct _sysclk_data *data, Evas_Object *obj) { struct settingitem *item; char *selval; @@ -155,7 +156,7 @@ static void _set_selected_value(SSystemClockView *data, Evas_Object *obj) return; } - selval = (char *) evas_object_data_get(obj, ITEMID); + selval = evas_object_data_get(obj, ITEMID); if (selval) { ret = provider_set_list_value(item, selval); if (ret != 0) @@ -163,7 +164,189 @@ static void _set_selected_value(SSystemClockView *data, Evas_Object *obj) } } +/** +* Evas_Smart_Cb type callback for handling foucs in event. +* +* @param[in]: priv : the user data. +* @param[in]: obj : the corresponding object which the foucs in event occurred. +* @param[in]: ev : event info. +* +* @return: void. +*/ +static void _subitem_focusin_cb(void *priv, Evas_Object *obj, void *ev) +{ + struct _sysclk_data *data; + char *value; + char *selval; + + if (!obj || !priv) { + _ERR("Invalid arguments\n"); + return; + } + + data = priv; + + value = evas_object_data_get(obj, ITEMID); + if (!value) { + _ERR("Get value from btn failed\n"); + return; + } + + selval = _get_selected_value(data); + if (!selval) { + _ERR("_get_selected_value failed\n"); + return; + } + + if (!strncmp(selval, value, strlen(selval))) { + elm_object_signal_emit(obj, CTXPOPUPBTN_ICON_FOCUSED, + CTXPOPUPBTN_ICON_SOURCE); + } + + elm_object_signal_emit(obj, CTXPOPUPBTN_BUTTON_FOCUSED, + CTXPOPUPBTN_BUTTON_SOURCE); + + provider_release_list_value(selval); +} + +/** +* Evas_Smart_Cb type callback for handling focus out event. +* +* @param[in]: priv : the user data. +* @param[in]: obj : the corresponding object which the focus out event occurred. +* @param[in]: ev : event info. +* +* @return: void. +*/ +static void _subitem_focusout_cb(void *priv, Evas_Object *obj, void *ev) +{ + struct _sysclk_data *data; + char *value; + char *selval; + + if (!obj || !priv) { + _ERR("Invalid arguments\n"); + return; + } + + data = priv; + + value = evas_object_data_get(obj, ITEMID); + if (!value) { + _ERR("Get value from btn failed\n"); + return; + } + + selval = _get_selected_value(data); + if (!selval) { + _ERR("_get_selected_value failed\n"); + return; + } + + if (!strncmp(selval, value, strlen(selval))) + elm_object_signal_emit(obj, CTXPOPUPBTN_BUTTON_HIGHLIGHT, + CTXPOPUPBTN_BUTTON_SOURCE); + else + elm_object_signal_emit(obj, CTXPOPUPBTN_BUTTON_UNFOCUSED, + CTXPOPUPBTN_BUTTON_SOURCE); + + provider_release_list_value(selval); +} + +/** +* Evas_Smart_Cb type callback for handling click event. +* +* @param[in]: priv : the user data. +* @param[in]: obj : the corresponding object which the click event occurred. +* @param[in]: ev : event info. +* +* @return: void. +*/ +static void _subitem_clicked_cb(void *priv, Evas_Object *obj, void *ev) +{ + struct _sysclk_data *data; + struct settingitem *item; + Eina_List *list; + char *value; + const char *id; + const char *name; + + if (!priv || !obj) + return; + + data = priv; + + _set_selected_value(data, obj); + + value = evas_object_data_get(obj, ITEMID); + if (!value) { + _ERR("get value from obj failed. DATA_ID: %s", ITEMID); + return; + } + + if (!strncmp(value, MANUAL, BUF_SIZE)) { + _hide(data->base); + + list = viewdata_get_childitems_list(data->vdata); + if (!list) { + _ERR("list of clock is null."); + return; + } + + item = eina_list_nth(list, CLOCK_ITEM); + if (!item) { + _ERR("there is no clock_mode item in list."); + return; + } + + id = settingitem_get_id(item); + if (!id) { + _ERR("get item id failed."); + return; + } + + name = settingitem_get_display_name(item); + if (!name) { + _ERR("get display_name failed."); + return; + } + + data->ugd.display_name = name; + + settingmgr_view_push(data->mgr, id, (void *)&data->ugd); + } else { + _exit_view(data); + } +} + +/** +* Evas_Object_Event_Cb type callback for handling key press event. +* +* @param[in]: priv : the user data. +* @param[in]: e : the evas canvas. +* @param[in]: obj : the corresponding object which the key press event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _subitem_keypress_cb(void *priv, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _sysclk_data *data; + + if (!priv || !ei) + return; + + data = priv; + ev = ei; + + if (!ev->keyname) + return; + if (!strncmp(ev->keyname, KEY_BACK, BUF_SIZE)) + _exit_view(data); +} /** * Create system clock sublist items. @@ -174,28 +357,28 @@ static void _set_selected_value(SSystemClockView *data, Evas_Object *obj) * * @return: 0 - Success, -1 - Fail. */ -bool CSystemClockView::m_AddSysclkSublistItem(Eina_List *list, const char *selval) +static int _add_sysclk_sublist_item(struct _sysclk_data *data, + Eina_List *list, const char *selval) { Evas_Object *box, *cp, *btn, *del_btn; Eina_Array *array; Eina_Array_Iterator aiter; struct listitem *li; - void* obj; Eina_List *iter; const char *disp, *value; - unsigned int idx, i, j; + int idx, i, j; - if (!list || !m->ctxpopup || !selval) { + if (!data || !list || !data->ctxpopup || !selval) { _ERR("invalid arguments."); - return false; + return -1; } - cp = m->ctxpopup; + cp = data->ctxpopup; box = utils_add_box(cp); if (!box) { _ERR("utils add box to ctxpopup failed."); - return false; + return -1; } elm_object_content_set(cp, box); @@ -204,12 +387,11 @@ bool CSystemClockView::m_AddSysclkSublistItem(Eina_List *list, const char *selva if (!array) { _ERR("eina array new failed."); evas_object_del(box); - return false; + return -1; } i = idx = 0; - EINA_LIST_FOREACH(list, iter, obj) { - li = (struct listitem *) obj; + EINA_LIST_FOREACH(list, iter, li) { disp = listitem_get_display_name(li); if (!disp) { _ERR("display name of list item is null."); @@ -236,7 +418,15 @@ bool CSystemClockView::m_AddSysclkSublistItem(Eina_List *list, const char *selva } evas_object_data_set(btn, ITEMID, value); - Connect(btn, ID_BTNS, TYPE_FOCUSED | TYPE_UNFOCUSED | TYPE_CLICKED | TYPE_KEY_DOWN); + + evas_object_smart_callback_add(btn, SIG_FOCUSED, + _subitem_focusin_cb, data); + evas_object_smart_callback_add(btn, SIG_UNFOCUSED, + _subitem_focusout_cb, data); + evas_object_smart_callback_add(btn, SIG_CLICKED, + _subitem_clicked_cb, data); + evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, + _subitem_keypress_cb, data); elm_box_pack_end(box, btn); eina_array_push(array, btn); @@ -247,15 +437,14 @@ bool CSystemClockView::m_AddSysclkSublistItem(Eina_List *list, const char *selva i++; } - m->box = box; - m->array = array; - m->sel_idx = idx; + data->box = box; + data->array = array; + data->sel_idx = idx; - return true; + return 0; error: - EINA_ARRAY_ITER_NEXT(array, j, obj, aiter) { - del_btn = (Evas_Object *) obj; + EINA_ARRAY_ITER_NEXT(array, j, del_btn, aiter) { if (del_btn) evas_object_del(del_btn); } @@ -263,7 +452,7 @@ error: evas_object_del(box); eina_array_free(array); - return false; + return -1; } /** @@ -273,38 +462,38 @@ error: * * @return: 0 - Success, -1 - Fail. */ -bool CSystemClockView::m_DrawSysclkSublist(void) +static int _draw_sysclk_sublist(struct _sysclk_data *data) { Evas_Object *ctxpopup; char *selval; struct settingview_data *vdata; struct obj_geometry_data *ogd; Eina_List *itlist; - int xpos, ypos, height, count; + int xpos, ypos, height, count, r; double ratio; - if (!m->ctxpopup || !m->ogd || !m->vdata) { + if (!data || !data->ctxpopup || !data->ogd || !data->vdata) { _ERR("Invalid argument\n"); - return false; + return -1; } - ctxpopup = m->ctxpopup; - vdata = m->vdata; - ogd = m->ogd; + ctxpopup = data->ctxpopup; + vdata = data->vdata; + ogd = data->ogd; count = 0; itlist = _get_item_list(vdata, &count); if (!itlist) { _ERR("Get item list failed"); - return false; + return -1; } - m->count = count; + data->count = count; - selval = _get_selected_value(m); + selval = _get_selected_value(data); if (!selval) { _ERR("Get selected value failed"); - return false; + return -1; } if (count > MAX_ITEMS) { @@ -312,7 +501,8 @@ bool CSystemClockView::m_DrawSysclkSublist(void) goto error; } - if (!m_AddSysclkSublistItem(itlist, selval)) { + r = _add_sysclk_sublist_item(data, itlist, selval); + if (r != 0) { _ERR("add system clock sublist items failed."); goto error; } @@ -326,22 +516,22 @@ bool CSystemClockView::m_DrawSysclkSublist(void) xpos = ogd->x + ogd->width * ratio; ypos = ogd->y; - height = m->count * ITEM_HEIGHT; + height = data->count * ITEM_HEIGHT; if (ypos > WIN_HEIGHT) ypos = ypos - height; evas_object_move(ctxpopup, xpos * ELM_SCALE, ypos * ELM_SCALE); - utils_set_focus_directions(m->array, m->count); + utils_set_focus_directions(data->array, data->count); provider_release_list_value(selval); - return true; + return 0; error: provider_release_list_value(selval); - return false; + return -1; } /** @@ -353,34 +543,21 @@ error: * * @return: void. */ -void CSystemClockView::sm_CbCtxpopupDismissed(void *priv, Evas_Object *obj, void *ev) +static void _ctxpopup_dismissed(void *priv, Evas_Object *obj, + void *ev) { - CSystemClockView *root = (CSystemClockView*)priv; + struct _sysclk_data *data; - if (root) - root->m_OnCtxpopupDismissed(obj, ev); -} - - -void CSystemClockView::m_OnCtxpopupDismissed(Evas_Object *obj, void *ev) -{ - if (!obj) + if (!priv || !obj) return; - Hide(); - - m->mgr->ViewPop(); -} - + data = priv; -Evas_Object* CSystemClockView::Base(void) -{ - ASSERT(m); + _hide(data->base); - return m->base; + settingmgr_view_pop(data->mgr); } - /** * Create all the UI components of system clock sublist view. * @@ -391,74 +568,75 @@ Evas_Object* CSystemClockView::Base(void) * @return: the base layout of system clock view or null * if error occurred. */ -bool CSystemClockView::Create(struct settingview_data *view, void *prev) +static Evas_Object *_create(struct setting_mgr *mgr, + struct settingview_data *view, void *prev) { - ASSERT(!m); - ASSERT(view); - ASSERT(prev); - Evas_Object *base; Evas_Object *ctxpopup; Evas_Object *win; + struct _sysclk_data *data; struct evas_obj_data *ugd; struct obj_geometry_data *ogd; - CSettingMgr *mgr = CSettingMgr::GetInstance(); + if (!mgr || !view || !prev) { + _ERR("Invalid argument!\n"); + return NULL; + } - ugd = (struct evas_obj_data *) prev; - ogd = (struct obj_geometry_data *) evas_object_data_get(ugd->cur_btn, DATA_ID); + ugd = prev; + ogd = evas_object_data_get(ugd->cur_btn, DATA_ID); - win = mgr->Window(); - ASSERT(win); + win = settingmgr_get_win(mgr); + if (!win) { + _ERR("settingmgr get window failed."); + return NULL; + } - m = new SSystemClockView; - if (!m) { + data = calloc(1, sizeof(*data)); + if (!data) { _ERR("Unable to allocate memory."); - return false; + return NULL; } - m->ugd = *ugd; + data->ugd = *ugd; base = elm_layout_add(win); if (!base) { - delete m; - m = NULL; - return false; + free(data); + return NULL; } elm_layout_file_set(base, EDJ_FILE, SUBLIST_VIEW_PAGE); - ctxpopup = utils_add_ctxpopup(win, (char *) SUBLIST_CTXPOPUP_STYLE1); + ctxpopup = utils_add_ctxpopup(win, SUBLIST_CTXPOPUP_STYLE1); if (!ctxpopup) { _ERR("Fail to add ctxpopup"); evas_object_del(base); - delete m; - m = NULL; - return false; + free(data); + return NULL; } evas_object_smart_callback_add(ctxpopup, SIG_DISMISSED, - sm_CbCtxpopupDismissed, this); + _ctxpopup_dismissed, data); - m->mgr = mgr; - m->win = win; - m->base = base; - m->ctxpopup = ctxpopup; - m->vdata = view; - m->ogd = ogd; + data->mgr = mgr; + data->win = win; + data->base = base; + data->ctxpopup = ctxpopup; + data->vdata = view; + data->ogd = ogd; - evas_object_data_set(base, DATA_ID, m); + evas_object_data_set(base, DATA_ID, data); - if (!m_DrawSysclkSublist()) { + if (_draw_sysclk_sublist(data) == -1) { _ERR("Error in drawing items function\n"); evas_object_del(base); evas_object_del(ctxpopup); - delete m; - m = NULL; - return false; + free(data); + return NULL; } - return true; + return base; } /** @@ -468,12 +646,23 @@ bool CSystemClockView::Create(struct settingview_data *view, void *prev) * * @return: void. */ -void CSystemClockView::Show(void) +static void _show(Evas_Object *base) { - ASSERT(m); + struct _sysclk_data *data; + + if (!base) { + _ERR("Invalid argument\n"); + return; + } - evas_object_show(m->ctxpopup); - evas_object_show(m->base); + data = evas_object_data_get(base, DATA_ID); + if (!data) { + _ERR("Get sublist data failed\n"); + return; + } + + evas_object_show(data->ctxpopup); + evas_object_show(base); } /** @@ -483,23 +672,33 @@ void CSystemClockView::Show(void) * * @return: void. */ -void CSystemClockView::Destroy(void) +static void _destroy(Evas_Object *base) { - ASSERT(m); + struct _sysclk_data *data; + + if (!base) + return; + + data = evas_object_data_get(base, DATA_ID); + if (!data) { + _ERR("Invalid arguments"); + evas_object_del(data->ctxpopup); + evas_object_del(base); + return; + } - if (m->array) { - eina_array_free(m->array); - m->array = NULL; + if (data->array) { + eina_array_free(data->array); + data->array = NULL; } - evas_object_del(m->ctxpopup); - evas_object_del(m->base); + evas_object_del(data->ctxpopup); + evas_object_del(base); - if (m->vdata) - viewdata_release(m->vdata); + if (data->vdata) + viewdata_release(data->vdata); - delete m; - m = NULL; + free(data); } /** @@ -509,12 +708,21 @@ void CSystemClockView::Destroy(void) * * @return: void. */ -void CSystemClockView::Hide(void) +static void _hide(Evas_Object *base) { - ASSERT(m); + struct _sysclk_data *data; + + if (!base) + return; - evas_object_hide(m->base); - evas_object_hide(m->ctxpopup); + data = evas_object_data_get(base, DATA_ID); + if (!data) { + _ERR("Invalid arguments"); + return; + } + + evas_object_hide(base); + evas_object_hide(data->ctxpopup); } /** @@ -524,149 +732,45 @@ void CSystemClockView::Hide(void) * * @return: void. */ -void CSystemClockView::Refresh(void) -{ - ASSERT(m); - - m_ExitView(); -} - - -void CSystemClockView::OnFocused(int id, Evas_Object *obj, Elm_Object_Item *item) -{ - char *value; - char *selval; - - if (!obj) { - _ERR("Invalid arguments\n"); - return; - } - - value = (char *)evas_object_data_get(obj, ITEMID); - if (!value) { - _ERR("Get value from btn failed\n"); - return; - } - - selval = _get_selected_value(m); - if (!selval) { - _ERR("_get_selected_value failed\n"); - return; - } - - if (!strncmp(selval, value, strlen(selval))) { - elm_object_signal_emit(obj, CTXPOPUPBTN_ICON_FOCUSED, - CTXPOPUPBTN_ICON_SOURCE); - } - - elm_object_signal_emit(obj, CTXPOPUPBTN_BUTTON_FOCUSED, - CTXPOPUPBTN_BUTTON_SOURCE); - - provider_release_list_value(selval); -} - - -void CSystemClockView::OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item) +static void _refresh(Evas_Object *base) { - char *value; - char *selval; - - if (!obj) { - _ERR("Invalid arguments\n"); - return; - } + struct _sysclk_data *data; - value = (char *)evas_object_data_get(obj, ITEMID); - if (!value) { - _ERR("Get value from btn failed\n"); - return; - } - - selval = _get_selected_value(m); - if (!selval) { - _ERR("_get_selected_value failed\n"); + if (!base) { + _ERR("the base of system clock is null."); return; } - if (!strncmp(selval, value, strlen(selval))) - elm_object_signal_emit(obj, CTXPOPUPBTN_BUTTON_HIGHLIGHT, - CTXPOPUPBTN_BUTTON_SOURCE); - else - elm_object_signal_emit(obj, CTXPOPUPBTN_BUTTON_UNFOCUSED, - CTXPOPUPBTN_BUTTON_SOURCE); - - provider_release_list_value(selval); -} - - -void CSystemClockView::OnMouseClicked(int oid, Evas_Object *obj) -{ - if (oid != ID_BTNS) - return; - - struct settingitem *item; - Eina_List *list; - char *value; - const char *id; - const char *name; - - if (!obj) - return; - - _set_selected_value(m, obj); - - value = (char *)evas_object_data_get(obj, ITEMID); - if (!value) { - _ERR("get value from obj failed. DATA_ID: %s", ITEMID); + data = evas_object_data_get(base, DATA_ID); + if (!data) { + _ERR("data get failed. DATA_ID: %s", DATA_ID); return; } - if (!strncmp(value, MANUAL, BUF_SIZE)) { - Hide(); - - list = viewdata_get_childitems_list(m->vdata); - if (!list) { - _ERR("list of clock is null."); - return; - } - - item = (struct settingitem *) eina_list_nth(list, CLOCK_ITEM); - if (!item) { - _ERR("there is no clock_mode item in list."); - return; - } - - id = settingitem_get_id(item); - if (!id) { - _ERR("get item id failed."); - return; - } - - name = settingitem_get_display_name(item); - if (!name) { - _ERR("get display_name failed."); - return; - } - - m->ugd.display_name = name; - - m->mgr->ViewPush(id, (void *)&m->ugd); - } - else { - m_ExitView(); - } + _exit_view(data); } +/** +* view class of system clock view. +*/ +static struct setting_class _vclass = { + .title = VCLASS_TITLE_SYSTEM_CLOCK, + .create = _create, + .show = _show, + .destroy = _destroy, + .hide = _hide, + .refresh = _refresh, + .hide_view = 0 +}; -void CSystemClockView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) +/** +* Return view class of system clock view. +* +* @param: void. +* +* @return: the view class of system clock view. +*/ +struct setting_class *view_system_clock_get_vclass(void) { - if (id != ID_BTNS) - return; - - if (!ev->keyname) - return; - - if (!strncmp(ev->keyname, KEY_BACK, BUF_SIZE) || !strncmp(ev->keyname, KEY_BACK_REMOTE, BUF_SIZE)) - m_ExitView(); + return &_vclass; } - diff --git a/src/view_uigadget.c b/src/view_uigadget.c new file mode 100644 index 0000000..7a722a8 --- /dev/null +++ b/src/view_uigadget.c @@ -0,0 +1,352 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include "view_uigadget.h" +#include "dbg.h" +#include "def.h" + +#define DATA_ID "ugdata" + +struct _data { + Evas_Object *win; + Evas_Object *base; + Evas_Object *subbtn; + Evas_Object *main_item_box; + Evas_Object *subitem_box; + + const char *display_name; + ui_gadget_h ug_handler; + Eina_Bool ug_is_existed; + struct setting_mgr *mgr; + struct settingview_data *view; +}; + +/** +* This function is invoked to hide view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _hide(Evas_Object *base) +{ + if (!base) + return; + + evas_object_hide(base); +} + +/** +* Hide current ug launcher view, then pop this view from view list and return to main view. +* +* @param data [in] The function specific data which hold _data pointer. +* @return void. +*/ +static void _back_to_mainview(struct _data *data) +{ + if (!data) + return; + + _hide(data->base); + settingmgr_view_pop(data->mgr); +} + +/** +* This callback function is invoked with base layout for layout arrangement +* after UI Gadget create create operation is completed. +* +* @param ug [in] The handler data representing a UI gadget. +* @param mode [in] The UI gadget mode. +* @param priv [in] The function specific data passed by UG caller. +* @return void. +*/ +static void _ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) +{ +} + +/** +* After UG module invoke ug_send_message to send result, +* UG library call this callback function registered by calling ug_create. +* +* @param ug [in] The handler data representing a UI gadget. +* @param result [in] The Service handler. +* @param priv [in] The function specific data passed by UG caller. +* @return void. +*/ +static void _ug_result_cb(ui_gadget_h ug, service_h result, void *priv) +{ +} + +/** +* This function is invoked to show sub item buttons evas object. +* +* @param box [in] The box evas object contained sub item buttons. +* @return void. +*/ +static void _show_item_btns(Evas_Object *box) +{ + Eina_List *list, *l; + Evas_Object *btn; + + if (!box) + return; + + list = elm_box_children_get(box); + if (!list) { + _ERR("button list is null."); + return; + } + + EINA_LIST_FOREACH(list, l, btn) + evas_object_show(btn); + + eina_list_free(list); +} + +/** +* Send the destroy request, use ug_destroy_me, +* then UG library calls this callback function registered by UG caller. +* +* @param ug [in] The handler data representing a UI gadget. +* @param priv [in] The function specific data passed by UG caller. +* @return void. +*/ +static void _ug_destroy_cb(ui_gadget_h ug, void *priv) +{ + struct _data *data; + + if (!ug || !priv) { + _ERR("Invalid parameters in ug destroy callback."); + return; + } + + data = priv; + + _show_item_btns(data->subitem_box); + + elm_object_focus_set(data->subbtn, EINA_TRUE); + elm_object_part_text_set(data->base, UG_TITLE_TEXT, ""); + + ug_destroy(ug); + data->ug_is_existed = EINA_FALSE; + _back_to_mainview(data); +} + +/** +* This function is invoked to create UI Gadget with specific UG name. +* +* @param data [in] The function specific data which hold _data pointer. +* @return 0 if success, -1 if fail. +*/ +static int _load_uigadget(struct _data *data) +{ + ui_gadget_h ug; + const char *name; + struct settingitem *parent; + + struct ug_cbs cbs = { + .layout_cb = _ug_layout_cb, + .result_cb = _ug_result_cb, + .destroy_cb = _ug_destroy_cb, + .end_cb = NULL + }; + + if (!data) { + _ERR("private data is null."); + return -1; + } + + cbs.priv = data; + + parent = viewdata_get_parentitem(data->view); + name = settingitem_get_settingui_name(parent); + elm_object_part_text_set(data->base, + UG_TITLE_TEXT, data->display_name); + + ug = ug_create(NULL, name, UG_MODE_FRAMEVIEW, NULL, &cbs); + if (!ug) { + _ERR("ug create failed."); + return -1; + } else { + data->ug_is_existed = EINA_TRUE; + data->ug_handler = ug; + settingmgr_freeze_timeout(data->mgr); + } + + return 0; +} + +/** +* This function is invoked to hide sub item buttons evas object. +* +* @param box [in] The box evas object contained sub item buttons. +* @return void. +*/ +static void _hide_item_btns(Evas_Object *box) +{ + Eina_List *list, *l; + Evas_Object *btn; + + if (!box) { + _ERR("item box is null."); + return; + } + + list = elm_box_children_get(box); + if (!list) { + _ERR("button list is null."); + return; + } + + EINA_LIST_FOREACH(list, l, btn) + evas_object_hide(btn); + + eina_list_free(list); +} + +/** +* This function is invoked to create UG launcher view layout. +* +* @param mgr [in] The setting_mgr data pointer passed by @settingmgr_view_push. +* @param view [in] The settingview_data data pointer passed by @settingmgr_view_push. +* @param prev [in] The parameter data which passed by prev view or NULL. +* @return View layout evas object, NULL on error. +*/ +static Evas_Object *_create(struct setting_mgr *mgr, + struct settingview_data *view, void *prev) +{ + Evas_Object *win, *base; + struct _data *data; + struct evas_obj_data *param; + int r; + + if (!mgr || !prev || !view) { + _ERR("mgr is null."); + return NULL; + } + + param = prev; + + _hide_item_btns(param->subitem_box); + + win = settingmgr_get_win(mgr); + if (!win) { + _ERR("Invalid argument"); + return NULL; + } + + data = calloc(1, sizeof(struct _data)); + if (!data) { + _ERR("calloc struct _data failed."); + return NULL; + } + + base = elm_layout_add(win); + if (!base) { + _ERR("add base layout failed."); + free(data); + return NULL; + } + + elm_layout_file_set(base, EDJ_FILE, UG_GROUP); + + data->win = win; + data->base = base; + data->mgr = mgr; + data->view = view; + data->subitem_box = param->subitem_box; + data->display_name = param->display_name; + data->subbtn = param->cur_btn; + data->ug_is_existed = EINA_FALSE; + + evas_object_data_set(base, DATA_ID, data); + + r = _load_uigadget(data); + if (r == -1) { + _ERR("load ui gadget failed."); + free(data); + evas_object_del(base); + return NULL; + } + + return base; +} + +/** +* This function is invoked to show view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _show(Evas_Object *base) +{ + if (!base) { + _ERR("Invalid argument!"); + return; + } + + evas_object_show(base); +} + +/** +* This function is invoked to destroy view layout. +* +* @param base [in] The view layout evas object. +* @return void. +*/ +static void _destroy(Evas_Object *base) +{ + struct _data *data; + + if (!base) { + _ERR("Invalid argument!"); + return; + } + + data = evas_object_data_get(base, DATA_ID); + if (!data) { + _ERR("Fail to get uglauncher data"); + return; + } + + if (data->ug_is_existed == EINA_TRUE) + ug_destroy(data->ug_handler); + + if (data->view) + viewdata_release(data->view); + + evas_object_del(base); + free(data); +} + +static struct setting_class _vclass = { + .title = VCLASS_TITLE_UG, + .create = _create, + .show = _show, + .destroy = _destroy, + .hide = _hide, + .hide_view = 0 +}; + +/** +* This function is invoked to get UI Gadget launcher view class object. +* +* @return The setting_class data static pointer, NULL on error. +*/ +struct setting_class *view_uigadget_get_vclass(void) +{ + return &_vclass; +} diff --git a/src/view_uigadget.cpp b/src/view_uigadget.cpp deleted file mode 100644 index c0ccdb1..0000000 --- a/src/view_uigadget.cpp +++ /dev/null @@ -1,346 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include "view_uigadget.h" -#include -#include "common_defs.h" -#include "settingviewmgr.h" - - -/** - * This callback function is invoked with base layout for layout arrangement - * after UI Gadget create create operation is completed. - * - * @param ug [in] The handler data representing a UI gadget. - * @param mode [in] The UI gadget mode. - * @param priv [in] The function specific data passed by UG caller. - * @return void. - */ -void CUiGadget::sm_CbLayout(ui_gadget_h ug, enum ug_mode mode, void *priv) -{ - CUiGadget *root = (CUiGadget*)priv; - if (root) - root->t_OnLayout(ug, mode); -} - - -/** - * After UG module invoke ug_send_message to send result, - * UG library call this callback function registered by calling ug_create. - * - * @param ug [in] The handler data representing a UI gadget. - * @param result [in] The Service handler. - * @param priv [in] The function specific data passed by UG caller. - * @return void. - */ -void CUiGadget::sm_CbResult(ui_gadget_h ug, service_h result, void *priv) -{ - CUiGadget *root = (CUiGadget*)priv; - if (root) - root->t_OnResult(ug, result); -} - - - -/** - * Send the destroy request, use ug_destroy_me, - * then UG library calls this callback function registered by UG caller. - * - * @param ug [in] The handler data representing a UI gadget. - * @param priv [in] The function specific data passed by UG caller. - * @return void. - */ -void CUiGadget::sm_CbDestroy(ui_gadget_h ug, void *priv) -{ - CUiGadget *root = (CUiGadget*)priv; - if (root) - root->t_OnDestroy(ug); -} - - -void CUiGadget::sm_CbEnd(ui_gadget_h ug, void *priv) -{ - CUiGadget *root = (CUiGadget*)priv; - if (root) - root->t_OnEnd(ug); -} - - -bool CUiGadget::Create(ui_gadget_h parent, const char *name, ug_mode mode, service_h service) -{ - ASSERT(!m_handler); - - struct ug_cbs cbs = { - sm_CbLayout, - sm_CbResult, - sm_CbDestroy, - sm_CbEnd - }; - cbs.priv = this; - - m_handler = ug_create(NULL, name, UG_MODE_FRAMEVIEW, NULL, &cbs); - - return m_handler ? true : false; -} - - -void CUiGadget::Destroy(void) -{ - if (!m_handler) - return; - - ug_destroy(m_handler); - m_handler = NULL; -} - - -struct SUiGadgetView { - Evas_Object *win; - Evas_Object *base; - Evas_Object *subbtn; - Evas_Object *main_item_box; - Evas_Object *subitem_box; - - const char *display_name; - CSettingMgr *mgr; - struct settingview_data *view; -}; - -/** -* This function is invoked to hide view layout. -* -* @param base [in] The view layout evas object. -* @return void. -*/ -void CUiGadgetView::Hide(void) -{ - ASSERT(m); - - evas_object_hide(m->base); -} - -/** -* Hide current ug launcher view, then pop this view from view list and return to main view. -* -* @param data [in] The function specific data which hold _data pointer. -* @return void. -*/ -void CUiGadgetView::m_BackToMainview(void) -{ - Hide(); - - m->mgr->ViewPop(); -} - - -/** -* This function is invoked to show sub item buttons evas object. -* -* @param box [in] The box evas object contained sub item buttons. -* @return void. -*/ -static void _show_item_btns(Evas_Object *box) -{ - Eina_List *list, *l; - Evas_Object *btn; - void* obj; - - if (!box) - return; - - list = elm_box_children_get(box); - if (!list) { - _ERR("button list is null."); - return; - } - - EINA_LIST_FOREACH(list, l, obj) - { - btn = (Evas_Object *) obj; - evas_object_show(btn); - } - - eina_list_free(list); -} - - -void CUiGadgetView::t_OnDestroy(ui_gadget_h ug) -{ - if (!ug) { - _ERR("Invalid parameters in ug destroy callback."); - return; - } - - _show_item_btns(m->subitem_box); - - elm_object_focus_set(m->subbtn, EINA_TRUE); - elm_object_part_text_set(m->base, UG_TITLE_TEXT, ""); - - CUiGadget::Destroy(); - - m_BackToMainview(); -} - -/** -* This function is invoked to create UI Gadget with specific UG name. -* -* @param data [in] The function specific data which hold _data pointer. -* @return 0 if success, -1 if fail. -*/ -bool CUiGadgetView::m_Load(void) -{ - const char *name; - struct settingitem *parent; - - parent = viewdata_get_parentitem(m->view); - name = settingitem_get_settingui_name(parent); - elm_object_part_text_set(m->base, UG_TITLE_TEXT, m->display_name); - - if (!CUiGadget::Create(NULL, name, UG_MODE_FRAMEVIEW, NULL)) { - return false; - } - - m->mgr->FreezeTimeout(); - - return true; -} - - -/** -* This function is invoked to hide sub item buttons evas object. -* -* @param box [in] The box evas object contained sub item buttons. -* @return void. -*/ -static void _hide_item_btns(Evas_Object *box) -{ - Eina_List *list, *l; - Evas_Object *btn; - void* obj; - - if (!box) { - _ERR("item box is null."); - return; - } - - list = elm_box_children_get(box); - if (!list) { - _ERR("button list is null."); - return; - } - - EINA_LIST_FOREACH(list, l, obj) - { - btn = (Evas_Object *) obj; - evas_object_hide(btn); - } - - eina_list_free(list); -} - - -Evas_Object *CUiGadgetView::Base(void) -{ - ASSERT(m); - - return m->base; -} - - -/** -* This function is invoked to create UG launcher view layout. -* -* @param mgr [in] The setting_mgr data pointer passed by @settingmgr_view_push. -* @param view [in] The settingview_data data pointer passed by @settingmgr_view_push. -* @param prev [in] The parameter data which passed by prev view or NULL. -* @return View layout evas object, NULL on error. -*/ -bool CUiGadgetView::Create(struct settingview_data *view, void *prev) -{ - ASSERT(!m); - ASSERT(view); - ASSERT(prev); - - Evas_Object *win, *base; - struct evas_obj_data *param; - - CSettingMgr *mgr = CSettingMgr::GetInstance(); - - param = (struct evas_obj_data *) prev; - _hide_item_btns(param->subitem_box); - - win = mgr->Window(); - ASSERT(win); - - m = new SUiGadgetView; - if (!m) { - _ERR("calloc SUiGadgetView failed."); - return false; - } - - base = elm_layout_add(win); - if (!base) { - _ERR("add base layout failed."); - delete m; - m = NULL; - return false; - } - - elm_layout_file_set(base, EDJ_FILE, UG_GROUP); - - m->win = win; - m->base = base; - m->mgr = mgr; - m->view = view; - m->subitem_box = param->subitem_box; - m->display_name = param->display_name; - m->subbtn = param->cur_btn; - - if (!m_Load()) { - _ERR("load ui gadget failed."); - evas_object_del(base); - delete m; - m = NULL; - - return false; - } - - return true; -} - - -void CUiGadgetView::Show(void) -{ - ASSERT(m); - - evas_object_show(m->base); -} - - -void CUiGadgetView::Destroy(void) -{ - ASSERT(m); - - CUiGadget::Destroy(); - - if (m->view) - viewdata_release(m->view); - - evas_object_del(m->base); - delete m; - m = NULL; -} diff --git a/src/view_upgrade_popup.c b/src/view_upgrade_popup.c new file mode 100644 index 0000000..c98ede9 --- /dev/null +++ b/src/view_upgrade_popup.c @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "dbg.h" +#include "utils.h" +#include "view_upgrade_popup.h" + +static Evas_Object *_create(struct setting_mgr *mgr, + struct settingview_data *view, void *prev) +{ + return NULL; +} + +static void _show(Evas_Object *base) +{ +} + +static void _destroy(Evas_Object *base) +{ +} + +static void _hide(Evas_Object *base) +{ +} + +static struct setting_class _vclass = { + .title = VCLASS_TITLE_UPGRADE, + .create = _create, + .show = _show, + .destroy = _destroy, + .hide = _hide +}; + +struct setting_class *view_upgrade_popup_get_vclass(void) +{ + return &_vclass; +} diff --git a/src/settingviewmgr.cpp b/src/viewmgr.c similarity index 52% rename from src/settingviewmgr.cpp rename to src/viewmgr.c index c42637a..4bd4f6e 100644 --- a/src/settingviewmgr.cpp +++ b/src/viewmgr.c @@ -14,22 +14,28 @@ * limitations under the License. */ -#include -#include "settingviewmgr.h" +#include +#include +#include "viewmgr.h" #include "data_wrapper.h" +#include "dbg.h" #include "timeout_handler.h" #include "view_maincatalog.h" #include "view_uigadget.h" #include "view_sublist.h" +#include "view_bottomsublist.h" +#include "view_bottomslider.h" #include "view_pwd_popup.h" +#include "view_device_manager.h" +#include "view_resetpopup.h" +#include "view_upgrade_popup.h" #include "view_system_clock.h" #include "view_need_pwd.h" -//#include "settingviewmgr.h" #define MAINCATALOG "maincatalog" #define PATH_FACTOR 3 -struct SSettingMgr { +struct setting_mgr { Evas_Object *win; int depth; @@ -38,43 +44,22 @@ struct SSettingMgr { Eina_List *view_list; struct settingmgr_data *data; Eina_Array *item_path; - CTimeoutHandler *handler; + struct timeout_handler *handler; Eina_Bool is_freeze; }; struct _settinginfo { Evas_Object *base; - CSettingBaseView *sclass; + struct setting_class *sclass; struct settingview_data *sview; }; struct settingui_func_map { const char *style; - CSettingBaseView *view; - //struct setting_class* (*get_vclass)(void); + struct setting_class* (*get_vclass)(void); }; - -CSettingBaseView::CSettingBaseView(const char *pViewId) -{ - m_title = new char[strlen(pViewId) + 1]; - strcpy(m_title, pViewId); -} - - -CSettingBaseView::~CSettingBaseView() -{ - delete[] m_title; -} - - -Evas_Object *CSettingBaseView::Base(void) -{ - return NULL; -} - - -static struct settingui_func_map g_func_map[5];/* = { +static struct settingui_func_map g_func_map[] = { { .style = STYLE_UIGADGET, .get_vclass = view_uigadget_get_vclass @@ -84,28 +69,52 @@ static struct settingui_func_map g_func_map[5];/* = { .get_vclass = view_sublist_get_vclass }, { + .style = STYLE_BOTTOM_CTXPOPUP, + .get_vclass = view_bottomsublist_get_vclass + }, + { + .style = STYLE_BOTTOMSLIDER, + .get_vclass = view_bottomslider_get_vclass + }, + { + .style = STYLE_BOTTOM2WAYSLIDER, + .get_vclass = view_bottomslider_get_vclass + }, + { .style = STYLE_PASSCODE_POPUP, .get_vclass = view_passcode_popup_get_vclass }, { + .style = STYLE_DEVICE_MANAGER, + .get_vclass = view_device_manager_get_vclass + }, + { + .style = STYLE_RESET_POPUP, + .get_vclass = view_resetpopup_get_vclass + }, + { + .style = STYLE_UPGRADE_POPUP, + .get_vclass = view_upgrade_popup_get_vclass + }, + { .style = STYLE_CLOCK_CTXPOPUP, .get_vclass = view_system_clock_get_vclass }, { .style = STYLE_NEED_PASSCODE, .get_vclass = view_need_passcode_get_vclass - }*/ -//}; + } +}; /** * This function is invoked to build setting view data. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @param name[in] The item name to be created view. * @return The settingview_data data pointer, NULL on error. */ static struct settingview_data *_build_setting_view( - struct SSettingMgr *mgr, const char *name) + struct setting_mgr *mgr, const char *name) { struct settingview_data *data; int r; @@ -130,19 +139,17 @@ static struct settingview_data *_build_setting_view( return data; } - -CMainCatalogView *g_maincatalog; /** * This function is invoked to get setting_class data pointer, this data stand for a kind of view. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @param view[in] The settingview_data data pointer. * @return The setting_class data pointer, NULL on error. */ -static CSettingBaseView *_get_view_class(SSettingMgr *mgr, +static struct setting_class *_get_view_class(struct setting_mgr *mgr, struct settingview_data *view) { - CSettingBaseView *vclass; + struct setting_class *vclass; struct settingitem *parent; Eina_List *list; const char *style; @@ -164,16 +171,14 @@ static CSettingBaseView *_get_view_class(SSettingMgr *mgr, vclass = NULL; if (list && !style) { - if (mgr->depth == 1){ - g_maincatalog = new CMainCatalogView(VCLASS_TITLE_MAIN_VIEW); - vclass = (CSettingBaseView *) g_maincatalog;// view_maincatalog_get_vclass(); - } + if (mgr->depth == 1) + vclass = view_maincatalog_get_vclass(); } else { size = sizeof(g_func_map) / sizeof(*g_func_map); for (i = 0; i < size; i++) { if (!strncmp(style, g_func_map[i].style, strlen(style)) - && g_func_map[i].view) { - vclass = g_func_map[i].view;// get_vclass(); + && g_func_map[i].get_vclass) { + vclass = g_func_map[i].get_vclass(); break; } } @@ -185,290 +190,251 @@ static CSettingBaseView *_get_view_class(SSettingMgr *mgr, /** * This function is invoked to hide all views stored in view list. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return void. */ -void _hide_view_in_list(struct SSettingMgr *mgr) +void _hide_view_in_list(struct setting_mgr *mgr) { Eina_List *l; struct _settinginfo *sinfo; - void* obj; if (!mgr) { _ERR("Invalid arguments\n"); return; } - EINA_LIST_FOREACH(mgr->view_list, l, obj) { - sinfo = (struct _settinginfo *) obj; - sinfo->sclass->Hide(); - //if (sinfo->sclass->hide) - // sinfo->sclass->hide(sinfo->base); + EINA_LIST_FOREACH(mgr->view_list, l, sinfo) { + if (sinfo->sclass->hide) + sinfo->sclass->hide(sinfo->base); } } /** * This function is invoked to show all views stored in view list. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return void. */ -void _show_view_in_list(struct SSettingMgr *mgr) +void _show_view_in_list(struct setting_mgr *mgr) { Eina_List *l; struct _settinginfo *sinfo; - void* obj; if (!mgr) { _ERR("Invalid arguments\n"); return; } - EINA_LIST_FOREACH(mgr->view_list, l, obj) { - sinfo = (struct _settinginfo *) obj; - sinfo->sclass->Show(); - //if (sinfo->sclass->show) - // sinfo->sclass->show(sinfo->base); + EINA_LIST_FOREACH(mgr->view_list, l, sinfo) { + if (sinfo->sclass->show) + sinfo->sclass->show(sinfo->base); } } /** * This function is invoked to destroy all views stored in view list. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return void. */ -void _destroy_views_in_list(struct SSettingMgr *mgr) +void _destroy_views_in_list(struct setting_mgr *mgr) { Eina_List *l; struct _settinginfo *sinfo; - void* obj; if (!mgr) { _ERR("Invalid arguments\n"); return; } - EINA_LIST_FOREACH(mgr->view_list, l, obj) { - sinfo = (struct _settinginfo *) obj; - sinfo->sclass->Destroy(); - //if (sinfo->sclass->destroy) - // sinfo->sclass->destroy(sinfo->base); + EINA_LIST_FOREACH(mgr->view_list, l, sinfo) { + if (sinfo->sclass->destroy) + sinfo->sclass->destroy(sinfo->base); } } /** * This function is invoked to freeze all views's event stored in view list. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return void. */ -void _frozen_view_in_list(struct SSettingMgr *mgr) +void _frozen_view_in_list(struct setting_mgr *mgr) { Eina_List *l; struct _settinginfo *sinfo; - void* obj; if (!mgr) { _ERR("Invalid argument"); return; } - if(mgr->view_list) { - EINA_LIST_REVERSE_FOREACH(mgr->view_list, l, obj) { - sinfo = (struct _settinginfo *)obj; - sinfo->sclass->Frozen(); - //if (sinfo->sclass->frozen) - // sinfo->sclass->frozen(sinfo->base); - } + EINA_LIST_REVERSE_FOREACH(mgr->view_list, l, sinfo) { + if (sinfo->sclass->frozen) + sinfo->sclass->frozen(sinfo->base); } } /** * This function is invoked to activate all views's event stored in view list. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return void. */ -void _active_view_in_list(struct SSettingMgr *mgr) +void _active_view_in_list(struct setting_mgr *mgr) { Eina_List *l; struct _settinginfo *sinfo; - void* obj; if (!mgr) { _ERR("Invalid argument"); return; } - EINA_LIST_REVERSE_FOREACH(mgr->view_list, l, obj) { - sinfo = (struct _settinginfo *)obj; - sinfo->sclass->Active(); - //if (sinfo->sclass->active) - // sinfo->sclass->active(sinfo->base); + EINA_LIST_REVERSE_FOREACH(mgr->view_list, l, sinfo) { + if (sinfo->sclass->active) + sinfo->sclass->active(sinfo->base); } } - - -CSettingMgr *CSettingMgr::instance = NULL; - /** * This function is invoked to initialize setting manager. * * @param win [in] The window's evas object. -* @return The SSettingMgr data pointer. +* @return The setting_mgr data pointer. */ -bool CSettingMgr::Initialize(Evas_Object *win) +struct setting_mgr *settingmgr_init(Evas_Object *win) { - ASSERT(!instance); - ASSERT(win); - - //struct settingmgr_data *data; - //CTimeoutHandler *handler; - - _CREATE_BEGIN{ - _CHECK(instance = new CSettingMgr); - _CHECK(instance->m = new SSettingMgr); - _CHECK(instance->m->data = viewmgr_data_init()); - _CHECK(instance->m->handler = new CTimeoutHandler); - _CHECK(instance->m->handler->Create(TIMEOUT_SECS)); - - _CHECK_FAIL{ instance->m->handler->Destroy(); } - _CHECK_FAIL{ delete instance->m->handler; } - _CHECK_FAIL{ viewmgr_data_fini(instance->m->data); } - _CHECK_FAIL{ delete instance->m; } - _CHECK_FAIL{ delete instance; instance = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - g_func_map[0].style = STYLE_UIGADGET; - g_func_map[0].view = new CUiGadgetView(VCLASS_TITLE_UG); - - g_func_map[1].style = STYLE_CTXPOPUP; - g_func_map[1].view = new CSublistView(VCLASS_TITLE_SUBLIST); - - g_func_map[2].style = STYLE_PASSCODE_POPUP; - g_func_map[2].view = new CPasscodePopupView(VCLASS_TITLE_CHANGE_PASSCODE); - - g_func_map[3].style = STYLE_CLOCK_CTXPOPUP; - g_func_map[3].view = new CSystemClockView(VCLASS_TITLE_SYSTEM_CLOCK); - - g_func_map[4].style = STYLE_NEED_PASSCODE; - g_func_map[4].view = new CNeedPasscodeView(VCLASS_TITLE_NEED_PASSCODE); - - instance->m->win = win; - instance->m->depth = 0; - instance->m->is_freeze = EINA_FALSE; - instance->m->view_list = NULL; - instance->m->item_path = NULL; - - return true; -} + struct setting_mgr *mgr; + struct settingmgr_data *data; + struct timeout_handler *handler; + if (!win) + return NULL; + + mgr = calloc(1, sizeof(*mgr)); + if (!mgr) + return NULL; + + data = viewmgr_data_init(); + if (!data) { + _ERR("viewmgr_data_init failed!"); + free(mgr); + return NULL; + } + + handler = timeout_handler_init(TIMEOUT_SECS); + if (!handler) { + _ERR("Fail to init timeout handler"); + viewmgr_data_fini(data); + free(mgr); + return NULL; + } + + mgr->win = win; + mgr->depth = 0; + mgr->data = data; + mgr->handler = handler; + mgr->is_freeze = EINA_FALSE; + + return mgr; +} /** * This function is invoked to destroy all views stored in view list and release -* SSettingMgr data structure. +* setting_mgr data structure. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return void. */ -void CSettingMgr::Finalize(void) +void settingmgr_fini(struct setting_mgr *mgr) { - ASSERT(instance); - ASSERT(instance->m); - struct _settinginfo *sinfo; - void* obj; - - _hide_view_in_list(instance->m); - _destroy_views_in_list(instance->m); - EINA_LIST_FREE(instance->m->view_list, obj) - { - sinfo = (struct _settinginfo *)obj; - free(sinfo); + if (!mgr) { + _ERR("Parameter error!"); + return; } - if (instance->m->item_path) - eina_array_free(instance->m->item_path); + _hide_view_in_list(mgr); + _destroy_views_in_list(mgr); - viewmgr_data_fini(instance->m->data); - instance->m->handler->Destroy(); - delete instance->m->handler; + EINA_LIST_FREE(mgr->view_list, sinfo) + free(sinfo); - delete instance->m; - delete instance; - instance = NULL; -} + if (mgr->item_path) + eina_array_free(mgr->item_path); + viewmgr_data_fini(mgr->data); + timeout_handler_fini(mgr->handler); -CSettingMgr *CSettingMgr::GetInstance(void) -{ - return instance; + free(mgr); } - /** * This function is invoked to push a view with specific name and data. * * Firstly, it will build view data, then get specific view class to create view. * Otherwise, it will freeze or hide background view and store _settinginfo data into view list. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @param name [in] The item name to be pushed view. * @param data [in] The function specific data passed by caller. * @return 0 if success, -1 if fail. */ -bool CSettingMgr::ViewPush(const char *name, void *data) +int settingmgr_view_push(struct setting_mgr *mgr, + const char *name, void *data) { - ASSERT(m); - ASSERT(name); + Evas_Object *base; + struct _settinginfo *sinfo; + struct setting_class *sclass; + struct settingview_data *view; - struct _settinginfo *sinfo = NULL; - CSettingBaseView *sclass = NULL; - struct settingview_data *view = NULL; + if (!mgr || !name) + return -1; - m->depth++; + mgr->depth++; - sinfo = new _settinginfo; + sinfo = calloc(1, sizeof(*sinfo)); if (!sinfo) - return false; + return -1; - view = _build_setting_view(m, name); + view = _build_setting_view(mgr, name); if (!view) { _ERR("Build setting view data failed\n"); goto error; } - sclass = _get_view_class(m, view); + sclass = _get_view_class(mgr, view); if (!sclass) { _ERR("failed to get view class."); goto error; } - if (!sclass->Create(view, data)) { + base = sclass->create(mgr, view, data); + if (!base) { _ERR("failed to create base layout."); goto error; } - _frozen_view_in_list(m); + _frozen_view_in_list(mgr); if (sclass->hide_view) - _hide_view_in_list(m); + _hide_view_in_list(mgr); - sclass->Show(); + if (sclass->show) + sclass->show(base); - sinfo->base = sclass->Base(); + sinfo->base = base; sinfo->sclass = sclass; sinfo->sview = view; - m->view_list = eina_list_prepend(m->view_list, sinfo); + mgr->view_list = eina_list_prepend(mgr->view_list, sinfo); return 0; error: - m->depth--; + mgr->depth--; free(sinfo); viewdata_release(view); @@ -481,21 +447,24 @@ error: * Firstly, get top view's _settinginfo data from view list, then call destroy interface of * view class, finally it will refresh second view, activate and show all views behind top view. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return void. */ -void CSettingMgr::ViewPop(void) +void settingmgr_view_pop(struct setting_mgr *mgr) { - ASSERT(m); - struct _settinginfo *sinfo, *prev; - CSettingBaseView *sclass; + struct setting_class *sclass; int hide; char *item; const char *title; - m->depth--; - sinfo = (struct _settinginfo *) eina_list_data_get(m->view_list); + if (!mgr) { + _ERR("Invalid arguments\n"); + return; + } + + mgr->depth--; + sinfo = eina_list_data_get(mgr->view_list); if (!sinfo) { _DBG("get sinfo failed\n"); return; @@ -503,22 +472,23 @@ void CSettingMgr::ViewPop(void) sclass = sinfo->sclass; hide = sclass->hide_view; - title = sclass->Title(); + title = sclass->title; item = NULL; if (!strncmp(title, VCLASS_TITLE_BOTTOM_SLIDER, strlen(title))) - item = (char *)evas_object_data_del(sinfo->base, SELECTED_ITEM_ID); + item = evas_object_data_del(sinfo->base, SELECTED_ITEM_ID); - sclass->Destroy(); + if (sclass->destroy && sinfo->base) + sclass->destroy(sinfo->base); - m->view_list = eina_list_remove_list(m->view_list, m->view_list); + mgr->view_list = eina_list_remove_list(mgr->view_list, mgr->view_list); free(sinfo); - if (!m->view_list) + if (!mgr->view_list) return; - prev = (struct _settinginfo *) eina_list_data_get(m->view_list); + prev = eina_list_data_get(mgr->view_list); if (!prev || !prev->sclass) return; @@ -527,67 +497,75 @@ void CSettingMgr::ViewPop(void) if (item && !strncmp(title, VCLASS_TITLE_BOTTOM_SLIDER, strlen(title))) evas_object_data_set(prev->base, SELECTED_ITEM_ID, item); - sclass->Refresh(); - sclass->Update(); + if (sclass->refresh) + sclass->refresh(prev->base); + + if (sclass->update) + sclass->update(prev->base); - _active_view_in_list(m); + _active_view_in_list(mgr); if (hide) - _show_view_in_list(m); + _show_view_in_list(mgr); } /** * This function is invoked to get window's evas object. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return The window's evas object, NULL on error. */ -Evas_Object *CSettingMgr::Window(void) +Evas_Object *settingmgr_get_win(struct setting_mgr *mgr) { - ASSERT(m); + if (!mgr) + return NULL; - return m->win; + return mgr->win; } /** * This function is invoked to get view data with specific name. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @param name [in] The view name to be got. * @return The settingview_data data pointer, NULL on error. */ -settingview_data *CSettingMgr::GetView(const char *name) +struct settingview_data *settingmgr_get_view(struct setting_mgr *mgr, + const char *name) { - ASSERT(m); - - return _build_setting_view(m, name); + return _build_setting_view(mgr, name); } /** * This function is invoked to get setting manager data. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return The settingmgr_data data pointer, NULL on error. */ -settingmgr_data *CSettingMgr::GetData(void) +struct settingmgr_data *settingmgr_get_data(struct setting_mgr *mgr) { - ASSERT(m); + if (!mgr) { + _ERR("Parameter error!"); + return NULL; + } - return m->data; + return mgr->data; } /** * This function is invoked to get view list. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return The Eina_List data pointer, NULL on error. */ -Eina_List *CSettingMgr::GetViewList(void) +Eina_List *settingmgr_get_view_list(struct setting_mgr *mgr) { - ASSERT(m); - + if (!mgr) { + _ERR("Parameter error!"); + return NULL; + } - return m->view_list; + return mgr->view_list; } /** @@ -596,24 +574,25 @@ Eina_List *CSettingMgr::GetViewList(void) * When launch setting by command-line, this function will be invoked. In this launching * way, setting will be launched and move focus to specific item. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @param name [in] The item name. * @return 0 if success, -1 if fail. */ -bool CSettingMgr::LaunchItem(const char *name) +int settingmgr_launch_item(struct setting_mgr *mgr, + const char *name) { - ASSERT(m); - ASSERT(name); - const char *parent; struct settingitem *item; Eina_Array *path; int i, cnt; + if (!mgr || !name) + return -1; + path = eina_array_new(1); if (!path) { _ERR("new eina array failed."); - return false; + return -1; } eina_array_push(path, name); @@ -622,15 +601,15 @@ bool CSettingMgr::LaunchItem(const char *name) if (!parent) { _ERR("get parent item name failed."); eina_array_free(path); - return false; + return -1; } eina_array_push(path, parent); do { - viewmgr_data_read_jsonfile_into_hash(m->data, parent); + viewmgr_data_read_jsonfile_into_hash(mgr->data, parent); - item = viewmgr_data_get_settingitem(m->data, parent); + item = viewmgr_data_get_settingitem(mgr->data, parent); if (!item) break; @@ -638,18 +617,16 @@ bool CSettingMgr::LaunchItem(const char *name) eina_array_push(path, parent); } while (parent && strncmp(parent, MAINCATALOG, strlen(parent))); - m->item_path = path; - - - ViewPush(MAINCATALOG, NULL); + mgr->item_path = path; + settingmgr_view_push(mgr, MAINCATALOG, NULL); cnt = eina_array_count(path); for (i = cnt - PATH_FACTOR; i > 0; i--) - ViewPush((const char *) eina_array_data_get(path, i), NULL); + settingmgr_view_push(mgr, eina_array_data_get(path, i), NULL); - return true; + return 0; } /** @@ -658,164 +635,178 @@ bool CSettingMgr::LaunchItem(const char *name) * Item path is a value described all node value from root node to item * in setting tree of json files. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return The Eina_Array data pointer, NULL on error. */ -Eina_Array *CSettingMgr::GetItemPath(void) +Eina_Array *settingmgr_get_item_path(struct setting_mgr *mgr) { - ASSERT(m); + if (!mgr || !mgr->item_path) + return NULL; - return m->item_path; + return mgr->item_path; } /** * This function is invoked to refresh all view stored in view list. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return void. */ -void CSettingMgr::ViewRefresh(void) +void settingmgr_view_refresh(struct setting_mgr *mgr) { - ASSERT(m); - struct _settinginfo *info; - CSettingBaseView *vclass; + struct setting_class *vclass; - if (!m->view_list) + if (!mgr || !mgr->view_list) return; - info = (struct _settinginfo *) eina_list_data_get(m->view_list); + info = eina_list_data_get(mgr->view_list); if (!info) return; vclass = info->sclass; - vclass->Refresh(); - vclass->Update(); + if (vclass->refresh) + vclass->refresh(info->base); + + if (vclass->update) + vclass->update(info->base); } /** * This function is invoked to set refresh flag. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @param val [in] The value to be set. * @return void. */ -void CSettingMgr::SetRefreshFlag(unsigned int val) +void settingmgr_set_refresh_flag(struct setting_mgr *mgr, + unsigned int val) { - ASSERT(m); + if (!mgr) + return; - m->refresh = val; + mgr->refresh = val; } /** * This function is invoked to get refresh flag. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return The refresh flag value, -1 if fail. */ -unsigned int CSettingMgr::GetRefreshFlag(void) +unsigned int settingmgr_get_refresh_flag(struct setting_mgr *mgr) { - ASSERT(m); + if (!mgr) + return -1; - return m->refresh; + return mgr->refresh; } /** * This function is invoked to set relaunch flag. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @param val [in] The value to be set. * @return void. */ -void CSettingMgr::SetRelaunchFlag(unsigned int val) +void settingmgr_set_relaunch_flag(struct setting_mgr *mgr, + unsigned int val) { - ASSERT(m); + if (!mgr) + return; - m->relaunch = val; + mgr->relaunch = val; } /** * This function is invoked to get relaunch flag. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return The refresh flag value, -1 if fail. */ -unsigned int CSettingMgr::GetRelaunchFlag(void) +unsigned int settingmgr_get_relaunch_flag(struct setting_mgr *mgr) { - ASSERT(m); + if (!mgr) + return -1; - return m->relaunch; + return mgr->relaunch; } /** * This function wrapped timeout_handler interface to freeze timer. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return void. */ -void CSettingMgr::FreezeTimeout(void) +void settingmgr_freeze_timeout(struct setting_mgr *mgr) { - ASSERT(m); + if (!mgr) { + _ERR("Invalid argument"); + return; + } - m->is_freeze = EINA_TRUE; - m->handler->FreezeTimer(); + mgr->is_freeze = EINA_TRUE; + timeout_handler_freeze_timer(mgr->handler); } /** * This function wrapped timeout_handler interface to thaw timer. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return void. */ -void CSettingMgr::ThawTimeout(void) +void settingmgr_thaw_timeout(struct setting_mgr *mgr) { - ASSERT(m); + if (!mgr) { + _ERR("Invalid argument"); + return; + } - m->handler->ThawTimer(); - m->is_freeze = EINA_FALSE; + timeout_handler_thaw_timer(mgr->handler); + mgr->is_freeze = EINA_FALSE; } /** * This function is invoked to get timeout freeze state. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return EINA_TRUE if current state is frozen * EINA_FALSE if current state is normal or occurred error. */ -Eina_Bool CSettingMgr::GetTimeoutFreezeState(void) +Eina_Bool settingmgr_get_timeout_freeze_state(struct setting_mgr *mgr) { - ASSERT(m); + if (!mgr) { + _ERR("Invalid argument"); + return EINA_FALSE; + } - return m->is_freeze; + return mgr->is_freeze; } /** * This function is invoked to refresh all views when system language changed. * -* @param mgr [in] The SSettingMgr data pointer. +* @param mgr [in] The setting_mgr data pointer. * @return void. */ -void CSettingMgr::LangChanged(void) +void settingmgr_lang_changed(struct setting_mgr *mgr) { - ASSERT(m); - struct _settinginfo *sinfo; Eina_List *l; - void* obj; - if (!m->view_list) { + if (!mgr || !mgr->view_list) { _ERR("Invalid argument"); return; } - EINA_LIST_FOREACH(m->view_list, l, obj) { - sinfo = (struct _settinginfo *) obj; + EINA_LIST_FOREACH(mgr->view_list, l, sinfo) { if (!sinfo || !sinfo->sclass) { _ERR("settings info is NULL"); return; } - sinfo->sclass->LangChanged(); + if (sinfo->sclass->lang_changed) + sinfo->sclass->lang_changed(sinfo->base); } } diff --git a/testcase/settings.txt b/testcase/settings.txt deleted file mode 100644 index e8805fd..0000000 --- a/testcase/settings.txt +++ /dev/null @@ -1 +0,0 @@ -settings_all.txt diff --git a/testcase/settings_all.txt b/testcase/settings_all.txt deleted file mode 100644 index 62a33ea..0000000 --- a/testcase/settings_all.txt +++ /dev/null @@ -1,462 +0,0 @@ -# Sound -Key Pressed -Down 1000 -Key Released -Down 104 -Key Pressed -Right 2168 -Key Released -Right 112 -Key Pressed -Return 1096 -Key Released -Return 80 -Key Pressed -Down 664 -Key Released -Down 96 -Key Pressed -Return 848 -Key Released -Return 80 -Key Pressed -Return 1040 -Key Released -Return 80 -Key Pressed -Down 576 -Key Released -Down 104 -Key Pressed -Down 128 -Key Released -Down 112 -Key Pressed -Return 680 -Key Released -Return 80 -Key Pressed -Return 904 -Key Released -Return 88 -Key Pressed -Down 584 -Key Released -Down 104 -Key Pressed -Down 96 -Key Released -Down 112 -Key Pressed -Down 144 -Key Released -Down 96 -Key Pressed -Return 848 -Key Released -Return 72 -Key Pressed -Left 1304 -Key Released -Left 112 -# Systems -Key Pressed -Down 1000 -Key Released -Down 104 -Key Pressed -Right 616 -Key Released -Right 96 -Key Pressed -Down 255 -Key Released -Down 137 -Key Pressed -Left 416 -Key Released -Left 120 -Key Pressed -Down 456 -Key Released -Down 112 -Key Pressed -Right 336 -Key Released -Right 138 -Key Pressed -Down 334 -Key Released -Down 112 -Key Pressed -Down 280 -Key Released -Down 120 -Key Pressed -Left 392 -Key Released -Left 120 -Key Pressed -Down 336 -Key Released -Down 144 -Key Pressed -Right 360 -Key Released -Right 136 -Key Pressed -Down 1168 -Key Released -Down 120 -Key Pressed -Right 1824 -Key Released -Right 168 -Key Pressed -Down 2216 -Key Released -Down 152 -Key Pressed -Down 2568 -Key Released -Down 160 -Key Pressed -Down 392 -Key Released -Down 136 -Key Pressed -Down 760 -Key Released -Down 152 -Key Pressed -Return 4488 -Key Released -Return 112 -Key Pressed -Down 1424 -Key Released -Down 136 -Key Pressed -Return 424 -Key Released -Return 96 -Key Pressed -Escape 1720 -Key Released -Escape 96 -Key Pressed -Up 880 -Key Released -Up 96 -Key Pressed -Return 800 -Key Released -Return 72 -Key Pressed -Down 448 -Key Released -Down 96 -Key Pressed -Return 136 -Key Released -Return 88 -Key Pressed -Escape 1120 -Key Released -Escape 104 -Key Pressed -Right 1576 -Key Released -Right 136 -Key Pressed -Down 448 -Key Released -Down 136 -Key Pressed -Down 335 -Key Released -Down 153 -Key Pressed -Down 272 -Key Released -Down 152 -Key Pressed -Return 576 -Key Released -Return 72 -Key Pressed -Down 520 -Key Released -Down 96 -Key Pressed -Return 24 -Key Released -Return 64 -Key Pressed -Down 664 -Key Released -Down 80 -Key Pressed -Down 136 -Key Released -Down 144 -Key Pressed -Return 120 -Key Released -Return 104 -Key Pressed -Down 368 -Key Released -Down 104 -Key Pressed -Return 88 -Key Released -Return 112 -Key Pressed -Down 352 -Key Released -Down 88 -Key Pressed -Down 80 -Key Released -Down 96 -Key Pressed -Down 88 -Key Released -Down 152 -Key Pressed -Return 216 -Key Released -Return 104 -Key Pressed -Down 296 -Key Released -Down 112 -Key Pressed -Return 248 -Key Released -Return 120 -Key Pressed -Down 496 -Key Released -Down 104 -Key Pressed -Down 80 -Key Released -Down 112 -Key Pressed -Down 80 -Key Released -Down 152 -Key Pressed -Return 256 -Key Released -Return 104 -Key Pressed -Down 128 -Key Released -Down 104 -Key Pressed -Down 72 -Key Released -Down 96 -Key Pressed -Return 144 -Key Released -Return 104 -Key Pressed -Down 448 -Key Released -Down 104 -Key Pressed -Down 248 -Key Released -Down 104 -Key Pressed -Return 24 -Key Released -Return 112 -Key Pressed -Down 416 -Key Released -Down 112 -Key Pressed -Return 24 -Key Released -Return 96 -Key Pressed -Down 720 -Key Released -Down 112 -Key Pressed -Return 24 -Key Released -Return 96 -Key Pressed -Down 440 -Key Released -Down 72 -Key Pressed -Down 104 -Key Released -Down 88 -Key Pressed -Return 104 -Key Released -Return 112 -Key Pressed -Up 584 -Key Released -Up 88 -Key Pressed -Up 88 -Key Released -Up 104 -Key Pressed -Down 352 -Key Released -Down 96 -Key Pressed -Return 16 -Key Released -Return 80 -Key Pressed -Down 56 -Key Released -Down 104 -Key Pressed -Down 80 -Key Released -Down 96 -Key Pressed -Down 80 -Key Released -Down 88 -Key Pressed -Down 80 -Key Released -Down 96 -Key Pressed -Down 64 -Key Released -Down 104 -Key Pressed -Down 72 -Key Released -Down 128 -Key Pressed -Down 232 -Key Released -Down 96 -Key Pressed -Return 24 -Key Released -Return 72 -Key Pressed -Up 976 -Key Released -Up 112 -Key Pressed -Return 256 -Key Released -Return 120 -Key Pressed -Up 352 -Key Released -Up 128 -Key Pressed -Return 168 -Key Released -Return 112 -Key Pressed -Up 328 -Key Released -Up 88 -Key Pressed -Up 104 -Key Released -Up 72 -Key Pressed -Return 360 -Key Released -Return 104 -Key Pressed -Down 24 -Key Released -Down 88 -Key Pressed -Up 752 -Key Released -Up 104 -Key Pressed -Return 24 -Key Released -Return 72 -Key Pressed -Down 480 -Key Released -Down 104 -Key Pressed -Up 152 -Key Released -Up 88 -Key Pressed -Up 80 -Key Released -Up 112 -Key Pressed -Up 80 -Key Released -Up 104 -Key Pressed -Down 336 -Key Released -Down 104 -Key Pressed -Return 272 -Key Released -Return 112 -Key Pressed -Down 328 -Key Released -Down 120 -Key Pressed -Down 72 -Key Released -Down 80 -Key Pressed -Down 80 -Key Released -Down 104 -Key Pressed -Down 64 -Key Released -Down 80 -Key Pressed -Down 72 -Key Released -Down 104 -Key Pressed -Down 88 -Key Released -Down 120 -Key Pressed -Up 216 -Key Released -Up 96 -Key Pressed -Return 24 -Key Released -Return 64 -Key Pressed -Escape 1600 -Key Released -Escape 96 -Key Pressed -Down 72 -Key Released -Down 160 -Key Pressed -Escape 1000 -Key Released -Escape 88 diff --git a/ug/channel/CMakeLists.txt b/ug/channel/CMakeLists.txt index 66cddc8..a90911e 100644 --- a/ug/channel/CMakeLists.txt +++ b/ug/channel/CMakeLists.txt @@ -25,6 +25,7 @@ SET(AUTO_PRGM_EDJ_THEME "ug_auto_program_theme.edj") INCLUDE(FindPkgConfig) pkg_check_modules(AUTO_PRGM_UG_PKGS REQUIRED + dlog eina edje evas @@ -34,6 +35,7 @@ pkg_check_modules(AUTO_PRGM_UG_PKGS REQUIRED aul ui-gadget-1 ) + #ecore-x #tv-service #tv-player-core @@ -46,18 +48,16 @@ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=hidden -Wall") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}") SET(SRCS - src/ug_auto_program.cpp - src/util.cpp - src/ChannelMainView.cpp - src/ChannelResultView.cpp - src/ChannelSearchView.cpp - ../src/TVServiceMgr.cpp + src/ug_auto_program.c + src/util.c + src/viewmgr_auto_program.c + src/view_scan_start.c + src/view_search_page.c + src/view_result_page.c + src/tv_scan.c ) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../include) - ADD_DEFINITIONS("-DPKGNAME=\"${PROJECT_NAME}\"") ADD_DEFINITIONS("-DAUTO_PRGM_EDJ_FILE=\"${AUTO_PRGM_EDJEDIR}/${AUTO_PRGM_EDJ_FILE}\"") diff --git a/ug/channel/edje/images/btn_text_foc.png b/ug/channel/edje/images/btn_text_foc.png index 4a30fecd9d447fee770c3267769c1f84e2938c5e..c43ca3c388f629adf187ddfcef456af6f55157ee 100644 GIT binary patch literal 17864 zcmeI3cT`i^x5qDv^rli�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 Nc)I$ztaD0e0sy7jT801s diff --git a/ug/channel/edje/images/btn_text_nor.png b/ug/channel/edje/images/btn_text_nor.png index 4834090145bd9fff0a691a63919bed5dfc3da6e5..b6430162903c900f10246ee5d2e8637ed953a602 100644 GIT binary patch literal 17860 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 literal 248 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 Du!BY; diff --git a/ug/channel/edje/images/radiobtn_off_br.png b/ug/channel/edje/images/radiobtn_off_br.png index e7e58ccdb24dcce55779f8c5e64c3855df4667c9..ddebc8c55eb9c20ba5fa68d2489e934bae28754d 100644 GIT binary patch literal 18295 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 C)e-jq delta 468 zcmV;_0W1E^jRE2VkQsjj00002G$ADb000DMK}|sb0fwM4=$2mq00EgvL_t(Y$L*G{ zQUXyFhkxrBgzEANVn;9l!DNs|7K``_bcPD=0F}{X0fS*lY|+S{CqPKpKLa2OEX!VJ zoiTWBy0iCuch8)Ae&<*yIy;Jx^@m}{fnN*CE30#zN}6e)o*aKY2b{-$#i-NA&-&Df z`Fr`J%8USTsgT1)2%9VwTmVKqgoU*L=#ufhC_@*3Rv1_tm{Zyl{$kxS2ik{VO<+PQ z5G6#43D69J-2-nc5CwkNEnA{1Jl*cVojB-ALx$9 z@0Y}JDk)*?Z%dl(!iJL0jA2PhgI(BWUcy>#>A3}SBo&QeMR^}ol;z~jrX#6l^j|e? zK6KALamL0HG$tM_j^RSR2o^^Xscef#8;V%9y3U?(({xP2w>lxpi~)G3O4ieatGod) z4&Q_qnQbh)_qMq-yczT^D{$Dm(zWtReh)5=I(prI-1?s!jqMAvFK6j@&<0Nc0000< KMNUMnLSTZX9M3!e diff --git a/ug/channel/edje/images/radiobtn_on_br.png b/ug/channel/edje/images/radiobtn_on_br.png index f74c505e74639855fd063f717a6c17768efc08e4..f14d5bb17f56ec3102268cfa2e2a814c333b90c5 100644 GIT binary patch literal 18488 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 Bb&dc4 diff --git a/ug/channel/edje/images/radiobtn_on_dark.png b/ug/channel/edje/images/radiobtn_on_dark.png index 3e52579a84adea622616930173fa56b495517018..7b630ea1e022f49d44c96c03539a0e6e1535e668 100644 GIT binary patch literal 18330 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 D0{nGT delta 642 zcmV-|0)73Oj{%PbkQsjj00002G$ADb000DMK}|sb0fwM4=$2mq00KryL_t(Y$IX__ zPFg`2hF_WjnW;h-Ui_W)u=bLBF%$e^egl0GH&5(bk`#y6qWwojodaRhF zEB(@EHS|eW6IWoj3{@tL4`l4CY+{-N09@)6SRqN2C`nc*P{#$}fOHVpCM}>%k+^mL zhZJc8EjDk1l>jJ{oN)Y}B`E_?@`IItF5AAKzHQST#|=-f16|evp@dkY3vAe6DK3Gx zfl)%_flE>*tO9@RPlXaO5utCEh4u#M`YmPV8%9V%-09eM;0 z_Ds^L;k2cvhW12ThIZ-^yklN~<;IS!Ipf%JYjA;32uXi(6;@R4*p9BkmYmhmgE1u{ zM}HOZ&$O@2-+eOiNuK2jyFSMIuNM7K8R+&-(7f0((K*10m8> zZW@;zmPrsMOoC;0sN(=o3D&suEK6--OI0IlUlsCcLu1NmRWJ2O^OD;7t)?0}n%wM# c{@b4RAGqjo$@M-)TL1t607*qoM6N<$f-lf0PXGV_ diff --git a/ug/channel/edje/images/round_rectangle_4X4.png b/ug/channel/edje/images/round_rectangle_4X4.png index b0c09a8d4272f4d2dcecb6a42070778feb997dd6..5a1f51d38f87ccd9c29476b13310fb47e158e57c 100644 GIT binary patch literal 18179 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 delta 129 zcmZqfW1Pe|L9&vCfq}tm#<|%*iY49A*O7s-ZGqv7Y4Je5r>Bc!2*>re3> diff --git a/ug/channel/edje/images/second_depth_bg.png b/ug/channel/edje/images/second_depth_bg.png index 602e2724c46424c7ad67cad0fb6f46ad2a5a6b3b..5b3c6243cce9d58310769c773fdbee3cb6b9b926 100644 GIT binary patch literal 22286 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 literal 3115 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 literal 8909 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 JPDHLkV1i4U*8Bhf literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy-T^)#uK$7Hi7!tNrG!`uG-sn(o#VT(oh UhK0wCflg)cboFyt=akR{0PX~*!2kdN diff --git a/ug/channel/edje/images/wi_progress_bg.png b/ug/channel/edje/images/wi_progress_bg.png index 5adf01c00c2afe7ed4ec769bdbf0ba484e998c1d..4eb107e414a32a228b99d5c7e59a3af5d9968d98 100644 GIT binary patch literal 3537 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 LNkvXXu0mjfRk@-W delta 614 zcmV-s0-62M8}tN_8Gi%-007x@vVQ;o00d`2O+f$whM+O%mR|q>0xL;GK~zY`ot3?7 z+dvq`e>%x_YzHfL2(1grppX{QuhHq)DP%2$E`@gSUzDi?iVIx|rEBoivG&*x6Iv4+ z>Y;^D%QBXXZQZGZB1mh+U(Y6S&+qPib$TC-c;(4sB3K6oD1RJm?6`&6)SCnrCYhME z9u95BvjMx@APH&xK!0ZBv?l^SsDALyugReVCj937IzWosY{D($b?Q(|AE2trqmB>! z;RmB>K!&?y4eccTQs-J#WO?WZxHRzo1tfV$Hm}z+d(2jol4na?K8M|i01qhS^;Tws z`RZYLwxr7!fPb)7i$X%w(~H<)gL*n4C}2f^Bt8c-w|mT-sSw(&E) zs6Euqu;cTK?*a`IPEyO+FC8YD#wPdkdN;Ey01BQh`6@8sk+Hn}(q#&AaHOvSIMRWf zAPaF9cfJkbyi AO8@`> diff --git a/ug/channel/edje/widgets/progressbar.edc b/ug/channel/edje/widgets/progressbar.edc index b9c6c25..51b0c83 100644 --- a/ug/channel/edje/widgets/progressbar.edc +++ b/ug/channel/edje/widgets/progressbar.edc @@ -194,7 +194,6 @@ group { size: 18*2; min: 1 0; text_class: "tizen"; - ellipsis: -1; } fixed: 1 1; } diff --git a/ug/channel/include/ChannelMainView.h b/ug/channel/include/ChannelMainView.h deleted file mode 100644 index 2ff73b2..0000000 --- a/ug/channel/include/ChannelMainView.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef __CHANNEL_MAIN_VIEW_H__ -#define __CHANNEL_MAIN_VIEW_H__ - - -class CChannelMainView : public CBaseView, public IMouseClickedListener, public IFocusedListener, public IUnfocusedListener { -private : - struct SChannelMainView *m; - bool m_CreateBox(void); - bool m_UpdateAntennaList(void); - void m_UpdateFocus(void); - - -protected : - virtual void t_OnShow(void); - virtual void t_OnUpdate(void *data); - virtual void t_OnHide(void); - -public : - CChannelMainView(const char *szViewId) : CBaseView(szViewId), IMouseClickedListener(this), IFocusedListener(this), IUnfocusedListener(this), m(0) {} - virtual ~CChannelMainView() {} - - virtual bool Create(void *data); - virtual void Destroy(void); - virtual Evas_Object* Base(void); - - virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev); - virtual void OnMouseClicked(int id, Evas_Object *obj); - virtual void OnFocused(int id, Evas_Object *obj, Elm_Object_Item *item); - virtual void OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item); -}; - -#endif /* __CHANNEL_MAIN_VIEW_H__ */ - - diff --git a/ug/channel/include/ChannelResultView.h b/ug/channel/include/ChannelResultView.h deleted file mode 100644 index f73410d..0000000 --- a/ug/channel/include/ChannelResultView.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __CHANNEL_RESULT_VIEW_H__ -#define __CHANNEL_RESULT_VIEW_H__ - - -class CChannelResultView : public CBaseView, public IMouseClickedListener{ -private : - struct SChannelResultView *m; - -protected : - virtual void t_OnShow(void); - virtual void t_OnUpdate(void *data); - virtual void t_OnHide(void); - -public : - CChannelResultView(const char *szViewId) : CBaseView(szViewId), IMouseClickedListener(this), m(0) {} - virtual ~CChannelResultView() {} - - virtual bool Create(void *data); - virtual void Destroy(void); - virtual Evas_Object* Base(void); - - virtual void OnMouseClicked(int id, Evas_Object *obj); -}; - -#endif /* __CHANNEL_RESULT_VIEW_H__ */ diff --git a/ug/channel/include/ChannelSearchView.h b/ug/channel/include/ChannelSearchView.h deleted file mode 100644 index 9031f6b..0000000 --- a/ug/channel/include/ChannelSearchView.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef __CHANNEL_SEARCH_VIEW_H__ -#define __CHANNEL_SEARCH_VIEW_H__ - - -class CChannelSearchView : public CBaseView, public IMouseClickedListener{ -private : - struct SChannelSearchView *m; - bool m_StartScan(void); - -protected : - virtual void t_OnShow(void); - virtual void t_OnUpdate(void *data); - virtual void t_OnHide(void); - -public : - CChannelSearchView(const char *szViewId) : CBaseView(szViewId), IMouseClickedListener(this), m(0) {} - virtual ~CChannelSearchView() {} - - virtual bool Create(void *data); - virtual void Destroy(void); - virtual Evas_Object* Base(void); - - virtual void OnMouseClicked(int id, Evas_Object *obj); -}; - -#endif /* __CHANNEL_SEARCH_VIEW_H__ */ diff --git a/ug/channel/include/dbg.h b/ug/channel/include/dbg.h new file mode 100644 index 0000000..6e6cd9d --- /dev/null +++ b/ug/channel/include/dbg.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DBG_H__ + + +#include + + +#ifndef _ERR +#define _ERR(fmt, args...) LOGE("[%s:%d] "fmt"\n", __func__, __LINE__, ##args) +#endif + +#ifndef _DBG +#define _DBG(fmt, args...) LOGD("[%s:%d] "fmt"\n", __func__, __LINE__, ##args) +#endif + +#ifndef _INFO +#define _INFO(fmt, args...) LOGI("[%s:%d] "fmt"\n", __func__, __LINE__, ##args) +#endif + + +#endif /* __DBG_H__ */ diff --git a/ug/channel/include/defs.h b/ug/channel/include/defs.h index b265101..3962ad3 100644 --- a/ug/channel/include/defs.h +++ b/ug/channel/include/defs.h @@ -17,9 +17,6 @@ #ifndef __DEFS_H__ #define __DEFS_H__ -/* View */ -#define CHANNEL_MAINVIEW "CHANNEL_MAINVIEW" - #define VIEW_START "scanstart" #define VIEW_SEARCH "searchpage" #define VIEW_RESULT "resultpage" diff --git a/ug/channel/include/tv_scan.h b/ug/channel/include/tv_scan.h new file mode 100644 index 0000000..ddbf461 --- /dev/null +++ b/ug/channel/include/tv_scan.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __TV_SCAN_H__ +#define __TV_SCAN_H__ + +struct tv_scan; + +enum local_mode { + INVALID_LOCAL = -1, + KR_MODE, + US_MODE, + MAX_LOCAL +}; + +enum antenna_mode { + SCAN_TYPE_INVALID = -1, + SCAN_TYPE_ALL, + SCAN_TYPE_CABLE, + SCAN_TYPE_AIR +}; + +struct tv_scan_result { + unsigned int air_dtv; + unsigned int cable_dtv; + unsigned int air_atv; + unsigned int cable_atv; +}; + +struct tv_scan_cbs { + void (*progress_cb)(struct tv_scan *tvs, enum antenna_mode mode, + int count, int num, void *arg); + void (*found_cb)(struct tv_scan *tvs, int count, int num, + const struct tv_scan_result *result, void *arg); + void (*done_cb)(struct tv_scan *tvs, + const struct tv_scan_result *result, void *arg); + + void *data; +}; + +struct tv_scan *tv_scan_init(enum antenna_mode scan_mode); +int tv_scan_fini(struct tv_scan *tvs); +int tv_scan_set_callbacks(struct tv_scan *tvs, struct tv_scan_cbs *cbs); +int tv_scan_start(struct tv_scan *tvs); +int tv_scan_pause(struct tv_scan *tvs); +int tv_scan_resume(struct tv_scan *tvs); +int tv_scan_stop(struct tv_scan *tvs); +int tv_scan_get_total_channel(struct tv_scan *tvs); +struct tv_scan_result *tv_scan_get_result(struct tv_scan *tvs); +int tv_scan_is_stopped(struct tv_scan *tvs); + +#endif /* __TV_SCAN_H__ */ diff --git a/ug/channel/include/ug_auto_program.h b/ug/channel/include/ug_auto_program.h index 3b5ba7b..c1c4240 100644 --- a/ug/channel/include/ug_auto_program.h +++ b/ug/channel/include/ug_auto_program.h @@ -18,5 +18,15 @@ #define __UG_CHANNEL_SEARCH_VIEW_H_ #include +#include "tv_scan.h" + +struct _ugdata { + Evas_Object *win; + Evas_Object *ugd_base; + ui_gadget_h ug; + struct viewmgr *vmgr; + enum antenna_mode scan_type; + int find_chs; +}; #endif/*__UG_CHANNEL_SEARCH_VIEW_H_*/ diff --git a/ug/channel/include/util.h b/ug/channel/include/util.h index fe2bab9..6630dcf 100644 --- a/ug/channel/include/util.h +++ b/ug/channel/include/util.h @@ -17,10 +17,13 @@ #ifndef __UTIL_H__ #define __UTIL_H__ -Evas_Object *util_add_layout(Evas_Object *parent, const char *file, const char *group); -Evas_Object *util_add_scroller(Evas_Object *parent, Eina_Bool h_bounce, Eina_Bool v_bounce); +Evas_Object *util_add_layout(Evas_Object *parent, const char *file, + const char *group); +Evas_Object *util_add_scroller(Evas_Object *parent, Eina_Bool h_bounce, + Eina_Bool v_bounce); Evas_Object *util_add_box(Evas_Object *parent, double h, double v); -Evas_Object *util_add_button(Evas_Object *parent, const char *btnstyle, const char *btnpart, const char *btntext, Eina_Bool flag); +Evas_Object *util_add_button(Evas_Object *parent, const char *btnstyle, + const char *btnpart, const char *btntext, Eina_Bool flag); void util_focus_next_set(Evas_Object *obj); #endif /* __UTIL_H__ */ diff --git a/ug/channel/include/view_result_page.h b/ug/channel/include/view_result_page.h new file mode 100644 index 0000000..19a49b2 --- /dev/null +++ b/ug/channel/include/view_result_page.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef __VIEW_RESULT_PAGE_H__ +#define __VIEW_RESULT_PAGE_H__ + +#include "ug_auto_program.h" +#include "viewmgr_auto_program.h" + +struct view_class *view_resultpage_get_vclass(void); + +#endif /* __VIEW_RESULT_PAGE_H__ */ diff --git a/ug/channel/include/view_scan_start.h b/ug/channel/include/view_scan_start.h new file mode 100644 index 0000000..2625744 --- /dev/null +++ b/ug/channel/include/view_scan_start.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VIEW_SCAN_START_H__ +#define __VIEW_SCAN_START_H__ + +#include "ug_auto_program.h" +#include "viewmgr_auto_program.h" + +struct view_class *view_scanstart_get_vclass(void); + +#endif /* __VIEW_SCAN_START_H__ */ diff --git a/ug/channel/include/view_search_page.h b/ug/channel/include/view_search_page.h new file mode 100644 index 0000000..4b9cf21 --- /dev/null +++ b/ug/channel/include/view_search_page.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VIEW_SEARCHPAGE_H__ +#define __VIEW_SEARCHPAGE_H__ + +#include "ug_auto_program.h" +#include "viewmgr_auto_program.h" + +struct view_class *view_searchpage_get_vclass(void); + +#endif /* __VIEW_SEARCHPAGE_H__ */ diff --git a/ug/channel/include/viewmgr_auto_program.h b/ug/channel/include/viewmgr_auto_program.h new file mode 100644 index 0000000..3815a4d --- /dev/null +++ b/ug/channel/include/viewmgr_auto_program.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VIEWMGR_AUTO_PROGRAM_H__ +#define __VIEWMGR_AUTO_PROGRAM_H__ + +#include +#include + +struct viewmgr { + Eina_List *vlist; + Evas_Object *win; + int count; +}; + +struct view_class { + char *title; + Evas_Object* (*create)(struct viewmgr *vmgr, void *data); + void (*update)(Evas_Object *base); + void (*resume)(Evas_Object *base); + void (*pause)(Evas_Object *base); + void (*terminate)(Evas_Object *base); +}; + +struct viewmgr *viewmgr_init(Evas_Object *win); +void viewmgr_fini(struct viewmgr *vmgr); +int viewmgr_push(struct viewmgr *vmgr, struct view_class *vclass, void *data); +int viewmgr_pop(struct viewmgr *vmgr); +int viewmgr_resume(struct viewmgr *vmgr); +int viewmgr_pause(struct viewmgr *vmgr); +Evas_Object *viewmgr_get_win(struct viewmgr *vmgr); + +#endif /* __VIEWMGR_AUTO_PROGRAM_H__ */ diff --git a/ug/channel/src/ChannelMainView.cpp b/ug/channel/src/ChannelMainView.cpp deleted file mode 100644 index c11f459..0000000 --- a/ug/channel/src/ChannelMainView.cpp +++ /dev/null @@ -1,356 +0,0 @@ -#include -#include -#include "util.h" -#include "defs.h" -#include "TVServiceMgr.h" - -#include "ChannelMainView.h" - -#define HORIZONTAL_ALIGN 0.5 -#define VERTICAL_ALIGN 0.0 -#define MAX_ITEMS 3 -#define ALL "All" -#define CABLE "Cable" -#define AIR "Air" - -enum antenna_type { - ALL_ITEM, - CABLE_ITEM, - AIR_ITEM -}; - -struct SChannelMainView { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - Evas_Object *start_btn; - Evas_Object *cancel_btn; - Evas_Object *box; - Evas_Object *last_focus_item; - Evas_Object *selected_item; - Evas_Object *atn_btn[MAX_ITEMS]; - enum antenna_mode scan_type; - - CViewMgr *pViewMgr; -}; - -bool CChannelMainView::m_CreateBox(void) -{ - m->box = util_add_box(m->base, HORIZONTAL_ALIGN, VERTICAL_ALIGN); - if (!m->box) { - _ERR("box add failed"); - return false; - } - - elm_object_part_content_set(m->base, PART_ANTENNA_LIST, m->box); - evas_object_size_hint_weight_set(m->box, EVAS_HINT_EXPAND, 0); - - return true; -} - - -bool CChannelMainView::m_UpdateAntennaList(void) -{ - Evas_Object *btn; - int i; - const char *temp[MAX_ITEMS] = { ALL, CABLE, AIR }; - - elm_box_clear(m->box); - m->last_focus_item = NULL; - m->selected_item = NULL; - - for (i = 0; i < MAX_ITEMS; i++) { - btn = util_add_button(m->box, (char *) ITEM_STYLE, NULL, temp[i], EINA_TRUE); - if (!btn) { - _ERR("Fail to add button"); - return false; - } - elm_box_pack_end(m->box, btn); - //evas_object_smart_callback_add(btn, SIGNAL_CLICKED, atninfo[i].cb, data); - //elm_object_signal_callback_add(btn, SIGNAL_FOCUSED, ELM_SOURCE, _btn_focused_cb, data); - //elm_object_signal_callback_add(btn, SIGNAL_UNFOCUSED, ELM_SOURCE, _btn_unfocused_cb, data); - Connect(btn, 100+i); - - m->atn_btn[i] = btn; - - if (i == 0) { - elm_object_focus_set(btn, EINA_TRUE); - elm_object_signal_emit(btn, SIGNAL_SELECTED, CHANNEL_SOURCE); - m->selected_item = btn; - } - } - - m_UpdateFocus(); - return true; -} - - -void CChannelMainView::m_UpdateFocus(void) -{ - elm_object_focus_next_object_set(m->atn_btn[ALL_ITEM], m->start_btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(m->atn_btn[CABLE_ITEM], m->start_btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(m->atn_btn[AIR_ITEM], m->start_btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(m->atn_btn[ALL_ITEM], m->atn_btn[ALL_ITEM], ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(m->atn_btn[CABLE_ITEM], m->atn_btn[CABLE_ITEM], ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(m->atn_btn[AIR_ITEM], m->atn_btn[AIR_ITEM], ELM_FOCUS_LEFT); - - if (m->selected_item) { - elm_object_focus_next_object_set(m->start_btn, m->selected_item, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(m->cancel_btn, m->selected_item, ELM_FOCUS_LEFT); - } else { - elm_object_focus_next_object_set(m->start_btn, m->atn_btn[ALL_ITEM], ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(m->cancel_btn, m->atn_btn[ALL_ITEM], ELM_FOCUS_LEFT); - } - - elm_object_focus_next_object_set(m->start_btn, m->cancel_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(m->cancel_btn, m->start_btn, ELM_FOCUS_DOWN); - elm_object_focus_next_object_set(m->cancel_btn, m->start_btn, ELM_FOCUS_UP); -} - - -void CChannelMainView::t_OnShow(void) -{ - _DBG(); - - evas_object_show(m->base); - - CBaseView::t_OnShow(); -} - - -void CChannelMainView::t_OnUpdate(void *data) -{ - _DBG(); - - evas_object_show(m->base); -} - - -void CChannelMainView::t_OnHide(void) -{ - _DBG(); - - evas_object_hide(m->base); - - CBaseView::t_OnHide(); -} - - -bool CChannelMainView::Create(void *data) -{ - _DBG(); - ASSERT(!m); - - ui_gadget_h ug; - if (!data) { - _ERR("Invalid argument"); - return false; - } - ug = (ui_gadget_h)data; - - _CREATE_BEGIN{ - _CHECK(m = new SChannelMainView) - _CHECK(m->win = CViewMgr::GetInstance()->Window()) - _CHECK(m->base = util_add_layout(m->win, AUTO_PRGM_EDJ_FILE, GRP_SCAN_START)) - _COMMAND{ - //evas_object_event_callback_add(base, EVAS_CALLBACK_KEY_DOWN, _key_pressed_cb, priv); - Connect(m->base, 0); - elm_object_part_text_set(m->base, PART_STAR_MAIN_TITLE_BLOCK, START_MAIN_TITLE); - } - _CHECK(m->start_btn = util_add_button(m->base, BTN_STYLE, PART_START_BTN, TEXT_BTN_START, EINA_TRUE)) - _CHECK(m->cancel_btn = util_add_button(m->base, BTN_STYLE, PART_CANCEL_BTN, TEXT_BTN_CANCEL, EINA_TRUE)) - _COMMAND{ -#if 0 - evas_object_data_set(m->base, "SCANSTARTDATA", m); -#endif - //evas_object_smart_callback_add(start_btn, SIGNAL_CLICKED, _start_btn_clicked_cb, priv); - //evas_object_smart_callback_add(cancel_btn, SIGNAL_CLICKED, _cancel_btn_clicked_cb, priv); - Connect(m->start_btn, 1); - Connect(m->cancel_btn, 2); - evas_object_raise(m->base); - } - _CHECK(m_CreateBox()) - _CHECK(m_UpdateAntennaList()) - _WHEN_SUCCESS { - m->ug = ug; - m->pViewMgr = CViewMgr::GetInstance(); - } - _CHECK_FAIL{for(int i = 0; i < MAX_ITEMS ; i++) evas_object_del(m->atn_btn[i]);} - _CHECK_FAIL{evas_object_del(m->box);} - _CHECK_FAIL{evas_object_del(m->cancel_btn);} - _CHECK_FAIL{evas_object_del(m->start_btn);} - _CHECK_FAIL{evas_object_del(m->base);} - _CHECK_FAIL{/* m->win = CViewMgr::GetInstance()->Window() */} - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - return true; -} - - -void CChannelMainView::Destroy(void) -{ - ASSERT(m); - - if(m->atn_btn[0]) { - for(int i = 0; i < MAX_ITEMS ; i++) evas_object_del(m->atn_btn[i]); - } - - if(m->box) - evas_object_del(m->box); - if(m->cancel_btn) - evas_object_del(m->cancel_btn); - if(m->start_btn) - evas_object_del(m->start_btn); - if(m->base) - evas_object_del(m->base); - - delete m; - m = NULL; -} - - -Evas_Object* CChannelMainView::Base(void) -{ - ASSERT(m); - - return m->base; -} - - - -void CChannelMainView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) -{ - if (!ev->keyname) { - _ERR("ev->keyname NULL!"); - return; - } - - switch(id) { - case 0: - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) - ug_destroy_me(m->ug); - break; - default: - break; - } - -} - - -void CChannelMainView::OnMouseClicked(int id, Evas_Object *obj) -{ - switch(id) { - case 1: - { - Eina_Bool tuner_exist; - - /* - * TODO: add the interface when TV service provider the related API. - * Here is a pseudo-data. - */ - tuner_exist = EINA_TRUE; - if (!tuner_exist) { - /* - * TODO: popup the notification iniformation: - * there is no tuner - */ - return; - } - -#if 0 - if (viewmgr_push(m->vmgr, view_searchpage_get_vclass(), m->ugd) == -1) { - _ERR("search view push failed"); - return; - } -#endif - } - break; - case 2: - { - ug_destroy_me(m->ug); - } - break; - case 100: - case 101: - case 102: - { - const char *text; - - if (!m->selected_item) { - elm_object_focus_set(obj, EINA_TRUE); - elm_object_signal_emit(obj, SIGNAL_SELECTED, CHANNEL_SOURCE); - m->selected_item = obj; - } else { - if (m->selected_item != obj) { - elm_object_signal_emit(m->selected_item, SIGNAL_UNSELECTED, CHANNEL_SOURCE); - elm_object_signal_emit(obj, SIGNAL_SELECTED, CHANNEL_SOURCE); - m->selected_item = obj; - } - } - - text = elm_object_text_get(m->selected_item); - if (text && !strcmp(text, ALL)) - m->scan_type = SCAN_TYPE_ALL; - else if (text && !strcmp(text, CABLE)) - m->scan_type = SCAN_TYPE_CABLE; - else if (text && !strcmp(text, AIR)) - m->scan_type = SCAN_TYPE_AIR; - else - m->scan_type = SCAN_TYPE_INVALID; - -#if 0 - m->ugd->scan_type = m->scan_type; -#endif - - m_UpdateFocus(); - } - break; - default: - break; - } -} - - -void CChannelMainView::OnFocused(int id, Evas_Object *obj, Elm_Object_Item *item) -{ - switch(id) { - case 100: - case 101: - case 102: - { - if (m->last_focus_item) { - elm_object_signal_emit(m->last_focus_item, - SIGNAL_SHOWLINE, CHANNEL_SOURCE); - elm_object_signal_emit(obj, SIGNAL_HIDELINE, CHANNEL_SOURCE); - } else { - elm_object_signal_emit(obj, SIGNAL_SHOWLINE, CHANNEL_SOURCE); - } - - m->last_focus_item = obj; - } - break; - default: - break; - } -} - - -void CChannelMainView::OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item) -{ - switch(id) { - case 100: - case 101: - case 102: - { - elm_object_signal_emit(m->last_focus_item, SIGNAL_SHOWLINE, CHANNEL_SOURCE); - } - break; - default: - break; - } - -} - - diff --git a/ug/channel/src/ChannelResultView.cpp b/ug/channel/src/ChannelResultView.cpp deleted file mode 100644 index d90e7e0..0000000 --- a/ug/channel/src/ChannelResultView.cpp +++ /dev/null @@ -1,136 +0,0 @@ -#include -#include -#include -#include "defs.h" -#include "util.h" - -#include "ChannelResultView.h" - -#define RESULT_MSG_SIZE 60 - -struct SChannelResultView { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - Evas_Object *ok_btn; - - CViewMgr *pViewMgr; -}; - -void CChannelResultView::t_OnShow(void) -{ - _DBG(); - - evas_object_show(m->base); - - CBaseView::t_OnShow(); -} - - -void CChannelResultView::t_OnUpdate(void *data) -{ - _DBG(); - Evas_Object *ok_btn; - char msg[RESULT_MSG_SIZE]; - int chs = -1; - -#if 0 - chs = m->ugd->find_chs; -#endif - - snprintf(msg, sizeof(msg), "%s
%d %s", COMPLETE_MAIN_TITLE, chs, TEXT_CH_MEMORIZED); - elm_object_part_text_set(m->base, PART_RES_MAIN_TITLE, msg); - - ok_btn = util_add_button(m->base, BTN_STYLE, PART_OK_BTN, TEXT_BUTTON_OK, EINA_TRUE); - if (!ok_btn) { - _ERR("ok_btn is NULL"); - return; - } - - m->ok_btn = ok_btn; - elm_object_focus_set(ok_btn, EINA_TRUE); - //evas_object_smart_callback_add(ok_btn, SIGNAL_CLICKED, _ok_btn_clicked_cb, priv); - Connect(ok_btn,1); - - util_focus_next_set(ok_btn); - - evas_object_show(m->base); -} - - -void CChannelResultView::t_OnHide(void) -{ - _DBG(); - - evas_object_hide(m->base); - - CBaseView::t_OnHide(); -} - - - -bool CChannelResultView::Create(void *data) -{ - _DBG(); - ASSERT(!m); - - ui_gadget_h ug; - if (!data) { - _ERR("Invalid argument"); - return false; - } - ug = (ui_gadget_h)data; - - _CREATE_BEGIN{ - _CHECK(m = new SChannelResultView) - _CHECK(m->win = CViewMgr::GetInstance()->Window()) - _CHECK(m->base = util_add_layout(m->win, AUTO_PRGM_EDJ_FILE, GROUP_RES)) - - _WHEN_SUCCESS { - elm_win_resize_object_add(m->win, m->base); -#if 0 - evas_object_data_set(m->base, "RESDATA", m); -#endif - m->ug = ug; - m->pViewMgr = CViewMgr::GetInstance(); - } - - _CHECK_FAIL{evas_object_del(m->base);} - _CHECK_FAIL{/* m->win = CViewMgr::GetInstance()->Window() */} - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - return true; -} - - -void CChannelResultView::Destroy(void) -{ - ASSERT(m); - - if(m->base) - evas_object_del(m->base); - - delete m; - m = NULL; -} - - -Evas_Object* CChannelResultView::Base(void) -{ - ASSERT(m); - - return m->base; -} - -void CChannelResultView::OnMouseClicked(int id, Evas_Object *obj) -{ - switch(id) { - case 1: - ug_destroy_me(m->ug); - break; - default: - break; - } -} diff --git a/ug/channel/src/ChannelSearchView.cpp b/ug/channel/src/ChannelSearchView.cpp deleted file mode 100644 index 4912d3c..0000000 --- a/ug/channel/src/ChannelSearchView.cpp +++ /dev/null @@ -1,364 +0,0 @@ -#include -#include -#include -#include "defs.h" -#include "util.h" - -#include "TVServiceMgr.h" -#include "ChannelSearchView.h" - -#define MAX_BUF_SIZE 30 -#define CH_NAME_SIZE 30 -#define INITIAL_CH_NUMS 0 -#define PERCENT 100 -#define INITIAL_TEXT "0%" -#define INITIAL_VALUE 0.0 - -struct SChannelSearchView { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - Evas_Object *pb; - Evas_Object *stop_btn; - Evas_Object *exit_btn; - Evas_Object *cancel_btn; - - CTVServiceMgr *pTVServiceMgr; - CViewMgr *pViewMgr; -}; - -#if 0 -static void _progress_cb(struct tv_scan *tvs, enum antenna_mode mode, - int count, int num, void *arg) -{ - struct _data *priv; - char buf[CH_NAME_SIZE]; - int total; - int ratio; - - if (!tvs || !arg) { - _ERR("Invalid argument"); - return; - } - - priv = (struct _data *) arg; - - snprintf(buf, sizeof(buf), "CH. %d", count); - elm_object_part_text_set(m->base, PART_CH_NAME, buf); - elm_object_signal_emit(m->base, SEARCHCHANNEL, SUBTEXT_SOURCE); - - total = tv_scan_get_total_channel(tvs); - if (total <= 0) { - _ERR("Invalid Total value"); - return; - } - - ratio = count * PERCENT / total; - snprintf(buf, sizeof(buf), "%d%%", ratio); - elm_object_part_text_set(m->base, PART_PGBAR_NUM, buf); - elm_progressbar_value_set(m->pb, (float)ratio / PERCENT); -} - -/** - * Dealing with the scanning result. - * - * When finishing scanning, the total found channels will be calculated and the - * scan result view will be invoked in this function. - * - * @param[in] tvs: The tv service structure for managering the scanning - * @param[in] res: The structure for saving the number of ATV air, DTV air, - * ATV cable and DTV cable channel. - * @param[in] arg: A pointer to current data structure. - */ -static void _done_cb(struct tv_scan *tvs, - const struct tv_scan_result *res, void *arg) -{ - struct _data *priv; - struct _ugdata *ugd; - struct viewmgr *vmgr; - - if (!arg) { - _ERR("Invalid argument"); - return; - } - - priv = (struct _data *)arg; - - if (!m->tvs || !m->vmgr || !m->ugd) { - _ERR("Invalid argument"); - return; - } - - vmgr = m->vmgr; - ugd = m->ugd; - - ugd->find_chs = res->air_dtv + res->cable_dtv + - res->air_atv + res->cable_atv; - - if (viewmgr_push(vmgr, view_resultpage_get_vclass(), ugd) == -1) - _ERR("result view push failed"); -} - -/** - * Deal with the found channel signal. - * - * @param[in] tvs: The tv service structure for managering the scanning - * @param[in] count: The number of channel signal received up to now - * @param[in] num: The physical channel number - * @param[in] res: The structure for saving the number of ATV air, DTV air, - * ATV cable and DTV cable channel. - * @param[in] arg: A pointer to the current data structure. - * @return 0 on success, and -1 on fail - */ -static void _found_cb(struct tv_scan *tvs, int count, int num, - const struct tv_scan_result *res, void *arg) -{ - struct _data *priv; - char buf[CH_NAME_SIZE]; - int found; - - if (!arg) { - _ERR("Invalid argument"); - return; - } - - priv = (struct _data *)arg; - snprintf(buf, sizeof(buf), "CH. %d", count); - - elm_object_part_text_set(m->base, PART_CH_NAME, buf); - elm_object_signal_emit(m->base, CHANNELFOUND, SUBTEXT_SOURCE); - - found = res->air_dtv + res->cable_dtv + res->air_atv + res->cable_atv; - snprintf(buf, sizeof(buf), "%d %s", found, TEXT_CH_FOUND); - elm_object_part_text_set(m->base, PART_SRCH_SEARCH_RESULT, buf); - - m->ugd->find_chs = found; -} -#endif - -bool CChannelSearchView::m_StartScan(void) -{ - -#if 0 - if(!m->pTVServiceMgr->SetCallback(&cbs)) { - _ERR("tv_scan_set_callbacks failed"); - return -1; - } -#endif - - if(!m->pTVServiceMgr->Start()) { - _ERR("tv_scan_start failed."); - return -1; - } - - return false; -} - - -void CChannelSearchView::t_OnShow(void) -{ - _DBG(); - - evas_object_show(m->base); - - CBaseView::t_OnShow(); -} - - -void CChannelSearchView::t_OnUpdate(void *data) -{ - _DBG(); - - m->stop_btn = util_add_button(m->base, BTN_STYLE, PART_STOP_BTN, TEXT_BTN_STOP, EINA_TRUE); - if (!m->stop_btn) { - _ERR("stop_btn is NULL"); - return; - } - - elm_object_focus_set(m->stop_btn, EINA_TRUE); - //evas_object_smart_callback_add(m->stop_btn, SIGNAL_CLICKED, _stop_btn_clicked_cb, priv); - Connect(m->stop_btn, 1); - util_focus_next_set(m->stop_btn); - - m->pb = elm_progressbar_add(m->base); - if (!m->pb) { - _ERR("pb is NULL"); - evas_object_del(m->stop_btn); - return; - } - - elm_object_style_set(m->pb, PRGBAR_STYLE); - elm_object_part_text_set(m->base, PART_PGBAR_NUM, INITIAL_TEXT); - elm_progressbar_value_set(m->pb, INITIAL_VALUE); - elm_object_part_content_set(m->base, PART_PROGRESSBAR, m->pb); - evas_object_show(m->pb); - - if (m_StartScan() != true) { - _ERR("start scan failed"); - return; - } - - evas_object_show(m->base); -} - - -void CChannelSearchView::t_OnHide(void) -{ - _DBG(); - - evas_object_hide(m->base); - - CBaseView::t_OnHide(); -} - - - -bool CChannelSearchView::Create(void *data) -{ - _DBG(); - ASSERT(!m); - char buf[MAX_BUF_SIZE]; - - ui_gadget_h ug; - if (!data) { - _ERR("Invalid argument"); - return false; - } - ug = (ui_gadget_h)data; - - _CREATE_BEGIN{ - _CHECK(m = new SChannelSearchView) - _CHECK(m->win = CViewMgr::GetInstance()->Window()) - _CHECK(CTVServiceMgr::Initialize()) - _CHECK(m->pTVServiceMgr = CTVServiceMgr::GetInstance()) - _CHECK(m->base = util_add_layout(m->win, AUTO_PRGM_EDJ_FILE, GROUP_SRCH)) - - _WHEN_SUCCESS { - elm_win_resize_object_add(m->win, m->base); - elm_object_part_text_set(m->base, PART_SRCH_MAIN_TITLE, SEARCH_MAIN_TITLE); - elm_object_part_text_set(m->base, PART_CH_NAME, SCAN_CH_NAME); - snprintf(buf, sizeof(buf), "%d %s", INITIAL_CH_NUMS, TEXT_CH_FOUND); - elm_object_part_text_set(m->base, PART_SRCH_SEARCH_RESULT, buf); -#if 0 - evas_object_data_set(m->base, "SRCHDATA", m); -#endif - m->ug = ug; - m->pViewMgr = CViewMgr::GetInstance(); - } - - _CHECK_FAIL{evas_object_del(m->base);} - _CHECK_FAIL{/* m->pTVServiceMgr = CTVServiceMgr::GetInstance() */} - _CHECK_FAIL{CTVServiceMgr::Finalize();} - _CHECK_FAIL{/* m->win = CViewMgr::GetInstance()->Window() */} - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - return true; -} - - -void CChannelSearchView::Destroy(void) -{ - ASSERT(m); - - if(m->base) - evas_object_del(m->base); - - CTVServiceMgr::Finalize(); - - delete m; - m = NULL; -} - - -Evas_Object* CChannelSearchView::Base(void) -{ - ASSERT(m); - - return m->base; -} - -void CChannelSearchView::OnMouseClicked(int id, Evas_Object *obj) -{ - switch(id) { - case 1: - case 4: - { - if(!m->pTVServiceMgr->Pause()) { - _ERR("tv_scan_pause failed"); - return; - } - - elm_object_part_text_set(m->base, PART_SRCH_MAIN_TITLE, PAUSE_MAIN_TITLE); - - m->exit_btn = util_add_button(m->base, BTN_STYLE, PART_EXIT_BTN, TEXT_BTN_STOP, EINA_TRUE); - if (!m->exit_btn) { - _ERR("exit_btn is NULL"); - return; - } - - //evas_object_smart_callback_add(m->exit_btn, SIGNAL_CLICKED, _destroy_search_page_cb, priv); - Connect(m->exit_btn, 2); - - m->cancel_btn = util_add_button(m->base, BTN_STYLE, PART_SRCH_CANCEL_BTN, TEXT_BTN_CANCEL, EINA_TRUE); - if (!m->cancel_btn) { - _ERR("cancel_btn is NULL"); - evas_object_del(m->exit_btn); - m->exit_btn = NULL; - return; - } - - //evas_object_smart_callback_add(m->cancel_btn, SIGNAL_CLICKED, _cancel_btn_clicked_cb, priv); - Connect(m->cancel_btn, 3); - - elm_object_focus_allow_set(m->exit_btn, EINA_TRUE); - elm_object_focus_set(m->exit_btn, EINA_TRUE); - util_focus_next_set(m->exit_btn); - - evas_object_del(m->stop_btn); - m->stop_btn = NULL; - } - break; - case 2: - { - if(!m->pTVServiceMgr->Stop()) { - _ERR("tv_scan_stop failed"); - return; - } - - ug_destroy_me(m->ug); - } - break; - case 3: - { - elm_object_part_text_set(m->base, PART_SRCH_MAIN_TITLE, SEARCH_MAIN_TITLE); - - if(!m->pTVServiceMgr->Resume()) { - _ERR("resume tv scan failed."); - return; - } - - m->stop_btn = util_add_button(m->base, BTN_STYLE, PART_STOP_BTN, TEXT_BTN_STOP, EINA_TRUE); - if (!m->stop_btn) { - _ERR("stop_btn is NULL"); - return; - } - - elm_object_focus_allow_set(m->stop_btn, EINA_TRUE); - elm_object_focus_set(m->stop_btn, EINA_TRUE); - //evas_object_smart_callback_add(m->stop_btn, SIGNAL_CLICKED, _stop_btn_clicked_cb, priv); - Connect(m->stop_btn, 4); - - util_focus_next_set(m->stop_btn); - - evas_object_del(m->exit_btn); - evas_object_del(m->cancel_btn); - m->exit_btn = NULL; - m->cancel_btn = NULL; - } - break; - default: - break; - } -} diff --git a/ug/channel/src/tv_scan.c b/ug/channel/src/tv_scan.c new file mode 100644 index 0000000..7d105b2 --- /dev/null +++ b/ug/channel/src/tv_scan.c @@ -0,0 +1,669 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include "dbg.h" +//#include "tv_service_proxy.h" +#include "tv_scan.h" + +#define SIGNAL_HANDLER_INTERVAL 0.1 + +enum tv_scan_state { + SCAN_STATE_READY, + SCAN_STATE_SEARCHING, + SCAN_STATE_PAUSED, + SCAN_STATE_STOPPING, + SCAN_STATE_MAX +}; + +struct tv_scan { + struct tv_scan_cbs cbs; + enum tv_scan_state state; + enum antenna_mode set_mode; +#if 0 + TvServiceScan service_scan; + TvServiceScanType scan_type; +#endif + int ch_count; + int ch_num; + int total_ch; + struct tv_scan_result res; + int is_stopped; + Eina_List *signal_queue; + Ecore_Timer *signal_timer; +}; + +struct _signal_info { +#if 0 + TvServiceScanType scan_type; + TvServiceScanEvent signal; + TvServiceScanEventData signal_data; +#endif +}; + +/** + * Get the scan type according to the setting of scanning mode in the beginning + * + * In this function, it will find the scan state the tv service provided + * accordding to the setting of scanning mode by user + * + * @param[in] mode: The setting of scanning mode in view_scan_start + * @param[out] type: The corresponding scan type provided by tv service + * @return 0 on success otherwise -1 + */ +#if 0 +static int _get_scan_mode(enum antenna_mode mode, TvServiceScanType *type) +{ + switch (mode) { + case SCAN_TYPE_ALL: + *type = TVS_SCAN_ALL_ANALOG_DIGITAL; + break; + case SCAN_TYPE_CABLE: + *type = TVS_SCAN_CABLE_ANALOG_DIGITAL; + break; + case SCAN_TYPE_AIR: + *type = TVS_SCAN_AIR_ANALOG_DIGITAL; + break; + default: + _ERR("Invalid scan mode: %d", mode); + return -1; + } + + return 0; +} +#endif + +/** + * Handling the beginning signal. + * + * When user press the button "start", it will begin scanning, and the tv + * service will return the total number of channels in the first for + * calculating the progress of the progressbar + * + * In this function, it will find the total number of channel signal according + * to the scanning type. + * + * @param[in] tvs: Data handler for tv scan manager. + * @param[in] sinfo: The channel signal information. + */ +static void _handle_begin_signal(struct tv_scan *tvs, + struct _signal_info *sinfo) +{ +#if 0 + if (!tvs || !sinfo) { + _ERR("Invalid argument"); + return; + } + + switch (sinfo->scan_type) { + case TVS_SCAN_ALL_ANALOG_DIGITAL: + tvs->total_ch = sinfo->signal_data.data.l[0] + + sinfo->signal_data.data.l[1]; + break; + case TVS_SCAN_AIR_ANALOG_DIGITAL: + tvs->total_ch = sinfo->signal_data.data.l[0]; + break; + case TVS_SCAN_CABLE_ANALOG_DIGITAL: + tvs->total_ch = sinfo->signal_data.data.l[1]; + break; + default: + _ERR("Invalid scan type"); + break; + } +#endif +} + +/** + * Handle the receiving channel signal. + * + * @param[in] tvs: Data handler for tv scan manager. + * @param[in] sinfo: The channel signal information. + */ +static void _handle_progress_signal(struct tv_scan *tvs, + struct _signal_info *sinfo) +{ +#if 0 + if (!tvs || !sinfo) { + _ERR("Invalid argument"); + return; + } + + tvs->ch_count++; + tvs->ch_num = sinfo->signal_data.data.l[0]; + + if (tvs->cbs.progress_cb) + tvs->cbs.progress_cb(tvs, tvs->set_mode, tvs->ch_count, + tvs->ch_num, tvs->cbs.data); +#endif +} + +/** + * Calculating the number of ATV channle signal or DTV channel signal. + * + * @param[in] atv: A pointer for saving the number of ATV channel signal. + * @param[in] dtv: A pointer for saving the number of DTV channel signal. + * @param[in] sinfo: The channel signal information. + */ +static void _channel_count(unsigned int *atv, unsigned int *dtv, + struct _signal_info *sinfo) +{ +#if 0 + if (!sinfo || !atv || !dtv) { + _ERR("Invalid argument"); + return; + } + + switch (sinfo->signal_data.data.s[1]) { + case TVS_CHANNEL_TYPE_ATV: + *atv += sinfo->signal_data.data.s[2]; + break; + case TVS_CHANNEL_TYPE_DTV: + *dtv += sinfo->signal_data.data.s[3]; + break; + default: + _ERR("Invalid TVS_CHANNEL_TYPE"); + break; + } +#endif +} + +/** + * Handle the found channel signal when tune lock success. + * + * @param[in] tvs: Data handler for tv scan manager. + * @param[in] sinfo: The channel signal information. + */ +static void _handle_found_signal(struct tv_scan *tvs, + struct _signal_info *sinfo) +{ +#if 0 + if (!tvs || !sinfo) { + _ERR("Invalid argument"); + return; + } + + /* judge *param.s[0]: antenna type */ + switch (sinfo->signal_data.data.s[0]) { + case TV_SERVICE_ANTENNA_TYPE_AIR: + _channel_count(&tvs->res.air_atv, + &tvs->res.air_dtv, sinfo); + break; + case TV_SERVICE_ANTENNA_TYPE_CABLE: + _channel_count(&tvs->res.cable_atv, + &tvs->res.cable_dtv, sinfo); + break; + default: + _ERR("Invalid channel type"); + return; + } + + if ((sinfo->signal_data.data.s[2] > 0 || + sinfo->signal_data.data.s[3] > 0) && tvs->cbs.found_cb) + tvs->cbs.found_cb(tvs, tvs->ch_count, tvs->ch_num, &tvs->res, + tvs->cbs.data); +#endif +} + +/** + * Handle the result when scanning is finished. + * + * @param[in] tvs: Data handler for tv scan manager. + * @param[in] sinfo: The channel signal information. + */ +static void _handle_done_signal(struct tv_scan *tvs, + struct _signal_info *sinfo) +{ +#if 0 + if (!tvs || !sinfo) { + _ERR("Invalid argument"); + return; + } + + if (sinfo->signal_data.data.l[0] == TVS_SCAN_SEARCH_FINISH_COMPLETE) { + tvs->state = SCAN_STATE_READY; + + if (tvs->cbs.done_cb) + tvs->cbs.done_cb(tvs, &tvs->res, tvs->cbs.data); + } +#endif +} + +/** + * Handle the receiving signal saved in tvs->signal_queue. + * + * @param[in] data: Data handler for tv scan manager. + */ +static Eina_Bool _handle_signal(void *data) +{ +#if 0 + struct tv_scan *tvs; + struct _signal_info *sinfo; + + if (!data) + return ECORE_CALLBACK_CANCEL; + + tvs = data; + + if (!tvs->signal_queue) + goto stop; + + sinfo = eina_list_data_get(tvs->signal_queue); + if (!sinfo) + goto stop; + + tvs->signal_queue = eina_list_remove_list( + tvs->signal_queue, tvs->signal_queue); + + switch (sinfo->signal) { + case TVS_SCAN_EVENT_SEARCH_BEGIN: + _handle_begin_signal(tvs, sinfo); + break; + case TVS_SCAN_EVENT_SEARCH_CHANNEL: + _handle_progress_signal(tvs, sinfo); + break; + case TVS_SCAN_EVENT_CHANNEL_FOUND: + _handle_found_signal(tvs, sinfo); + break; + case TVS_SCAN_EVENT_SEARCH_FINISH: + _handle_done_signal(tvs, sinfo); + break; + default: + _ERR("Invalid signal"); + break; + } + + free(sinfo); + + if (!tvs->signal_queue) + goto stop; + + return ECORE_CALLBACK_RENEW; + +stop: + tvs->signal_timer = NULL; + return ECORE_CALLBACK_CANCEL; +#endif +} + +/** + * Handle the receiving signal from tv service. + * + * Tv service will send the signal one by one, and the variable Ecore_Timer: + * signal_timer is set for setting the time for dealing with the signal in + * signal_queue at regular intervals. + * + * @param[in] signal: Signal from Tv service. + * @param[in] signal_data: Data handler for tv service sacn event. + * @param[in] data: Data handler for tv scan manager. + */ +#if 0 +static void _signal_received(TvServiceScanEvent signal, + TvServiceScanEventData *signal_data, gpointer data) +{ + struct tv_scan *tvs; + struct _signal_info *sinfo; + + if (!data) { + _ERR("Invalid argument"); + return; + } + + tvs = data; + + sinfo = calloc(1, sizeof(*sinfo)); + if (!sinfo) { + _ERR("calloc failed"); + return; + } + + sinfo->signal = signal; + sinfo->signal_data = *signal_data; + sinfo->scan_type = tvs->scan_type; + + tvs->signal_queue = eina_list_append( + tvs->signal_queue, sinfo); + + if (!tvs->signal_timer) { + tvs->signal_timer = ecore_timer_add(SIGNAL_HANDLER_INTERVAL, + _handle_signal, tvs); + if (!tvs->signal_timer) { + _ERR("add timer failed."); + tvs->signal_queue = eina_list_remove(tvs->signal_queue, + sinfo); + free(sinfo); + return; + } + } +} +#endif + +/** + * Initialize the tv scan manager object + * + * In this function, it will create tv_scan struct object, and get the related + * scan mode (one of TVS_SCAN_ALL_ANALOG_DIGITAL / + * TVS_SCAN_CABLE_ANALOG_DIGITAL / TVS_SCAN_AIR_ANALOG_DIGITAL) + * fron tv service according to the optional setting mode + * (one of AIR / CABLE / ALL) in scan_start view, + * and register TvServiceScan object and set it for variable service_scan, + * and set the initial scan state SCAN_STATE_READY. + * + * @param[in] mode: the setting mode (one of AIR / CABLE / ALL) in + * view_scan_start + * @return The struct tvs or NULL if initialize failed + */ +struct tv_scan *tv_scan_init(enum antenna_mode mode) +{ +#if 0 + struct tv_scan *tvs; + TvServiceScan scan; + TvServiceScanType type; + gint result; + int r; + + tvs = calloc(1, sizeof(*tvs)); + if (!tvs) { + _ERR("calloc failed"); + return NULL; + } + + r = _get_scan_mode(mode, &type); + if (r == -1) { + _ERR("Get scan mode failed"); + free(tvs); + return NULL; + } + + result = tv_service_scan_create(&scan, type); + if (result != TVS_ERROR_OK) { + _ERR("Create Scan failed"); + free(tvs); + return NULL; + } + + tvs->service_scan = scan; + tvs->scan_type = type; + tvs->set_mode = mode; + tvs->state = SCAN_STATE_READY; + + return tvs; +#endif + return NULL; +} + +/** + * Release tv_scan struct resource + * + * In this function, it will release the object in tv_scan struct object, + * include channel information saved in signal_queue and the Ecore_Timer object + * and so on. + * + * @param[in] tvs: Data handler for tv scan manager. + * @return 0 on success otherwise -1 + */ +int tv_scan_fini(struct tv_scan *tvs) +{ +#if 0 + struct _signal_info *sinfo; + + if (!tvs) { + _ERR("Invalid argument"); + return -1; + } + + if (tvs->state != SCAN_STATE_READY) + tv_scan_stop(tvs); + + if (tvs->signal_timer) + ecore_timer_del(tvs->signal_timer); + + EINA_LIST_FREE(tvs->signal_queue, sinfo) + free(sinfo); + + tv_service_scan_destroy(tvs->service_scan); + free(tvs); + +#endif + return 0; +} + +/** + * Register callbacks for tvs struct + * + * @param[in] tvs: Data handler for tv scan manager. + * @param[in] cbs: The registered callbacks for control the scan state + * @return 0 on success otherwise -1 + */ +int tv_scan_set_callbacks(struct tv_scan *tvs, struct tv_scan_cbs *cbs) +{ + if (!tvs || !cbs) { + _ERR("Invalid argument"); + return -1; + } + + tvs->cbs = *cbs; + + return 0; +} + +/** + * Start scanning channels + * + * @param[in] tvs: Data handler for tv scan manager. + * @return 0 on success otherwise -1 + */ +int tv_scan_start(struct tv_scan *tvs) +{ +#if 0 + gint result; + + if (!tvs || !tvs->service_scan) { + _ERR("Invalid argument"); + return -1; + } + + if (tvs->state != SCAN_STATE_READY) { + _ERR("unable state to start scan"); + return -1; + } + + result = tv_service_scan_register_callback(tvs->service_scan, + _signal_received, (gpointer)tvs); + if (result != TVS_ERROR_OK) { + _ERR("register callback failed"); + return -1; + } + + result = tv_service_scan_start(tvs->service_scan); + if (result != TVS_ERROR_OK) { + _ERR("scan start failed"); + return -1; + } + + tvs->state = SCAN_STATE_SEARCHING; + tvs->is_stopped = 0; + tvs->ch_count = 0; + memset(&tvs->res, 0x00, sizeof(tvs->res)); + + return 0; +#endif + return -1; +} + +/** + * Pause the scanning of channels + * + * In this function, it will invoke the pausing function from tv service + * for pausing the scaning and stop sending channel signals. + * + * @param[in] tvs: Data handler for tv scan manager. + * @return 0 on success otherwise -1 + */ +int tv_scan_pause(struct tv_scan *tvs) +{ +#if 0 + gint result; + + if (!tvs || !tvs->service_scan) { + _ERR("Invalid argument"); + return -1; + } + + if (tvs->state != SCAN_STATE_SEARCHING) { + _ERR("unable state to pause scan"); + return -1; + } + + result = tv_service_scan_pause(tvs->service_scan); + if (result != TVS_ERROR_OK) { + _ERR("Pause Scan failed"); + return -1; + } + + tvs->state = SCAN_STATE_PAUSED; + + return 0; +#endif +} + + +/** + * Resume the paused scanning of channels + * + * @param[in] tvs: Data handler for tv scan manager. + * @return 0 on success otherwise -1 + */ +int tv_scan_resume(struct tv_scan *tvs) +{ +#if 0 + gint result; + + if (!tvs || !tvs->service_scan) { + _ERR("Invalid argument"); + return -1; + } + + if (tvs->state != SCAN_STATE_PAUSED) { + _ERR("unable state to resume scan"); + return -1; + } + + result = tv_service_scan_resume(tvs->service_scan); + if (result != TVS_ERROR_OK) { + _ERR("resume Scan failed"); + return -1; + } + + tvs->state = SCAN_STATE_SEARCHING; + + return 0; +#endif + return -1; +} + +/** + * Stop the scanning of channels + * + * Stop the scanning and stop receiving channel signal + * + * @param[in] tvs: Data handler for tv scan manager. + * @return 0 on success otherwise -1 + */ +int tv_scan_stop(struct tv_scan *tvs) +{ +#if 0 + gint result; + + if (!tvs) { + _ERR("Invalid argument"); + return -1; + } + + if (tvs->state == SCAN_STATE_READY) { + _ERR("unable state to stop scan"); + return -1; + } + + result = tv_service_scan_stop(tvs->service_scan); + if (result != TVS_ERROR_OK) { + _ERR("Create Scan failed"); + return -1; + } + + tvs->state = SCAN_STATE_STOPPING; + tvs->is_stopped = 1; + + return 0; +#endif + return -1; +} + +/** + * Get the total number of channel signals saved in + * data handler for tv scan manager + * + * @param[in] tvs: Data handler for tv scan manager. + * @return 0 on success otherwise -1 + */ +int tv_scan_get_total_channel(struct tv_scan *tvs) +{ + if (!tvs) { + _ERR("Invalid argument"); + return -1; + } + + return tvs->total_ch; +} + +/** + * Get the scanning result of channel signals + * + * There are four kinds of channel signals: ATV air, ATV cable, DTV air and + * DTV cable, and the numner of the channel signal is saved in variable + * tvs->res. + * + * @param[in] tvs: Data handler for tv scan manager. + * @return The tv_scan_result struct + */ +struct tv_scan_result *tv_scan_get_result(struct tv_scan *tvs) +{ + if (!tvs) { + _ERR("Invalid argument"); + return NULL; + } + + return &tvs->res; +} + +/** + * Get the state of scanning of channels + * + * Get the state of scanning of channels to judge whether the scanning + * is stopped. + * + * @param[in] tvs: Data handler for tv scan manager. + * @return 0 on success otherwise -1 + */ +int tv_scan_is_stopped(struct tv_scan *tvs) +{ + if (!tvs) { + _ERR("Invalid argument"); + return -1; + } + + return tvs->is_stopped; +} diff --git a/ug/channel/src/ug_auto_program.cpp b/ug/channel/src/ug_auto_program.c similarity index 85% rename from ug/channel/src/ug_auto_program.cpp rename to ug/channel/src/ug_auto_program.c index b0cc25e..6097aa6 100644 --- a/ug/channel/src/ug_auto_program.cpp +++ b/ug/channel/src/ug_auto_program.c @@ -18,30 +18,17 @@ #define UG_MODULE_API __attribute__ ((visibility("default"))) #endif +#include +#include #include "defs.h" -#include +#include "dbg.h" +#include "viewmgr_auto_program.h" #include "ug_auto_program.h" +#include "view_scan_start.h" +#include "view_search_page.h" +#include "view_result_page.h" #include "util.h" -#include "TVServiceMgr.h" -#include "ChannelMainView.h" -#if defined (__cplusplus) -extern "C" { -#endif - -struct _ug_data { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - - enum antenna_mode scan_type; - int find_chs; - - CViewMgr *pViewMgr; - CChannelMainView *pChannelMainView; -}; - /** * Creates the base layout for channel UI gadget * @@ -64,48 +51,45 @@ struct _ug_data { static void *_on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv) { - struct _ug_data *ugd; Evas_Object *win; + struct _ugdata *ugd; + struct viewmgr *vmgr; if (!ug || !priv) { - _ERR("Parameter error!"); + _ERR("ug: %p , priv: %p ", ug, priv); return NULL; } - ugd = (struct _ug_data *) priv; - ugd->ug = ug; + ugd = priv; elm_theme_extension_add(NULL, AUTO_PRGM_EDJ_THEME); - win = (Evas_Object *) ug_get_window(); + win = ug_get_window(); if (!win) { _ERR("window get failed"); return NULL; } - ugd->win = win; - elm_win_focus_highlight_enabled_set(win, EINA_TRUE); elm_win_focus_highlight_style_set(win, INVISIBLE); - CViewMgr::Initialize(ugd->win, NULL); - ugd->pViewMgr = CViewMgr::GetInstance(); - if(!ugd->pViewMgr) { - CViewMgr::Finalize(); - _ERR("Fail to get CViewMgr instance"); + vmgr = viewmgr_init(win); + if (!vmgr) { + _ERR("viewmgr init failed"); return NULL; } - ugd->pChannelMainView = new CChannelMainView(CHANNEL_MAINVIEW); - if(!ugd->pViewMgr->AddView(ugd->pChannelMainView)) { - _ERR("Fail to add pFbBaseView"); - CViewMgr::Finalize(); - return false; - } - ugd->pViewMgr->PushView(CHANNEL_MAINVIEW, ugd->ug); - ugd->base = ugd->pChannelMainView->Base(); + ugd->ug = ug; + ugd->win = win; + ugd->vmgr = vmgr; - return ugd->base; + if (viewmgr_push(vmgr, view_scanstart_get_vclass(), ugd) == -1) { + _ERR("scan view push failed"); + viewmgr_fini(vmgr); + return NULL; + } + + return ugd->ugd_base; } /** @@ -167,7 +151,18 @@ static void _on_resume(ui_gadget_h ug, service_h service, void *priv) */ static void _on_destroy(ui_gadget_h ug, service_h service, void *priv) { - CViewMgr::Finalize(); + struct _ugdata *ugd; + + if (!ug || !priv) { + _ERR("Invalid parameter."); + return; + } + + ugd = priv; + + viewmgr_fini(ugd->vmgr); + + return; } /** @@ -235,12 +230,12 @@ static void _on_event(ui_gadget_h ug, enum ug_event event, */ UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) { - struct _ug_data *ugd; + struct _ugdata *ugd; if (!ops) return -1; - ugd = (struct _ug_data *) calloc(1, sizeof(*ugd)); + ugd = calloc(1, sizeof(*ugd)); if (!ugd) return -1; @@ -267,15 +262,11 @@ UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) */ UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops) { - struct _ug_data *ugd; + struct _ugdata *ugd; if (!ops) return; - ugd = (struct _ug_data *)ops->priv; + ugd = ops->priv; free(ugd); } - -#if defined (__cplusplus) -}; -#endif diff --git a/ug/channel/src/util.cpp b/ug/channel/src/util.c similarity index 99% rename from ug/channel/src/util.cpp rename to ug/channel/src/util.c index b1e52da..140fe1b 100644 --- a/ug/channel/src/util.cpp +++ b/ug/channel/src/util.c @@ -19,7 +19,7 @@ #include #include #include "defs.h" -#include +#include "dbg.h" #include "util.h" /** diff --git a/ug/channel/src/view_result_page.c b/ug/channel/src/view_result_page.c new file mode 100644 index 0000000..2bb6bbb --- /dev/null +++ b/ug/channel/src/view_result_page.c @@ -0,0 +1,240 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include "dbg.h" +#include "defs.h" +#include "util.h" +#include "viewmgr_auto_program.h" +#include "ug_auto_program.h" +#include "view_search_page.h" +#include "view_result_page.h" + +#define RESULT_MSG_SIZE 60 + +#define _GET_PRIV(o) evas_object_data_get(o, "RESDATA") +#define _SET_PRIV(o, data) evas_object_data_set(o, "RESDATA", data) + +struct _data { + Evas_Object *win; + Evas_Object *base; + Evas_Object *ok_btn; + struct viewmgr *vmgr; + struct _ugdata *ugd; +}; + +/** + * @Evas_Smart_Cb type callback for handling the click callback event for + * "OK" button. + * + * When "OK" button is clicked, channel ug will exit. + * + * @param[in] data: the user data related to current view + * @param[in] obj: the corresponding object on which the button click event + * occurred + * + * @param[in] ev: event information + */ +static void _ok_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _ugdata *ugd; + struct _data *priv; + + if (!data) { + _ERR("Invalid argument"); + return; + } + + priv = data; + ugd = priv->ugd; + + if (!ugd || !ugd->ug) { + _ERR("ugd->ug is NULL"); + return; + } + + ug_destroy_me(ugd->ug); +} + +/** + * Initializes the base layout for scanning result view. + * + * Create the layout of scanning result view. + * + * @param[in] vmgr: the handler to the struct object for managing the view + * @param[in] data: the user data related to current view + * @return The base or NULL if creatting failed + */ +static Evas_Object *_create(struct viewmgr *vmgr, void *data) +{ + Evas_Object *base; + Evas_Object *win; + struct _data *priv; + struct _ugdata *ugd; + + if (!vmgr || !data) { + _ERR("Invalid argument"); + return NULL; + } + + ugd = data; + + win = viewmgr_get_win(vmgr); + if (!win) + return NULL; + + priv = calloc(1, sizeof(*priv)); + if (!priv) + return NULL; + + base = util_add_layout(win, AUTO_PRGM_EDJ_FILE, GROUP_RES); + if (!base) { + free(priv); + return NULL; + } + + elm_win_resize_object_add(win, base); + + priv->win = win; + priv->base = base; + priv->ugd = ugd; + priv->vmgr = vmgr; + + _SET_PRIV(base, priv); + + return base; +} + +/** + * Invoked after _create() function as defined in viewmgr_push(). + * + * Create the button in result view, and show the information about the + * number of found channels. + * + * @param[in] base: the layout of the view + */ +static void _update(Evas_Object *base) +{ + Evas_Object *ok_btn; + struct _data *priv; + char msg[RESULT_MSG_SIZE]; + int chs; + + if (!base) { + _ERR("Invalid argument"); + return; + } + + priv = _GET_PRIV(base); + if (!priv) { + _ERR("Data get failed"); + return; + } + + chs = priv->ugd->find_chs; + + snprintf(msg, sizeof(msg), "%s
%d %s", COMPLETE_MAIN_TITLE, + chs, TEXT_CH_MEMORIZED); + elm_object_part_text_set(priv->base, PART_RES_MAIN_TITLE, msg); + + ok_btn = util_add_button(priv->base, BTN_STYLE, + PART_OK_BTN, TEXT_BUTTON_OK, EINA_TRUE); + if (!ok_btn) { + _ERR("ok_btn is NULL"); + return; + } + + priv->ok_btn = ok_btn; + elm_object_focus_set(ok_btn, EINA_TRUE); + evas_object_smart_callback_add(ok_btn, SIGNAL_CLICKED, + _ok_btn_clicked_cb, priv); + + util_focus_next_set(ok_btn); +} + +/** + * Resume the application. + * + * @param[in] base: the layout of the view + */ +static void _resume(Evas_Object *base) +{ + evas_object_show(base); +} + +/** + * Pause the application. + * + * Hide the layout + * + * @param[in] base: the layout of the view + */ +static void _pause(Evas_Object *base) +{ + evas_object_hide(base); +} + +/** + * Called after the main loop of the view exits. + * + * Delete the layout and release the resourse + * + * @param[in] base: the layout of the view + */ +static void _terminate(Evas_Object *base) +{ + struct _data *priv; + + if (!base) { + _ERR("Invalid argument"); + return; + } + + priv = _GET_PRIV(base); + if (!priv) { + _ERR("Data get failed"); + return; + } + + if (priv->base) + evas_object_del(priv->base); + + free(priv); +} + +/** + * This struct is for registering the callbacks for the view + */ +static struct view_class _vclass = { + .title = VIEW_RESULT, + .create = _create, + .update = _update, + .resume = _resume, + .pause = _pause, + .terminate = _terminate, +}; + + /** + * Returns current view_class which implements the result view's life cycle + * + * @return view_class + */ +struct view_class *view_resultpage_get_vclass(void) +{ + return &_vclass; +} diff --git a/ug/channel/src/view_scan_start.c b/ug/channel/src/view_scan_start.c new file mode 100644 index 0000000..aca992e --- /dev/null +++ b/ug/channel/src/view_scan_start.c @@ -0,0 +1,697 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co. Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +#include + +#include "ug_auto_program.h" +#include "view_scan_start.h" +#include "view_search_page.h" +#include "view_result_page.h" +#include "viewmgr_auto_program.h" +#include "dbg.h" +#include "defs.h" +#include "tv_scan.h" +#include "util.h" + +#define HORIZONTAL_ALIGN 0.5 +#define VERTICAL_ALIGN 0.0 +#define MAX_ITEMS 3 +#define ALL "All" +#define CABLE "Cable" +#define AIR "Air" + +#define _GET_PRIV(o) evas_object_data_get(o, "SCANSTARTDATA") +#define _SET_PRIV(o, data) evas_object_data_set(o, "SCANSTARTDATA", data) + +enum antenna_type { + ALL_ITEM, + CABLE_ITEM, + AIR_ITEM +}; + +struct _data { + Evas_Object *win; + Evas_Object *base; + Evas_Object *start_btn; + Evas_Object *cancel_btn; + Evas_Object *box; + Evas_Object *last_focus_item; + Evas_Object *selected_item; + Evas_Object *atn_btn[MAX_ITEMS]; + struct viewmgr *vmgr; + struct _ugdata *ugd; + enum antenna_mode scan_type; +}; + +struct _antenna_info { + char *style; + Evas_Smart_Cb cb; + char *text; +}; + +/** + * @EVAS_CALLBACK_KEY_DOWN type callback for handling key pressed callback + * event + * + * @param[in] data: user data related to current view + * @param[in] e: evas handler + * @param[in] obj: the corresponding object on which the key pressed event + * occurred + * @param[in] ei: event information + */ +static void _key_pressed_cb(void *data, Evas *e, Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _data *priv; + struct _ugdata *ugd; + + if (!data || !ei) { + _ERR("Parameter error!"); + return; + } + + priv = data; + ev = ei; + + if (!priv->ugd) { + _ERR("priv->ugd is NULL"); + return; + } + + ugd = priv->ugd; + + if (!ugd->ug) { + _ERR("ugd->ug is NULL"); + return; + } + + if (!ev->keyname) { + _ERR("ev->keyname NULL!"); + return; + } + + if (!strcmp(ev->keyname, KEY_BACK)) + ug_destroy_me(ugd->ug); +} + +/** + * @Evas_Smart_Cb type callback for handling the click callback event for + * "start" button. + * + * @param[in] data: user data related to current view + * @param[in] obj: the corresponding object on which the button click event + * occurred + * @param[in] ev: event information + */ +static void _start_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _data *priv; + Eina_Bool tuner_exist; + + if (!data) { + _ERR("data is NULL"); + return; + } + + priv = data; + + if (!priv->ugd || !priv->vmgr) { + _ERR("parameter is NULL"); + return; + } + + /* + * TODO: add the interface when TV service provider the related API. + * Here is a pseudo-data. + */ + tuner_exist = EINA_TRUE; + if (!tuner_exist) { + /* + * TODO: popup the notification iniformation: + * there is no tuner + */ + return; + } + + if (viewmgr_push(priv->vmgr, view_searchpage_get_vclass(), + priv->ugd) == -1) { + _ERR("search view push failed"); + return; + } +} + + /** + * @Evas_Smart_Cb type callback for handling the click callback event for + * "cancel" button. + * + * @param[in] data: user data related to current view + * @param[in] obj: the corresponding object on which the button click event + * occurred + * @param[in] ev: event information + */ +static void _cancel_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _data *priv; + struct _ugdata *ugd; + + if (!data) { + _ERR("data is NULL"); + return; + } + + priv = data; + + if (!priv->ugd) { + _ERR("priv->ugd is NULL"); + return; + } + + ugd = priv->ugd; + + if (!ugd->ug) { + _ERR("ugd->ug is NULL"); + return; + } + + ug_destroy_me(ugd->ug); +} + +/** + * Callback function for button focus event. + * + * @param[in] data: user data related to current view + * @param[in] obj: the corresponding object on which the button focus event + * occurred + * @param[in] emission: the signal's name. + * @param[in] source: the signal's source. + */ +static void _btn_focused_cb(void *data, Evas_Object *obj, + const char *emission, const char *source) +{ + struct _data *priv; + + if (!obj || !data) { + _ERR("Invalid parameter"); + return; + } + + priv = data; + + if (priv->last_focus_item) { + elm_object_signal_emit(priv->last_focus_item, + SIGNAL_SHOWLINE, CHANNEL_SOURCE); + elm_object_signal_emit(obj, SIGNAL_HIDELINE, CHANNEL_SOURCE); + } else { + elm_object_signal_emit(obj, SIGNAL_SHOWLINE, CHANNEL_SOURCE); + } + + priv->last_focus_item = obj; +} + +/** + * Callback function for button unfocus event. + * + * @param[in] data: user data related to current view + * @param[in] obj: the corresponding object on which the button focus event + * occurred + * @param[in] emission: the signal's name. + * @param[in] source: the signal's source. + */ +static void _btn_unfocused_cb(void *data, Evas_Object *obj, + const char *emission, const char *source) +{ + struct _data *priv; + + if (!obj || !data) { + _ERR("Invalid parameter"); + return; + } + + priv = data; + elm_object_signal_emit(priv->last_focus_item, + SIGNAL_SHOWLINE, CHANNEL_SOURCE); +} + +/** + * Set the focus sequence for the objects in the layout. + * + * @param[in] data: user data related to current view + */ +static void _update_focus_sequence(struct _data *priv) +{ + if (!priv) { + _ERR("Invalid parameter"); + return; + } + + elm_object_focus_next_object_set(priv->atn_btn[ALL_ITEM], + priv->start_btn, ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(priv->atn_btn[CABLE_ITEM], + priv->start_btn, ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(priv->atn_btn[AIR_ITEM], + priv->start_btn, ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(priv->atn_btn[ALL_ITEM], + priv->atn_btn[ALL_ITEM], ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(priv->atn_btn[CABLE_ITEM], + priv->atn_btn[CABLE_ITEM], ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(priv->atn_btn[AIR_ITEM], + priv->atn_btn[AIR_ITEM], ELM_FOCUS_LEFT); + + if (priv->selected_item) { + elm_object_focus_next_object_set(priv->start_btn, + priv->selected_item, ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(priv->cancel_btn, + priv->selected_item, ELM_FOCUS_LEFT); + } else { + elm_object_focus_next_object_set(priv->start_btn, + priv->atn_btn[ALL_ITEM], ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(priv->cancel_btn, + priv->atn_btn[ALL_ITEM], ELM_FOCUS_LEFT); + } + + elm_object_focus_next_object_set(priv->start_btn, + priv->cancel_btn, ELM_FOCUS_UP); + elm_object_focus_next_object_set(priv->cancel_btn, + priv->start_btn, ELM_FOCUS_DOWN); + elm_object_focus_next_object_set(priv->cancel_btn, + priv->start_btn, ELM_FOCUS_UP); +} + +/** + * @Evas_Smart_Cb type callback for handling the click callback event. + * + * @param[in] data: user data related to current view + * @param[in] obj: the corresponding object on which the button click event + * occurred + * @param[in] ev: event information + */ +static void _item_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _data *priv; + const char *text; + + if (!data || !obj) { + _ERR("Invalid parameter"); + return; + } + + priv = data; + + if (!priv->selected_item) { + elm_object_focus_set(obj, EINA_TRUE); + elm_object_signal_emit(obj, SIGNAL_SELECTED, CHANNEL_SOURCE); + priv->selected_item = obj; + } else { + if (priv->selected_item != obj) { + elm_object_signal_emit(priv->selected_item, + SIGNAL_UNSELECTED, CHANNEL_SOURCE); + elm_object_signal_emit(obj, SIGNAL_SELECTED, + CHANNEL_SOURCE); + priv->selected_item = obj; + } + } + + text = elm_object_text_get(priv->selected_item); + if (text && !strcmp(text, ALL)) + priv->scan_type = SCAN_TYPE_ALL; + else if (text && !strcmp(text, CABLE)) + priv->scan_type = SCAN_TYPE_CABLE; + else if (text && !strcmp(text, AIR)) + priv->scan_type = SCAN_TYPE_AIR; + else + priv->scan_type = SCAN_TYPE_INVALID; + + priv->ugd->scan_type = priv->scan_type; + + _update_focus_sequence(priv); +} + +/** + * Clear the content of the box. + * + * @param[in] data: user data related to current view + */ +static void _clear_box(struct _data *data) +{ + if (!data) { + _ERR("Invalid parameter."); + return; + } + + if (!data->box) { + _ERR("data->box is NULL"); + return; + } + + elm_box_clear(data->box); + + data->last_focus_item = NULL; + data->selected_item = NULL; +} + +/** + * Add items in the box of the layout. + * + * @param[in] parent: the box created in the layout. + * @param[in] btnstyle: the style of the button + * @param[in] btntext: the text shown in button + * @param[in] fun_cb: the click callback function for the button + * @param[in] data: user data related to current view + * @return Button or NULL if creatting failed + */ +static Evas_Object *_add_exit_item(Evas_Object *parent, const char *btnstyle, + const char *btntext, Evas_Smart_Cb fun_cb, struct _data *data) +{ + Evas_Object *btn; + + if (!data) { + _ERR("Invalid parameter."); + return NULL; + } + + if (!parent || !btnstyle || !btntext || !fun_cb) { + _ERR("Invalid parameter."); + return NULL; + } + + btn = util_add_button(parent, btnstyle, NULL, btntext, EINA_TRUE); + if (!btn) { + _ERR("add item failed"); + return NULL; + } + + elm_box_pack_end(parent, btn); + evas_object_smart_callback_add(btn, SIGNAL_CLICKED, + fun_cb, data); + elm_object_signal_callback_add(btn, SIGNAL_FOCUSED, + ELM_SOURCE, _btn_focused_cb, data); + elm_object_signal_callback_add(btn, SIGNAL_UNFOCUSED, + ELM_SOURCE, _btn_unfocused_cb, data); + + return btn; +} + +/** + * Create the item list of antenna type . + * + * @param[in] data: user data related to current view + */ +static void _update_antenna_list(struct _data *data) +{ + Evas_Object *btn; + int i; + struct _antenna_info atninfo[] = { + [ALL_ITEM] = { + .style = ITEM_STYLE, + .cb = _item_clicked_cb, + .text = ALL + }, + [CABLE_ITEM] = { + .style = ITEM_STYLE, + .cb = _item_clicked_cb, + .text = CABLE + }, + [AIR_ITEM] = { + .style = ITEM_STYLE, + .cb = _item_clicked_cb, + .text = AIR + } + }; + + if (!data) { + _ERR("Invalid parameter."); + return; + } + + if (!data->base || !data->box) { + _ERR("Invalid parameter."); + return; + } + + _clear_box(data); + + for (i = 0; i < MAX_ITEMS; i++) { + btn = _add_exit_item(data->box, atninfo[i].style, + atninfo[i].text, atninfo[i].cb, data); + if (!btn) { + _ERR("add exist item failed."); + return; + } + + data->atn_btn[i] = btn; + + if (i == 0) { + elm_object_focus_set(btn, EINA_TRUE); + elm_object_signal_emit(btn, + SIGNAL_SELECTED, CHANNEL_SOURCE); + data->selected_item = btn; + } + } + + _update_focus_sequence(data); +} + +/** + * Create box in the layout for adding item in it. + * + * @param[in] base: the layout created in _creat() of current view + * @return The box or NULL if creatting failed + */ +static Evas_Object *_create_box(Evas_Object *base) +{ + Evas_Object *box; + struct _data *priv; + + if (!base) { + _ERR("base is NULL"); + return NULL; + } + + priv = _GET_PRIV(base); + if (!priv) { + _ERR("Data get failed"); + return NULL; + } + + box = util_add_box(base, HORIZONTAL_ALIGN, VERTICAL_ALIGN); + if (!box) { + _ERR("box add failed"); + return NULL; + } + + elm_object_part_content_set(base, PART_ANTENNA_LIST, box); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0); + + return box; +} + +/** + * Initializes the base layout for scanning start view. + * + * Create the beginning view layout based on window + * + * @param[in] vmgr: the handler to the struct object for managing the view + * @param[in] data: the user data related to current view + * @return The base or NULL if creatting failed + */ +static Evas_Object *_create(struct viewmgr *vmgr, void *data) +{ + Evas_Object *base; + Evas_Object *win; + Evas_Object *start_btn; + Evas_Object *cancel_btn; + Evas_Object *box; + struct _data *priv; + struct _ugdata *ugd; + + if (!vmgr || !data) { + _ERR("Invalid argument"); + return NULL; + } + + ugd = (struct _ugdata *)data; + + win = viewmgr_get_win(vmgr); + if (!win) { + _ERR("get win failed."); + return NULL; + } + + priv = calloc(1, sizeof(*priv)); + if (!priv) { + _ERR("calloc memory failed."); + return NULL; + } + + base = util_add_layout(win, AUTO_PRGM_EDJ_FILE, GRP_SCAN_START); + if (!base) { + _ERR("scan start layout creat failed!"); + free(priv); + return NULL; + } + + elm_win_resize_object_add(win, base); + evas_object_event_callback_add(base, EVAS_CALLBACK_KEY_DOWN, + _key_pressed_cb, priv); + elm_object_part_text_set(base, PART_STAR_MAIN_TITLE_BLOCK, + START_MAIN_TITLE); + + start_btn = util_add_button(base, BTN_STYLE, + PART_START_BTN, TEXT_BTN_START, EINA_TRUE); + if (!start_btn) { + _ERR("create start_btn failed"); + goto aborting; + } + + cancel_btn = util_add_button(base, BTN_STYLE, + PART_CANCEL_BTN, TEXT_BTN_CANCEL, EINA_TRUE); + if (!cancel_btn) { + _ERR("create cancel_btn failed"); + goto aborting; + } + + priv->base = base; + priv->start_btn = start_btn; + priv->cancel_btn = cancel_btn; + priv->ugd = ugd; + priv->ugd->ugd_base = base; + priv->vmgr = vmgr; + priv->win = win; + + _SET_PRIV(base, priv); + + evas_object_smart_callback_add(start_btn, SIGNAL_CLICKED, + _start_btn_clicked_cb, priv); + evas_object_smart_callback_add(cancel_btn, SIGNAL_CLICKED, + _cancel_btn_clicked_cb, priv); + + evas_object_raise(base); + + box = _create_box(base); + if (!box) { + _ERR("create box failed."); + goto aborting; + } + + priv->box = box; + + _update_antenna_list(priv); + + return base; + +aborting: + evas_object_del(base); + free(priv); + return NULL; +} + +/** + * Invoked when refresh the window of application. + * + * @param[in] base: the layout of the view + * + * There is no action in this application. + */ +static void _update(Evas_Object *base) +{ +} + +/** + * Resume the application. + * + * @param[in] base: the layout of the view + */ +static void _resume(Evas_Object *base) +{ + if (!base) { + _ERR("Invalid argument"); + return; + } + + evas_object_show(base); +} + +/** + * Pause the view. + * + * Hide the layout + * + * @param[in] base: the layout of the view + */ +static void _pause(Evas_Object *base) +{ + if (!base) { + _ERR("Invalid argument"); + return; + } + + evas_object_hide(base); +} + +/** + * Called after the main loop of the view exits. + * + * Delete the layout and release the resourse + * + * @param[in] base: the layout of the view + */ +static void _terminate(Evas_Object *base) +{ + struct _data *priv; + + if (!base) { + _ERR("Invalid argument"); + return; + } + + priv = _GET_PRIV(base); + if (!priv) { + _ERR("Data get failed"); + return; + } + + if (priv->base) + evas_object_del(priv->base); + + free(priv); +} + +/** + * This struct is for registering the callbacks for the view + */ +static struct view_class _vclass = { + .title = VIEW_START, + .create = _create, + .update = _update, + .resume = _resume, + .pause = _pause, + .terminate = _terminate, +}; + + /** + * Returns current view_class which implements the scan start view's life cycle + * + * @return view_class + */ +struct view_class *view_scanstart_get_vclass(void) +{ + return &_vclass; +} diff --git a/ug/channel/src/view_search_page.c b/ug/channel/src/view_search_page.c new file mode 100644 index 0000000..d9c1a37 --- /dev/null +++ b/ug/channel/src/view_search_page.c @@ -0,0 +1,614 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include "ug_auto_program.h" +#include "view_search_page.h" +#include "view_result_page.h" +#include "viewmgr_auto_program.h" +#include "dbg.h" +#include "defs.h" +#include "tv_scan.h" +#include "util.h" + +#define _GET_PRIV(o) evas_object_data_get(o, "SRCHDATA") +#define _SET_PRIV(o, data) evas_object_data_set(o, "SRCHDATA", data) +#define MAX_BUF_SIZE 30 +#define CH_NAME_SIZE 30 +#define INITIAL_CH_NUMS 0 +#define PERCENT 100 +#define INITIAL_TEXT "0%" +#define INITIAL_VALUE 0.0 + +struct _data { + Evas_Object *win; + Evas_Object *base; + Evas_Object *pb; + Evas_Object *stop_btn; + Evas_Object *exit_btn; + Evas_Object *cancel_btn; + struct viewmgr *vmgr; + struct tv_scan *tvs; + struct _ugdata *ugd; +}; + +/** + * The statement for "stop" button for clicking callback event, for + * there are two buttons with the same text "stop". + */ +static void _stop_btn_clicked_cb(void *data, Evas_Object *obj, void *ev); + +/** + * The click callback event for the "cancel" button. + * + * When "cancel" button is clicked, the scanning will be resumed. + * + * @param[in] data: user data related to current view + * @param[in] obj: a pointer to the object on which click event occurred + * @param[in] ev: event information + */ +static void _cancel_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _data *priv; + int r; + + if (!data) { + _ERR("Invalid argument"); + return; + } + + priv = data; + + if (!priv->cancel_btn || !priv->exit_btn) { + _ERR("priv->cancel_btn or priv->exit_btn is NULL"); + return; + } + + elm_object_part_text_set(priv->base, PART_SRCH_MAIN_TITLE, + SEARCH_MAIN_TITLE); + + r = tv_scan_resume(priv->tvs); + if (r != 0) { + _ERR("resume tv scan failed."); + return; + } + + priv->stop_btn = util_add_button(priv->base, BTN_STYLE, + PART_STOP_BTN, TEXT_BTN_STOP, EINA_TRUE); + if (!priv->stop_btn) { + _ERR("stop_btn is NULL"); + return; + } + + elm_object_focus_allow_set(priv->stop_btn, EINA_TRUE); + elm_object_focus_set(priv->stop_btn, EINA_TRUE); + evas_object_smart_callback_add(priv->stop_btn, SIGNAL_CLICKED, + _stop_btn_clicked_cb, priv); + + util_focus_next_set(priv->stop_btn); + + evas_object_del(priv->exit_btn); + evas_object_del(priv->cancel_btn); + priv->exit_btn = NULL; + priv->cancel_btn = NULL; +} + +/** + * @Evas_Smart_Cb type callback for handling the click callback event for + * "stop" button. + * + * The click callback event for the "stop" button in paused view. + * When the "stop" button in paused view is clicked, the scanning will + * be stopped, and channel ug will be exited. + * + * @param[in] data: user data related to current view + * @param[in] obj: a pointer to the object on which click event occurred + * @param[in] ev: event information + */ +static void _destroy_search_page_cb(void *data, Evas_Object *obj, + void *ev) +{ + struct _ugdata *ugd; + struct _data *priv; + int r; + + if (!data) { + _ERR("Invalid argument"); + return; + } + + priv = data; + + if (!priv->ugd || !priv->tvs) { + _ERR("priv->ugd or priv->tvs is NULL"); + return; + } + + ugd = priv->ugd; + + r = tv_scan_stop(priv->tvs); + if (r != 0) { + _ERR("tv_scan_stop failed"); + return; + } + + if (!ugd->ug) { + _ERR("ugd->ug is NULL"); + return; + } + + ug_destroy_me(ugd->ug); +} + +/** + * @Evas_Smart_Cb type callback for handling the click callback event for + * "stop" button. + * + * When the "stop" button is clicked, the scanning will be paused, the view + * will be changed into paused state. + * + * @param[in] data: user data related to current view + * @param[in] obj: a pointer to the object on which click event occurred + * @param[in] ev: event information + */ +static void _stop_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _data *priv; + int r; + + if (!data || !obj) { + _ERR("Invalid argument"); + return; + } + + priv = data; + + if (!priv->base || !priv->tvs) { + _ERR("priv->base or priv->tvs is NULL"); + return; + } + + r = tv_scan_pause(priv->tvs); + if (r != 0) { + _ERR("tv_scan_pause failed"); + return; + } + + elm_object_part_text_set(priv->base, PART_SRCH_MAIN_TITLE, + PAUSE_MAIN_TITLE); + + priv->exit_btn = util_add_button(priv->base, BTN_STYLE, + PART_EXIT_BTN, TEXT_BTN_STOP, EINA_TRUE); + if (!priv->exit_btn) { + _ERR("exit_btn is NULL"); + return; + } + + evas_object_smart_callback_add(priv->exit_btn, SIGNAL_CLICKED, + _destroy_search_page_cb, priv); + + priv->cancel_btn = util_add_button(priv->base, BTN_STYLE, + PART_SRCH_CANCEL_BTN, TEXT_BTN_CANCEL, EINA_TRUE); + if (!priv->cancel_btn) { + _ERR("cancel_btn is NULL"); + evas_object_del(priv->exit_btn); + priv->exit_btn = NULL; + return; + } + + evas_object_smart_callback_add(priv->cancel_btn, SIGNAL_CLICKED, + _cancel_btn_clicked_cb, priv); + + elm_object_focus_allow_set(priv->exit_btn, EINA_TRUE); + elm_object_focus_set(priv->exit_btn, EINA_TRUE); + util_focus_next_set(priv->exit_btn); + + evas_object_del(priv->stop_btn); + priv->stop_btn = NULL; +} + +/** + * Dealing with the receving signal. + * + * When receiving a channel signal, update the progress of the progressbar + * and the number of channel signal. + * + * @param[in] tvs: The tv service data structure + * @param[in] mode: The setting scan mode in view_scan_start.c + * @param[in] count: The number of channel signal received up to now + * @param[in] num: The physical channel number of current channel + * @param[in] arg: A pointer to current data structure. + */ +static void _progress_cb(struct tv_scan *tvs, enum antenna_mode mode, + int count, int num, void *arg) +{ + struct _data *priv; + char buf[CH_NAME_SIZE]; + int total; + int ratio; + + if (!tvs || !arg) { + _ERR("Invalid argument"); + return; + } + + priv = arg; + + snprintf(buf, sizeof(buf), "CH. %d", count); + elm_object_part_text_set(priv->base, PART_CH_NAME, buf); + elm_object_signal_emit(priv->base, SEARCHCHANNEL, SUBTEXT_SOURCE); + + total = tv_scan_get_total_channel(tvs); + if (total <= 0) { + _ERR("Invalid Total value"); + return; + } + + ratio = count * PERCENT / total; + snprintf(buf, sizeof(buf), "%d%%", ratio); + elm_object_part_text_set(priv->base, PART_PGBAR_NUM, buf); + elm_progressbar_value_set(priv->pb, (float)ratio / PERCENT); +} + +/** + * Dealing with the scanning result. + * + * When finishing scanning, the total found channels will be calculated and the + * scan result view will be invoked in this function. + * + * @param[in] tvs: The tv service structure for managering the scanning + * @param[in] res: The structure for saving the number of ATV air, DTV air, + * ATV cable and DTV cable channel. + * @param[in] arg: A pointer to current data structure. + */ +static void _done_cb(struct tv_scan *tvs, + const struct tv_scan_result *res, void *arg) +{ + struct _data *priv; + struct _ugdata *ugd; + struct viewmgr *vmgr; + + if (!arg) { + _ERR("Invalid argument"); + return; + } + + priv = arg; + + if (!priv->tvs || !priv->vmgr || !priv->ugd) { + _ERR("Invalid argument"); + return; + } + + vmgr = priv->vmgr; + ugd = priv->ugd; + + ugd->find_chs = res->air_dtv + res->cable_dtv + + res->air_atv + res->cable_atv; + + if (viewmgr_push(vmgr, view_resultpage_get_vclass(), ugd) == -1) + _ERR("result view push failed"); +} + +/** + * Deal with the found channel signal. + * + * @param[in] tvs: The tv service structure for managering the scanning + * @param[in] count: The number of channel signal received up to now + * @param[in] num: The physical channel number + * @param[in] res: The structure for saving the number of ATV air, DTV air, + * ATV cable and DTV cable channel. + * @param[in] arg: A pointer to the current data structure. + * @return 0 on success, and -1 on fail + */ +static void _found_cb(struct tv_scan *tvs, int count, int num, + const struct tv_scan_result *res, void *arg) +{ + struct _data *priv; + char buf[CH_NAME_SIZE]; + int found; + + if (!arg) { + _ERR("Invalid argument"); + return; + } + + priv = arg; + snprintf(buf, sizeof(buf), "CH. %d", count); + + elm_object_part_text_set(priv->base, PART_CH_NAME, buf); + elm_object_signal_emit(priv->base, CHANNELFOUND, SUBTEXT_SOURCE); + + found = res->air_dtv + res->cable_dtv + res->air_atv + res->cable_atv; + snprintf(buf, sizeof(buf), "%d %s", found, TEXT_CH_FOUND); + elm_object_part_text_set(priv->base, PART_SRCH_SEARCH_RESULT, buf); + + priv->ugd->find_chs = found; +} + +/** + * Register callback functions for tvs scan manager and begin scanning. + * + * It registers the callback functions and private data. + * _progress_cb When receiving a channle signal, _progress_cb will be invoked; + * _found_cb When finding a channel, _found_cb will be invoked. + * _done_cb When finishing scanning, _done_cb will be invoked. + * + * @param[in] data: user data related to current view + * @return 0 on success, and -1 on fail + */ +static int _start_scan(struct _data *data) +{ + struct tv_scan_cbs cbs; + int r; + + if (!data) { + _ERR("Invalid argument data: %p", data); + return -1; + } + + if (!data->tvs) { + _ERR("Invalid argumentdata->tvs: %p", data->tvs); + return -1; + } + + cbs.data = data; + cbs.progress_cb = _progress_cb; + cbs.found_cb = _found_cb; + cbs.done_cb = _done_cb; + + r = tv_scan_set_callbacks(data->tvs, &cbs); + if (r != 0) { + _ERR("tv_scan_set_callbacks failed"); + return -1; + } + + r = tv_scan_start(data->tvs); + if (r != 0) { + _ERR("tv_scan_start failed."); + return -1; + } + + return 0; +} + +/** + * Initializes the base layout for searching view. + * + * Invoked as soon as "start" button is clicked in view_scan_start + * + * @param[in] vmgr: the handler to the struct object for managing the view + * @param[in] data: user data related to current view + * @return The base or NULL if creatting failed + */ +static Evas_Object *_create(struct viewmgr *vmgr, void *data) +{ + Evas_Object *base; + Evas_Object *win; + struct _data *priv; + struct _ugdata *ugd; + struct tv_scan *tvs; + char buf[MAX_BUF_SIZE]; + + if (!vmgr) { + _ERR("Invalid argument"); + return NULL; + } + + if (!data) { + _ERR("Invalid argument."); + return NULL; + } + + ugd = data; + + win = viewmgr_get_win(vmgr); + if (!win) { + _ERR("get win failed."); + return NULL; + } + + priv = calloc(1, sizeof(*priv)); + if (!priv) { + _ERR("calloc memory failed"); + return NULL; + } + + tvs = tv_scan_init(ugd->scan_type); + if (!tvs) { + _ERR("tvs init failed, set scan_type: %d", ugd->scan_type); + free(priv); + return NULL; + } + + base = util_add_layout(win, AUTO_PRGM_EDJ_FILE, GROUP_SRCH); + if (!base) { + _ERR("base is NULL"); + tv_scan_fini(tvs); + free(priv); + return NULL; + } + + elm_win_resize_object_add(win, base); + elm_object_part_text_set(base, PART_SRCH_MAIN_TITLE, + SEARCH_MAIN_TITLE); + elm_object_part_text_set(base, PART_CH_NAME, SCAN_CH_NAME); + + snprintf(buf, sizeof(buf), "%d %s", INITIAL_CH_NUMS, TEXT_CH_FOUND); + elm_object_part_text_set(base, PART_SRCH_SEARCH_RESULT, buf); + + priv->vmgr = vmgr; + priv->win = win; + priv->ugd = ugd; + priv->tvs = tvs; + priv->base = base; + + _SET_PRIV(base, priv); + + return base; +} + +/** + * Invoked when refresh the window of application. + * + * @param[in] base: the layout of the view + * + * There is no action in this application. + */ +static void _update(Evas_Object *base) +{ + Evas_Object *stop_btn; + Evas_Object *pb; + struct _data *priv; + int r; + + if (!base) { + _ERR("Invalid argument"); + return; + } + + priv = _GET_PRIV(base); + if (!priv) { + _ERR("Data get failed"); + return; + } + + stop_btn = util_add_button(base, BTN_STYLE, + PART_STOP_BTN, TEXT_BTN_STOP, EINA_TRUE); + if (!stop_btn) { + _ERR("stop_btn is NULL"); + evas_object_del(base); + free(priv); + return; + } + + priv->stop_btn = stop_btn; + elm_object_focus_set(stop_btn, EINA_TRUE); + evas_object_smart_callback_add(stop_btn, SIGNAL_CLICKED, + _stop_btn_clicked_cb, priv); + util_focus_next_set(stop_btn); + + pb = elm_progressbar_add(base); + if (!pb) { + _ERR("pb is NULL"); + evas_object_del(base); + free(priv); + return; + } + + priv->pb = pb; + elm_object_style_set(pb, PRGBAR_STYLE); + elm_object_part_text_set(base, PART_PGBAR_NUM, INITIAL_TEXT); + elm_progressbar_value_set(pb, INITIAL_VALUE); + elm_object_part_content_set(base, PART_PROGRESSBAR, pb); + evas_object_show(pb); + + r = _start_scan(priv); + if (r != 0) { + _ERR("start scan failed"); + return; + } +} + +/** + * Resume the application. + * + * @param[in] base: the layout of the view + */ +static void _resume(Evas_Object *base) +{ + if (!base) { + _ERR("Invalid argument"); + return; + } + + evas_object_show(base); +} + +/** + * Pause the view. + * + * Hide the layout + * + * @param[in] base: the layout of the view + */ +static void _pause(Evas_Object *base) +{ + if (!base) { + _ERR("Invalid argument"); + return; + } + + evas_object_hide(base); +} + +/** + * Called after the main loop of the view exits. + * + * Delete the layout and release the resourse + * + * @param[in] base: the layout of the view + */ +static void _terminate(Evas_Object *base) +{ + struct _data *priv; + int r; + + if (!base) { + _ERR("Invalid argument"); + return; + } + + priv = _GET_PRIV(base); + if (!priv) { + _ERR("Data get failed"); + return; + } + + r = tv_scan_fini(priv->tvs); + if (r != 0) + _ERR("tv_scan_fini failed"); + + if (priv->base) + evas_object_del(priv->base); + + free(priv); +} + +/** + * This struct is for registering the callbacks for the view + */ +static struct view_class _vclass = { + .title = VIEW_SEARCH, + .create = _create, + .update = _update, + .resume = _resume, + .pause = _pause, + .terminate = _terminate, +}; + + /** + * Returns current view_class which implements the search view's life cycle + * + * @return view_class + */ +struct view_class *view_searchpage_get_vclass(void) +{ + return &_vclass; +} diff --git a/ug/channel/src/viewmgr_auto_program.c b/ug/channel/src/viewmgr_auto_program.c new file mode 100644 index 0000000..fa16da0 --- /dev/null +++ b/ug/channel/src/viewmgr_auto_program.c @@ -0,0 +1,279 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include "ug_auto_program.h" +#include "viewmgr_auto_program.h" +#include "dbg.h" +#include "defs.h" + +struct _viewinfo { + struct view_class *vclass; + Evas_Object *base; +}; + +/** + * Initialize the data handler view manager + * + * Viewmgr struct will be created. + * + * @param[in] win: window object + * @return The handler to the struct object of managing the view. + */ +struct viewmgr *viewmgr_init(Evas_Object *win) +{ + struct viewmgr *vmgr; + + if (!win) { + _ERR("Invalid argument"); + return NULL; + } + + vmgr = calloc(1, sizeof(*vmgr)); + if (!vmgr) { + _ERR("calloc vmgr failed."); + return NULL; + } + + vmgr->win = win; + + return vmgr; +} + +/** + * Invoked before channel ug is terminated + * Each view will be poped, and the related info about each view will be + * released in this function, and the viewmgr struct will be released. + * + * @param[in] vmgr: the handler to the struct object of managing the view + */ +void viewmgr_fini(struct viewmgr *vmgr) +{ + int i; + int count; + + if (!vmgr) { + _ERR("Invalid argument"); + return; + } + + count = eina_list_count(vmgr->vlist); + for (i = count; i > 0; i--) + viewmgr_pop(vmgr); + + free(vmgr); +} + +/** + * Evas_Object_Event_Cb type callback for handling deletion event + * + * Delete the layout and release the resouse + * + * @param[in] data: the data handler for view + * @param[in] e: evas handler + * @param[in] obj: the corresponding object which the deletion event occurred + * @param[in] ev : event information + */ +static void _view_deleted(void *data, Evas *e, Evas_Object *obj, void *ev) +{ + struct view_class *vclass; + + if (!data || !obj) { + _ERR("Invalid argument"); + return; + } + + vclass = data; + + if (vclass->terminate) + vclass->terminate(obj); +} + +/** + * Push the view in the top + * + * In push function, layout of current view will be deleted, + * and the related info will be released in this channel ug, + * and a new view will be created. + * + * @param[in] vmgr: the handler to the struct object of managing the view + * @param[in] vclass: the basic struct for managing each view, it contains both + * functions and variables requried in each view. It has basic functions like + * create/show/hide/terminate + * @param[in] data: data handler of each view + * @return 0 on success otherwise -1 + */ +int viewmgr_push(struct viewmgr *vmgr, struct view_class *vclass, void *data) +{ + Evas_Object *base; + struct _viewinfo *vinfo; + + if (!vmgr || !vmgr->win || + !vclass || !vclass->create || !data) { + _ERR("Invalid argument"); + return -1; + } + + base = vclass->create(vmgr, data); + if (!base) { + _ERR("create base failed"); + return -1; + } + + evas_object_event_callback_add(base, EVAS_CALLBACK_DEL, + _view_deleted, vclass); + + if (vclass->update) + vclass->update(base); + + vinfo = eina_list_data_get(vmgr->vlist); + if (vinfo && vinfo->base) + vinfo->vclass->pause(vinfo->base); + + vinfo = calloc(1, sizeof(*vinfo)); + if (!vinfo) { + _ERR("calloc failed."); + return -1; + } + + vinfo->base = base; + vinfo->vclass = vclass; + + vmgr->vlist = eina_list_prepend(vmgr->vlist, vinfo); + + return 0; +} + +/** + * Pop the view and remove the view information of the popped item in Eina_List + * + * In pop function, current view layout will be deleted, + * and the related resource will be released in this channel ug. + * + * @param[in] vmgr: the handler to the struct object of managing the view + * @return 0 on success otherwise -1 + */ +int viewmgr_pop(struct viewmgr *vmgr) +{ + struct _viewinfo *vinfo; + + if (!vmgr || !vmgr->vlist) { + _ERR("Invalid argument"); + return -1; + } + + vinfo = eina_list_data_get(vmgr->vlist); + if (!vinfo || !vinfo->base) + return -1; + + evas_object_del(vinfo->base); + vinfo->base = NULL; + + vmgr->vlist = eina_list_remove_list(vmgr->vlist, vmgr->vlist); + free(vinfo); + + viewmgr_resume(vmgr); + + return 0; +} + +/** + * Resume the paused view + * + * @param[in] vmgr: the handler to the struct object of managing the view + * @return 0 on success otherwise -1 + */ +int viewmgr_resume(struct viewmgr *vmgr) +{ + struct _viewinfo *vinfo; + struct view_class *vclass; + + if (!vmgr || !vmgr->vlist) { + _ERR("Invalid argument"); + return -1; + } + + vinfo = eina_list_data_get(vmgr->vlist); + if (!vinfo || !vinfo->vclass || !vinfo->base) + return -1; + + vclass = vinfo->vclass; + if (vclass->resume) + vclass->resume(vinfo->base); + + return 0; +} + +/** + * Pause the view + * + * @param[in] vmgr: the handler to the struct object of managing the view + * @return 0 on success otherwise -1 + */ +int viewmgr_pause(struct viewmgr *vmgr) +{ + struct _viewinfo *vinfo; + struct view_class *vclass; + + if (!vmgr || !vmgr->vlist) { + _ERR("Invalid argument"); + return -1; + } + + vinfo = eina_list_data_get(vmgr->vlist); + + if (!vinfo || !vinfo->vclass || !vinfo->base) + return -1; + + vclass = vinfo->vclass; + if (vclass->pause) + vclass->pause(vinfo->base); + + return 0; +} + +/** + * Get the eina list from viewmgr + * + * @param[in] vmgr: the handler to the struct object of managing the view + * @return The eina list in viewmgr + */ +Eina_List *viewmgr_get_list(struct viewmgr *vmgr) +{ + if (!vmgr) { + _ERR("Invalid argument"); + return NULL; + } + + return vmgr->vlist; +} + +/** + * Get the window object from viewmgr struct + * + * @param[in] vmgr: the handler to the struct object of managing the view + * @return The window object on success otherwise NULL + */ +Evas_Object *viewmgr_get_win(struct viewmgr *vmgr) +{ + if (!vmgr) { + _ERR("Invalid argument"); + return NULL; + } + + return vmgr->win; +} diff --git a/ug/include/NetConMgr.h b/ug/include/NetConMgr.h deleted file mode 100644 index 38c0498..0000000 --- a/ug/include/NetConMgr.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef __NETCONMGR_H__ -#define __NETCONMGR_H__ - -#include "UgCommon.h" -#include "net_connection.h" - -class CNetConMgr { -private: - static CNetConMgr *instance; - struct SNetConMgr *m; - -private: - static void sm_CbIpAddrChanged(const char *ipv4, const char *ipv6, void* data); - void m_OnIpAddrChanged(void *data); - - static void sm_CbProfileStateChanged(connection_profile_state_e state, void *data); - bool m_GetEthernetProfile(void); - bool m_UpdateProfile(void); - -private: - CNetConMgr(void) : m(0) {} - virtual ~CNetConMgr() {} - -public: - static bool Initialize(void); - static void Finalize(void); - static CNetConMgr *GetInstance(void); - - void RefreshEthernetProfile(void); - bool GetEthernetState(bool *state); - - bool GetProfileName(char *out_name); - bool IsConnected(void); - - bool SetIpConfType(connection_ip_config_type_e); - bool SetIpAddr(char *ip); - bool SetSubnetMask(char *submask); - bool SetGateway(char *gateway); - bool SetDNS(char *dns); - - bool GetIpAddr(char *ip); - bool GetSubnetMask(char *submask); - bool GetGateway(char *gateway); - bool GetDNS(char *dns); - - bool SetProxyType(EProxyMethod method); - bool GetProxyType(EProxyMethod *method); - bool SetProxyAddr(char *ip); - bool GetProxyAddr(char *ip); - - const char *GetErrorMsg(connection_error_e err); - - bool RegisterIpChangedCallback(void(*ip_changed_cb)(bool change_state, void *data), void *data); - -}; - -#endif /* __NETCONMGR_H__ */ diff --git a/ug/include/TVServiceMgr.h b/ug/include/TVServiceMgr.h deleted file mode 100644 index 550e01c..0000000 --- a/ug/include/TVServiceMgr.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef __TVSERVICEMGR_H__ -#define __TVSERVICEMGR_H__ - -enum antenna_mode { - SCAN_TYPE_INVALID = -1, - SCAN_TYPE_ALL, - SCAN_TYPE_CABLE, - SCAN_TYPE_AIR -}; - -class CTVServiceMgr { -private: - static CTVServiceMgr *instance; - struct STVServiceMgr *m; - -private: - CTVServiceMgr(void) : m(0) {} - virtual ~CTVServiceMgr() {} - -public: - static bool Initialize(void); - static void Finalize(void); - static CTVServiceMgr *GetInstance(void); - - bool Start(void); - bool Pause(void); - bool Resume(void); - bool Stop(void); - bool GetAllChannel(void); - unsigned int GetServiceType(void); - bool IsStopped(void); -}; - -#endif /* __TVSERVICEMGR_H__ */ diff --git a/ug/include/UgCommon.h b/ug/include/UgCommon.h deleted file mode 100644 index 3102b9f..0000000 --- a/ug/include/UgCommon.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef __UG_COMMON_H__ -#define __UG_COMMON_H__ - - -#define WIFI_DIRECT_DEFAULT_BUF_LEN 256 -#define WIFI_DIRECT_STATE_BUF_LEN 32 - -enum EProxyMethod { - PROXY_METHOD_NONE = 0, - PROXY_METHOD_MANUAL, - PROXY_METHOD_AUTO -}; - -struct device_info { - char dev_name[WIFI_DIRECT_DEFAULT_BUF_LEN]; - char mac_addr[WIFI_DIRECT_DEFAULT_BUF_LEN]; - bool is_conn; - int wps_types; - char wps_pin[WIFI_DIRECT_STATE_BUF_LEN]; - char state[WIFI_DIRECT_STATE_BUF_LEN]; -}; -#endif /* __UG_COMMON_H__ */ diff --git a/ug/include/WifiDirectMgr.h b/ug/include/WifiDirectMgr.h deleted file mode 100644 index c6e5d8d..0000000 --- a/ug/include/WifiDirectMgr.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef __WIFIDIRECTMGR_H__ -#define __WIFIDIRECTMGR_H__ - -#include "UgCommon.h" -#include "wifi-direct.h" - -class CWifiDirectMgr { -private: - static CWifiDirectMgr *instance; - struct SWifiDirectMgr *m; - -private: - CWifiDirectMgr(void) : m(0) {} - virtual ~CWifiDirectMgr() {} - -public: - static bool Initialize(void); - static void Finalize(void); - static CWifiDirectMgr* GetInstance(void); - - char* GetDevieName(void); - char* GetMacAddr(void); - bool GetState(wifi_direct_state_e *status); - bool Activate(void); - bool Deactivate(void); - bool SetMaxClient(void); // set_configure_num - - bool GetAllDicoveredPeerInfo(wifi_direct_discovered_peer_cb cb, void *data); - bool GetAllConnectedPeerInfo(wifi_direct_connected_peer_cb cb, void *data); - - bool StartDiscovery(void); - bool CancelDiscovery(void); - bool Connect(const char *macaddr); - bool Disconnect(const char *macaddr); - bool AcceptConnection(char *macaddr); - bool GetWPStype(Eina_Bool *is_pbc); - bool SetWPStype(wifi_direct_wps_type_e *type); - - bool SetDeviceStateChangedCb(wifi_direct_device_state_changed_cb cb, void *data); - bool UnSetDeviceStateChangedCb(void); - bool SetDiscoveryStateChangedCb(wifi_direct_discovery_state_chagned_cb cb, void *data); - bool UnSetDiscoveryStateChangedCb(void); - bool SetConnectionStateChangedCb(wifi_direct_connection_state_changed_cb cb, void *data); - bool UnSetConnectionStateChangedCb(void); - - bool UnSetClientIpAddrAssignedCb(void); - - - const char* GetErrorMsg(int err); -}; - -#endif /* __WIFIDIRECTMGR_H__ */ diff --git a/ug/include/WifiMgr.h b/ug/include/WifiMgr.h deleted file mode 100644 index ceaea96..0000000 --- a/ug/include/WifiMgr.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef __WIFIMGR_H__ -#define __WIFIMGR_H__ - -#include "UgCommon.h" -#include "wifi.h" - - -class CWifiAp { - friend class CWifiMgr; -private: - wifi_ap_h m_handle; - -private: - bool m_CheckErr(const char *func, int ret); - -protected: - void t_SetHandle(wifi_ap_h handle); - -public: - CWifiAp(wifi_ap_h handle); - virtual ~CWifiAp(); - - wifi_ap_h Handle(void); - - bool AllocConnectedAp(void); - void Destroy(void); - - bool GetEssid(char *essid, int size); - bool GetConnectionState(wifi_connection_state_e *state); - bool GetSecurityType(wifi_security_type_e *type); - bool SetPassPhrase(const char *passcode); - - bool Connect(void(*wifi_connected_cb)(wifi_error_e err, void *data), void *data); - bool SetIpType(wifi_ip_config_type_e type); - - bool GetIp(char *ip, int size); - bool GetSubnetMask(char *submask); - bool GetGateway(char *gateway); - bool GetDNS(char *dns); - - bool SetIp(char *ip); - bool SetSubnetMask(char *submask); - bool SetGateway(char *gateway); - bool SetDNS(char *dns); - - bool CloneAP(wifi_ap_h *cloned_ap, wifi_ap_h origin); - - static bool ForgetAP(void); - - bool SetProxyType(EProxyMethod pm); - bool GetProxyType(EProxyMethod *pm); - - bool SetProxyAddr(const char *addr); - bool GetProxyAddr(char **addr); -}; - - -class CWifiMgr { -private: - static CWifiMgr *instance; - struct SWifiMgr *m; - -private: - CWifiMgr(void) : m(0) {} - virtual ~CWifiMgr() {} - -public: - static bool Initialize(void); - static void Finalize(void); - static CWifiMgr * GetInstance(void); - - bool Activate(void(*cbActivated)(wifi_error_e err, void *data), void *data); - - bool IsActivated(bool *activated); - - bool Scan(void (*cbFinish)(wifi_error_e err, void *data), void *data); - bool FoundAps(bool(*FoundCb)(CWifiAp *ap, void *data), void *data); - - static const char * ErrorMsg(wifi_error_e err); -}; - - -#endif /* __WIFIMGR_H__ */ diff --git a/ug/network/CMakeLists.txt b/ug/network/CMakeLists.txt index 0fac965..b3854a2 100644 --- a/ug/network/CMakeLists.txt +++ b/ug/network/CMakeLists.txt @@ -24,6 +24,7 @@ SET(UG_NETWORK_EDJ_THEME "ug-network-settings-theme.edj") INCLUDE(FindPkgConfig) pkg_check_modules(UG_NETWORK_PKGS REQUIRED + dlog eina edje evas @@ -35,8 +36,9 @@ pkg_check_modules(UG_NETWORK_PKGS REQUIRED capi-appfw-application capi-network-wifi capi-network-connection - application-common ) + #ecore-x + SET(PKGS_LDFLAGS "${PKGS_LDFLAGS} ${UG_NETWORK_PKGS_LDFLAGS}") FOREACH(FLAG ${UG_NETWORK_PKGS_CFLAGS}) @@ -46,19 +48,18 @@ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=hidden -Wall -W SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}") SET(SRCS - src/ug_network_settings.cpp - src/NetworkMainView.cpp - src/IpSettingView.cpp - src/WifiPasscodeView.cpp - src/util.cpp - ../src/WifiMgr.cpp - ../src/NetConMgr.cpp + src/ug_network_settings.c + src/main_view.c + src/network_viewmgr.c + src/ip_setting_view.c + src/vconf_mgr.c + src/wifi_mgr.c + src/connection_mgr.c + src/util.c + src/wifi_passcode_view.c ) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../include) - ADD_DEFINITIONS("-DPKGNAME=\"${PROJECT_NAME}\"") ADD_DEFINITIONS("-DUG_NETWORK_EDJ_FILE=\"${UG_NETWORK_EDJE_DIR}/${UG_NETWORK_EDJ_FILE}\"") diff --git a/ug/network/edje/images/btn_down.png b/ug/network/edje/images/btn_down.png index 44a3166778f1d576b9708fbcb4ce815e5cf3c1cf..91946d8bec021761021295553480dc7962fa50d0 100644 GIT binary patch literal 17853 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 delta 233 zcmV@@NMR-ek4YJm%haQmV0?hg06Zec)4_!cCK&e^t*1Sn0P} jCeCshv$%+tDBIu{Dvb1DwR&h^00000NkvXXu0mjfhel~N diff --git a/ug/network/edje/images/btn_focused.png b/ug/network/edje/images/btn_focused.png index 76ade5dc90b2c09a985a5fc39f6c04cbe61d1c33..23bf3110e10797618b2b3ec49c3678405a8c9bd9 100644 GIT binary patch delta 258 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 literal 1404 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 delta 229 zcmVL_t&-(|yoE zNxgor-Qz<{)4+#U}s$iRvym7nNdPEdLFIQ z+Ow<*H@v3uA9q4%`%cc()iGRHq~Kliud8XE+z-V8zW1BV7x~Ezxk*ZvIwJIKL1|cf fV+c=5ur=5N2Tt@&)2F=`00000NkvXXu0mjfsMKc{ diff --git a/ug/network/edje/images/check_foc.png b/ug/network/edje/images/check_foc.png index 92456ad3351499154316124609ebc0d5942d291b..95b02f083fecb74be384e9e7b71e5425a36498a9 100644 GIT binary patch literal 18316 zcmeI3dpy(a|HnUzoRuPn#65J7>}aFS%wdF_!eml1+sty;1m2>v_Ge>vL_7$7jnj zS9@iJ*$MyvC_6gXdWhaRV=p-w(f|5~Z=6JL@*D>r9sodV#$J$9k+fm}P;g_BNXwQ5 zvH5IX5Ss&aB$1#TE<2DF!T&G{>U<+T zd6lI}dVBB9az8)A&Q4nUQht)u_U$p-X1N}=9V|h3gwj29ZcM@F-nJQbZ0!=bg{1fQ5W1QR$(p&P?0OA>+yySAi(=* z0%4K9Q1&bU5!_Ie1B5O)Lgbvp(do}@vQ|Q3HbaE`)WuG6F=~KS)OMQ#fYlO6Om60U zPat0!@Nb|6bOOs@fd7JxPi_D)x$m>qLjd1hdb1$;sQ^@!kz@-5nFEKLmv6NLC`dpp z(5Vgw+=T&1NAExf;OI#}*rcLZ2FNJ^NcW`pg@E*W!2gngfdJT?1*k0<@Fu)oRI1Wr zBqEhnMyQ;Nvy1hWgN4g_d&6}Nn;bP3shLuzP_wPzHIZ3b=vd73hl5uEAU}1MXtaaF zf~IMuO--iTE2gc6Jv%2esvi*0Inv!+%&`K1NBroP5o1L8>=<*In9z}Z^ZKNN{1o%o z4kZVcO}9D$dGB6#SJ&O8bvC}#E8ZJMm^G_~-oqguq6wde-ab70 zcy26uRjj@A`-e4G-#8b{Y2GQnIiUSXiv8!4ild)(Zs^xJ22@gv)H>Z~hHtmc-ZqFX z(BERSbK!+~*GK7(JB&X`5j(KJ(KSTK`c&A#RWzx0P772heBt9E02ruZpTB7+ClwR4 z=}~jUXusvKef~TkCeU$bH~{$B&V`e&lv`eu0|49nSfiuX+HcNl8VhCSoS)i$Uh%WP z>1La`bu~6BHVX8ZIb8pRhvRGv6B>`|82KY^TIpbf?m-D@oN4eHuT#@3IMY8;#UqTVIk>rRudNK?1f?47ST@WW~SNJMSPpGkGrba*~?6zEdjJ0p+ok4E1u*8L;3^ z!6mL-ayr%g5`d2ToKS6#+7(;oZgErT1gY|%+3d|r_9iId>xW{K(Y%|^4 zbFDaNdTR=ibP*|hswrzy7lMS>*V-IgY%HHfYdEHVSgE*v_R-~srK+~Pr8OUmke(T9 zCzLmpjG=H9Gd|R52B1-i6bEC2 z+cQ&C5i0AGNOfj&XKo>(7gX+;;&|*I^7Wb5ms}6?Fz7Wtl!I}YZIE`kl^$Fsi`!)k zU34kFE4Qn*%cM)YOK-qeAveG({Ga!pj}1MptXZnnt`5ystO(+CR;B zD)lBpNjYKGri)2TL#-T5Sxu%^gyxY<=L1?dlC>_9k!GmpnLSz4v)En~qY9%xXQf_I z*u8Z3{N36{2=bw#14R#t6ukz$8ptV!{5&_5F7Yz)>^vlYGricWD0kUΠ@;A@hTY zMa+Y2vgJR~KEqpNd}^I*-AMnq=O0_$SzQlRq-m84jP-(*ixbwyV(aD~YrOa8I-{!0 zVV$aEi=sn&aU_$aCf?;9gS!GPWjiy&-|ykO%J&!+W(-DeeW2FA@bNFJCnBI^oGBNEo7Aw?@cS#S)minJI+a*QB#TwP9f$E7vpUhCNe*S;^Zpn3TN5DXsyYL4@aM*WbT%rfVtxZTPB3 zQPX@ zcCOdRL|j_MiQL;%^CrGf{SbVnF+SbOImvbLu2GH z-4Sk6r00@W!FHmB5<;%qvf6hYKU7>-NpB9k9@zWj0W8mVT6$5& zlZJ#jQ5q>Y-uc<+E*G5HFWofwvf+96yy0S(a`o>V2R7DRfndYiRh( zi&EF6hGh+=Rotn(c}wTI1=%Cz_M+$Z(=PsTb|kky0;X)L?Df~4`o{(w+sLloA^DCW zU1fahx^3$ZKa#!i$2uLR4q}Z>_CWTM9M9}ez5%|c-L4W_Za;ev_1V7dkLi0b1fR&I zgXGJs*50@qY0QDY*+=lJL!a@V5k}H(xLvH;QxiYx2FY3&R^?^gZ+IeP8_urg}e62ou z`&J&#;{KVzDE82Wp|>6C_oKNBhMO9y?nNxwzS(1$;5AJ9!Y(hGMzLvB`c*NK{?@h-eMvS_t=s<-21tZ)J$)lpQkahZ=|7A zLmd(Q{?_w5O)Z%%douEGWm z-L30S=tjfQpby91dR{C1l%|!IHYzQZIry1o0&4>RyatO*;Zt0k@icZQoJwa0FyMmF zu~R7k5G(~8DlM47hXyd1tS}4x{;G5OP!`=n-y7?Kbm5Q~K`e(TF2gg*l}w8Yrs3%N zmP7@D051v<%HUI>g3ypK9$sLfKOPq^`aD*Q(1(s!;RjpjTaPserMN7ElGt1Z6br|~ zXh<{)YKDWOuoxT)Wei0lQ6>l!5`o6SP$)dc439E}e!29C3ZhR0EdBXp{jxzGIg-ObcrbYEwOks*ZXF|xZ}6*5&}rY|aMp4|#`(}`2u27aROG@FbsqK0 zE^xkn1Nr9uLpQ$3za2fF75IH}e()Vre(S~%uzuq*H@hI#f zBo2>6P6{$n6BNTml=gHgpZag2{7@GhhfQY%M*gcP-)sID!^H*f7{=pM!)OdgTcT*} za2AV>$1O(UP&676M#Gu~z;HCoVi*-|hJ;a3i>ZM)Is=WR;>HL0qx(;xZP~Q7V>$FC zG+h)r5W~QlU}!X$DHdl6!=f=L7%mWrg<%(Ca5Pf}HV}mg_!@eW`%j_WxGd2oL=Bl# zXRP=C-6nn!=BK6{SUgecL{3U6QDTj6GoFm_A4|UqA*}K3fWzY$TA4

>zn5nH`dP+`0prB#GmB;`!*ti7-8ZPej?O( zt=|XXu><)LR4&7sDawieunZ>x{^$XYOhAn7$sw%&gE`<)*Zt3C;NLBw|L-&KJ$GqA z)G#K4PDFf7+ph)xZqg>E^2hb`bsPA3{SoLid?1?}O63z-p;RUV!3kp$5Z?>Gw@LVR z7s8X+A#AP-o6aDb5D>pA{-u}b$F*e>zpW8@9`-g+M>~=!3TJ8xL&H&%!%V6-DbCn^ z3@_SaMEOn~U)v&|pUS}XDPwy@$lCGxXp{+3bcs$pqU($AWF745^B;UC>tNsSu3lj* zJ`w$;IZ*K=ud&$-jv`H&j+MRaDjk`Hzl~l^8u+6Tp%FgO$jdXd_bxM7YK-WQ-Vu8 zACM}+1p*@8l;9H22c$}Hfq;lNCAh@%0jUyPARyvR2`=$`K&k{62#9!7f=fIfkSf6i z0wUg&;1bUVq)KpsfQUCGxWw}TsS;cuAmU94F7bRosstAZh#g#O#tv=RP^2p z0Bex|@XTNI2x%q&Xs~y#zOV!UrtEUGwI&N%U$j{ytGa7iJxap{>BZ&ermJsFx|@`n zpMUTKrHHb1=O0kY2lo%LA$q6cPpn&4234$5P)}dpniN1?C>MuTcl7s3$6mhL-frHH zbAj>}?1&U3W-0Z0dByK;i%Yb!QoSavc1;=saj_Epi7}Rqi5SS#v6?yiqI3R;e&XJ< z{niYBjaORlE22A}$Es!qTRfcqO6NUr7+4+4c$i;!t-4Ld7?KiuM!O^*T9Gz1+FXfg*04PKlRU+H;wFhJhVQSd%%@kSo33~Oe7$6x2y?w!aHQH~D@W71P&PJ)D3+v7bYM;Ed ziU@!6k)Gfi58@_76Gnb>@$keKZ4LODohad6sM) Qd#Ksb&egWm#y{@A0MFV|1poj5 literal 647 zcmeAS@N?(olHy`uVBq!ia0vp^1t8493?x6=u~Y)7IRQQ)uK)l4ckLgfNS@=$aiBYm zOM?7@85md$?W7s=UhmOhp7&mN{yFocIF(ITMUU_%)WtB9}P@yk5-kWBUE?J=@8OCf(KR z!gihfnP0O!-zM36^+5*376B&?5Fr`OxjrH`dcLi3pwr6((M* zue#!^P*YVue_UMe`ux0RTQiG2vvrIA3%n{kczk)3oW?uAFd9 z=KApIjB?+3<8>EZecY6vBJx&Fyym|_Ctv?x`MSE7uG5d-&s2*F{J6|kKS}>;XP$oA z=Xc$5aaS@IcD1&Pm)mGQ+TJc+DW|olUA&q>+I6yc?IUTI#p3o!8Lpev4K8Q6bgLV> ze07gTe~DWM4fECD#H diff --git a/ug/network/edje/images/check_nor.png b/ug/network/edje/images/check_nor.png index 810a67849ee6592eb31230edb6281ff26b2d6ab4..2a3e5d9e284741d04dd7a24fccd75c7d70f997e0 100644 GIT binary patch literal 18363 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 Yy=rbEByQ(SJ_BuIX=jmR?!M>00N)aK8UO$Q delta 626 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 delta 228 zcmVD000DMK}|sb0fwM4=$2mq0065=L_t(I%k9)L z5&Lw{}vHR7H@;jNQz8e<~J|%UM2;4 ze{?=Dzkz1jYopi%GY6ZMTd#CCntD5M{*XHi@ej7&b{up0byu*{8q^^4MI*O!DkSlq_w6 eivJ(+1*!qV%BY&imBwKJ0000ZgJ@5 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 IM6N<$g5VunAOHXW diff --git a/ug/network/edje/images/ico_spincontrol_down.png b/ug/network/edje/images/ico_spincontrol_down.png index 0b7ff543ef0fd0adcef1d0ac44601885a00f984e..fbeb94b1ec136d4734be1fcae979b1f27d822deb 100644 GIT binary patch literal 17890 zcmeI4c|6qH|HnV#B5Q>t>5iq6%xax!jAg7L+X(GrHWRZjQ-exWqU9zjYh0~%6{Uni z(uyc;NQESqzSnYfD||ne(5IT;{XKr)-yh${V?K|^n0cS~dA-j$&+|U#b7mfokNvKz z?c`+^$^ZZ$?_h834!&!Hues8a;9oC)l~M3*HrL*V2LQ54V=plv`NRSMka1xWiLS1G z96pEV$Kk>ph(s7Sh(l)v&;TI#MXCpbR`BX>{30= z*>hG!Yo2_r;#M)&#zsQ@PI|QX;ltsFRNVCC4#+%{YS%nD^ja;fWpSnwlRX`tLWr5v>=YE<#PRnmH~@V#Q?{8&>*>2PJhBJ{A;Il#hJEIc)F zsRxiQ0c^fc@ofWK;lSo)yWTzm!c#vcZ5IR99n(}1OOFL$O0;Nez;7jxTes$b4d9Ie zlq(bf(I_9g+!wtZgsKUd_> z>C^*BB^BU{b+9%O>!jgk{SA-}fP_;8WJCiwdslA~I_zHK8NbvaxM0C>$0s~^!v7A_25DH+ZhIklu$!f&H& z`qrU?^a4eT%RqY93$K3e7#o|DM~a_6?`Us-wyMf%9r>Qu&JjlCrgE?0fWO1=Uxo%> zU4Nq!f!PpYC-L!B<%0pIvy1AE&fe?W{5Hn!%N5ztFB*@usvLZaz4esa+~x%ywoX3O zk2$Ng-|Fb{TT2>7sc%~KKZ_GujerYV2x8k~;h7sK;(s|Vo8!$de=`ICeI=ZV$GXzu z;eLBw*9k^Hm=D{fF9E{o4o3q4V57ATf^@IY{I)azSf@wmU9eOis92z1F1e`Um*xuD zFPn|`TIp0(TFtSNp@uIC+Ppk>x0UX`nhP3wn~{$#Gz`n#{Px9h6%du4R~5{-il4~R zX%)Jq5wj&M??@|=HD5%F`5y4rJ}j-86!}rJ!d_zDK^@rLXk|Ao$5c%pS{KCKhL!EZl2*O7Pw`G-D$D9ts4oO-f#?te2vU^MB zNzz=Sn6*}UCyU(AyG3Ox8E#F+*6f+@;CMFg)bU3P{Z##inCIW|ugz^azIb)QL$8MW zU3Tvh-iZ$gzFbM|eGFsfR5vF7=X zZF(h%!x|+A&9bvjVu=Q;47>{6`;XDhrP>k$Kc3*Pp53XNkOAc}t#@l^73FGF4Ka1`bWnEFb z(D6*NDZhwSw3E#6Rb^bcm4CB0t}JfnwVl5Wn@Pz>Jy*!lSgR4nyA-61TZ4OeVfG%Gy`) z2Lm^}4s94rO({&N?8$68-)r2uhdL8$V{4fTk*;Cyo;;Kyza<~M878+ZGAhz*pZQ^KwD-b#bb^tfzM05t zwf3hp#fyBV;4C;9rghlA(8?ythw|?pA zk9w2(Mz(FcY9jK^25!j7+RA~*jQLrJdHT3`3#aJSrpNweIY%#Z{-Gs(N`fVaWkM=7 zDj8bHdgJ=&XTp6!W{Uf&2C`9L$!CC!|;=RkVj+8pdJGG?X(&i^`gRwAX zxH9yfqp?QPZzaXkPRiHT&;j<8#th)buG4X)4=Y<5>g*q}vEttDipygD-LjrC9g#b`o1gY< zaPda^v|c8E+Lx+MP}zSVU%5#&L1ou7-R9s9^(fB08%fQ_E@kCZ6;tcz4fL+JFX3tH z6ymcJ-XL%}OKBN*Yim}Tlg^L^NS{c? zy$vmw$xlDB>wDF=m;Pn=M`P2v(xG9(-Rn)BVxG>8^hVlehtGvW=K1@xyFSK$W^Kq@ z%?j+fE#4qLETyeb^tAYKqeg=n$vx)Dif%iF+rM5PN&O&z%Nxsk{&u4JjW*Xhq`hls zcI(h$dEAR_hqmXwmU{H-HVuXba*I`RU$SkANAl-&zU!{JJRsCRdH*u>i(S*NiYE;5 zJ|V06Nq3nqx^_Q`WAxP>NC9kVq$>(vKSnv7o@gs4MTyB?~C`ryQUhiMr8(MaGJAJ52J_CdhU@{kpMxc;C5ji^xm$6tsRPy*X z+rXYoj_ijG@<<_E8q%G{<7^G0&}_ER*nI6Db%IKnio@L+6fn+*NBXe>~|13QoY zVHdbxzky82zv;%5`=_JlGwIWl^Nn`Q^HUiunE4agm}f#Zo(dB)ga`8vM+~Bo`J5mU zhZ8`U$g=70PvF-lT`wk^$`SCEH&3Oz&qU1*meCb$Wa17_42 z>;3<>i64adt|@ya4@{kq87T!O*7!E#K@0r0^s6I)Ilf(R$w55Y*eW#B`nn9K_Lr&c zV@xx?nsH>x*hWL3jO8kgibsA^I^C@)<)n=H{RI9q$`kQt$ba63z>mfjmhcmy#%ujN z2#-VO3&=q7i68X1oq+mi#B{||G(BX9e^&A>lfLjUbEFrB*;KQfy^ zqY{u`)Ann@Kby3Psr+_5ecfTcUw?Qi1xM!uvB-P^lSO9GkX$wckDM-?ZWBLs7s3%a z0h}Ob4wXhQz$1TD{6iJ^sz#u^*LF$na`Ff;1Sh%%D}&be9@{GdwvN{~!JxnkJn(?mq;#emD)kXAo#}>3riD71XIh9hnJJv%m=sQ= z(~Q&G_!coy3Z4zYV<~d#T>9PaF}1(`CqGP&=sy`15=+zw1c-1`giAOdh*yLQ0z|ke z!X=y!#4ExD0V3QK;S$aV;uYb701Ai_-%F5!G2UJ)(`5aFf>mvBB1uLu_eh;UPcOE@2hSA+`!M7Sx!C7ch$E5Zc< zBHR?=63z$W72$#a5pIfb3Fiaxif}=I2scHzg!6%TMYte9gqtE3+EsqB3<%g16jYZXOF(>z7}>PDkYw)QZok(!Pj_{N?7cS`-1@Xkc;#yU1Qp1K;N zcIH2QS*qTs|EiI#>T0{ei|h&Y{V7n~!PAXZ|U zc1f@{akCWidd_bxOx)-!rGQsi5)D;vFYUanhL`epV8`VyE!H1d;gMCeBPAYnP_7>f Z?A^PZanHR#792U?V6)mf-)i&je*=kyrUd{1 delta 259 zcmV+e0sQ{rivg1YkQsjj0002}V%>BA000DMK}|sb0fwM4=$2mq007EKL_t(I%iWVb z4gp~lMeh((DVdrLAU41ngxCVX8pINmVhdsm60rdr5YZ})W+s`Vn2%(bpJqhjz3#qq zPxma8#}sn0d`mNuCxm>>V)==DA>?Ts$$8%nSHf9iM=mxibGducjkZ2DqQ=qS2b@>x zus7+E`gvF*;yGuU$z-}lRM-Kqr<%rDna@ztQbkSWr$O18Up~WMXdd}sJ2^!EMKb^Z002ov JPDHLkV1gi;ZSMd8 diff --git a/ug/network/edje/images/ico_spincontrol_up.png b/ug/network/edje/images/ico_spincontrol_up.png index 9adb1654d765617d3a47cce6940b15c7ba260ed7..f5b25873540507e3accfe8b0a377d73872511cb0 100644 GIT binary patch literal 17871 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 diff --git a/ug/network/edje/images/ico_wifi.png b/ug/network/edje/images/ico_wifi.png index 2a24aaa613295d7b6cf93a3fbb121bc4d6341ca4..16032e9c088978ef2c87bd669e5b895dca007f39 100644 GIT binary patch literal 18239 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 bfc*!(t3?rIQiRhT00000NkvXXu0mjf$p!mg diff --git a/ug/network/edje/images/ico_wifi_lock.png b/ug/network/edje/images/ico_wifi_lock.png index 0370d6772e7e4629931c149f31e3c44da650fd1e..b485a2ddc46a32444a4d627584dd695e80a0e2db 100644 GIT binary patch literal 18310 zcmeI4dpwix|Hp5U^H~V#Gb1G1%y~0&*qm|-6H+nT%yQV+%Be)

G~+igb`;Diw(e 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 delta 596 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

O3xuZ!1 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 B5M%%V delta 468 zcmV;_0W1E^jRE2VkQsjj00002G$ADb000DMK}|sb0fwM4=$2mq00EgvL_t(Y$L*G{ zQUXyFhkxrBgzEANVn;9l!DNs|7K``_bcPD=0F}{X0fS*lY|+S{CqPKpKLa2OEX!VJ zoiTWBy0iCuch8)Ae&<*yIy;Jx^@m}{fnN*CE30#zN}6e)o*aKY2b{-$#i-NA&-&Df z`Fr`J%8USTsgT1)2%9VwTmVKqgoU*L=#ufhC_@*3Rv1_tm{Zyl{$kxS2ik{VO<+PQ z5G6#43D69J-2-nc5CwkNEnA{1Jl*cVojB-ALx$9 z@0Y}JDk)*?Z%dl(!iJL0jA2PhgI(BWUcy>#>A3}SBo&QeMR^}ol;z~jrX#6l^j|e? zK6KALamL0HG$tM_j^RSR2o^^Xscef#8;V%9y3U?(({xP2w>lxpi~)G3O4ieatGod) z4&Q_qnQbh)_qMq-yczT^D{$Dm(zWtReh)5=I(prI-1?s!jqMAvFK6j@&<0Nc0000< KMNUMnLSTZX9M3!e diff --git a/ug/network/edje/images/radiobtn_off_nor.png b/ug/network/edje/images/radiobtn_off_nor.png index e7e58ccdb24dcce55779f8c5e64c3855df4667c9..f6c3522d9cfe6eaef506f127b95ecb786abf1174 100644 GIT binary patch literal 18295 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 z zocmm`W%&*TssenQNz!nVd9qW|*hcq_*X-|Nn;!H(4f<-)zFho-4#qWb?Fjx3t*tM- zC5}4WcrfKy%B~RD=MJ~_Q$@kOq=wFI;*6nd60GOVW|Iec*Oabl*fe~VHC)i%Bkgk4 zCFwkRE4`o9kC}*Tv9B&UQIeEjyveJ0FsSTuu*Ybhe5!uKllNtT?-ouzXiY^KJSiIq zVvOD%{m{AaNeEMQyrHh-FwBXCCpsPtb?n|&&Q2R?>aZ9U zh}hFO5&I!V95*i}F{Un3Eb?{gYAg!%!jL)M_casONN!X~m76#%yLUo%t4(@- zzWBlEUglWb;<&iUx%>$uUrE}~b^t(2)9?fq!PW*%V$fkkGQ*t$3!wXQ4x#{nF%0k} zlDsG^h&zQ!^D$5wD!HKqp^*)gTy$-Ag zQ&>bu0NvZiA01$zG_8x~e4Z+XD?z5Ku)GYEjHeoe5Ny{$a115|q6^c7lC+Qrh&~F2 z(A7a95SkFA7D5}2(1IgTPy_<4qmM@DLB3r|SYgg543q4Eb~H8r)*Qz&Q1WE4e9>?? zo6Ux?wP6e<6^=lmP;f0I9EpT-YC!!1eOSZ*sE@z$jL3H#Q;I){N%LjV7(S3GU7|Z< zJIg>xX{wI9keL&tYJ(|ei^nFObJQ|O!!e@^ESf9!(q_irFS z!hh+;5BFb3&!Tz!oSa``r#ycRqXf|Y5;onh%-5_E*Qi!L@%*^-m#+DUn6Na#B$Ts-*)(BJo-Xw5~2%OLvtP3azCz zOJt@dNW+$s_GBW9_-|BxsSDO&kZB%)|4QX&&0jTaZP8Xf{w$&oiDG4n<%}Ihqmj`h zqz*!h;_eRhAnB}z>LPSVP!x)Yf)a^jZ4VTQtWP1%4D#3T-=s|$r0r8V^i7(~k=Ak7 zrJz=mbfDU+QAj9JM+eD~Mz}+DDM+L~Szil<(AJ&i$B~{D{+qNtlg8PEh~Bg6O!fYM z+Qc7Zerw8-=Fdr;z*#B9Nv!E@#);zhYw34~H*I>m@Fg<+DO0P^Kqq3bFxu}E`0pss=+6rOdmC&|iVwGhpOKob^>-0} zh6jsHWKxW&oSgV?mf?)xuMuEn418)&_NM(G%z-~~$Nz2y{@oJ#|2_jhbC={v^r2G7 zSors}{a*0zCT(Uae_c=Cw}Ic+ABIdqdoY-EA`45S6R8xquMZUi|5^C6P0WwG5E{qu zW-x6TWC~Ur1OHR;AEP)wuC1H-Z4K-1Xkh}eGQ;U1P&pfI#c&CG-r?D za(o z;o{B*3MW z;coJ9apwc_@^FEGa5s6lxbp#ddALA8xSKp&-1&gKJX|0k+)W-X?tDOA9xf0N?j{cx zcRnC54;Kgscaw*UJ0FmjhYJLRyUD}Foe#*%!vzAu-Q?lo&Ijb>;Q|5SZt`$(=L7Qc zaDjkuH@V^x{`sUQ#fS5FC!6ye=MG^O=f6V$5R#>%EdT_q1c1;z0PuN|^WFyl+qD3o z-;MM5XaWGpF^+7#Z4Ll)c37Dj;{)2>B-naMJIF+yME9@tyku3_B6SIBvRP)+RcD)p z8r$STzV5AZER>yR9PZQN-g457C8<#rAvq>!8oNVUy|TX`@xIKpwPJn zO>lI|Jf#W=mX_Ka8|O#OXt))3#cfEw!o9%b&U=lxs*#%TH+j3$(Z`}I4z%0lnyA+= zOV%yklpJPyzqBn8p}IcZRqRp5ou1)KA?#J8Mq0VKEsSc={kk$i!&~QYh)p6rOn-my zS*!N#<8utRUkqMy0UB2qWF}rTv01k04BwbLGw{ZIL+{%yZ4u3p!f$c}a=n=-&x$VH ztOr5Wc(1ovuPQb050+X{(iU8O8CNDQGVdz3YpIpA>!@2%!%uoMHWt_Lt>J$K+g5P=+5oLaOw}9u@fxaF_R&M;fUxx{qx85#VKj!I>E_;66PT&Vi9#QUhcek8S)Zcpn^ zNM7RDSXBtDGdt6K I6SwgH0!iFsiU0rr literal 511 zcmeAS@N?(olHy`uVBq!ia0vp^Y9P$P3?%12mYf5mCIt9|xc>kD-?g7s$aB*FX$St_ zeDVMLum6#=|KEKDwC%swr2ltc|9|l2|J42euRs6)`|tl7&;Q>8ioE^*@JpQYyq|uszfsw(}#WBR< z^w}x5`I-!P+NN^yv52zC1+W(diG2Ng|6E3l`WodU+WSx2$8TEu)=KKHWpbmV+A`C* zQO{Z=1jYP$aN{18l|?WcU9_Msj`g4a=YB-O<3hWfpsV6>pqbs+xJA@ToYloI!~^DncHmB z4PR}WpImTEez~pv&T-xU+x3kgTe~DWM4ftp5DT diff --git a/ug/network/edje/images/radiobtn_on_nor.png b/ug/network/edje/images/radiobtn_on_nor.png index 6d185e38500ad48074667387d77b40ea8f9c7d96..c6e9dffb7556cac41bb15d120d4ae7a82b0ba7e7 100644 GIT binary patch literal 18195 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 Sw<*A2VDNPHb6Mw<&;$S;BOWXO diff --git a/ug/network/edje/images/round_rectangle_4X4.png b/ug/network/edje/images/round_rectangle_4X4.png index b0c09a8d4272f4d2dcecb6a42070778feb997dd6..5a1f51d38f87ccd9c29476b13310fb47e158e57c 100644 GIT binary patch literal 18179 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 delta 129 zcmZqfW1Pe|L9&vCfq}tm#<|%*iY49A*O7s-ZGqv7Y4Je5r>Bc!2*>re3> diff --git a/ug/network/edje/images/round_rectangle_4X4_bottom.png b/ug/network/edje/images/round_rectangle_4X4_bottom.png index e1689952a31d86cad9f0231f302aa41bb21114b3..8037cb805363d16151f034fb8867d1ac82c62062 100644 GIT binary patch literal 17711 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 delta 105 zcmZ4A#aKN-GKqzOfx$M4?*WivNq6*hWMFJtVEAHMJdkhX>Eal|aXt3LMotC;4%dV7 z(=R@aRY*~HytID`0d+HYy85}S Ib4q9e0NeZ``2YX_ diff --git a/ug/network/edje/images/round_rectangle_4X4_top.png b/ug/network/edje/images/round_rectangle_4X4_top.png index 4b12cd90587ef9792d04ab5f410ef157704edc6f..de8b5caa07c8a4112478e6ba80cda060a446dc4a 100644 GIT binary patch literal 17710 zcmeI4cT`i^x5qC7(wj;V5hoN8ktBqk7(xkEnm`b+hvX6>q>w}dI5MD8EF&T+O&HWs zIw~lNfC3_@2nddaqKpC}`UBs9iVgT(ihx(mo44NY{qfeyT`MH}?DO5{oX^?k+>@+z z*}KNwQBHcXGyni{&Q5k-(7P1$nkOj^{Z00+3!W%oJNa_~KxW~@O9V(ez6b!MJ?KQ@ znl(Wz9*Y~qVk4Z1L&9z-R|F7NkwRKN>P}b4XI&45uvV^M19n}^A z-bdo`E48X5t^y)q_hcl2D!241!zFR!3NLL_H;6>-5vk%OTDV9?DFN0I2W`&))(#?3 z87aEnK$aM=rGXOA4Xi-|TbBR&{2maM@ji8j2(bQ$rm{#@B7j&3#@hiwtAK*$wfpP= zKSMw%(4`g&JVFA7&c1<8z`096Rg4-Ssb-WJc==Pa@n9* z&?cFzZ6o^wixsRd0$Kg-zQgPZHufhDm9@3?_VhejU2D6ZeA{>D7_DY=mG5ZChe-VA zk+*+ceWnv_v@zOI?EPOgciy<3UebJ6YEMAt^90Awmt@92YuwYSbq*-=(^u;DTo8KD zF73du(P^!{wue{TSk^jDeb#00NtDoK3Y^Pd=51?_&?%pZSkHR_nP42TMJJ{$@Fo9uK@q}wG{^^yQ!mldsl&PM%B^&*2R@g>#s zI;&+qZ!z0rt5aKJt7t1tjatIlvZ7#@tzK;7ISu_S=s&GBOsYJCVw2eNs2ZQk@|J9c zk7UWrYQ2hRDKVRyk_*Y2?eQW3`~0*IN~)&Dyw|LD5?ioe2XQN2$y3WE(bNg!wU31G zancyFfx%W}*Y?{PRObC=4)q$Q|irQhXT zSZsN~>_p$){2+z)1Ol<%u$+w&F%Qc0AC^I8S6`E`rWtt}8O-}{!* ze4a11Alkl4%1n%Jiy$wxaq@HZbARNNgIJx3Zs9h9b zgo*QWGSGgoAYma|aYsC{)?8=7UZT6 zxL5*v!~n7KW=u~;&-EVT9`zp0q4m-k0oI{^y!U>l=XHDQYPDX)UXxyNFvZBm=Tw^4 zsBqdy*&PGwjnqO32;hy|c){$Jo0&SL)AW`966WYhHP) zd((1P<;3ODa#$p*KO+4{_lo;pcfIaG{KGTr{O0b8I)n^Gtt8AqGgvM^c3ZS*t?v28 zwqLgEm#2(sl<&99%RPZ58m~6?E%6#Y5@;pSof7)~IL}?GPcJ)pIC9?;rPnK-tx!K> z;#!6QHw5P$OFrh8@09PE@A#_HtY{!R<4mP}x&NnVd7Jvx%Qq}{q$M=X%jolN^M0Hy zovq?#iF;dw$_qZNexlrte~p= z;vKS0i|{v0Ls@tYbbZI)p2UsUt%;|}N6E=g_av6J;7{Fm_{~A#0KINQw@x>sj!}0? zS6o+9*TwCn+hCfPTiKZvXI8nca;_k%Gat~dpZmM?R%z}f zwR63X#5;;g8KpbPv;bAwr5i=p2a_t3c3#=}+o+|4TwI%czQ#I@NbUuW5^gQ-Nm|qK zL93lN-W=;k)BKthn;#i>mo98rQA^M8PQT|!Q>B%0cMr$!-|Mog0hLTZrK{IHzFFC` zn)fzz~Ld}uBl%~Wcx_r!<$QKXpN|2wE_g{~cT^z=@*$XL#}px z9vF^$mhnucdxvTY`sPM<_=%>PH!;~Nxu^vOxMS9?@$ME!{>w&DKS$-jvZ00iWe26h zYcy(TTId$DmiR}+4f;#nhn)1?A`bs6vBET5=Z5iVgWj?|%X1G^xXQUcPRC`cq-{qq zj4W}LnB9jH4~5$1X}Tqq(q7V@2X1dD0Aq^BZZP*>LN7fkaVxmwP{BNZq;#q6nHQvW zdJpv_ifN#4;I+oRx3S0aGgmea+$p);amf7m>)*!*7St?wdbsp-tcx#F!|!=z!B%WB zJ~X^Tx?6eP%GkBy1^CPRO7$7{J@N;9lZzrNbtBw@qc>IG-c@~3B>0t#k92R$&R3le z2R3^6q5Zoql0U{~s1ua;?kiI2P)%0;^^sm@Sg(2<>-M$O&LbCc^J~kf&4I0f{m-8u zGuO)>%S(QqEYFl{Yri1Zwf4fm+jsUI=;TJdj`H25#IjS@@RuvV>|0HZtE@j1q2L?eG!tal0RQAN=I}sbs{eXm4Ks`(vLN z8w=eTp#$}zt)in6+VZ6j%l^Et(P~NZN_epHm7{$9&sWDXUh|Q1W^z8i9j|+)&9)2g z=^v5m8d)lbYu|ogN5NBxdp~d2plP7D+NKSqIi!21eOe!|{))#PLd%1fPa-}$cKobx z+yw6*zIvE+i{9S9>s}IVsQEy~(Ttsus1Kc6I!>1E=%X}sZB<~szM{x`+G;<(zi(B= zs-_J?mw7|Q9lZ;EFZ-sQ#cgK1zp$Tdg1K zeDu2W*R56jtl^eU#}Vv9 z*vYYmB2^W1Xu%;6=sat^k(g+fogsy zU*q+uE(MRCUl70QjR$==|JM6%_NOGZq@-~%(UjrO6k}uu0O01+Nq#&(H&+~m#Xym% ztN;)d#$ZDSQ2@YOg|W$$V33Ch0BLllrPk~6Yg!08)l$pX)XmV1O$3AJP7xf?JHnkr zi3p}(sajS9X?z$C3cvt)WJDMvgvrH)S!zwj#X+AZiqTq#$tt{HOD&s;1`&R4YY;>h z2Sk{nOpz2rBMibEi^7zMR8)1(HhcQD;Us?od=o6kp4a9lb zIZQVPS(aKsJRTc|M)Uc66yF%d;?U3-EEbD4G(sC0A)y*bZa9-i4ns1z+EYQk#IXap z6b_xuqqCTZiMZqd);6A{mexc=GuQOE80?vbnA~Z05JhwtnT^Jv4ADOjxw#3JF&N)f za(VXKp`J{S?7IzeN#Se|?FDjK+c*@^emltIX@9R1RLV>o_BKw)Bp)gT4TgXWNWz6W zkNIvF*k8VZ%*em$#*F)iqvz2BXD8w?g~5_UVC<`X9IzDWFAO>QqcryXo57dAYqJfrWQDi z`AS19&d_j9kg1xm7;aG7Q^`E?KZ){HU3eT8l^z)WkD|=h{5po48_t=@<&l{b(Akav zjU7d&Q*jm)N+6a@p&+TC1r~{=m>420u+Sf4Lt_k;YGDdmkWD5B`L+C;&~_}!wuu~? z4o!tZo0^y!8AGE-nwU|{k!FD=SfoXO85wB-Qm`NuOR)$vp9wuj{!M5P4jtNr$RTs; zO!WSL+QfIleAAQ@oeQN-_?(o25^Hjs@diV`F8$&Np-*lXY%+%nPOL&ptuM=PW`CL4 zJ|;Ais~Jb8Ol&j+%0#Y$R6P2t(%Ej!D5qugZzu4dQJ#uFNB-kB_(333P{L1znymHX zAY4`;k5A@+HZ&+F{+neu74T~XJTe|Vu_uSn{}1MXOWyv!n}L6}g#N$Jz-;bPg2+r7 zNF|`Zr0ti2e>Q1TQ~C9J`m)1(yZ-Q03NDbvVUT$QI)h9D(QGCSkDe`@Z4*Cp7s3%) zAuNs?iwY8q@#yare^&+lxVC2Mw>1LS%h49$Y)>@9V9m^sMkvhOFmvk7i8FB@!$Ert zl<(xpwGC;$DTCMdo7gKtwoTSIH!_4S=)ePA)6%(axYS>;bgmmNomKiU={$nbbZfBU zIjV`9?G#jR=v)XAprOHw;I-G#!@v+fJ34ev;7;sx*l7v8{JT2;S)J)z-JJ4i-BdEo zIlE165L2bl$q+h}qGwK}-|QVTyX$}Q!|Z_mlTl%@gpI&}2sVYd1oMG;g}7iq1e-!! zg89I_LR>H)f=wYV!F*s|AubpY!KM(GU_LOf5El%HU{i=oFdvv#hzkZpuqnhPm=DY= z#03K)*c9Rt%m?Nb;(`GYYzlD+<^%HzalwEHHiftZ^MQGVxL`m8n?hWI`M|tFTrePl zO(8D9d|+N7E*KEOrVy84J}|Ek7YvACQ;172ADCB&3kF26Da0k156mmX1p^}36yg%h z2j&&xf&me13ULYM1M>=T!GH)hg}4Osfq8|vU_b<$LR^CRz`R0SFd%|WAuhpuU|u0E z7!bjxKwQ$Z&v}AO=;2O2^c3epZ$;?gPyj)3@^S-!h-Cl}wHp9Fj6?7J0IEal|aXt3nN!|kr0xTOA zHkLH5sLOWN{#ZWG@=eD|lcytQ)HO4+mLyJzMzd*)2C*4g9c zVka-NSOx$9c?WxI5Abt7_>z{A0N)?Ju9q7(IQBj~0FYfU{t^Syjx7WL8CNEe=;ju{ z=CgSLY!1wUNQ7~?Y=34D9RNaGGdvk2&puVN;pZQ$9OI)7JF-1gq+lLa`=XQ+m+NUt zE3S#xJn>A$y?VZl&0O_cS@Gfr4n*x&ao3mIEAv#cTl3_BU8myr-ue6@;#A<{is4rc zqnDl#dJ6_KN}43Aq~wm;8@L-q$>mxto&Wo;`r5h|-3W_l866IwC{;q!3S`n8F*Y)D2=$yTz*biKdQHQObZt_yMc4fQ7ACR7T2j zPatb9;Cq+q*9Ex20pArnUOfP!GCrn8hym*lYpRH4B?7Po^muC^U^P(Cw05rzKt=(| z{*JX+;3*tHIe7cq1LrRTRgH?W#ekF?fO3zISqaRI0DNz0Yli~6Qvqe$_ulwFR~0Gt z>Vc$Ei}7VTSexkeQt%K-Z*Rm>-9`tsRm#ScIg~UDL`_)gB22WQ!taCk03a(-1sv_* zNND4{qQ*w!1Eupe!{1z&7}N6e>l*E8%I8=Bzzcq4^QbOIIAXJd2XVA->0J>A_;*VJ0Ar`+-0KFX-sT;)9y^miow%ka?e z*Iw#GV>U+H&Hea$&Aks!XO=V_lHTpt{wl%l%VpWIFB%WDY90K_$a>0M?n)sCtkd=n zV$Nvou{yN!=CYPC+RIM;&*FqmBjEfNf>=Z%JZB?S{4d89ie!G(%V7X`U(T+6s4FEN z6|n0?lVI$f`G{TCG9b#|;ZO(wY_irtknWV2*GmC_byl?Ac}w*V)eH5jB$ibF(q1k5 z#n*VZl}>Gqm7b-`3$I*EGsf>wcCe%<2pYYW87_Y6^+E(qo- zMcY(K8_yM3!6-{D?a5ALm#6kQuq8T%^IN4&q{Vl;*R0S=%5l87{ObI_YZv-q&~apY zeeK6e2@8;l5%I)Y6CI^JM9hk^gL51%oF=s>wb-_>Jhc1tbJGp&7i%ZoZlwhlOJWb} z!&cpj>CWiB(QVMJ-mUq5y-bFmMab!oo-cJh?rd4Js7JBKut$QPg0b{EmFCfrbAmMA zC}Evd;fYd@bMA3D3k~x6kf% z@@w%A0y+6um0k7m4BbWP3ndpa76}%fOL028=)t~4^(2%D`fW;YszNH;i>z0w_p3_c z9hoC*jx0Z-u7@P$=AF%Zo+s-y=yjKrkh{rqdy%b|foE5)^uwe1UU?aAZ#~sL8M&)- z;_?_dY?AruNS~2C5y3DwsOl+Tad8f{d&{6fRCU$^O% zr;KQn?=#EGJ%J?}tTFH|@fbYpZ!X!D67umF-$lAtH#>PSa_@8HcPn46R6lFzREDN+ z2+TX0e3YDTpYNV;_qNiws6RX7Y^6=P&*$iQmi22^Y*=B(NND^equ2A9XGgY7wyLuk zZm0;67kEbfM7g!#IxBl1CG*;*s7xnz_VcjH-cL)mBS%Oh!Jo2+?BvK2C2~3vZE}qZ z@i&b^*mw}sdgPW27<8csGmPBlt5LqEavruU{lN$z^tYv0+ra!P_s4>cTy9VR;?Qz_B7m-Xrq^s9;+^Xze!ygLS z_#(VzC?mZjy{12>?c9Lz0COO&{rEk@<0~_L40!i%+#>$&-qUO@d;AD0u(Kf2mFODH zxYVnSq#_f&3!j|7d`6HrOnIk9_=~_j-bLubn>@!n_t|{Ur0Vjm%XeLGuroKubP{)H zkI}}$$C`ocsAXad@jcO&(d*}Y{uutN=Jf;SxHkG<#n1XJ_h*$^s#qrMEZo^sU8osw z>yLwln!~**jfsuSc``VtV-BmWp~gs{5C{Um#d^Kqjn4qlTe{ zY&LF=e@fh-x76jmy`FRUp+6EUjKXwo8l2JZDcijw_h5ySyi-RyE>ksa8!Q-OhO0#H zI+S=Y#41nIIjNNKhVjaO+uZ_sO!4SV*1pTgrAH)h2bLTx_{9eb8gWsK>GITu*I3d@(n_wv5)~-{Rl*>Nz}f{k)@j z$*+>vY%}J+8A4s1_#se)K zmncs@vYH3fBP#wf{NqvE`ikKZ!tHBqUSeL(kNh9eKRbLb88$E4lh^n0=;z>#g)YG% z{q^E4;v zc&R+Db=&@kf)|nx{CvFl8~BkH&#COZKf#!i+yR%9qId$O>CkyEzeXNJvn-} zNKF+P`SH=)CymW1%_oxICnsGG{`Jhro2s{q&b8Im)GfVsJJbNZ>BHL3{ndhYfyTR2 zoeHkqzruFtjs^UEVaW4-_UEKUNl9aK#Zv~qPz~U10Dx0slE{3rvlEWW4n|ODY(F|8 zG?)V(L;(PA9?GFm1L=I2ADzKunQ6T%zpe#i(#*8Hjhs==93nk{X&=s|dxpD^sNsQB zEKSRtAcGIZfdPW)dzi#KnQ%$BU6#u!$=CKr=1N@djaJXEzv;&85SP z5Jqq+3WJ83U=e5|Lo6Dt55u6)21qmtiNV6rXq=%54s8sZy0i!~;5R&%=8yBRww-DY zw9K>u_P&Ydosw^IM#F?mCNMt znQRtpJTAqLy_IjKr8VBr^ffiEV9s&d$PR!NEUN^7uB} zz@AKv?1v5VNMRg0(u2-pZ{!$pcd-Y*tEvi8Zm!c+x|@E&b{UVoq!q91535A76!LT3?sp^!_rv zeT-`+Rx^%59p7jO)bU)U)9}b|N@uz?t(=lEzn{Q=MtL&+Ecwsd5CqU!!V-Qm)I_bH z2jQ{(`2q@;Zpi?1;=fsjlL5a~KqKRk<9l)t^Z#HDc$97byBYXrOX&am49w&%HGslm z&}jtZ*R=gw@Xsb~aw@-FPhYoz@7EumM#cHFxxo}Zff-C;(2*P#1CN|3oM{t3eHX$J z*+FcsGn+;y7~qjVD*mAg{BzB1^1n3#&%@3N=3qlKMq`bQ;TQyZc9>c9X2lu5kKw>Q z2F!QL#M%Zm-<3h@lgIappsf@2O)x0%0uMakH6@+xhDv>eOJ}>G(ix=}i^(Tordop( z&r*%wY$u_5g6Bdy0UR2%2wK~X8A=Z#TQk9X0&je$Lz_%#ppG93eP)E=2Ws;L#8~l_IB)rQdBH)7$HR^2^MC{*zH5u|$nPfCx85xPAi_-%F5!G2UJ)(`5aFf>mvBB1uLu_eh;UPcOE@2hSA+`!M7Sx! zC7ch$E5Zc~#CE(j3erchimGY@*wS>V&10`M_Tqu82l;3J?gs=bFZ0E90CfT&#n@b?(_*#`hy zQ2_A97kqj&1pw68hc@4|1?xsQSX+`pTTkD+AivX1+4jZYhA74MYB6$Mja!>()NeQ# zMa&i@VU>ebz4m5V3f}ZKob~699327a_?B#!(X^Li9{K#FIci(~y@P$phdA(R$Ud>; zDox9=ef~qG*U@{w5UToscH=p<9Y#5Dw~|Ukj<(w$7O%4IG+q-2xH*z{eBqcJup5Ab Mjf-`WmG92~0w%OV delta 150 zcmV;H0BQg3iUFnpkQsjj0001f;SYxZ000DMK}|sb0fwM4=$2mq003P{L_t&-(}l`0 z4nRNvMA2Cn5Lt)YLev@u(BOc$2npG!eT_{>EN{yBLf3LSCOqJo=&|7mLBYz?OnFZl z-nAid9FgR}A(62Vw_p?1vWl~+#K5=FuqoA--GF|ak2tf!gU${S6951J07*qoM6N<$ Eg2=Nz5dZ)H diff --git a/ug/network/edje/images/second_depth_bg.png b/ug/network/edje/images/second_depth_bg.png index 602e2724c46424c7ad67cad0fb6f46ad2a5a6b3b..5b3c6243cce9d58310769c773fdbee3cb6b9b926 100644 GIT binary patch literal 22286 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 literal 3115 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 literal 1946 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 literal 1946 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 literal 789 zcmeAS@N?(olHy`uVBq!ia0y~yVAKF%4rZXpottyCfmC3CPl&68q;z0Nq=SQly}iAi zot>?%t&NS1wY9aCm6fHXrGZ3++S#>lv0r3omy7EnrNE0FR>=@Sw=0&~ffH9`xWsM%sd2la z3gUW%m@HZs0pglMWbZ;{bs^lpiK<#sf#qv}hAk2-J?|Bw0_5@oxyrBfp(?=U_pWdc z1FHCX1ft?RM8nrZ5bk;?_ZWyPB-*>8JPhbIkYoO)gIw3Uf*&FPa*iF$?I72IltaBT o%B5#$NCp1!0oy10;KV+LY_(svY+2vg0Mj{xr>mdKI;Vst0L}sgzyJUM diff --git a/ug/network/include/IpSettingView.h b/ug/network/include/IpSettingView.h deleted file mode 100644 index 4e5828c..0000000 --- a/ug/network/include/IpSettingView.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __IP_SETTING_VIEW_H__ -#define __IP_SETTING_VIEW_H__ - -class CIpSettingView : public CBaseView, public IMouseClickedListener, public IUnfocusedListener { -private : - struct SIpSettingView *m; - - bool m_InitConnectionMgr(); - void m_FinalizeConnectionMgr(); - Evas_Object* m_CreateMainLayout(); - - bool m_GetCurConnectionMode(void); - bool m_GetCurIpInfo(void); - - void m_GetIpInfo(char *des, const char *key); - bool m_CreateDNSSetting(void); - bool m_CreateBtns(void); - bool m_CreateIpSetting(void); - bool m_CreateDimLayout(void); - Evas_Object* m_CreateSettingBtn(char *key, char *txt, Evas_Smart_Cb cb, void *data); - void m_SetupDownCycleFocus(Evas_Object **obj, int count); - void m_KeepBtnFocused(void); - void m_CreateValuePopup(void); - Evas_Object* m_CreateValueBtn(Evas_Object *base, int num, char *txt, void *data); - void m_SetLeftRightCycleFocus(Evas_Object **obj, int count); - bool m_GetValuePopupPos(Evas_Coord *pos_x, Evas_Coord *pos_y); - void m_ConfigNetwork(void); - void m_ShowConfirmPopup(void); - bool m_ConfigNetworkDynamic(void); - bool m_ConfigNetworkManually(void); - bool m_CheckIpValid(void); - void m_ShowInvalidIpPopup(void); - void m_SaveMode(void); - void m_SetTheValue(void); - -protected : - virtual void t_OnShow(void); - virtual void t_OnUpdate(void *data); - virtual void t_OnHide(void); - -public : - CIpSettingView(const char *szViewId) : CBaseView(szViewId), IMouseClickedListener(this), IUnfocusedListener(this), m(0) {} - virtual ~CIpSettingView() {} - - virtual bool Create(void *data); - virtual void Destroy(void); - virtual Evas_Object* Base(void); - - virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev); - virtual void OnMouseClicked(int id, Evas_Object *obj); - virtual void OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item); -}; - -#endif /* __IP_SETTING_VIEW_H__ */ - diff --git a/ug/network/include/NetworkMainView.h b/ug/network/include/NetworkMainView.h deleted file mode 100644 index 961c900..0000000 --- a/ug/network/include/NetworkMainView.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __NETWORK_MAIN_VIEW_H__ -#define __NETWORK_MAIN_VIEW_H__ - - -#include "WifiMgr.h" - -class CNetworkMainView : public CBaseView { -private : - struct SNetworkMainView *m; - - static void sm_CbGenlistItemSelected(void *data, Evas_Object *obj, void *ei); - static Eina_Bool sm_CbSelectConnected(void *data); - - static bool sm_CbWifiFoundAP(CWifiAp *ap, void *data); - bool m_OnWifiFoundAP(CWifiAp *ap); - - static void sm_CbWifiScanRequest(wifi_error_e err, void *data); - void m_OnWifiScanRequest(wifi_error_e err); - - static void sm_CbConnectionOnlineAsync(bool state, void *data); - void m_OnConnectionOnlineAync(bool state); - - static void sm_CbCheckGatewayAsync(bool state, void *data); - void m_OnCheckGatewayAsync(bool state); - - static void sm_CbWifiActivated(wifi_error_e err, void *data); - void m_OnWifiActivated(wifi_error_e err); - - static char* sm_GetApName(void *data, Evas_Object *obj, const char *part); - static void sm_CbEthernetStateChanged(bool state, void *data); - void m_OnEthernetStateChanged(bool state); - - bool m_InitConnectionMgr(void); - void m_FinalizeConnectionMgr(); - - Evas_Object *m_CreateMainLayout(void); - bool m_CreateUpperLayout(void); - - bool m_CreateActionBtns(void); - void m_DestroyActionBtns(); - - bool m_CreateDimLayout(void); - void m_SetNetTypeBtnText(void); - - bool m_SetWireless(void); - bool m_SetWired(void); - - void m_FillContentPart(Evas_Object *obj); - void m_SetActionBtnPos(void); - - void m_CreateWirelessDisconnectPart(void); - bool m_CreateWiredConnectPart(void); - bool m_CreateWiredDisconnectPart(void); - Evas_Object* m_CreateGenlistView(void); - void m_ClearGenlist(void); - - static void sm_CbWifiConnected(wifi_error_e err, void *data); - void m_OnWifiConnected(wifi_error_e err); - void m_ConnectNetwork(void); - bool m_WifiConnectAP(int index); - bool m_WiredConnectAP(); - bool m_ConnectionSetLastNetwork(void); - void m_GetIpInfo(char *des, const char *key); - - void m_ShowConfirmPopup(void); - void m_ShowProgressPopup(void); -public : - -protected : - virtual void t_OnShow(void); - virtual void t_OnUpdate(void *data); - virtual void t_OnHide(void); - -public : - CNetworkMainView(const char *szViewId) : CBaseView(szViewId), m(0) {} - virtual ~CNetworkMainView() {} - - virtual bool Create(void *data); - virtual void Destroy(void); - virtual Evas_Object* Base(void); -}; - -#endif /* __NETWORK_MAIN_VIEW_H__ */ diff --git a/ug/network/include/WifiPasscodeView.h b/ug/network/include/WifiPasscodeView.h deleted file mode 100644 index 9bc399b..0000000 --- a/ug/network/include/WifiPasscodeView.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef __WIFI_PASSCODE_VIEW_H__ -#define __WIFI_PASSCODE_VIEW_H__ - -class CWifiPasscodeView : public CBaseView, public IMouseClickedListener, public IUnfocusedListener { -private : - struct SWifiPasscodeView *m; - - static void sm_CbWifiConnected(wifi_error_e err, void *data); - void m_OnWifiConnected(wifi_error_e err); - - static bool sm_CbWifiFoundAP(CWifiAp *ap, void *data); - void m_OnWifiFoundAP(CWifiAp *ap); - - static void sm_CbWifiScanRequest(wifi_error_e err, void *data); - void m_OnWifiScanRequest(wifi_error_e err, void *data); - - void m_AddEntry(void); - bool m_CreateDimLayout(void); - void m_ShowInvalidPwdPopup(void); - bool m_WifiConnectAP(void); - void m_ShowProgressPopup(void); - void m_ShowConfirmPopup(void); - -protected : - virtual void t_OnShow(void); - virtual void t_OnUpdate(void *data); - virtual void t_OnHide(void); - -public : - CWifiPasscodeView(const char *szViewId) : CBaseView(szViewId), IMouseClickedListener(this), IUnfocusedListener(this), m(0) {} - virtual ~CWifiPasscodeView() {} - - virtual bool Create(void *data); - virtual void Destroy(void); - virtual Evas_Object* Base(void); - - virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev); - virtual void OnMouseClicked(int id, Evas_Object *obj); - virtual void OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item); -}; - -#endif /* __WIFI_PASSCODE_VIEW_H__ */ - diff --git a/ug/network/include/common.h b/ug/network/include/common.h index 06b9c4c..1f158ee 100644 --- a/ug/network/include/common.h +++ b/ug/network/include/common.h @@ -17,10 +17,8 @@ #ifndef __NETWORK_COMMON_H__ #define __NETWORK_COMMON_H__ - +#include #include -#include "WifiMgr.h" - #define IP_STRING_MAX_SIZE 20 #define MAX_NAME_SIZE 256 @@ -37,21 +35,10 @@ enum setting_mode { MODE_MAN }; -enum action_btn_enum { - CONNECT = 0, - REFRESH, - OTHER, - CLOSE -}; - -enum view_type { - NETWORK_MAIN_VIEW = 0, - NETWORK_WIFI_PASSCODE_VIEW, - NETWORK_IP_SETTING_VIEW -}; - struct connection_info { enum network_type_enum cur_type; + connection_h connection; + connection_profile_h profile; char name[MAX_NAME_SIZE]; wifi_ap_h ap; }; @@ -63,34 +50,4 @@ struct network_info { char dns[IP_STRING_MAX_SIZE + 1]; }; -#define SSID_MAX_LENTH 256 -#define PWD_MAX_LENTH 256 - -#define BTN_ACT 4 -#define BTN_TYPE 2 -#define TIMER_INTERNAL 0.1 -#define KEY_PRIV "priv" -#define TYPE_POPUP_X_OFFSET 190 - -struct wifi_ap_info { - char essid[SSID_MAX_LENTH]; - char bssid[SSID_MAX_LENTH]; - int rssi; - int frequency; - int max_speed; - wifi_security_type_e secure_type; - wifi_encryption_type_e encryption_type; - bool passphrase_required; - int wps_supported; - wifi_connection_state_e state; - - wifi_ip_config_type_e ip_type; - wifi_proxy_type_e proxy_type; - wifi_encryption_type_e enc_type; - wifi_eap_type_e eap_type; - wifi_eap_auth_type_e eap_auth_type; - - CWifiAp *ap; - void *user_data; -}; #endif /* __NETWORK_COMMON_H__ */ diff --git a/ug/network/include/connection_mgr.h b/ug/network/include/connection_mgr.h new file mode 100644 index 0000000..8967901 --- /dev/null +++ b/ug/network/include/connection_mgr.h @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CONNECTION_MGR_H__ +#define __CONNECTION_MGR_H__ + +#include +#include +#include "common.h" + +int connection_mgr_set_profile( + connection_h connection, + connection_profile_h profile, + struct network_info *info); +connection_h connection_mgr_create(void); +int connection_mgr_destroy(connection_h connection); +int connection_mgr_uninit(connection_h connection); +int connection_mgr_get_profile_info( + connection_h connection, struct connection_info *info); +Eina_Bool connection_mgr_is_connected(connection_h connection); +int connection_mgr_ip_dynamic_config(connection_h connection, + connection_profile_h profile); +int connection_mgr_get_ethernet_state( + connection_h connection, + Eina_Bool *plugin); +int connection_mgr_get_ip_info( + connection_profile_h profile, + struct network_info *info); +#if 0 +int connection_mgr_register_ethernet_state_cb( + connection_h connection, + connection_ethernet_state_chaged_cb cb, void *data); +int connection_mgr_set_profile_state_changed_cb( + connection_profile_h profile, + connection_profile_state_changed_cb cb, void *data); +int connection_mgr_get_is_online_async( + connection_h connection, + connection_is_online_async_cb cb, void *data); +int connection_mgr_check_gateway_async( + connection_profile_h profile, + connection_profile_check_gateway_async_cb cb, void *data); +#endif + +#endif /* __CONNECTION_MGR_H__ */ diff --git a/ug/network/include/dbg.h b/ug/network/include/dbg.h new file mode 100644 index 0000000..faf282c --- /dev/null +++ b/ug/network/include/dbg.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DBG_H__ +#define __DBG_H__ + +#include + +#ifdef LOG_TAG +#undef LOG_TAG +#endif +#define LOG_TAG "ug-network-settings" + +#ifndef _ERR +#define _ERR(fmt, args...) (LOGE("[%s:%d] "fmt"\n", __func__, __LINE__, ##args)) +#endif + +#ifndef _DBG +#define _DBG(fmt, args...) (LOGD("[%s:%d] "fmt"\n", __func__, __LINE__, ##args)) +#endif + +#ifndef _INFO +#define _INFO(fmt, args...) \ + (LOGI("[%s:%d] "fmt"\n", __func__, __LINE__, ##args)) +#endif + +#endif /* __DBG_H__ */ diff --git a/ug/network/include/defs.h b/ug/network/include/defs.h index 866bf11..dc58d0f 100644 --- a/ug/network/include/defs.h +++ b/ug/network/include/defs.h @@ -23,9 +23,6 @@ #define RET_FAILED -1 #define RET_IP_INVALID -2 -/* VIEW */ -#define NETWORK_MAINVIEW "NETWORK_MAIN_VIEW" - /*GROUP*/ #define GRP_MAIN "main" #define GRP_NETWORK_TYPE_SELECT "popup_select" @@ -140,24 +137,27 @@ #define POPUP_WIDTH 688 #define POPUP_HEIGHT 411 -/* Width Height */ +/* Key defines */ +#define KEY_UP "Up" +#define KEY_DOWN "Down" +#define KEY_LEFT "Left" +#define KEY_RIGHT "Right" +#define KEY_ENTER "Return" +#define KEY_EXIT "XF86Close" + +#define KEY_0 "0" +#define KEY_1 "1" +#define KEY_2 "2" +#define KEY_3 "3" +#define KEY_4 "4" +#define KEY_5 "5" +#define KEY_6 "6" +#define KEY_7 "7" +#define KEY_8 "8" +#define KEY_9 "9" + +/* FIXME: do not pre-define */ #define DEFAULT_WIN_WIDTH 1920 #define DEFAULT_WIN_HEIGHT 1080 -/* vconf value */ -#define WIRED_DNS_LAST_MODE "db/menu/network/wired_dns_mode" -#define WIRED_IP_LAST_MODE "db/menu/network/wired_ip_mode" -#define WIRED_IP_KEY "db/menu/network/wired_ip" -#define WIRED_SUBMASK_KEY "db/menu/network/wired_subnet" -#define WIRED_GATEWAY_KEY "db/menu/network/wired_gateway" -#define WIRED_DNS_KEY "db/menu/network/wired_dns" - -#define WIRELESS_IP_LAST_MODE "db/menu/network/wireless_ip_mode" -#define WIRELESS_DNS_LAST_MODE "db/menu/network/wireless_dns_mode" -#define WIRELESS_IP_KEY "db/menu/network/wireless_ip" -#define WIRELESS_SUBMASK_KEY "db/menu/network/wireless_subnet" -#define WIRELESS_GATEWAY_KEY "db/menu/network/wireless_gateway" -#define WIRELESS_DNS_KEY "db/menu/network/wireless_dns" - -#define SELECTED_NETWORK_TYPE_KEY "db/menu/network/network_type" #endif /* __DEFS_H__ */ diff --git a/ug/network/include/ip_setting_view.h b/ug/network/include/ip_setting_view.h new file mode 100644 index 0000000..0e85c27 --- /dev/null +++ b/ug/network/include/ip_setting_view.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CONNECTION_VIEW_H__ +#define __CONNECTION_VIEW_H__ + +#include +#include "network_viewmgr.h" + +struct view_class *ip_setting_view_vclass_get(void); + +#endif /* __CONNECTION_VIEW_H__ */ diff --git a/ug/network/include/main_view.h b/ug/network/include/main_view.h new file mode 100644 index 0000000..018af4b --- /dev/null +++ b/ug/network/include/main_view.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __MAIN_VIEW_H__ +#define __MAIN_VIEW_H__ + +#include +#include +#include +#include +#include "network_viewmgr.h" + +struct view_class *main_view_vclass_get(void); + +#endif /* __MAIN_VIEW_H__ */ diff --git a/ug/network/include/network_viewmgr.h b/ug/network/include/network_viewmgr.h new file mode 100644 index 0000000..fd5d0f4 --- /dev/null +++ b/ug/network/include/network_viewmgr.h @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __NETVIEWMGR_H__ +#define __NETVIEWMGR_H__ + +#include +#include + +enum view_type { + NETWORK_MAIN_VIEW = 0, + NETWORK_WIFI_PASSCODE_VIEW, + NETWORK_IP_SETTING_VIEW +}; + +enum message_id { + PASSCODE_DEVIVER = 0 +}; + +struct viewmgr { + Eina_List *vlist; + Evas_Object *win; + ui_gadget_h ug; +}; + +struct view_class { + Evas_Object * (*create)(struct viewmgr *vmgr, void *data); + void (*pause)(Evas_Object *base); + void (*resume)(Evas_Object *base); + void (*terminate)(Evas_Object *base); + void (*message_handler)(Evas_Object *base, + enum message_id msg_id, void *data); + enum view_type (*get_view_type)(void); +}; + +struct viewmgr *viewmgr_init(); +void viewmgr_fini(struct viewmgr *vmgr); +Evas_Object *viewmgr_push(struct viewmgr *vmgr, + struct view_class *vclass, void *data); +int viewmgr_send_message(struct viewmgr *vmgr, + enum view_type view_type, + enum message_id msg_id, void *data); +int viewmgr_pop(struct viewmgr *vmgr); +int viewmgr_resume(struct viewmgr *vmgr); +Evas_Object *viewmgr_win_get(struct viewmgr *vmgr); + +#endif /* __VIEWMGR_H__ */ + diff --git a/ug/network/include/util.h b/ug/network/include/util.h index 80606d9..8e21037 100644 --- a/ug/network/include/util.h +++ b/ug/network/include/util.h @@ -17,13 +17,18 @@ #ifndef __UTIL_H__ #define __UTIL_H__ -Evas_Object *util_add_layout(Evas_Object *parent, const char *file, const char *group); -Evas_Object *util_add_button(Evas_Object *parent, const char *style, const char *part, const char *text); -Evas_Object *util_add_key_value_button(Evas_Object *parent, const char *part, const char *text_key, const char *text_value); +Evas_Object *util_add_layout(Evas_Object *parent, const char *file, + const char *group); +Evas_Object *util_add_button(Evas_Object *parent, const char *style, + const char *part, const char *text); +Evas_Object *util_add_key_value_button(Evas_Object *parent, + const char *part, const char *text_key, const char *text_value); Evas_Object *util_add_scroll(Evas_Object *parent, const char *part); Evas_Object *util_add_box(Evas_Object *parent, const char *part); -Evas_Object *util_add_image(Evas_Object *parent, const char *file, const char *part); -Evas_Object *util_add_entry(Evas_Object *parent, const char *style, const char *part); +Evas_Object *util_add_image(Evas_Object *parent, + const char *file, const char *part); +Evas_Object *util_add_entry(Evas_Object *parent, + const char *style, const char *part); Evas_Object *util_add_genlist(Evas_Object *parent); void util_focus_next_set(Evas_Object *obj); diff --git a/ug/network/include/vconf_mgr.h b/ug/network/include/vconf_mgr.h new file mode 100644 index 0000000..e3335c2 --- /dev/null +++ b/ug/network/include/vconf_mgr.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VCONF_MGR_H__ +#define __VCONF_MGR_H__ + +#include +#include "connection_mgr.h" +#include "common.h" + +int vconf_mgr_get_network_type(enum network_type_enum *network_type); +int vconf_mgr_set_network_type(enum network_type_enum network_type); +int vconf_mgr_get_wired_network_info(struct network_info *info); +int vconf_mgr_get_wireless_network_info(struct network_info *info); +int vconf_mgr_save_wired_config_info(struct network_info *info); +int vconf_mgr_save_wireless_config_info(struct network_info *info); +int vconf_mgr_get_wired_ip_mode(enum setting_mode *mode); +int vconf_mgr_set_wired_ip_mode(enum setting_mode mode); +int vconf_mgr_get_wired_dns_mode(enum setting_mode *mode); +int vconf_mgr_set_wired_dns_mode(enum setting_mode mode); +int vconf_mgr_get_wireless_ip_mode(enum setting_mode *mode); +int vconf_mgr_set_wireless_ip_mode(enum setting_mode mode); +int vconf_mgr_get_wireless_dns_mode(enum setting_mode *mode); +int vconf_mgr_set_wireless_dns_mode(enum setting_mode mode); + +#endif /* __VCONF_MGR_H__ */ diff --git a/ug/network/include/wifi_mgr.h b/ug/network/include/wifi_mgr.h new file mode 100644 index 0000000..d9048cf --- /dev/null +++ b/ug/network/include/wifi_mgr.h @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __WIFI_MGR_H__ +#define __WIFI_MGR_H__ + +#include +#include "common.h" + +#define SSID_MAX_LENTH 256 +#define PWD_MAX_LENTH 256 + +struct wifi_ap_info { + char essid[SSID_MAX_LENTH]; + char bssid[SSID_MAX_LENTH]; + int rssi; + int frequency; + int max_speed; + wifi_security_type_e secure_type; + wifi_encryption_type_e encryption_type; + bool passphrase_required; + int wps_supported; + wifi_connection_state_e state; + + wifi_ip_config_type_e ip_type; + wifi_proxy_type_e proxy_type; + wifi_encryption_type_e enc_type; + wifi_eap_type_e eap_type; + wifi_eap_auth_type_e eap_auth_type; + + wifi_ap_h ap; + void *user_data; +}; + +const char *wifi_mgr_error_dbg(wifi_error_e err_type); +int wifi_mgr_init(void); +int wifi_mgr_deinit(void); +int wifi_mgr_ap_destroy(wifi_ap_h ap); +int wifi_mgr_ap_clone(wifi_ap_h *cloned_ap, wifi_ap_h origin); +int wifi_mgr_is_activated(bool *activated); +int wifi_mgr_scan_request(wifi_scan_finished_cb cb, void *data); +int wifi_mgr_foreach_found_aps(wifi_found_ap_cb cb, void *data); +int wifi_mgr_activate(wifi_activated_cb cb, void *data); +int wifi_mgr_get_ap_info(wifi_ap_h ap, struct wifi_ap_info *ap_info); +int wifi_mgr_get_connected_ap(wifi_ap_h *ap); +int wifi_mgr_forget_last_ap(void); +int wifi_mgr_connect(wifi_ap_h ap, wifi_connected_cb cb, void *data); +int wifi_mgr_set_passphrase(wifi_ap_h ap, const char *passcode); +int wifi_mgr_get_ip_info(wifi_ap_h ap, struct network_info *info); +int wifi_mgr_ap_set_ip_config_type(wifi_ap_h ap, + wifi_ip_config_type_e type); +int wifi_mgr_set_ip_config(wifi_ap_h ap, struct network_info *info); +int wifi_mgr_set_dns_config(wifi_ap_h ap, struct network_info *info); +//int wifi_mgr_get_is_online_async(wifi_get_is_online_async_cb cb, void *data); + +#endif /* __WIFI_MGR_H__ */ diff --git a/ug/network/include/wifi_passcode_view.h b/ug/network/include/wifi_passcode_view.h new file mode 100644 index 0000000..5805235 --- /dev/null +++ b/ug/network/include/wifi_passcode_view.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __WIFI_PASSWORD_VIEW_H__ +#define __WIFI_PASSWORD_VIEW_H__ + +#include +#include +#include +#include +#include "network_viewmgr.h" + +struct view_class *wifi_passcode_view_vclass_get(void); + +#endif /* __WIFI_PASSWORD_VIEW_H__ */ diff --git a/ug/network/src/IpSettingView.cpp b/ug/network/src/IpSettingView.cpp deleted file mode 100644 index 7ee215d..0000000 --- a/ug/network/src/IpSettingView.cpp +++ /dev/null @@ -1,1691 +0,0 @@ -#include -#include "defs.h" -#include -#include -#include "i18n.h" -#include "util.h" -#include "common.h" -#include "WifiMgr.h" -#include "NetConMgr.h" - -#include "IpSettingView.h" - -#define MODE_BTN_NUM 2 -#define MAX_IP_NUM 255 -#define IP_SET_MAX_NUM 4 -#define STRING_MAX_SIZE 50 -#define SETTING_MODE_OFFSET_X 448 -#define SETTING_MODE_OFFSET_Y 0 -#define SETTING_VALUE_OFFSET_X 162 -#define SETTING_VALUE_OFFSET_Y 20 -#define CENTER_ALIGN 0.5 -#define BOX_PAD_X 0 -#define BOX_PAD_Y 2 -#define RATIO 10 - -#define IP_VALUE1 "value1" -#define IP_VALUE2 "value2" -#define IP_VALUE3 "value3" -#define IP_VALUE4 "value4" - -#define TXT_MAKE_OTHER_NETWORK _("You can make other network"\ - "
Enter the IP address to use.") - -enum connection_setting_enum { - SETTING_INVALID, - SETTING_IP, - SETTING_IP_ADDRESS, - SETTING_SUBNET_MASK, - SETTING_GATEWAY, - SETTING_DNS, - SETTING_DNS_SERVER -}; - -struct SIpSettingView { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - Evas_Object *dim_ly; - Evas_Object *ip_mode_btn; - Evas_Object *ip_addr_btn; - Evas_Object *subnet_mask_btn; - Evas_Object *gateway_btn; - Evas_Object *dns_mode_btn; - Evas_Object *dns_server_btn; - Evas_Object *ip_mode_ly; - Evas_Object *dns_mode_ly; - Evas_Object *config_popup; - Evas_Object *cur_ip_btn[IP_SET_MAX_NUM]; - Evas_Object *confirm_popup; - Evas_Object *ok_btn; - Evas_Object *cancel_btn; - - struct network_info info; - enum setting_mode ip_mode; - enum setting_mode dns_mode; - - enum connection_setting_enum cur_type; - enum network_type_enum network_type; - - CWifiAp *ap; - - char profile_name[MAX_NAME_SIZE]; - - CWifiMgr *pWifiMgr; - CNetConMgr *pNetConMgr; - CViewMgr *pViewMgr; -}; - - -bool CIpSettingView::m_InitConnectionMgr() -{ - _DBG(); - if(!CNetConMgr::Initialize()) { - _ERR("Fail to init CNetConMgr"); - } - - m->pNetConMgr = CNetConMgr::GetInstance(); - if (!m->pNetConMgr) { - _ERR("Fail to get instance"); - return false; - } - - if(!m->pNetConMgr->GetProfileName(m->profile_name)) { - _ERR("Fail to get profilename"); - return false; - } - - return true; -} - -void CIpSettingView::m_FinalizeConnectionMgr() -{ - _DBG(); - CNetConMgr::Finalize(); - m->pNetConMgr = NULL; -} - - -bool CIpSettingView::m_GetCurConnectionMode(void) -{ - const char *str = NULL; - if (m->network_type == TYPE_WIRED) { - str = vconf_get_str(WIRED_IP_LAST_MODE); - if (str && !strcmp(str, _(TXT_OBTAIN_AUTO))) - m->ip_mode = MODE_AUTO; - else - m->ip_mode = MODE_MAN; - - str = NULL; - str = vconf_get_str(WIRED_DNS_LAST_MODE); - if (str && !strcmp(str, _(TXT_OBTAIN_AUTO))) - m->dns_mode = MODE_AUTO; - else - m->dns_mode = MODE_MAN; - } else if (m->network_type == TYPE_WIRELESS) { - str = vconf_get_str(WIRELESS_IP_LAST_MODE); - if (str && !strcmp(str, _(TXT_OBTAIN_AUTO))) - m->ip_mode = MODE_AUTO; - else - m->ip_mode = MODE_MAN; - - str = NULL; - str = vconf_get_str(WIRELESS_DNS_LAST_MODE); - if (str && !strcmp(str, _(TXT_OBTAIN_AUTO))) - m->dns_mode = MODE_AUTO; - else - m->dns_mode = MODE_MAN; - } else { - _ERR("the network type is invalid."); - return false; - } - - return true; -} - - -bool CIpSettingView::m_GetCurIpInfo(void) -{ - struct network_info info; - bool result = false; - - if (m->network_type == TYPE_WIRED) { - if (m->ip_mode == MODE_AUTO) { - if (!m->pNetConMgr->GetIpAddr(info.ip_addr)) { - _ERR("connection_mgr_get_ip_info() failed."); - return false; - } - if (!m->pNetConMgr->GetSubnetMask(info.submask)) { - _ERR("connection_mgr_get_ip_info() failed."); - return false; - } - if (!m->pNetConMgr->GetGateway(info.gateway)) { - _ERR("connection_mgr_get_ip_info() failed."); - return false; - } - if (!m->pNetConMgr->GetDNS(info.dns)) { - _ERR("connection_mgr_get_ip_info() failed."); - return false; - } - } else if (m->ip_mode == MODE_MAN) { - m_GetIpInfo(info.ip_addr, WIRED_IP_KEY); - m_GetIpInfo(info.submask, WIRED_SUBMASK_KEY); - m_GetIpInfo(info.gateway, WIRED_GATEWAY_KEY); - m_GetIpInfo(info.dns, WIRED_DNS_KEY); - } else { - _ERR("ip mode is invalid."); - return false; - } - } else if (m->network_type == TYPE_WIRELESS) { - if (m->ip_mode == MODE_AUTO) { - result = m->ap->GetIp(m->info.ip_addr, sizeof(m->info.ip_addr)); - if(result != true) { - _ERR("wifi_mgr_get_ip_info() failed."); - return false; - } - result = m->ap->GetSubnetMask(m->info.submask); - if(result != true) { - _ERR("wifi_mgr_get_ip_info() failed."); - return false; - } - result = m->ap->GetGateway(m->info.gateway); - if(result != true) { - _ERR("wifi_mgr_get_ip_info() failed."); - return false; - } - result = m->ap->GetDNS(m->info.dns); - if(result != true) { - _ERR("wifi_mgr_get_ip_info() failed."); - return false; - } - } else if (m->ip_mode == MODE_MAN) { - m_GetIpInfo(info.ip_addr, WIRELESS_IP_KEY); - m_GetIpInfo(info.submask, WIRELESS_SUBMASK_KEY); - m_GetIpInfo(info.gateway, WIRELESS_GATEWAY_KEY); - m_GetIpInfo(info.dns, WIRELESS_DNS_KEY); - } else { - _ERR("ip mode is invalid."); - return false; - } - } else { - _ERR("network type is invalid."); - return false; - } - - strncpy(m->info.ip_addr, info.ip_addr, IP_STRING_MAX_SIZE); - strncpy(m->info.submask, info.submask, IP_STRING_MAX_SIZE); - strncpy(m->info.gateway, info.gateway, IP_STRING_MAX_SIZE); - strncpy(m->info.dns, info.dns, IP_STRING_MAX_SIZE); - - return true; -} - - -void CIpSettingView::m_GetIpInfo(char *des, const char *key) -{ - _DBG(); - const char *str; - - if (!des || !key) - return; - - str = vconf_get_str(key); - if (!str) - return; - - if (str == '\0' || !strncmp(str, NULL_STRING, IP_STRING_MAX_SIZE)) - strncpy(des, _(ZERO_IP), IP_STRING_MAX_SIZE); - else - strncpy(des, str, IP_STRING_MAX_SIZE); -} - - -bool CIpSettingView::m_CreateDNSSetting(void) -{ - Evas_Object *base = NULL; - Evas_Object *btn; - Evas_Object *box; - char mode[STRING_MAX_SIZE]; - - box = util_add_box(base, PART_CONNECTION_DNS_SETTING); - if (!box) { - _ERR("add box failed."); - return false; - } - - elm_box_horizontal_set(box, EINA_FALSE); - elm_box_padding_set(box, BOX_PAD_X, BOX_PAD_Y); - - memset(mode, 0, STRING_MAX_SIZE); - if (m->dns_mode == MODE_AUTO) - snprintf(mode, STRING_MAX_SIZE - 1, "%s", _(TXT_OBTAIN_AUTO)); - else - snprintf(mode, STRING_MAX_SIZE - 1, "%s", _(TXT_ENTER_MAN)); - - btn = util_add_key_value_button(base, NULL, _(TXT_DNS_SETING), mode); - if (!btn) { - _ERR("Add button failed."); - evas_object_del(box); - return false; - } - - //evas_object_smart_callback_add(btn, SIG_CLICKED, _dns_setting_btn_clicked_cb, priv); - Connect(btn, 1); - - elm_box_pack_end(box, btn); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); - - m->dns_mode_btn = btn; - - btn = util_add_key_value_button(base, NULL, _(TXT_DNS_SERVER), m->info.dns); - if (!btn) { - _ERR("Add btn failed."); - evas_object_del(box); - return false; - } - - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); - - //evas_object_smart_callback_add(btn, SIG_CLICKED, _dns_server_btn_clicked_cb, priv); - Connect(btn, 2); - - elm_object_signal_emit(btn, SIG_HIDE_BOTTOME_LINE, PROG); - elm_box_pack_end(box, btn); - - m->dns_server_btn = btn; - - if (m->dns_mode == MODE_AUTO) - elm_object_disabled_set(m->dns_server_btn, EINA_TRUE); - - return true; -} - - -bool CIpSettingView::m_CreateBtns(void) -{ - Evas_Object *base = NULL; - Evas_Object *ok_btn; - Evas_Object *cancel_btn; - - ok_btn = util_add_button(base, STYLE_SETTING_BTN, NULL, _(TXT_OK)); - if (!ok_btn) { - _ERR("Add button failed."); - return false; - } - - elm_object_part_content_set(base, PART_CONNECTION_OK_BTN, ok_btn); - m->ok_btn = ok_btn; - - //evas_object_smart_callback_add(ok_btn, SIG_CLICKED, _ok_btn_clicked_cb, priv); - Connect(ok_btn, 3); - - cancel_btn = util_add_button(base, STYLE_SETTING_BTN, PART_CONNECTION_CANCEL_BTN, _(TXT_CANCEL)); - if (!cancel_btn) { - _ERR("Add button failed."); - evas_object_del(ok_btn); - return false; - } - - //evas_object_smart_callback_add(cancel_btn, SIG_CLICKED, _cancel_btn_clicked_cb, priv); - Connect(cancel_btn, 4); - - m->cancel_btn = cancel_btn; - - return true; -} - - -bool CIpSettingView::m_CreateIpSetting(void) -{ - Evas_Object *base = NULL; - Evas_Object *scroll; - Evas_Object *box; - Evas_Object *btn; - char mode[STRING_MAX_SIZE]; - - scroll = util_add_scroll(base, PART_CONNECTION_IP_SETTING); - if (!scroll) { - _ERR("add scroll failed."); - return false; - } - - box = util_add_box(scroll, NULL); - if (!box) { - _ERR("add box failed."); - evas_object_del(scroll); - return false; - } - - elm_box_horizontal_set(box, EINA_FALSE); - elm_box_padding_set(box, BOX_PAD_X, BOX_PAD_Y); - - memset(mode, 0, STRING_MAX_SIZE); - if (m->ip_mode == MODE_AUTO) - snprintf(mode, STRING_MAX_SIZE - 1, "%s", _(TXT_OBTAIN_AUTO)); - else - snprintf(mode, STRING_MAX_SIZE - 1, "%s", _(TXT_ENTER_MAN)); - - btn = util_add_key_value_button(base, NULL, _(TXT_IP_SETTING), mode); - if (!btn) { - _ERR("Add button failed."); - evas_object_del(scroll); - return false; - } - //evas_object_smart_callback_add(btn, SIG_CLICKED, cb, data); - Connect(btn, 5); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); - - elm_box_pack_end(box, btn); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_UP); - elm_object_focus_set(btn, EINA_TRUE); - m->ip_mode_btn = btn; - - btn = util_add_key_value_button(base, NULL, _(TXT_IP_ADDR), m->info.ip_addr); - if (!btn) { - _ERR("Add btn failed."); - evas_object_del(scroll); - return false; - } - //evas_object_smart_callback_add(btn, SIG_CLICKED, _ip_address_btn_clicked_cb, data); - Connect(btn, 6); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); - - elm_box_pack_end(box, btn); - m->ip_addr_btn = btn; - - btn = util_add_key_value_button(base, NULL, _(TXT_SUBNET_MASK), m->info.submask); - if (!btn) { - _ERR("Add btn failed."); - evas_object_del(scroll); - return false; - } - //evas_object_smart_callback_add(btn, SIG_CLICKED, _sub_mask_btn_clicked_cb, data); - Connect(btn, 7); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); - - elm_box_pack_end(box, btn); - m->subnet_mask_btn = btn; - - btn = util_add_key_value_button(base, NULL, _(TXT_GATEWAY), m->info.gateway); - if (!btn) { - _ERR("Add btn failed."); - evas_object_del(scroll); - return false; - } - //evas_object_smart_callback_add(btn, SIG_CLICKED, _gateway_btn_clicked_cb, data); - Connect(btn, 8); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); - - elm_object_signal_emit(btn, SIG_HIDE_BOTTOME_LINE, PROG); - - elm_box_pack_end(box, btn); - m->gateway_btn = btn; - - elm_object_content_set(scroll, box); - - if (m->ip_mode == MODE_AUTO){ - elm_object_disabled_set(m->ip_addr_btn, EINA_TRUE); - elm_object_disabled_set(m->subnet_mask_btn, EINA_TRUE); - elm_object_disabled_set(m->gateway_btn, EINA_TRUE); - } - - return true; -} - - -bool CIpSettingView::m_CreateDimLayout(void) -{ - Evas_Object *dim_ly; - - dim_ly = util_add_layout(m->win, UG_NETWORK_EDJ_FILE, - GRP_DIM_LY); - if (!dim_ly) { - _ERR("elm_layout_add() failed."); - return false; - } - - m->dim_ly = dim_ly; - evas_object_hide(m->dim_ly); - - return true; -} - -Evas_Object* CIpSettingView::m_CreateMainLayout() -{ - _DBG(); - Evas_Object *base; - - base = elm_layout_add(m->win); - if (!base) { - _ERR("elm_layout_add() failed."); - return NULL; - } - - elm_layout_file_set(base, UG_NETWORK_EDJ_FILE, GRP_CONNECTION_SETTING); - - evas_object_show(base); - - return base; -} - - -void CIpSettingView::t_OnShow() -{ - _DBG(); - - evas_object_show(m->base); - - CBaseView::t_OnShow(); -} - - -void CIpSettingView::t_OnUpdate(void *data) -{ - _DBG(); - - evas_object_show(m->base); - -#if 0 - switch (m->cur_view) { - case NETWORK_IP_SETTING_VIEW: - elm_object_focus_set(m->other_btn, EINA_TRUE); - break; - case NETWORK_WIFI_PASSCODE_VIEW: - elm_object_focus_set(m->connect_btn, EINA_TRUE); - break; - default: - break; - } -#endif -} - - -void CIpSettingView::t_OnHide() -{ - _DBG(); - - evas_object_hide(m->base); - - CBaseView::t_OnHide(); -} - - -bool CIpSettingView::Create(void *data) -{ - _DBG(); - ASSERT(!m); - - struct connection_info *info; - - _CREATE_BEGIN{ - _CHECK(m = new SIpSettingView) - _CHECK(m->win = CViewMgr::GetInstance()->Window()) - _CHECK(m_InitConnectionMgr()) - _COMMAND{ - if(data) { - info = (struct connection_info *) data; - m->network_type = info->cur_type; - m->ap = m->ap; - strncpy(m->profile_name, info->name, MAX_NAME_SIZE - 1); - } - } - _CHECK(m->base = m_CreateMainLayout()) - _COMMAND{ - //evas_object_event_callback_add(base, EVAS_CALLBACK_KEY_DOWN, _base_key_pressed_cb, priv); - Connect(m->base, 0); - elm_object_part_text_set(m->base, PART_CONNECTION_DESCRITION, TXT_MAKE_OTHER_NETWORK); - } - _CHECK(m_GetCurConnectionMode()) - _CHECK(m_GetCurIpInfo()) - _CHECK(m_CreateDNSSetting()) - _CHECK(m_CreateBtns()) - _CHECK(m_CreateIpSetting()) - _CHECK(m_CreateDimLayout()) - _WHEN_SUCCESS{ - m->pViewMgr = CViewMgr::GetInstance(); - } - _CHECK_FAIL{ /* m_CreateDimLayout() */ } - _CHECK_FAIL{ /* m_CreateIpSetting() */ } - _CHECK_FAIL{ /* m_CreateBtns() */ } - _CHECK_FAIL{ /* m_CreateDNSSetting() */ } - _CHECK_FAIL{ /* m_GetCurIpInfo() */ } - _CHECK_FAIL{ /* m_GetCurConnectionMode() */ } - _CHECK_FAIL{ evas_object_del(m->base); } - _CHECK_FAIL{ m_FinalizeConnectionMgr(); } - _CHECK_FAIL{ /* m->win = CViewMgr::GetInstance()->Window() */ } - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - _DBG("Done"); - return true; -} - - -void CIpSettingView::Destroy() -{ - ASSERT(m); - _DBG(); - - if (m->dim_ly) - evas_object_del(m->dim_ly); - - CBaseView::Destroy(); - delete m; - m = NULL; -} - -Evas_Object* CIpSettingView::Base() -{ - ASSERT(m); - _DBG(); - - return m->base; -} - - -void CIpSettingView::m_SetupDownCycleFocus(Evas_Object **obj, int count) -{ - int i; - - if (!*obj || !obj) - return; - - for (i = 0; i < count; i++) { - if (i == count - 1) - elm_object_focus_next_object_set(obj[i], obj[0], ELM_FOCUS_DOWN); - else - elm_object_focus_next_object_set(obj[i], obj[i + 1], ELM_FOCUS_DOWN); - - if (i == 0) - elm_object_focus_next_object_set(obj[i], obj[count - 1], ELM_FOCUS_UP); - else - elm_object_focus_next_object_set(obj[i], obj[i - 1], ELM_FOCUS_UP); - } -} - - -void CIpSettingView::m_KeepBtnFocused(void) -{ - Evas_Object *obj; - - switch (m->cur_type) { - case SETTING_IP: - obj = m->ip_mode_btn; - break; - case SETTING_IP_ADDRESS: - obj = m->ip_addr_btn; - break; - case SETTING_SUBNET_MASK: - obj = m->subnet_mask_btn; - break; - case SETTING_GATEWAY: - obj = m->gateway_btn; - break; - case SETTING_DNS: - obj = m->dns_mode_btn; - break; - case SETTING_DNS_SERVER: - obj = m->dns_server_btn; - break; - default: - return; - } - - elm_object_signal_emit(obj, SIG_BTN_SELECTED, PROG); -} - - -void CIpSettingView::m_CreateValuePopup(void) -{ - Evas_Object *base = NULL, *ctxpopup, *btn; - Evas_Coord pos_x, pos_y; - int i; - - ctxpopup = util_add_layout(base, UG_NETWORK_EDJ_FILE, - GRP_NETWORK_VALUE_SETTING); - if (!ctxpopup) { - _ERR("elm_ctxpopup_add() failed."); - return; - } - - elm_object_focus_allow_set(ctxpopup, EINA_TRUE); - //evas_object_smart_callback_add(ctxpopup, SIG_UNFOCUSED, _ctxpopup_unfocused_cb, priv); - Connect(ctxpopup, 15); - - m->config_popup = ctxpopup; - - evas_object_show(m->dim_ly); - - for (i = 0; i < IP_SET_MAX_NUM; i++) { - btn = m_CreateValueBtn(ctxpopup, i, _(TXT_ZERO), NULL); - if (!btn) { - _ERR("_create_value_btn() failed."); - evas_object_del(ctxpopup); - m->config_popup = NULL; - return; - } - - m->cur_ip_btn[i] = btn; - } - //evas_object_smart_callback_add(btn, SIG_CLICKED, _popup_dismissed_cb, data); - //evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, _ip_btn_key_pressed_cb, data); - Connect(m->cur_ip_btn[0], 16); - Connect(m->cur_ip_btn[1], 17); - Connect(m->cur_ip_btn[2], 18); - Connect(m->cur_ip_btn[3], 19); - - //evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_KEY_DOWN, _value_ctxpopup_key_pressed_cb, priv); - m_SetLeftRightCycleFocus(m->cur_ip_btn, IP_SET_MAX_NUM); - - m_KeepBtnFocused(); - - pos_x = 0; - pos_y = 0; - m_GetValuePopupPos(&pos_x, &pos_y); - evas_object_move(ctxpopup, pos_x * ELM_SCALE, pos_y * ELM_SCALE); - -} - - -Evas_Object* CIpSettingView::m_CreateValueBtn(Evas_Object *base, int num, char *txt, void *data) -{ - Evas_Object *btn; - - if (!base || !txt || !data) { - _ERR("The param is invalid."); - return NULL; - } - - btn = util_add_button(base, STYLE_VALUE_BTN, NULL, txt); - if (!btn) { - _ERR("add button failed."); - return NULL; - } - - switch (num) { - case 0: - elm_object_part_content_set(base, PART_IP_FIRST, btn); - evas_object_data_set(base, IP_VALUE1, btn); - elm_object_focus_set(btn, EINA_TRUE); - break; - case 1: - elm_object_part_content_set(base, PART_IP_SECOND, btn); - evas_object_data_set(base, IP_VALUE2, btn); - break; - case 2: - elm_object_part_content_set(base, PART_IP_THIRD, btn); - evas_object_data_set(base, IP_VALUE3, btn); - break; - case 3: - elm_object_part_content_set(base, PART_IP_FORTH, btn); - evas_object_data_set(base, IP_VALUE4, btn); - break; - default: - break; - } - - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_DOWN); - - return btn; -} - - -void CIpSettingView::m_SetLeftRightCycleFocus(Evas_Object **obj, int count) -{ - int i; - - if (!obj || !*obj) { - _ERR("the param is invalid."); - return; - } - - for (i = 0; i < count; i++) { - if (i == count - 1) - elm_object_focus_next_object_set(obj[i], obj[0], ELM_FOCUS_RIGHT); - else - elm_object_focus_next_object_set(obj[i], obj[i + 1], ELM_FOCUS_RIGHT); - - if (i == 0) - elm_object_focus_next_object_set(obj[i], obj[count - 1], ELM_FOCUS_LEFT); - else - elm_object_focus_next_object_set(obj[i], obj[i - 1], ELM_FOCUS_LEFT); - } -} - - -bool CIpSettingView::m_GetValuePopupPos(Evas_Coord *pos_x, Evas_Coord *pos_y) -{ - Evas_Coord x; - Evas_Coord y; - Evas_Coord w; - Evas_Coord h; - - if (!pos_x || !pos_y) { - _ERR("the param is invalid."); - return false; - } - - switch (m->cur_type) { - case SETTING_IP_ADDRESS: - evas_object_geometry_get(m->ip_addr_btn, &x, &y, &w, &h); - *pos_x = x + SETTING_VALUE_OFFSET_X; - *pos_y = y - SETTING_VALUE_OFFSET_Y; - break; - case SETTING_SUBNET_MASK: - evas_object_geometry_get(m->subnet_mask_btn, &x, &y, &w, &h); - *pos_x = x + SETTING_VALUE_OFFSET_X; - *pos_y = y - SETTING_VALUE_OFFSET_Y; - break; - case SETTING_GATEWAY: - evas_object_geometry_get(m->gateway_btn, &x, &y, &w, &h); - *pos_x = x + SETTING_VALUE_OFFSET_X; - *pos_y = y - SETTING_VALUE_OFFSET_Y; - break; - case SETTING_DNS_SERVER: - evas_object_geometry_get(m->dns_server_btn, &x, &y, &w, &h); - *pos_x = x + SETTING_VALUE_OFFSET_X; - *pos_y = y - 2 * SETTING_VALUE_OFFSET_Y; - break; - default: - return false; - } - - return true; -} - - -void CIpSettingView::m_ConfigNetwork(void) -{ - bool ret; - - switch (m->ip_mode) { - case MODE_AUTO: - ret = m_ConfigNetworkDynamic(); - if (ret != true) { - _ERR("config network automatically failed."); - m_ShowConfirmPopup(); - return; - } - - break; - case MODE_MAN: - ret = m_ConfigNetworkManually(); - if (ret == false) { - _ERR("invalid IP."); - return; - } else if (ret != true) { - _ERR("config network manually failed."); - m_ShowConfirmPopup(); - return; - } - - break; - default: - m_ShowConfirmPopup(); - return; - } - - m_SaveMode(); - -#if 0 - viewmgr_pop(m->vmgr); -#endif -} - - -void CIpSettingView::m_ShowConfirmPopup(void) -{ - Evas_Object *layout; - Evas_Object *retry_btn, *cancel_btn; - Evas_Coord w; - Evas_Coord h; - char content[CONTENT_TXT_SIZE]; - - evas_object_show(m->dim_ly); - - layout = util_add_layout(m->base, UG_NETWORK_EDJ_FILE, - GRP_CONFIRM_LAYOUT); - if (!layout) { - _ERR("add layout failed."); - evas_object_hide(m->dim_ly); - return; - } - - m->confirm_popup = layout; - - if (m->network_type == TYPE_WIRED) - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_WIRED_LY)); - else - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); - - memset(content, 0, CONTENT_TXT_SIZE); - snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", _(TXT_FAILED_CONNECT), m->profile_name); - elm_object_part_text_set(layout, PART_TEXT_CONTENT, content); - - retry_btn = util_add_button(layout, STYLE_SETTING_BTN, PART_RETRY_BTN, _(TXT_RETRY)); - if (!retry_btn) { - _ERR("util add button failed."); - evas_object_del(layout); - evas_object_hide(m->dim_ly); - return; - } - - cancel_btn = util_add_button(layout, STYLE_SETTING_BTN, PART_CANCEL_BTN, _(TXT_CANCEL)); - if (!cancel_btn) { - _ERR("util add button failed."); - evas_object_del(layout); - evas_object_hide(m->dim_ly); - return; - } - - elm_object_focus_next_object_set(retry_btn, cancel_btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(cancel_btn, retry_btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(retry_btn, retry_btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(retry_btn, retry_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_DOWN); - elm_object_focus_next_object_set(retry_btn, retry_btn, ELM_FOCUS_DOWN); - - //evas_object_smart_callback_add(retry_btn, SIG_CLICKED, _retry_btn_clicked_cb, priv); - //evas_object_smart_callback_add(cancel_btn, SIG_CLICKED, _popup_ok_cancel_btn_clicked_cb, priv); - Connect(retry_btn, 20); - Connect(cancel_btn, 21); - - elm_object_focus_set(retry_btn, EINA_TRUE); - - elm_object_focus_allow_set(layout, EINA_TRUE); - //evas_object_smart_callback_add(layout, SIG_UNFOCUSED, _ctxpopup_unfocused_cb, priv); - //evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, _ctxpopup_pressed_cb, priv); - Connect(layout, 22); - - w = DEFAULT_WIN_WIDTH; - h = DEFAULT_WIN_HEIGHT; - - evas_object_move(layout, CENTER_ALIGN * (w - POPUP_WIDTH) * ELM_SCALE, CENTER_ALIGN * (h - POPUP_HEIGHT) * ELM_SCALE); -} - - -bool CIpSettingView::m_ConfigNetworkDynamic(void) -{ - bool result = false; - - switch (m->network_type) { - case TYPE_WIRED: - if(!m->pNetConMgr->SetIpConfType(CONNECTION_IP_CONFIG_TYPE_DYNAMIC)) { - _ERR("connection_mgr_ip_dynamic_config() failed."); - return false; - } - - break; - case TYPE_WIRELESS: - result = m->ap->SetIpType(WIFI_IP_CONFIG_TYPE_DYNAMIC); - if(result != false) { - _ERR("connection_mgr_ip_dynamic_config() failed."); - return false; - } - - break; - default: - break; - } - - return true; -} - - -bool CIpSettingView::m_ConfigNetworkManually(void) -{ - bool result = false; - - result = m_CheckIpValid(); - if (result != true) { - _ERR("the ip is invalid."); - m_ShowInvalidIpPopup(); - return false; - } - - result = false; - switch (m->network_type) { - case TYPE_WIRED: - if (!m->pNetConMgr->SetIpAddr(m->info.ip_addr)) { - _ERR("set profile failed."); - return false; - } - if (!m->pNetConMgr->SetSubnetMask(m->info.submask)) { - _ERR("set profile failed."); - return false; - } - if (!m->pNetConMgr->SetGateway(m->info.gateway)) { - _ERR("set profile failed."); - return false; - } - if (!m->pNetConMgr->SetDNS(m->info.dns)) { - _ERR("set profile failed."); - return false; - } - - vconf_set_str(WIRED_IP_KEY, m->info.ip_addr); - vconf_set_str(WIRED_SUBMASK_KEY, m->info.submask); - vconf_set_str(WIRED_GATEWAY_KEY, m->info.gateway); - vconf_set_str(WIRED_DNS_KEY, m->info.dns); - break; - case TYPE_WIRELESS: - result = m->ap->SetIp(m->info.ip_addr); - if(result != true) { - _ERR("set wifi dns config failed."); - return false; - } - result = m->ap->SetSubnetMask(m->info.submask); - if(result != true) { - _ERR("set wifi dns config failed."); - return false; - } - result = m->ap->SetGateway(m->info.gateway); - if(result != true) { - _ERR("set wifi dns config failed."); - return false; - } - result = m->ap->SetDNS(m->info.dns); - if(result != true) { - _ERR("set wifi dns config failed."); - return false; - } - - vconf_set_str(WIRELESS_IP_KEY, m->info.ip_addr); - vconf_set_str(WIRELESS_SUBMASK_KEY, m->info.submask); - vconf_set_str(WIRELESS_GATEWAY_KEY, m->info.gateway); - vconf_set_str(WIRELESS_DNS_KEY, m->info.dns); - break; - default: - break; - } - - return true; -} - - -bool CIpSettingView::m_CheckIpValid(void) -{ - if (!strncmp(m->info.ip_addr, ZERO_IP, IP_STRING_MAX_SIZE)) { - _ERR("IP addr is invalid."); - return false; - } - - if (!strncmp(m->info.submask, ZERO_IP, IP_STRING_MAX_SIZE)) { - _ERR("submask addr is invalid."); - return false; - } - - if (!strncmp(m->info.gateway, ZERO_IP, IP_STRING_MAX_SIZE)) { - _ERR("gateway addr is invalid."); - return false; - } - - if (!strncmp(m->info.dns, ZERO_IP, IP_STRING_MAX_SIZE)) { - _ERR("dns addr is invalid."); - return false; - } - - return true; -} - - -void CIpSettingView::m_ShowInvalidIpPopup(void) -{ - Evas_Object *layout; - Evas_Object *ok_btn; - Evas_Coord w; - Evas_Coord h; - char content[CONTENT_TXT_SIZE]; - - if (m->confirm_popup) { - evas_object_del(m->confirm_popup); - m->confirm_popup = NULL; - } - - evas_object_show(m->dim_ly); - - layout = util_add_layout(m->base, UG_NETWORK_EDJ_FILE, GRP_CONFIRM_LAYOUT); - if (!layout) { - _ERR("add layout failed."); - evas_object_hide(m->dim_ly); - return; - } - - evas_object_show(layout); - - if (m->network_type == TYPE_WIRED) - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_WIRED_LY)); - else - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); - - memset(content, 0, CONTENT_TXT_SIZE); - snprintf(content, CONTENT_TXT_SIZE - 1, "%s", _(TXT_INVALID_IP)); - elm_object_part_text_set(layout, PART_TEXT_CONTENT, content); - - ok_btn = util_add_button(layout, STYLE_SETTING_BTN, PART_OK_BTN, _(TXT_OK)); - if (!ok_btn) { - _ERR("util add button failed."); - evas_object_del(layout); - evas_object_hide(m->dim_ly); - return; - } - - elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_DOWN); - //evas_object_smart_callback_add(ok_btn, SIG_CLICKED, _popup_ok_cancel_btn_clicked_cb, priv); - Connect(ok_btn, 23); - - elm_object_focus_set(ok_btn, EINA_TRUE); - - elm_object_focus_allow_set(layout, EINA_TRUE); - //evas_object_smart_callback_add(layout, SIG_UNFOCUSED, _ctxpopup_unfocused_cb, priv); - //evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, _ctxpopup_pressed_cb, priv); - Connect(layout, 24); - - w = DEFAULT_WIN_WIDTH; - h = DEFAULT_WIN_HEIGHT; - - evas_object_move(layout, CENTER_ALIGN * (w - POPUP_WIDTH) * ELM_SCALE, CENTER_ALIGN * (h - POPUP_HEIGHT) * ELM_SCALE); - - m->confirm_popup = layout; -} - - -void CIpSettingView::m_SaveMode(void) -{ - switch (m->network_type) { - case TYPE_WIRED: - if(m->ip_mode == MODE_AUTO) { - vconf_set_str(WIRED_IP_LAST_MODE, _(TXT_OBTAIN_AUTO)); - } - else if(m->ip_mode == MODE_MAN) { - vconf_set_str(WIRED_IP_LAST_MODE, _(TXT_ENTER_MAN)); - } - - if(m->dns_mode == MODE_AUTO) { - vconf_set_str(WIRED_DNS_LAST_MODE, _(TXT_OBTAIN_AUTO)); - } - else if(m->dns_mode == MODE_MAN) { - vconf_set_str(WIRED_DNS_LAST_MODE, _(TXT_ENTER_MAN)); - } - break; - case TYPE_WIRELESS: - if(m->ip_mode == MODE_AUTO) { - vconf_set_str(WIRELESS_IP_LAST_MODE, _(TXT_OBTAIN_AUTO)); - } - else if(m->ip_mode == MODE_MAN) { - vconf_set_str(WIRELESS_IP_LAST_MODE, _(TXT_ENTER_MAN)); - } - - if(m->dns_mode == MODE_AUTO) { - vconf_set_str(WIRELESS_DNS_LAST_MODE, _(TXT_OBTAIN_AUTO)); - } - else if(m->dns_mode == MODE_MAN) { - vconf_set_str(WIRELESS_DNS_LAST_MODE, _(TXT_ENTER_MAN)); - } - break; - default: - break; - } -} - - -void CIpSettingView::m_SetTheValue(void) -{ - Evas_Object *btn; - const char *value1; - const char *value2; - const char *value3; - const char *value4; - char value[IP_STRING_MAX_SIZE]; - - value1 = NULL; - btn = (Evas_Object *) evas_object_data_get(m->config_popup, IP_VALUE1); - if (btn) - value1 = elm_object_text_get(btn); - - value2 = NULL; - btn = (Evas_Object *) evas_object_data_get(m->config_popup, IP_VALUE2); - if (btn) - value2 = elm_object_text_get(btn); - - value3 = NULL; - btn = (Evas_Object *) evas_object_data_get(m->config_popup, IP_VALUE3); - if (btn) - value3 = elm_object_text_get(btn); - - value4 = NULL; - btn = (Evas_Object *) evas_object_data_get(m->config_popup, IP_VALUE4); - if (btn) - value4 = elm_object_text_get(btn); - - memset(value, 0, IP_STRING_MAX_SIZE); - snprintf(value, IP_STRING_MAX_SIZE, "%s.%s.%s.%s", - value1 ? value1 : "\\0", value2 ? value2 : "\\0", - value3 ? value3 : "\\0", value4 ? value4 : "\\0"); - - switch (m->cur_type) { - case SETTING_IP_ADDRESS: - elm_object_part_text_set(m->ip_addr_btn, PART_VALUE, value); - strncpy(m->info.ip_addr, value, IP_STRING_MAX_SIZE); - break; - case SETTING_SUBNET_MASK: - elm_object_part_text_set(m->subnet_mask_btn, PART_VALUE, value); - strncpy(m->info.submask, value, IP_STRING_MAX_SIZE); - break; - case SETTING_GATEWAY: - elm_object_part_text_set(m->gateway_btn, PART_VALUE, value); - strncpy(m->info.gateway, value, IP_STRING_MAX_SIZE); - break; - case SETTING_DNS_SERVER: - elm_object_part_text_set(m->dns_server_btn, PART_VALUE, value); - strncpy(m->info.dns, value, IP_STRING_MAX_SIZE); - break; - default: - return; - } - - evas_object_del(m->config_popup); - m->config_popup = NULL; -} - - -void CIpSettingView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) -{ - /* ID list */ - /* 0 m->base */ - /* 1 m->dns_mode_btn */ - /* 2 m->dns_setting_btn */ - /* 3 m->ok_btn */ - /* 4 m->cancel_btn */ - /* 5 m->ip_mode_btn */ - /* 6 m->ip_addr_btn */ - /* 7 m->subnet_mask_btn */ - /* 8 m->gateway_btn */ - /* 9 btn_auto */ - /* 10 btn_man */ - /* 11 m->dns_mode_ly */ - /* 12 ctxpopup auto_btn*/ - /* 13 ctxpopup man_btn*/ - /* 14 m->ip_mode_ly */ - /* 15 m->config_popup */ - /* 16 m->cur_ip_btn[0] */ - /* 17 m->cur_ip_btn[1] */ - /* 18 m->cur_ip_btn[2] */ - /* 19 m->cur_ip_btn[3] */ - /* 20 showpopup retry_btn */ - /* 21 showpopup cancel_btn */ - /* 22 showpopup */ - /* 23 showInvalidIpPopup ok_btn */ - /* 24 showInvalidIpPopup layout */ - - - if (!ev->keyname) { - _ERR("ev->keyname is NULL."); - return; - } - - switch(id) { - case 0: - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { -#if 0 - viewmgr_pop(m->vmgr); -#endif - return; - } - break; - case 9: - case 10: - case 12: - case 13: - if (!strcmp(ev->keyname, KEY_LEFT) || !strcmp(ev->keyname, KEY_RIGHT)) { - evas_object_hide(m->dim_ly); - if (m->cur_type == SETTING_IP) { - evas_object_del(m->ip_mode_ly); - m->ip_mode_ly = NULL; - } else if (m->cur_type == SETTING_DNS) { - evas_object_del(m->dns_mode_ly); - m->dns_mode_ly = NULL; - } - } - break; - case 11: - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - evas_object_hide(m->dim_ly); - evas_object_del(m->dns_mode_ly); - m->dns_mode_ly = NULL; - } else if (!strcmp(ev->keyname, KEY_EXIT)) { - ug_destroy_me(m->ug); - } - break; - case 14: - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - evas_object_hide(m->dim_ly); - evas_object_del(m->ip_mode_ly); - m->ip_mode_ly = NULL; - } - break; - case 15: - if (!strcmp(ev->keyname, KEY_ENTER) || !strcmp(ev->keyname, KEY_ENTER_REMOTE)) { - evas_object_hide(m->dim_ly); - m_SetTheValue(); - evas_object_del(obj); - } else if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - evas_object_hide(m->dim_ly); - evas_object_del(obj); - } - break; - case 16: - case 17: - case 18: - case 19: - const char *value; - int num, new_num; - - if (!strcmp(ev->keyname, KEY_UP)) { - value = elm_object_text_get(obj); - num = atoi(value); - num++; - if (num > MAX_IP_NUM) - num = 0; - } else if (!strcmp(ev->keyname, KEY_DOWN)) { - value = elm_object_text_get(obj); - num = atoi(value); - num--; - if (num < 0) - num = MAX_IP_NUM; - } else if (!strcmp(ev->keyname, KEY_0) || - !strcmp(ev->keyname, KEY_1) || - !strcmp(ev->keyname, KEY_2) || - !strcmp(ev->keyname, KEY_3) || - !strcmp(ev->keyname, KEY_4) || - !strcmp(ev->keyname, KEY_5) || - !strcmp(ev->keyname, KEY_6) || - !strcmp(ev->keyname, KEY_7) || - !strcmp(ev->keyname, KEY_8) || - !strcmp(ev->keyname, KEY_9)) { - value = elm_object_text_get(obj); - if (!value) - elm_object_text_set(obj, ev->keyname); - - new_num = atoi(ev->keyname); - - num = atoi(value); - if (!num || (num * RATIO + new_num) > MAX_IP_NUM) { - elm_object_text_set(obj, ev->keyname); - return; - } - - num = num * RATIO + new_num; - } else { - return; - } - - char temp_value[IP_STRING_MAX_SIZE]; - - memset(temp_value, 0, IP_STRING_MAX_SIZE); - snprintf(temp_value, IP_STRING_MAX_SIZE - 1, "%d", num); - elm_object_text_set(obj, temp_value); - break; - case 22: - case 24: - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - evas_object_hide(m->dim_ly); - evas_object_del(obj); - } - break; - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - default: - break; - } -} - - -void CIpSettingView::OnMouseClicked(int id, Evas_Object *obj) -{ - /* ID list */ - /* 0 m->base */ - /* 1 m->dns_mode_btn */ - /* 2 m->dns_setting_btn */ - /* 3 m->ok_btn */ - /* 4 m->cancel_btn */ - /* 5 m->ip_mode_btn */ - /* 6 m->ip_addr_btn */ - /* 7 m->subnet_mask_btn */ - /* 8 m->gateway_btn */ - /* 9 btn_auto */ - /* 10 btn_man */ - /* 11 m->dns_mode_ly */ - /* 12 ctxpopup auto_btn*/ - /* 13 ctxpopup man_btn*/ - /* 14 m->ip_mode_ly */ - /* 15 m->config_popup */ - /* 16 m->cur_ip_btn[0] */ - /* 17 m->cur_ip_btn[1] */ - /* 18 m->cur_ip_btn[2] */ - /* 19 m->cur_ip_btn[3] */ - /* 20 showpopup retry_btn */ - /* 21 showpopup cancel_btn */ - /* 22 showpopup */ - /* 23 showInvalidIpPopup ok_btn */ - /* 24 showInvalidIpPopup layout */ - - switch(id) { - case 0: - break; - case 1: - { - Evas_Object *ctxpopup, *box, *btn_auto, *btn_man; - Evas_Coord x, y, w, h; - Evas_Object *btn[2]; - - m->cur_type = SETTING_DNS; - - if (m->dns_mode == MODE_INVALID) - m->dns_mode = MODE_MAN; - - ctxpopup = util_add_layout(m->base, UG_NETWORK_EDJ_FILE, GRP_NETWORK_MODE_SETTING); - if (!ctxpopup) { - _ERR("elm_layout_add() failed."); - return; - } - - box = util_add_box(ctxpopup, PART_SWALLOW_CONTENT); - if (!box) { - _ERR("add box failed."); - evas_object_del(ctxpopup); - return; - } - - elm_box_horizontal_set(box, EINA_FALSE); - - btn_auto = util_add_button(m->base, STYLE_MODE_SELECT_BTN, NULL, _(TXT_OBTAIN_AUTO)); - if (!btn_auto) { - _ERR("Add btn failed."); - evas_object_del(ctxpopup); - return; - } -#if 0 - evas_object_smart_callback_add(btn_auto, SIG_DISMISSED, _mode_sub_popup_dismissed_cb, data); -#endif - //evas_object_smart_callback_add(btn_auto, SIG_CLICKED, _dns_auto_mode_btn_clicked_cb, data); - //evas_object_event_callback_add(btn_auto, EVAS_CALLBACK_KEY_DOWN, _mode_sub_popup_key_pressed_cb, data); - Connect(btn_auto, 9); - - elm_box_pack_end(box, btn_auto); - elm_object_focus_set(btn_auto, EINA_TRUE); - btn[0] = btn_auto; - - btn_man = util_add_button(m->base, STYLE_MODE_SELECT_BTN, NULL, _(TXT_ENTER_MAN)); - if (!btn_man) { - _ERR("Add btn failed."); - evas_object_del(ctxpopup); - return; - } -#if 0 - evas_object_smart_callback_add(btn, SIG_DISMISSED, _mode_sub_popup_dismissed_cb, data); -#endif - //evas_object_smart_callback_add(btn, SIG_CLICKED, _dns_manual_mode_btn_clicked_cb, data); - //evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, _mode_sub_popup_key_pressed_cb, data); - Connect(btn_man, 10); - - elm_box_pack_end(box, btn_man); - btn[1] = btn_man; - - m_SetupDownCycleFocus(btn, 2); -#if 0 - - evas_object_smart_callback_add(ctxpopup, SIG_DISMISSED, _dns_ctxpopup_dismissed_cb, priv); -#endif - //evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_KEY_DOWN, _dns_ctxpopup_key_pressed_cb, priv); - //evas_object_smart_callback_add(ctxpopup, SIG_UNFOCUSED, _ctxpopup_unfocused_cb, priv); - Connect(ctxpopup, 11); - - evas_object_geometry_get(m->dns_mode_btn, &x, &y, &w, &h); - m->dns_mode_ly = ctxpopup; - - evas_object_move(ctxpopup, (x + SETTING_MODE_OFFSET_X) * ELM_SCALE, - (y + h) * ELM_SCALE); - - if (m->dns_mode == MODE_AUTO) - elm_object_signal_emit(btn_auto, SIG_BTN_SELECTED, PROG); - else if (m->dns_mode == MODE_MAN) - elm_object_signal_emit(btn_man, SIG_BTN_SELECTED, PROG); - - evas_object_show(m->dim_ly); - - m_KeepBtnFocused(); - } - break; - case 2: - m->cur_type = SETTING_DNS_SERVER; - m_CreateValuePopup(); - break; - case 3: - m_ConfigNetwork(); - break; - case 4: -#if 0 - if (m->vmgr) - viewmgr_pop(m->vmgr); -#endif - break; - case 5: - { - Evas_Object *ctxpopup, *box, *auto_btn, *man_btn; - Evas_Coord x, y, w, h; - Evas_Object *btn[MODE_BTN_NUM]; - - m->cur_type = SETTING_IP; - - if (m->ip_mode == MODE_INVALID) - m->ip_mode = MODE_MAN; - - ctxpopup = util_add_layout(m->base, UG_NETWORK_EDJ_FILE, GRP_NETWORK_MODE_SETTING); - if (!ctxpopup) { - _ERR("elm_layout_add() failed."); - return; - } - - evas_object_show(m->dim_ly); - m_KeepBtnFocused(); - - box = util_add_box(ctxpopup, PART_SWALLOW_CONTENT); - if (!box) { - _ERR("create box failed."); - evas_object_del(ctxpopup); - return; - } - - elm_box_horizontal_set(box, EINA_FALSE); - - auto_btn = util_add_button(ctxpopup, STYLE_MODE_SELECT_BTN, NULL, _(TXT_OBTAIN_AUTO)); - if (!auto_btn) { - _ERR("Add btn failed."); - evas_object_del(ctxpopup); - return; - } -#if 0 - evas_object_smart_callback_add(auto_btn, SIG_DISMISSED, _mode_sub_popup_dismissed_cb, NULL); -#endif - //evas_object_smart_callback_add(auto_btn, SIG_CLICKED, _ip_auto_mode_btn_clicked_cb, NULL); - //evas_object_event_callback_add(auto_btn, EVAS_CALLBACK_KEY_DOWN, _mode_sub_popup_key_pressed_cb, NULL); - Connect(auto_btn, 12); - - elm_box_pack_end(box, auto_btn); - elm_object_focus_set(auto_btn, EINA_TRUE); - btn[0] = auto_btn; - - man_btn = util_add_button(ctxpopup, STYLE_MODE_SELECT_BTN, NULL, _(TXT_ENTER_MAN)); - if (!man_btn) { - _ERR("Add btn failed."); - evas_object_del(ctxpopup); - return; - } -#if 0 - evas_object_smart_callback_add(man_btn, SIG_DISMISSED, _mode_sub_popup_dismissed_cb, NULL); -#endif - //evas_object_smart_callback_add(man_btn, SIG_CLICKED, _ip_manual_mode_btn_clicked_cb, NULL); - //evas_object_event_callback_add(man_btn, EVAS_CALLBACK_KEY_DOWN, _mode_sub_popup_key_pressed_cb, NULL); - Connect(man_btn, 13); - - elm_box_pack_end(box, man_btn); - btn[1] = man_btn; - - m_SetupDownCycleFocus(btn, 2); - //evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_KEY_DOWN, _ip_ctxpopup_key_pressed_cb, priv); - //evas_object_smart_callback_add(ctxpopup, SIG_UNFOCUSED, _ctxpopup_unfocused_cb, priv); - Connect(man_btn, 14); - - m->ip_mode_ly = ctxpopup; - - if (m->ip_mode == MODE_AUTO) - elm_object_signal_emit(auto_btn, SIG_BTN_SELECTED, PROG); - else if (m->ip_mode == MODE_MAN) - elm_object_signal_emit(man_btn, SIG_BTN_SELECTED, PROG); - - evas_object_geometry_get(m->ip_mode_btn, &x, &y, &w, &h); - evas_object_move(ctxpopup, (x + SETTING_MODE_OFFSET_X) * ELM_SCALE, (y + h) * ELM_SCALE); - } - break; - case 6: - m->cur_type = SETTING_IP_ADDRESS; - m_CreateValuePopup(); - break; - case 7: - m->cur_type = SETTING_SUBNET_MASK; - m_CreateValuePopup(); - break; - case 8: - m->cur_type = SETTING_GATEWAY; - m_CreateValuePopup(); - break; - case 9: - elm_object_disabled_set(m->dns_server_btn, EINA_TRUE); - elm_object_part_text_set(m->dns_mode_btn, PART_VALUE, _(TXT_OBTAIN_AUTO)); - evas_object_del(m->dns_mode_ly); - m->dns_mode_ly = NULL; - m->dns_mode = MODE_AUTO; - evas_object_hide(m->dim_ly); - break; - case 10: - elm_object_disabled_set(m->dns_server_btn, EINA_FALSE); - elm_object_part_text_set(m->dns_mode_btn, PART_VALUE, _(TXT_ENTER_MAN)); - evas_object_del(m->dns_mode_ly); - m->dns_mode_ly = NULL; - m->dns_mode = MODE_MAN; - evas_object_hide(m->dim_ly); - break; - case 11: - break; - case 12: - elm_object_disabled_set(m->ip_addr_btn, EINA_TRUE); - elm_object_disabled_set(m->subnet_mask_btn, EINA_TRUE); - elm_object_disabled_set(m->gateway_btn, EINA_TRUE); - - if (m->ip_mode_btn) - elm_object_part_text_set(m->ip_mode_btn, PART_VALUE, _(TXT_OBTAIN_AUTO)); - - evas_object_del(m->ip_mode_ly); - m->ip_mode_ly = NULL; - m->ip_mode = MODE_AUTO; - - evas_object_hide(m->dim_ly); - break; - case 13: - elm_object_disabled_set(m->ip_addr_btn, EINA_FALSE); - elm_object_disabled_set(m->subnet_mask_btn, EINA_FALSE); - elm_object_disabled_set(m->gateway_btn, EINA_FALSE); - - elm_object_part_text_set(m->ip_mode_btn, - PART_VALUE, _(TXT_ENTER_MAN)); - - evas_object_del(m->ip_mode_ly); - m->ip_mode_ly = NULL; - m->ip_mode = MODE_MAN; - - evas_object_hide(m->dim_ly); - break; - case 16: - case 17: - case 18: - case 19: - evas_object_hide(m->dim_ly); - if (m->confirm_popup) - evas_object_del(m->confirm_popup); - break; - case 20: - if (m->confirm_popup) - evas_object_del(m->confirm_popup); - evas_object_hide(m->dim_ly); - elm_object_focus_set(m->ok_btn, EINA_TRUE); - m_ConfigNetwork(); - break; - case 21: - case 23: - if (m->confirm_popup) - evas_object_del(m->confirm_popup); - evas_object_hide(m->dim_ly); - elm_object_focus_set(m->ok_btn, EINA_TRUE); - break; - default: - break; - } -} - -void CIpSettingView::OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item) -{ - /* ID list */ - /* 0 m->base */ - /* 1 m->dns_mode_btn */ - /* 2 m->dns_setting_btn */ - /* 3 m->ok_btn */ - /* 4 m->cancel_btn */ - /* 5 m->ip_mode_btn */ - /* 6 m->ip_addr_btn */ - /* 7 m->subnet_mask_btn */ - /* 8 m->gateway_btn */ - /* 9 btn_auto */ - /* 10 btn_man */ - /* 11 m->dns_mode_ly */ - /* 12 ctxpopup auto_btn*/ - /* 13 ctxpopup man_btn*/ - /* 14 m->ip_mode_ly */ - /* 15 m->config_popup */ - /* 16 m->cur_ip_btn[0] */ - /* 17 m->cur_ip_btn[1] */ - /* 18 m->cur_ip_btn[2] */ - /* 19 m->cur_ip_btn[3] */ - /* 20 showpopup retry_btn */ - /* 21 showpopup cancel_btn */ - /* 22 showpopup */ - /* 23 showInvalidIpPopup ok_btn */ - /* 24 showInvalidIpPopup layout */ - - switch(id) { - case 11: - case 14: - case 15: - case 22: - case 24: - evas_object_hide(m->dim_ly); - evas_object_del(obj); - break; - default: - break; - } -} - - diff --git a/ug/network/src/NetworkMainView.cpp b/ug/network/src/NetworkMainView.cpp deleted file mode 100644 index e2b3133..0000000 --- a/ug/network/src/NetworkMainView.cpp +++ /dev/null @@ -1,1710 +0,0 @@ -#include -#include "util.h" -#include "defs.h" -#include "i18n.h" -#include "common.h" -#include -#include -#include "WifiMgr.h" -#include "NetConMgr.h" - -#include "NetworkMainView.h" - -static const char *action_button[4] = { - TXT_CONNECT_BTN, - TXT_REFRESH_BTN, - TXT_OTHER_BTN, - TXT_CLOSE_BTN -}; - -static const char *button_swallow[4] = { - PART_CONNECT_BTN, - PART_REFRESH_BTN, - PART_OTHER_BTN, - PART_CLOSE_BTN -}; - -static const char *popup_button[2] = { - TXT_WIRELESS, - TXT_WIRED -}; - -struct SNetworkMainView { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - Evas_Object *type_btn; - Evas_Object *network_ctxpopup; - Evas_Object *dim_ly; - Evas_Object *connect_btn; - Evas_Object *refresh_btn; - Evas_Object *other_btn; - Evas_Object *close_btn; - Evas_Object *genlist; - Evas_Object *wired_con_box; - Evas_Object *wireless_discon_ly; - Evas_Object *wired_discon_ly; - Evas_Object *status_popup; - - Elm_Genlist_Item_Class *lock_ic; - Elm_Genlist_Item_Class *nolock_ic; - Elm_Object_Item *last_item; - - Eina_List *ap_list; - Ecore_Timer *timer; - - enum network_type_enum network_type; - enum view_type cur_view; - - int wifi_init; - Eina_Bool wifi_conn; - Eina_Bool wired_conn; - - char profile_name[MAX_NAME_SIZE]; - - CWifiAp *ap; - char *ap_name; - char *ap_pwd; - - CWifiMgr *pWifiMgr; - CNetConMgr *pNetConMgr; - CViewMgr *pViewMgr; - - SNetworkMainView() { - pHandlerBase = new CHandlerBase(this); - pHandlerTypeButton = new CHandlerTypeButton(this); - pHandlerPopupButton = new CHandlerPopupButton(this); - pHandlerWiredConBox = new CHandlerWiredConBox(this); - pHandlerActionBtns = new CHandlerActionBtns(this); - pHandlerConfirmPopup = new CHandlerConfirmPopup(this); - } - virtual ~SNetworkMainView() { - delete pHandlerConfirmPopup; - delete pHandlerActionBtns; - delete pHandlerWiredConBox; - delete pHandlerPopupButton; - delete pHandlerTypeButton; - delete pHandlerBase; - } - - class CHandlerBase : public CListenerMgr, public IKeyDownListener { - private: - SNetworkMainView *m; - - public: - CHandlerBase(SNetworkMainView *ins) : IKeyDownListener(this) { m = ins; } - - virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) { - _DBG(); - switch (id) { - case 0: - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - ug_destroy_me(m->ug); - } - break; - case 1: - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - //_unset_layout_dim(priv); - evas_object_hide(m->dim_ly); - if (m->network_ctxpopup) { - evas_object_del(m->network_ctxpopup); - m->network_ctxpopup = NULL; - } - } - break; - default: - break; - } - } - } *pHandlerBase; - - class CHandlerTypeButton : public CListenerMgr, IMouseClickedListener { - private: - SNetworkMainView *m; - - public: - CHandlerTypeButton(SNetworkMainView *ins) : IMouseClickedListener(this) { m = ins; } - - virtual void OnMouseClicked(int id, Evas_Object *obj) { - _DBG(); - Evas_Object *base = NULL; - Evas_Object *layout, *box; - Evas_Object *btn[BTN_TYPE]; - Evas_Coord x; - Evas_Coord y; - Evas_Coord w; - Evas_Coord h; - int i; - - evas_object_show(m->dim_ly); - - layout = util_add_layout(base, UG_NETWORK_EDJ_FILE, GRP_NETWORK_TYPE_SELECT); - if (!layout) { - _ERR("util_add_layout() failed."); - return; - } - - box = util_add_box(layout, PART_SWALLOW_CONTENT); - if (!box) { - evas_object_del(layout); - return; - } - - evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0); - - for (i = 0; i < BTN_TYPE; i++) { - btn[i] = util_add_button(box, STYLE_POPUP_BTN, NULL, _(popup_button[i])); - if (!btn[i]) { - evas_object_del(layout); - return; - } - - elm_box_pack_end(box, btn[i]); - - //evas_object_smart_callback_add(btn[i], SIG_CLICKED, _type_select_btn_cb, priv); - m->pHandlerPopupButton->Connect(btn[i],i); - } - - if (m->network_type == TYPE_WIRELESS) - elm_object_signal_emit(btn[TYPE_WIRELESS], SIG_BTN_SELECTED, PROG); - else - elm_object_signal_emit(btn[TYPE_WIRED], SIG_BTN_SELECTED, PROG); - - elm_object_part_content_set(layout, PART_SWALLOW_CONTENT, box); - - elm_object_focus_next_object_set(btn[1], btn[0], ELM_FOCUS_DOWN); - elm_object_focus_next_object_set(btn[0], btn[1], ELM_FOCUS_UP); - elm_object_focus_next_object_set(btn[1], btn[0], ELM_FOCUS_UP); - elm_object_focus_next_object_set(btn[0], btn[1], ELM_FOCUS_DOWN); - elm_object_focus_next_object_set(btn[0], btn[0], ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(btn[0], btn[0], ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(btn[1], btn[1], ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(btn[1], btn[1], ELM_FOCUS_RIGHT); - - x = 0; y = 0; w = 0; h = 0; - - evas_object_geometry_get(m->type_btn, &x, &y, &w, &h); - evas_object_move(layout, (x + w - TYPE_POPUP_X_OFFSET) * ELM_SCALE, (y + h) * ELM_SCALE); - - m->network_ctxpopup = layout; - - //evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, _type_key_pressed_cb, priv); - m->pHandlerBase->Connect(layout, 1); - - elm_object_focus_set(btn[0], EINA_TRUE); - evas_object_show(layout); - } - } *pHandlerTypeButton; - - class CHandlerPopupButton : public CListenerMgr, IMouseClickedListener { - private: - SNetworkMainView *m; - public: - CHandlerPopupButton(SNetworkMainView *ins) : IMouseClickedListener(this) { m = ins; } - - virtual void OnMouseClicked(int id, Evas_Object *obj) { - _DBG(); - const char *value; - - value = elm_object_text_get(obj); - if (!value) { - _ERR("get text from network type btn is NULL."); - return; - } - - if ((!strcmp(value, _(popup_button[TYPE_WIRELESS]))) && m->network_type == TYPE_WIRED) { - m->network_type = TYPE_WIRELESS; - //m_SetWireless(); - vconf_set_str(SELECTED_NETWORK_TYPE_KEY, TXT_WIRELESS); - } else if ((!strcmp(value, _(popup_button[TYPE_WIRED]))) && m->network_type == TYPE_WIRELESS) { - m->network_type = TYPE_WIRED; - //m_SetWired(); - vconf_set_str(SELECTED_NETWORK_TYPE_KEY, TXT_WIRED); - } - - //m_SetNetTypeBtnText(); - - if (m->network_ctxpopup) { - evas_object_del(m->network_ctxpopup); - m->network_ctxpopup = NULL; - } - - evas_object_hide(m->dim_ly); - } - } *pHandlerPopupButton; - - class CHandlerWiredConBox : public CListenerMgr, IMouseClickedListener { - private: - SNetworkMainView *m; - public: - CHandlerWiredConBox(SNetworkMainView *ins) : IMouseClickedListener(this) { m = ins; } - - virtual void OnMouseClicked(int id, Evas_Object *obj) { - _DBG(); - if (m->wired_conn) { - elm_object_signal_emit(obj, SIG_STATE_UNSELECTED, ELM); - m->wired_conn = EINA_FALSE; - elm_object_disabled_set(m->connect_btn, EINA_TRUE); - elm_object_disabled_set(m->other_btn, EINA_TRUE); - } else { - elm_object_signal_emit(obj, SIG_STATE_SELECTED, ELM); - m->wired_conn = EINA_TRUE; - elm_object_disabled_set(m->connect_btn, EINA_FALSE); - elm_object_disabled_set(m->other_btn, EINA_FALSE); - } - } - } *pHandlerWiredConBox; - - class CHandlerActionBtns : public CListenerMgr, IMouseClickedListener { - private: - SNetworkMainView *m; - public: - CHandlerActionBtns(SNetworkMainView *ins) : IMouseClickedListener(this) { m = ins; } - - virtual void OnMouseClicked(int id, Evas_Object *obj) { - _DBG(); - switch (id) { - case 0: /* CONNECT */ - //m_ConnectNetwork(); - break; - case 1: /* REFRESH */ - //m_ClearGenlist(); - //m_SetWireless(); - break; - case 2: /* OTHER */ - struct connection_info info; - - m->cur_view = NETWORK_IP_SETTING_VIEW; - - info.cur_type = m->network_type; - - if (m->network_type == TYPE_WIRED) { - strncpy(info.name, m->profile_name, - MAX_NAME_SIZE - 1); - } else { - if (!m->ap) { - _ERR("selected ap is NULL."); - return; - } - - info.ap = m->ap; - - if (m->ap_name) - strncpy(info.name, m->ap_name, - MAX_NAME_SIZE - 1); - } - -#if 0 - base = viewmgr_push(m->vmgr, ip_setting_view_vclass_get(), &info); - if (!base) - _ERR("add connection layout failed."); -#endif - break; - case 3: /* CLOSE */ - if (m->ug) - ug_destroy_me(m->ug); - break; - default: - break; - } - } - } *pHandlerActionBtns; - - class CHandlerConfirmPopup : public CListenerMgr, IKeyDownListener, IMouseClickedListener, IUnfocusedListener { - private: - SNetworkMainView *m; - public: - CHandlerConfirmPopup(SNetworkMainView *ins) : IKeyDownListener(this), IMouseClickedListener(this), IUnfocusedListener(this) { m = ins; } - - virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) { - _DBG(); - switch(id) { - case 0: /* retry_btn */ - break; - case 1: /* cancel_btn */ - break; - case 2: /* layout */ - case 5: /* layout of progress popup */ - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - evas_object_hide(m->dim_ly); - evas_object_del(obj); - } - break; - default: - break; - } - } - virtual void OnMouseClicked(int id, Evas_Object *obj) { - _DBG(); - switch(id) { - case 0: - evas_object_hide(m->dim_ly); - if (m->status_popup) - evas_object_del(m->status_popup); - m->status_popup = NULL; - //m_ConnectNetwork(); - break; - case 1: - case 4: /* cancel_btn of progress popup */ - evas_object_hide(m->dim_ly); - if (m->status_popup) - evas_object_del(m->status_popup); - m->status_popup = NULL; - elm_object_focus_set(m->connect_btn, EINA_TRUE); - break; - case 2: - break; - default: - break; - } - } - virtual void OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item){ - _DBG(); - switch(id) { - case 0: - break; - case 1: - break; - case 2: - case 5: /* layout of progress popup */ - evas_object_hide(m->dim_ly); - evas_object_del(obj); - break; - default: - break; - } - } - } *pHandlerConfirmPopup; -}; - - -void CNetworkMainView::sm_CbGenlistItemSelected(void *data, Evas_Object *obj, void *ei) -{ - _DBG(); - struct SNetworkMainView *priv; - Elm_Object_Item *gen_item; - struct wifi_ap_info *ap_info; - int index; - - if (!data || !ei) { - _ERR("Parameter error!"); - return; - } - - priv = (struct SNetworkMainView *) data; - gen_item = (Elm_Object_Item *) ei; - - if (priv->last_item == gen_item) { - elm_object_item_signal_emit(gen_item, SIG_STATE_UNSELECTED, ELM); - - elm_object_disabled_set(priv->connect_btn, EINA_TRUE); - elm_object_disabled_set(priv->other_btn, EINA_TRUE); - - priv->last_item = NULL; - - return; - } - - elm_object_item_signal_emit(gen_item, SIG_STATE_SELECTED, ELM); - if (priv->last_item) - elm_object_item_signal_emit(priv->last_item, SIG_STATE_UNSELECTED, ELM); - priv->last_item = gen_item; - - elm_object_disabled_set(priv->connect_btn, EINA_FALSE); - elm_object_disabled_set(priv->other_btn, EINA_FALSE); - - index = elm_genlist_item_index_get(priv->last_item); - if (index < 0) { - _ERR("the index of item is invalid."); - return; - } - - ap_info = (struct wifi_ap_info *) eina_list_nth(priv->ap_list, index); - if (!ap_info) { - _ERR("ap info is NULL."); - return; - } - - if (priv->ap_name) { - free(priv->ap_name); - priv->ap_name = NULL; - } - - priv->ap_name = strdup(ap_info->essid); - if (!priv->ap_name) { - _ERR("ap name gets failed."); - return; - } - - if (priv->ap) { - delete priv->ap; - priv->ap = NULL; - } - - priv->ap = new CWifiAp(ap_info->ap->Handle()); - if (!priv->ap) { - _ERR("ap clone failed."); - return; - } - - if (ap_info->secure_type == WIFI_SECURITY_TYPE_NONE) { - if (priv->ap_pwd) { - free(priv->ap_pwd); - priv->ap_pwd = NULL; - } - } -} - - -Eina_Bool CNetworkMainView::sm_CbSelectConnected(void *data) -{ - _DBG(); - struct SNetworkMainView *priv; - - if (!data) { - _ERR("Parameter error!"); - return ECORE_CALLBACK_CANCEL; - } - - priv = (struct SNetworkMainView *) data; - - elm_object_item_signal_emit(priv->last_item, SIG_STATE_SELECTED, ELM); - elm_object_disabled_set(priv->connect_btn, EINA_FALSE); - elm_object_disabled_set(priv->other_btn, EINA_FALSE); - - priv->timer = NULL; - - return ECORE_CALLBACK_CANCEL; -} - - -bool CNetworkMainView::sm_CbWifiFoundAP(CWifiAp *ap, void *data) -{ - CNetworkMainView *root = (CNetworkMainView*)data; - bool ret = false; - - if (root) - ret = root->m_OnWifiFoundAP(ap); - - return ret; -} - - -bool CNetworkMainView::m_OnWifiFoundAP(CWifiAp *ap) -{ - bool ret; - bool state; - struct wifi_ap_info *ap_info; - Elm_Object_Item *item; - - ret = m->pWifiMgr->IsActivated(&state); - if (ret != true || state == 0) { - _ERR("failt to wifi_is_activated"); - return false; - } - - ap_info = new wifi_ap_info; - if (!ap_info) { - _ERR("calloc failed"); - return false; - } - - if (!ap->GetEssid(ap_info->essid, sizeof(ap_info->essid))) { - _ERR("Fail to get info"); - return false; - } - - if (!ap->GetConnectionState(&ap_info->state)) { - _ERR("Fail to get info"); - return false; - } - - if (!ap->GetSecurityType(&ap_info->secure_type)) { - _ERR("Fail to get info"); - return false; - } - - ap_info->ap = new CWifiAp(ap->Handle()); - ap_info->user_data = m; - m->ap_list = eina_list_append(m->ap_list, ap_info); - - m_FillContentPart(m->genlist); - - if (ap_info->secure_type == WIFI_SECURITY_TYPE_NONE) - item = elm_genlist_item_append(m->genlist, m->nolock_ic, ap_info, NULL, ELM_GENLIST_ITEM_NONE, sm_CbGenlistItemSelected, m); - else - item = elm_genlist_item_append(m->genlist, m->lock_ic, ap_info, NULL, ELM_GENLIST_ITEM_NONE, sm_CbGenlistItemSelected, m); - if (!item) { - _ERR("genlist append item failed."); - return false; - } - - if (ap_info->state == WIFI_CONNECTION_STATE_CONNECTED) { - m->last_item = item; - if (m->ap) { - delete m->ap; - m->ap = NULL; - } - - m->ap = new CWifiAp(ap->Handle()); - if (!m->ap) { - _ERR("Fail to clone AP"); - } - - m->timer = ecore_timer_add(TIMER_INTERNAL, sm_CbSelectConnected, m); - if (!m->timer) { - _ERR("add timer failed."); - return false; - } - } - - return false; -} - - -void CNetworkMainView::sm_CbWifiScanRequest(wifi_error_e err, void *data) -{ - CNetworkMainView *root = (CNetworkMainView*)data; - if (root) - root->m_OnWifiScanRequest(err); -} - - -void CNetworkMainView::m_OnWifiScanRequest(wifi_error_e err) -{ - _DBG(); - bool ret = false; - ret = m->pWifiMgr->FoundAps(sm_CbWifiFoundAP, this); - if (ret != true) { - _ERR("wifi_mgr_foreach_found_aps() failed."); - } -} - - -void CNetworkMainView::sm_CbConnectionOnlineAsync(bool state, void *data) -{ - _DBG(); - CNetworkMainView *instance = NULL; - instance = (CNetworkMainView *) data; - - instance->m_OnConnectionOnlineAync(state); -} - -void CNetworkMainView::m_OnConnectionOnlineAync(bool state) -{ - _DBG(); - if (state != true) { - _ERR("connection result"); - m_ShowConfirmPopup(); - } else { - ug_destroy_me(m->ug); - } -} - -void CNetworkMainView::sm_CbCheckGatewayAsync(bool state, void *data) -{ - _DBG(); - CNetworkMainView *instance = NULL; - instance = (CNetworkMainView *) data; - - instance->m_OnCheckGatewayAsync(state); -} - - -void CNetworkMainView::m_OnCheckGatewayAsync(bool state) -{ - _DBG(); - bool ret; - - if (state != true) { - _ERR("connection disconnected"); - m_ShowConfirmPopup(); - } else { - ret = m->pNetConMgr->RegisterIpChangedCallback( sm_CbConnectionOnlineAsync, this); - if (ret != true) { - _ERR("connection_mgr_get_is_online_async() failed."); - return; - } - } -} - - -void CNetworkMainView::sm_CbWifiActivated(wifi_error_e err, void *data) -{ - _DBG(); - CNetworkMainView *instance = NULL; - instance = (CNetworkMainView *) data; - - instance->m_OnWifiActivated(err); -} - - -void CNetworkMainView::m_OnWifiActivated(wifi_error_e err) -{ - _DBG(); - bool ret; - - if (err != WIFI_ERROR_NONE) { - _ERR("Wi-Fi Activation Failed! error == %s", CWifiMgr::ErrorMsg(err)); - return; - } - - ret = m->pWifiMgr->Scan(sm_CbWifiScanRequest, this); - if (ret != true) { - _ERR("wifi_mgr_scan_request() failed."); - m_FillContentPart(m->wireless_discon_ly); - m_SetActionBtnPos(); - return; - } - - m->wifi_conn = EINA_TRUE; - - m_SetActionBtnPos(); - - m_FillContentPart(m->genlist); -} - - -char* CNetworkMainView::sm_GetApName(void *data, Evas_Object *obj, const char *part) -{ - _DBG(); - struct wifi_ap_info *ap_info; - - if (!data || !obj || !part) { - _ERR("Parameter error!"); - return NULL; - } - - ap_info = (struct wifi_ap_info *) data; - - if (!strcmp(part, PART_ELM_TEXT)) - return strdup(ap_info->essid); - - return NULL; -} - - -void CNetworkMainView::sm_CbEthernetStateChanged(bool state, void *data) -{ - _DBG(); - if (!data) { - _ERR("data is NULL."); - return; - } - - CNetworkMainView *priv = (CNetworkMainView *) data; - - priv->m_OnEthernetStateChanged(state); -} - - -void CNetworkMainView::m_OnEthernetStateChanged(bool state) -{ - _DBG(); - if (m->network_type != TYPE_WIRED) { - _ERR("cur network type is wireless, return."); - return; - } - - if (state == true) { // ethernet connected - m_FillContentPart(m->wired_con_box); - } else { - m_FillContentPart(m->wired_discon_ly); - - m->wired_conn = EINA_FALSE; - } - - m_SetActionBtnPos(); -} - - -bool CNetworkMainView::m_InitConnectionMgr() -{ - _DBG(); - if(!CNetConMgr::Initialize()) { - _ERR("Fail to init CNetConMgr"); - } - - m->pNetConMgr = CNetConMgr::GetInstance(); - if (!m->pNetConMgr) { - _ERR("Fail to get instance"); - return false; - } - - if(!m->pNetConMgr->GetProfileName(m->profile_name)) { - _ERR("Fail to get profilename"); - return false; - } - - if(!m->pNetConMgr->RegisterIpChangedCallback( sm_CbEthernetStateChanged, this)) { - _ERR("register_ethernet_state_cb() failed."); - return false; - } - - return true; -} - - -void CNetworkMainView::m_FinalizeConnectionMgr() -{ - _DBG(); - CNetConMgr::Finalize(); - m->pNetConMgr = NULL; -} - - -Evas_Object* CNetworkMainView::m_CreateMainLayout() -{ - _DBG(); - Evas_Object *base; - - base = util_add_layout(m->win, UG_NETWORK_EDJ_FILE, GRP_MAIN); - if (!base) { - _ERR("Add pannel view failed."); - return NULL; - } - - //evas_object_event_callback_add(base, EVAS_CALLBACK_KEY_DOWN, _main_ly_key_pressed_cb, priv); - m->pHandlerBase->Connect(base, 0); - - evas_object_show(base); - - return base; -} - - -bool CNetworkMainView::m_CreateUpperLayout() -{ - _DBG(); - Evas_Object *type_btn; - - elm_object_part_text_set(m->base, PART_SELECT_TEXT, _(TXT_NETWORK_DISC)); - - type_btn = util_add_button(m->base, STYLE_TYPE_BTN, PART_NETWORK_TYPE, _(TXT_TYPE_BTN)); - if (!type_btn) - return false; - - m->pHandlerTypeButton->Connect(m->base); - - elm_object_focus_next_object_set(type_btn, type_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(type_btn, type_btn, ELM_FOCUS_LEFT); - - m->type_btn = type_btn; - - elm_object_focus_set(type_btn, EINA_TRUE); - - m_SetNetTypeBtnText(); - - return true; -} - - -bool CNetworkMainView::m_CreateActionBtns() -{ - _DBG(); - Evas_Object *bt[BTN_ACT]; - int i; - - for (i = 0; i < BTN_ACT; i++) { - bt[i] = util_add_button(m->base, STYLE_ACTION_BTN, button_swallow[i], _(action_button[i])); - if (!bt[i]) - return false; - } - - m->connect_btn = bt[CONNECT]; - m->refresh_btn = bt[REFRESH]; - m->other_btn = bt[OTHER]; - m->close_btn = bt[CLOSE]; - - evas_object_hide(m->refresh_btn); - - //evas_object_smart_callback_add(bt[CONNECT], SIG_CLICKED, _connect_btn_clicked_cb, priv); - //evas_object_smart_callback_add(bt[REFRESH], SIG_CLICKED, _refresh_btn_clicked_cb, priv); - //evas_object_smart_callback_add(bt[OTHER], SIG_CLICKED, _other_btn_clicked_cb, priv); - //evas_object_smart_callback_add(bt[CLOSE], SIG_CLICKED, _close_btn_clicked_cb, priv); - m->pHandlerActionBtns->Connect(bt[CONNECT], 0); - m->pHandlerActionBtns->Connect(bt[REFRESH], 1); - m->pHandlerActionBtns->Connect(bt[OTHER], 2); - m->pHandlerActionBtns->Connect(bt[CLOSE], 3); - - m_SetActionBtnPos(); - - return true; -} - - -void CNetworkMainView::m_DestroyActionBtns() -{ - _DBG(); - if(m->close_btn) evas_object_del(m->close_btn); - if(m->other_btn) evas_object_del(m->other_btn); - if(m->refresh_btn) evas_object_del(m->refresh_btn); - if(m->connect_btn) evas_object_del(m->connect_btn); -} - - -bool CNetworkMainView::m_CreateDimLayout() -{ - _DBG(); - Evas_Object *dim_ly; - - dim_ly = util_add_layout(m->win, UG_NETWORK_EDJ_FILE, GRP_DIM_LY); - if (!dim_ly) { - _ERR("elm_layout_add() failed.\n"); - return false; - } - - m->dim_ly = dim_ly; - - evas_object_hide(m->dim_ly); - - return true; -} - - -void CNetworkMainView::m_SetNetTypeBtnText() -{ - _DBG(); - switch (m->network_type) { - case TYPE_WIRELESS: - elm_object_part_text_set(m->base, PART_CUR_TYPE_TEXT, _(TXT_WIRELESS_NETWORK)); - elm_object_part_text_set(m->type_btn, PART_NETWORK_TYPE_SELECTED, _(TXT_WIRELESS)); - break; - case TYPE_WIRED: - elm_object_part_text_set(m->base, PART_CUR_TYPE_TEXT, _(TXT_WIRED_NETWORK)); - elm_object_part_text_set(m->type_btn, PART_NETWORK_TYPE_SELECTED, _(TXT_WIRED)); - break; - default: - break; - } -} - - -bool CNetworkMainView::m_SetWireless() -{ - _DBG(); - Evas_Object *obj; - bool activated; - bool ret = false; - - m_CreateWirelessDisconnectPart(); - - if (!m->wifi_init) { - obj = m_CreateGenlistView(); - if (!obj) { - _ERR("fail to create genlist"); - return false; - } - - ret = CWifiMgr::Initialize(); - if(ret != true) { - _ERR("Fail to initialize WifiMgr"); - return false; - } - m->pWifiMgr = CWifiMgr::GetInstance(); - if(!m->pWifiMgr) { - _ERR("Fail to get instance"); - return false; - } - - m->wifi_init = 1; - } - - m_ClearGenlist(); - - activated = EINA_FALSE; - ret = m->pWifiMgr->IsActivated(&activated); - if (ret != true) { - _ERR("the wifi is not activated."); - return false; - } - - if (activated) { - if (m->ap) { - delete m->ap; - m->ap = NULL; - } - - ret = m->pWifiMgr->Scan(sm_CbWifiScanRequest, this); - if (ret != true) { - _ERR("wifi_mgr_scan_request() failed."); - goto _wireless_finish; - } - - m->wifi_conn = EINA_TRUE; - } else { - m->wifi_conn = EINA_FALSE; - - ret = m->pWifiMgr->Activate(sm_CbWifiActivated, this); - if (ret != true) - _ERR("wifi_mgr_activate() failed."); - } - -_wireless_finish: - m_FillContentPart(m->wireless_discon_ly); - m_SetActionBtnPos(); - - return true; -} - - -bool CNetworkMainView::m_SetWired() -{ - _DBG(); - bool plugin; - - m_CreateWiredConnectPart(); - - m_CreateWiredDisconnectPart(); - - if(!m->pNetConMgr->GetEthernetState(&plugin)) { - _ERR("connection_mgr_get_ethernet_state() failed."); - plugin = false; - } - - if (plugin) { - m_FillContentPart(m->wired_con_box); - } else { - m->wired_conn = EINA_FALSE; - m_FillContentPart(m->wired_discon_ly); - } - - m_SetActionBtnPos(); - - return true; -} - - -void CNetworkMainView::m_FillContentPart(Evas_Object *obj) -{ - _DBG(); - Evas_Object *old_obj; - - if (!obj) { - _ERR("The param is invalid."); - return; - } - - old_obj = elm_object_part_content_get(m->base, PART_NETLIST_PANNEL); - if (old_obj == obj) { - _ERR("PART_NETLIST_PANNEL already filled with this object."); - return; - } - - if (old_obj) { - evas_object_hide(old_obj); - } - - elm_object_part_content_unset(m->base, PART_NETLIST_PANNEL); - elm_object_part_content_set(m->base, PART_NETLIST_PANNEL, obj); - - evas_object_show(obj); -} - - -void CNetworkMainView::m_SetActionBtnPos() -{ - _DBG(); - Evas_Object *btn; - - btn = elm_object_part_content_get(m->base, button_swallow[CONNECT]); - if (!btn) { - elm_object_part_content_unset(m->base, button_swallow[CONNECT]); - elm_object_part_content_set(m->base, button_swallow[CONNECT], m->connect_btn); - evas_object_show(m->connect_btn); - } - - btn = elm_object_part_content_get(m->base, button_swallow[REFRESH]); - if (btn) { - elm_object_part_content_unset(m->base, button_swallow[REFRESH]); - evas_object_hide(btn); - } - - btn = elm_object_part_content_get(m->base, button_swallow[OTHER]); - if (btn) { - elm_object_part_content_unset(m->base, button_swallow[OTHER]); - evas_object_hide(btn); - } - - btn = elm_object_part_content_get(m->base, button_swallow[CLOSE]); - if (btn) { - elm_object_part_content_unset(m->base, button_swallow[CLOSE]); - evas_object_hide(btn); - } - - if (m->network_type == TYPE_WIRELESS) { - if (!m->wifi_conn) { - elm_object_part_content_set(m->base, button_swallow[REFRESH], m->other_btn); - evas_object_show(m->other_btn); - - elm_object_part_content_set(m->base, button_swallow[OTHER], m->close_btn); - evas_object_show(m->close_btn); - } else { - elm_object_part_content_set(m->base, button_swallow[REFRESH], m->refresh_btn); - evas_object_show(m->refresh_btn); - - elm_object_part_content_set(m->base, button_swallow[OTHER], m->other_btn); - evas_object_show(m->other_btn); - - elm_object_part_content_set(m->base, button_swallow[CLOSE], m->close_btn); - evas_object_show(m->close_btn); - } - - if (m->ap) { - elm_object_disabled_set(m->other_btn, EINA_FALSE); - elm_object_disabled_set(m->connect_btn, EINA_FALSE); - } else { - elm_object_disabled_set(m->connect_btn, EINA_TRUE); - elm_object_disabled_set(m->other_btn, EINA_TRUE); - } - } else if (m->network_type == TYPE_WIRED) { - if (!m->wired_conn) { - elm_object_disabled_set(m->connect_btn, EINA_TRUE); - elm_object_disabled_set(m->other_btn, EINA_TRUE); - } else { - elm_object_disabled_set(m->connect_btn, EINA_FALSE); - elm_object_disabled_set(m->other_btn, EINA_FALSE); - } - - elm_object_part_content_set(m->base, button_swallow[REFRESH], m->other_btn); - evas_object_show(m->other_btn); - - elm_object_part_content_set(m->base, button_swallow[OTHER], m->close_btn); - evas_object_show(m->close_btn); - } -} - - -void CNetworkMainView::m_CreateWirelessDisconnectPart(void) -{ - _DBG(); - Evas_Object *disconnect_ly; - - if (m->wireless_discon_ly) - return; - - disconnect_ly = util_add_layout(m->base, UG_NETWORK_EDJ_FILE, GRP_WIRELESS_DISCONNECT_LY); - if (!disconnect_ly) { - _ERR("call elm_layout_add() failed."); - return; - } - - elm_object_part_text_set(disconnect_ly, PART_DISCONNECT_TEXT, TXT_NO_NETWORK); - - evas_object_hide(disconnect_ly); - - m->wireless_discon_ly = disconnect_ly; -} - - -bool CNetworkMainView::m_CreateWiredConnectPart(void) -{ - _DBG(); - Evas_Object *box; - Evas_Object *btn; - - box = util_add_box(m->base, NULL); - if (!box) { - _ERR("add wired connect box failed."); - return false; - } - - elm_box_horizontal_set(box, EINA_FALSE); - - btn = util_add_button(box, STYLE_WIRED_LIST_BTN, NULL, _(m->profile_name)); - if (!btn) { - _ERR("elm_button_add failed."); - evas_object_del(box); - return false; - } - - evas_object_size_hint_align_set(btn, 0, 0); - m->pHandlerWiredConBox->Connect(btn); - if (m->wired_conn) - elm_object_signal_emit(btn, SIG_STATE_SELECTED, ELM); - elm_box_pack_end(box, btn); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); - evas_object_hide(box); - - m->wired_con_box = box; - - return true; -} - - -bool CNetworkMainView::m_CreateWiredDisconnectPart(void) -{ - _DBG(); - Evas_Object *disconnect_ly; - - disconnect_ly = util_add_layout(m->base, UG_NETWORK_EDJ_FILE, GRP_WIRED_DISCONNECTED_LY); - if (!disconnect_ly) { - _ERR("call elm_layout_add() failed."); - return false; - } - - elm_object_part_text_set(disconnect_ly, PART_DISCONNECT_TEXT, _(TXT_PLUG_CABLE)); - - evas_object_hide(disconnect_ly); - - m->wired_discon_ly = disconnect_ly; - - return true; -} - - -Evas_Object* CNetworkMainView::m_CreateGenlistView(void) -{ - _DBG(); - Evas_Object *genlist; - - Elm_Genlist_Item_Class *ic; - - ic = elm_genlist_item_class_new(); - if (!ic) { - _ERR("elm_genlist_item_class_new() failed."); - return NULL; - } - - ic->item_style = STYLE_ITEM_LOCK; - ic->func.text_get = sm_GetApName; - ic->func.content_get = NULL; - ic->func.state_get = NULL; - ic->func.del = NULL; - - m->lock_ic = ic; - - ic = NULL; - ic = elm_genlist_item_class_new(); - if (!ic) { - _ERR("elm_genlist_item_class_new() failed."); - return NULL; - } - - ic->item_style = STYLE_ITEM_NOLOCK; - ic->func.text_get = sm_GetApName; - ic->func.content_get = NULL; - ic->func.state_get = NULL; - ic->func.del = NULL; - if (!ic) { - _ERR("get item class failed."); - return NULL; - } - - m->nolock_ic = ic; - - genlist = util_add_genlist(m->base); - if (!genlist) { - _ERR("util_add_genlist() failed."); - return NULL; - } - - m->genlist = genlist; - - elm_object_focus_next_object_set(genlist, genlist, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(genlist, m->close_btn, ELM_FOCUS_RIGHT); - - return genlist; -} - - -void CNetworkMainView::m_ClearGenlist(void) -{ - _DBG(); - struct wifi_ap_info *ap; - void *temp; - - elm_genlist_clear(m->genlist); - - if (m->ap_list) - EINA_LIST_FREE(m->ap_list, temp) - { - ap = (struct wifi_ap_info *) temp; - free(ap); - } -} - - -void CNetworkMainView::sm_CbWifiConnected(wifi_error_e err, void *data) -{ - CNetworkMainView *root = (CNetworkMainView*)data; - if (root) - root->m_OnWifiConnected(err); -} - - -void CNetworkMainView::m_OnWifiConnected(wifi_error_e err) -{ - _DBG(); - if (!m->status_popup) - return; - - if (err != WIFI_ERROR_NONE) { - _ERR("connect AP failed."); - m_ShowConfirmPopup(); - return; - } - - ug_destroy_me(m->ug); -} - - -void CNetworkMainView::m_ConnectNetwork(void) -{ - _DBG(); - int index; - bool ret = false; - - if (m->network_type == TYPE_WIRELESS) { - if (m->last_item) { - index = elm_genlist_item_index_get(m->last_item); - - ret = m_WifiConnectAP(index); - if (ret != true) { - _ERR("connect ap"); - m_ShowConfirmPopup(); - return; - } - } - } else { - ret = m_WiredConnectAP(); - if (ret != true) { - _ERR("connect ap"); - m_ShowConfirmPopup(); - return; - } - } -} - - -bool CNetworkMainView::m_WifiConnectAP(int index) -{ - _DBG(); - struct wifi_ap_info *ap_info; - bool ret = false; - - if (index < 0) { - _ERR("Parameter error!"); - return false; - } - - m_ShowProgressPopup(); - - ap_info = (struct wifi_ap_info *) eina_list_nth(m->ap_list, index); - if (!ap_info) { - _ERR("ap info is NULL."); - return false; - } - - if (m->ap_name) { - free(m->ap_name); - m->ap_name = NULL; - } - - m->ap_name = strdup(ap_info->essid); - if (!m->ap_name) { - _ERR("ap name gets failed."); - return false; - } - - if (ap_info->secure_type == WIFI_SECURITY_TYPE_NONE) { - if (m->ap_pwd) { - free(m->ap_pwd); - m->ap_pwd = NULL; - } - } else { - m->cur_view = NETWORK_WIFI_PASSCODE_VIEW; -#if 0 - //m->pViewMgr->PushView(~~~) - //viewmgr_push(m->vmgr, wifi_passcode_view_vclass_get(), ap_info); -#endif - - return true; - } - - ret = CWifiAp::ForgetAP(); - if (ret != true) { - _ERR("forget last ap failed."); - return false; - } - - if (m->ap_pwd) { - m->ap->SetPassPhrase(m->ap_pwd); - if (ret != true) { - _ERR("wifi_mgr_set_passphrase() failed."); - return false; - } - } - - ret = m->ap->Connect(sm_CbWifiConnected, this); - if (ret != true) { - _ERR("Fail to connection request."); - return false; - } - return true; -} - - -bool CNetworkMainView::m_WiredConnectAP() -{ - _DBG(); - bool ret = false; - - m_ShowProgressPopup(); - - m->pNetConMgr->RefreshEthernetProfile(); - if(!m->pNetConMgr->GetProfileName(m->profile_name)) { - _ERR("Fail to get profile name"); - return false; - } - - ret = m_ConnectionSetLastNetwork(); - if (ret != true) { - _ERR("_connection_set_last_network() failed."); - return ret; - } - - ret = m->pNetConMgr->RegisterIpChangedCallback( sm_CbCheckGatewayAsync, this); - if (ret != true) { - _ERR("connection_mgr_get_is_online_async() failed."); - return false; - } - - return true; -} - - -bool CNetworkMainView::m_ConnectionSetLastNetwork(void) -{ - _DBG(); - enum setting_mode ip_mode; - struct network_info info; - - const char *str = NULL; - str = vconf_get_str(WIRED_IP_LAST_MODE); - if (str && !strcmp(str, _(TXT_OBTAIN_AUTO))) - ip_mode = MODE_AUTO; - else - ip_mode = MODE_MAN; - - bool result = false; - if (ip_mode == MODE_AUTO) { - result = m->pNetConMgr->SetIpConfType(CONNECTION_IP_CONFIG_TYPE_DYNAMIC); - if (result != true) { - _ERR("connection_mgr_ip_dynamic_config() failed."); - return false; - } - } else { - m_GetIpInfo(info.ip_addr, WIRED_IP_KEY); - m_GetIpInfo(info.submask, WIRED_SUBMASK_KEY); - m_GetIpInfo(info.gateway, WIRED_GATEWAY_KEY); - m_GetIpInfo(info.dns, WIRED_DNS_KEY); - } - - return true; -} - - -void CNetworkMainView::m_GetIpInfo(char *des, const char *key) -{ - _DBG(); - const char *str; - - if (!des || !key) - return; - - str = vconf_get_str(key); - if (!str) - return; - - if (str == '\0' || !strncmp(str, NULL_STRING, IP_STRING_MAX_SIZE)) - strncpy(des, _(ZERO_IP), IP_STRING_MAX_SIZE); - else - strncpy(des, str, IP_STRING_MAX_SIZE); -} - - -void CNetworkMainView::m_ShowConfirmPopup(void) -{ - _DBG(); - Evas_Object *layout; - Evas_Object *retry_btn; - Evas_Object *cancel_btn; - Evas_Coord w; - Evas_Coord h; - char content[CONTENT_TXT_SIZE]; - - if (m->status_popup) { - evas_object_hide(m->dim_ly); - evas_object_del(m->status_popup); - } - - evas_object_show(m->dim_ly); - - layout = util_add_layout(m->base, UG_NETWORK_EDJ_FILE, GRP_CONFIRM_LAYOUT); - if (!layout) { - _ERR("add layout failed."); - evas_object_hide(m->dim_ly); - return; - } - - evas_object_show(layout); - - memset(content, 0, CONTENT_TXT_SIZE); - if (m->network_type == TYPE_WIRED) { - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_WIRED_LY)); - snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", _(TXT_FAILED_CONNECT), _(m->profile_name)); - } else { - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); - snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", _(TXT_FAILED_CONNECT), m->ap_name); - } - - elm_object_part_text_set(layout, PART_TEXT_CONTENT, content); - - retry_btn = util_add_button(layout, STYLE_SETTING_BTN, PART_RETRY_BTN, _(TXT_RETRY)); - if (!retry_btn) { - _ERR("util add button failed."); - evas_object_del(layout); - evas_object_hide(m->dim_ly); - return; - } - - cancel_btn = util_add_button(layout, STYLE_SETTING_BTN, PART_CANCEL_BTN, _(TXT_CANCEL)); - if (!cancel_btn) { - _ERR("util add button failed."); - evas_object_del(layout); - evas_object_hide(m->dim_ly); - return; - } - - elm_object_focus_next_object_set(retry_btn, cancel_btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(cancel_btn, retry_btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(retry_btn, retry_btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(retry_btn, retry_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_DOWN); - elm_object_focus_next_object_set(retry_btn, retry_btn, ELM_FOCUS_DOWN); - - //evas_object_smart_callback_add(retry_btn, SIG_CLICKED, _retry_btn_clicked_cb, priv); - //evas_object_smart_callback_add(cancel_btn, SIG_CLICKED, _cancel_btn_clicked_cb, priv); - m->pHandlerConfirmPopup->Connect(retry_btn, 0); - m->pHandlerConfirmPopup->Connect(cancel_btn, 1); - - elm_object_focus_set(retry_btn, EINA_TRUE); - - elm_object_focus_allow_set(layout, EINA_TRUE); - //evas_object_smart_callback_add(layout, SIG_UNFOCUSED, _ctxpopup_unfocused_cb, priv); - //evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, _ctxpopup_pressed_cb, priv); - m->pHandlerConfirmPopup->Connect(layout, 2); - - w = DEFAULT_WIN_WIDTH; - h = DEFAULT_WIN_HEIGHT; - - evas_object_move(layout, CENTER_ALIGN * (w - POPUP_WIDTH) * ELM_SCALE, CENTER_ALIGN * (h - POPUP_HEIGHT) * ELM_SCALE); - - m->status_popup = layout; -} - -void CNetworkMainView::m_ShowProgressPopup(void) -{ - _DBG(); - Evas_Object *layout; - Evas_Object *cancel_btn; - Evas_Coord w; - Evas_Coord h; - char content[CONTENT_TXT_SIZE]; - - if (m->status_popup) { - evas_object_hide(m->dim_ly); - evas_object_del(m->status_popup); - } - - evas_object_show(m->dim_ly); - - layout = util_add_layout(m->base, UG_NETWORK_EDJ_FILE, GRP_PROCESSING_LAYOUT); - if (!layout) { - _ERR("add layout failed."); - evas_object_hide(m->dim_ly); - return; - } - - evas_object_show(layout); - - m->status_popup = layout; - - memset(content, 0, CONTENT_TXT_SIZE); - if (m->network_type == TYPE_WIRED) { - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_WIRED_LY)); - snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", _(TXT_CONNECTTING), _(m->profile_name)); - } else { - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); - snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", _(TXT_CONNECTTING), m->ap_name); - } - - elm_object_part_text_set(layout, PART_TEXT_CONTENT, content); - - cancel_btn = util_add_button(layout, STYLE_SETTING_BTN, PART_CANCEL_BTN, _(TXT_CANCEL)); - if (!cancel_btn) { - _ERR("util add button failed."); - evas_object_del(layout); - evas_object_hide(m->dim_ly); - return; - } - - evas_object_show(cancel_btn); - - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_DOWN); - - //evas_object_smart_callback_add(cancel_btn, SIG_CLICKED, _cancel_btn_clicked_cb, priv); - m->pHandlerConfirmPopup->Connect(cancel_btn, 4); - elm_object_focus_set(cancel_btn, EINA_TRUE); - elm_object_focus_allow_set(layout, EINA_TRUE); - //evas_object_smart_callback_add(layout, SIG_UNFOCUSED, _ctxpopup_unfocused_cb, priv); - //evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, _ctxpopup_pressed_cb, priv); - m->pHandlerConfirmPopup->Connect(layout, 5); - - w = DEFAULT_WIN_WIDTH; - h = DEFAULT_WIN_HEIGHT; - - evas_object_move(layout, CENTER_ALIGN * (w - POPUP_WIDTH) * ELM_SCALE, CENTER_ALIGN * (h - POPUP_HEIGHT) * ELM_SCALE); -} - - -void CNetworkMainView::t_OnShow() -{ - _DBG(); - - evas_object_show(m->base); - - CBaseView::t_OnShow(); -} - - -void CNetworkMainView::t_OnUpdate(void *data) -{ - _DBG(); - - evas_object_show(m->base); - - switch (m->cur_view) { - case NETWORK_IP_SETTING_VIEW: - elm_object_focus_set(m->other_btn, EINA_TRUE); - break; - case NETWORK_WIFI_PASSCODE_VIEW: - elm_object_focus_set(m->connect_btn, EINA_TRUE); - break; - default: - break; - } -} - - -void CNetworkMainView::t_OnHide() -{ - _DBG(); - - evas_object_hide(m->base); - - CBaseView::t_OnHide(); -} - - -bool CNetworkMainView::Create(void *data) -{ - _DBG(); - ASSERT(!m); - - bool ret = false; - - _CREATE_BEGIN{ - _CHECK(m = new SNetworkMainView) - _CHECK(m->win = CViewMgr::GetInstance()->Window()) - _CHECK(m_InitConnectionMgr()) - _CHECK(m->base = m_CreateMainLayout()) - _COMMAND{ - m->ap_list = NULL; - const char *str = NULL; - str = vconf_get_str(SELECTED_NETWORK_TYPE_KEY); - if (str && !strcmp(str, TXT_WIRED)) - m->network_type = TYPE_WIRED; - else - m->network_type = TYPE_WIRELESS; - } - _CHECK(m_CreateUpperLayout()) - _COMMAND{ - m->wireless_discon_ly = NULL; - - if (m->network_type == TYPE_WIRELESS) - ret = m_SetWireless(); - else if (m->network_type == TYPE_WIRED) - ret = m_SetWired(); - else - ret = false; - } - _CHECK(ret) - _CHECK(m_CreateActionBtns()) - _CHECK(m_CreateDimLayout()) - - _WHEN_SUCCESS{ - m->pViewMgr = CViewMgr::GetInstance(); - } - - _CHECK_FAIL{ if(m->dim_ly) evas_object_del(m->dim_ly); } - _CHECK_FAIL{ m_DestroyActionBtns(); } - _CHECK_FAIL{ /* ret */ - if (m->lock_ic) - elm_genlist_item_class_free(m->lock_ic); - if (m->nolock_ic) - elm_genlist_item_class_free(m->nolock_ic); - if (m->ap_list) { - EINA_LIST_FREE(m->ap_list, data) - free(data); - } - if (m->timer) - ecore_timer_del(m->timer); - - delete m->ap; - - free(m->ap_name); - free(m->ap_pwd); - - if(m->pWifiMgr) { - CWifiMgr::Finalize(); - m->pWifiMgr = NULL; - } - } - _CHECK_FAIL{ /* m_CreateUpperLayout() */ } - _CHECK_FAIL{ evas_object_del(m->base); } - _CHECK_FAIL{ m_FinalizeConnectionMgr(); } - _CHECK_FAIL{ /* m->win = CViewMgr::GetInstance()->Window() */ } - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - _DBG("Done"); - return true; -} - - -void CNetworkMainView::Destroy() -{ - ASSERT(m); - _DBG(); - - CBaseView::Destroy(); - delete m; - m = NULL; -} - -Evas_Object* CNetworkMainView::Base() -{ - ASSERT(m); - _DBG(); - - return m->base; -} - diff --git a/ug/network/src/WifiPasscodeView.cpp b/ug/network/src/WifiPasscodeView.cpp deleted file mode 100644 index c71407a..0000000 --- a/ug/network/src/WifiPasscodeView.cpp +++ /dev/null @@ -1,584 +0,0 @@ -#include -#include -#include "defs.h" -#include -#include "i18n.h" -#include "util.h" -#include "common.h" - -#include "WifiMgr.h" -#include "WifiPasscodeView.h" - -#define KEY_PRIV "priv" -#define KEY_NETWORK_ENTER "Select" - -#define AP_NAME_LENTH 256 - -#define TXT_PASSCODE "Network passcode" -#define TXT_ENTER_PASSCODE "Enter the network password" - -#define STYLE_ENTRY_FOCUS "focus" -#define STYLE_ENTRY_TXT "DEFAULT='font_size=30 linesize=40'" - -struct SWifiPasscodeView { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - Evas_Object *entry; - Evas_Object *dim_ly; - Evas_Object *ctxpopup; - char ap_name[AP_NAME_LENTH + 1]; - char *ap_pwd; - - CWifiMgr *pWifiMgr; - CViewMgr *pViewMgr; -}; - - -void CWifiPasscodeView::sm_CbWifiConnected(wifi_error_e err, void *data) -{ - _DBG(); - CWifiPasscodeView *root = (CWifiPasscodeView *)data; - - if (root) - root->m_OnWifiConnected(err); -} - - -void CWifiPasscodeView::m_OnWifiConnected(wifi_error_e err) -{ - if (!m->ctxpopup) - return; - - if (err!= WIFI_ERROR_NONE) { - _ERR("connect AP failed, ret: %s.", CWifiMgr::ErrorMsg(err)); - m_ShowConfirmPopup(); - return; - } - - ug_destroy_me(m->ug); -} - - -bool CWifiPasscodeView::sm_CbWifiFoundAP(CWifiAp *ap, void *data) -{ - _DBG(); - CWifiPasscodeView *root = (CWifiPasscodeView *)data; - - if (root) - root->m_OnWifiFoundAP(ap); - - return true; -} - - -void CWifiPasscodeView::m_OnWifiFoundAP(CWifiAp *ap) -{ - bool ret; - struct wifi_ap_info ap_info; - - ret = ap->GetEssid(ap_info.essid, sizeof(ap_info.essid)); - if(ret != true) { - _ERR("Fail to get info"); - return ; - } - ret = ap->GetConnectionState(&ap_info.state); - if(ret != true) { - _ERR("Fail to get info"); - return ; - } - ret = ap->GetSecurityType(&ap_info.secure_type); - if(ret != true) { - _ERR("Fail to get info"); - return ; - } - - if (!strncmp(m->ap_name, ap_info.essid, AP_NAME_LENTH)) { - ret = ap->SetPassPhrase(m->ap_pwd); - if (ret != true) { - _ERR("wifi_mgr_set_passphrase() failed."); - m_ShowConfirmPopup(); - return ; - } - - ret = ap->Connect(sm_CbWifiConnected, this); - if (ret != true) { - _ERR("Fail to connection request."); - m_ShowConfirmPopup(); - return ; - } - } - return ; -} - - -void CWifiPasscodeView::sm_CbWifiScanRequest(wifi_error_e err, void *data) -{ - CWifiPasscodeView *root = (CWifiPasscodeView *)data; - - if (root) - root->m_OnWifiScanRequest(err, data); -} - - -void CWifiPasscodeView::m_OnWifiScanRequest(wifi_error_e err, void *data) -{ - if(err != WIFI_ERROR_NONE) - _ERR("parameter error = %s", CWifiMgr::ErrorMsg(err)); - - if(!m->pWifiMgr->FoundAps(sm_CbWifiFoundAP, data)) { - _ERR("wifi_mgr_foreach_found_aps() failed."); - m_ShowConfirmPopup(); - return; - } -} - - -void CWifiPasscodeView::m_AddEntry(void) -{ - Evas_Object *entry; - - entry = util_add_entry(m->base, STYLE_ENTRY_FOCUS, PART_WIFI_PASSCODE_ENTRY); - if (!entry) { - _ERR("util_add_entry failed."); - evas_object_del(m->base); - return; - } - - elm_entry_password_set(entry, EINA_TRUE); - elm_entry_text_style_user_push(entry, STYLE_ENTRY_TXT); - - //evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN, _entry_key_press_cb, priv); - Connect(entry, 1); - - elm_entry_input_panel_enabled_set(entry, EINA_TRUE); - - elm_object_focus_next_object_set(entry, entry, ELM_FOCUS_UP); - elm_object_focus_next_object_set(entry, entry, ELM_FOCUS_LEFT); - - elm_object_focus_set(entry, EINA_TRUE); - - m->entry = entry; -} - - -bool CWifiPasscodeView::m_CreateDimLayout(void) -{ - Evas_Object *dim_ly; - - dim_ly = util_add_layout(m->win, UG_NETWORK_EDJ_FILE, GRP_DIM_LY); - if (!dim_ly) { - _ERR("elm_layout_add() failed."); - return false; - } - - m->dim_ly = dim_ly; - evas_object_hide(m->dim_ly); - - return true; -} - - -void CWifiPasscodeView::m_ShowInvalidPwdPopup(void) -{ - Evas_Object *layout; - Evas_Object *ok_btn; - Evas_Coord w; - Evas_Coord h; - char content[CONTENT_TXT_SIZE]; - - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - - evas_object_show(m->dim_ly); - - layout = util_add_layout(m->base, UG_NETWORK_EDJ_FILE, GRP_CONFIRM_LAYOUT); - if (!layout) { - _ERR("add layout failed."); - evas_object_hide(m->dim_ly); - return; - } - - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); - - memset(content, 0, CONTENT_TXT_SIZE); - snprintf(content, CONTENT_TXT_SIZE - 1, "%s", _(TXT_INVALID_PWD)); - elm_object_part_text_set(layout, PART_TEXT_CONTENT, content); - - ok_btn = util_add_button(layout, STYLE_SETTING_BTN, PART_OK_BTN, _(TXT_OK)); - if (!ok_btn) { - _ERR("util add button failed."); - evas_object_del(layout); - evas_object_hide(m->dim_ly); - return; - } - - elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_DOWN); - //evas_object_smart_callback_add(ok_btn, SIG_CLICKED, _popup_ok_btn_clicked_cb, priv); - Connect(ok_btn, 2); - - elm_object_focus_set(ok_btn, EINA_TRUE); - - elm_object_focus_allow_set(layout, EINA_TRUE); - //evas_object_smart_callback_add(layout, SIG_UNFOCUSED, _ctxpopup_unfocused_cb, priv); - //evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, _ctxpopup_pressed_cb, priv); - Connect(layout, 3); - - - w = DEFAULT_WIN_WIDTH; - h = DEFAULT_WIN_HEIGHT; - - evas_object_move(layout, CENTER_ALIGN * (w - POPUP_WIDTH) * ELM_SCALE, CENTER_ALIGN * (h - POPUP_HEIGHT) * ELM_SCALE); - - m->ctxpopup = layout; -} - - -bool CWifiPasscodeView::m_WifiConnectAP(void) -{ - bool ret; - - m_ShowProgressPopup(); - - ret = CWifiAp::ForgetAP(); - if (ret != true) { - _ERR("forget last ap failed."); - return false; - } - - ret = m->pWifiMgr->Scan(sm_CbWifiScanRequest, this); - if (ret != true) { - _ERR("wifi_mgr_scan_request() failed."); - return false; - } - - return true; -} - - -void CWifiPasscodeView::m_ShowProgressPopup(void) -{ - Evas_Object *layout; - Evas_Object *cancel_btn; - Evas_Coord w; - Evas_Coord h; - char content[CONTENT_TXT_SIZE]; - - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - - evas_object_show(m->dim_ly); - - layout = util_add_layout(m->base, UG_NETWORK_EDJ_FILE, GRP_PROCESSING_LAYOUT); - if (!layout) { - _ERR("add layout failed."); - evas_object_hide(m->dim_ly); - return; - } - - memset(content, 0, CONTENT_TXT_SIZE); - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); - snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", _(TXT_CONNECTTING), m->ap_name); - elm_object_part_text_set(layout, PART_TEXT_CONTENT, content); - - cancel_btn = util_add_button(layout, STYLE_SETTING_BTN, PART_CANCEL_BTN, _(TXT_CANCEL)); - if (!cancel_btn) { - _ERR("util add button failed."); - evas_object_del(layout); - evas_object_hide(m->dim_ly); - return; - } - - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_DOWN); - - //evas_object_smart_callback_add(cancel_btn, SIG_CLICKED, _cancel_btn_clicked_cb, priv); - Connect(cancel_btn, 4); - - elm_object_focus_set(cancel_btn, EINA_TRUE); - - elm_object_focus_allow_set(layout, EINA_TRUE); - //evas_object_smart_callback_add(layout, SIG_UNFOCUSED, _ctxpopup_unfocused_cb, priv); - //evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, _ctxpopup_pressed_cb, priv); - Connect(layout, 5); - - w = DEFAULT_WIN_WIDTH; - h = DEFAULT_WIN_HEIGHT; - - evas_object_move(layout, CENTER_ALIGN * (w - POPUP_WIDTH) * ELM_SCALE, CENTER_ALIGN * (h - POPUP_HEIGHT) * ELM_SCALE); - - m->ctxpopup = layout; -} - - -void CWifiPasscodeView::m_ShowConfirmPopup(void) -{ - Evas_Object *layout; - Evas_Object *retry_btn; - Evas_Object *cancel_btn; - Evas_Coord w; - Evas_Coord h; - char content[CONTENT_TXT_SIZE]; - - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - - evas_object_show(m->dim_ly); - - layout = util_add_layout(m->base, UG_NETWORK_EDJ_FILE, GRP_CONFIRM_LAYOUT); - if (!layout) { - _ERR("add layout failed."); - evas_object_hide(m->dim_ly); - return; - } - - memset(content, 0, CONTENT_TXT_SIZE); - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); - snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", _(TXT_FAILED_CONNECT), m->ap_name); - - elm_object_part_text_set(layout, PART_TEXT_CONTENT, content); - - retry_btn = util_add_button(layout, STYLE_SETTING_BTN, PART_RETRY_BTN, _(TXT_RETRY)); - if (!retry_btn) { - _ERR("util add button failed."); - evas_object_del(layout); - evas_object_hide(m->dim_ly); - return; - } - - cancel_btn = util_add_button(layout, STYLE_SETTING_BTN, PART_CANCEL_BTN, _(TXT_CANCEL)); - if (!cancel_btn) { - _ERR("util add button failed."); - evas_object_del(layout); - evas_object_hide(m->dim_ly); - return; - } - - elm_object_focus_next_object_set(retry_btn, cancel_btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(cancel_btn, retry_btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(retry_btn, retry_btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(retry_btn, retry_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(cancel_btn, cancel_btn, ELM_FOCUS_DOWN); - elm_object_focus_next_object_set(retry_btn, retry_btn, ELM_FOCUS_DOWN); - - //evas_object_smart_callback_add(retry_btn, SIG_CLICKED, _retry_btn_clicked_cb, priv); - Connect(retry_btn, 6); - //evas_object_smart_callback_add(cancel_btn, SIG_CLICKED, _cancel_btn_clicked_cb, priv); - Connect(cancel_btn, 7); - - elm_object_focus_set(retry_btn, EINA_TRUE); - - elm_object_focus_allow_set(layout, EINA_TRUE); - //evas_object_smart_callback_add(layout, SIG_UNFOCUSED, _ctxpopup_unfocused_cb, priv); - //evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, _ctxpopup_pressed_cb, priv); - Connect(layout, 8); - - w = DEFAULT_WIN_WIDTH; - h = DEFAULT_WIN_HEIGHT; - - evas_object_move(layout, CENTER_ALIGN * (w - POPUP_WIDTH) * ELM_SCALE, CENTER_ALIGN * (h - POPUP_HEIGHT) * ELM_SCALE); - - m->ctxpopup = layout; -} - - -bool CWifiPasscodeView::Create(void *data) -{ - _DBG(); - ASSERT(!m); - struct wifi_ap_info *ap_info = NULL; - - if(data) - ap_info = (struct wifi_ap_info *) data; - - _CREATE_BEGIN{ - _CHECK(m = new SWifiPasscodeView) - _CHECK(m->win = CViewMgr::GetInstance()->Window()) -// _CHECK(m->ug = (ui_gadget_h) data) - _CHECK(m->base = util_add_layout(m->win, UG_NETWORK_EDJ_FILE, GRP_WIFI_PASSCODE_BASE)) - _COMMAND { - CWifiMgr::Initialize(); - strncpy(m->ap_name, ap_info->essid, AP_NAME_LENTH); - } - _CHECK(m->pWifiMgr = CWifiMgr::GetInstance()) - - _WHEN_SUCCESS{ - //evas_object_event_callback_add(base, EVAS_CALLBACK_KEY_DOWN, _base_key_press_cb, priv); - Connect(m->base, 0); - - elm_object_part_text_set(m->base, PART_WIFI_PASSCODE_TITLE, _(TXT_PASSCODE)); - elm_object_part_text_set(m->base, PART_WIFI_PASSCODE_TEXT, _(TXT_ENTER_PASSCODE)); - elm_object_part_text_set(m->base, PART_WIFI_PASSCODE_AP_NAME, m->ap_name); - - m_AddEntry(); - m_CreateDimLayout(); - m->pViewMgr = CViewMgr::GetInstance(); - } - - _CHECK_FAIL{ /*m->pWifiMgr = CWifiMgr::GetInstance() */ } - _CHECK_FAIL{ evas_object_del(m->base); } -// _CHECK_FAIL{ /* m->ug = (ui_gadget_h) data */ } - _CHECK_FAIL{ /* m->win = CViewMgr::GetInstance()->Window() */ } - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - return true; -} - - -void CWifiPasscodeView::Destroy(void) -{ - ASSERT(m); - _DBG(); - - if (m->dim_ly) - evas_object_del(m->dim_ly); - - if(m->ap_pwd) - delete (m->ap_pwd); - - CBaseView::Destroy(); - delete m; - m = NULL; -} - - -Evas_Object* CWifiPasscodeView::Base(void) -{ - ASSERT(m); - _DBG(); - - return m->base; -} - - -void CWifiPasscodeView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) -{ - /* ID list */ - /* 0 m->base */ - /* 1 entry */ - /* 2 invalidpwdpopup ok_btn */ - /* 3 invalidpwdpopup layout */ - /* 4 showprogresspopup cancel_btn */ - /* 5 showprogresspopup layout */ - /* 6 showconfirmpopup retry_btn */ - /* 7 showconfirmpopup cancel_btn */ - /* 8 showconfirmpopup layout */ - - if (!ev->keyname) { - _ERR("ev->keyname is NULL."); - return; - } - - switch(id) { - case 0: -#if 0 - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) - viewmgr_pop(m->vmgr); -#endif - break; - case 1: - if (!strcmp(ev->keyname, KEY_NETWORK_ENTER)) { - if (m->ap_pwd) { - free(m->ap_pwd); - m->ap_pwd = NULL; - } - - m->ap_pwd = strdup(elm_entry_entry_get(obj)); - if (!m->ap_pwd) { - _ERR("the passcode in entry is NULL."); - m_ShowInvalidPwdPopup(); - return; - } - - if(m_WifiConnectAP()) { - _ERR("connect ap"); - m_ShowConfirmPopup(); - return; - } - } - break; - case 3: - case 5: - case 8: - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - evas_object_hide(m->dim_ly); - evas_object_del(obj); - elm_object_focus_set(m->entry, EINA_TRUE); - } - break; - default: - break; - } -} - - -void CWifiPasscodeView::OnMouseClicked(int id, Evas_Object *obj) -{ - switch(id) { - case 2: - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - elm_object_focus_set(m->entry, EINA_TRUE); - break; - case 4: - case 7: - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - - evas_object_hide(m->dim_ly); - - elm_object_focus_set(m->entry, EINA_TRUE); - break; - case 6: - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - - evas_object_hide(m->dim_ly); - - if(!m_WifiConnectAP()) { - _ERR("connect ap"); - m_ShowConfirmPopup(); - return; - } - break; - default: - break; - } -} - -void CWifiPasscodeView::OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item) -{ - switch(id) { - case 3: - case 5: - case 8: - evas_object_hide(m->dim_ly); - evas_object_del(obj); - break; - default: - break; - } - - -} diff --git a/ug/network/src/connection_mgr.c b/ug/network/src/connection_mgr.c new file mode 100644 index 0000000..0c54513 --- /dev/null +++ b/ug/network/src/connection_mgr.c @@ -0,0 +1,650 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include "defs.h" +#include "dbg.h" +#include "connection_mgr.h" + +/** + * Converts the error type to string information. + * + * @param[in] err_type Error type + * @return error string information; + */ +static const char *_convert_error_to_string(connection_error_e err_type) +{ + _DBG("Not Yet"); +#if 0 + switch (err_type) { + case CONNECTION_ERROR_NONE: + return "NONE"; + case CONNECTION_ERROR_INVALID_PARAMETER: + return "INVALID_PARAMETER"; + case CONNECTION_ERROR_OUT_OF_MEMORY: + return "OUT_OF_MEMORY"; + case CONNECTION_ERROR_INVALID_OPERATION: + return "INVALID_OPERATION"; + case CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED: + return "ADDRESS_FAMILY_NOT_SUPPORTED"; + case CONNECTION_ERROR_OPERATION_FAILED: + return "OPERATION_FAILED"; + case CONNECTION_ERROR_ITERATOR_END: + return "ITERATOR_END"; + case CONNECTION_ERROR_NO_CONNECTION: + return "NO_CONNECTION"; + case CONNECTION_ERROR_NOW_IN_PROGRESS: + return "NOW_IN_PROGRESS"; + case CONNECTION_ERROR_ALREADY_EXISTS: + return "ALREADY_EXISTS"; + case CONNECTION_ERROR_OPERATION_ABORTED: + return "OPERATION_ABORTED"; + case CONNECTION_ERROR_DHCP_FAILED: + return "DHCP_FAILED"; + case CONNECTION_ERROR_INVALID_KEY: + return "INVALID_KEY"; + case CONNECTION_ERROR_NO_REPLY: + return "NO_REPLY"; + case CONNECTION_ERROR_NO_KEYWORD: + return "NO_KEYWORD"; + case CONNECTION_ERROR_TCP_RST: + return "RST_IN_TCP_RESPONSE"; + case CONNECTION_ERROR_TCP_SYN_TIMEOUT: + return "TCP_SYN_TIMEOUT"; + case CONNECTION_ERROR_OFFLINE: + return "CONNECTION_OFFLINE"; + case CONNECTION_ERROR_NETWORK_MONITOR_FAILURE: + return "monitor failer"; + case CONNECTION_ERROR_INVALID_GATEWAY: + return "invalid gateway"; + case CONNECTION_ERROR_INVALID_MACADDRESS: + return "invalid mac addr"; + default: + break; + } +#endif + + return "Unknown"; +} + +/** + * Creates a handle for managing data connections. + * + * The handle must be released with connection_destroy(). + * + * @return connetcion if the operation is successful; NULL if failed; + */ +connection_h connection_mgr_create(void) +{ + int ret; + connection_h connection; + + connection = NULL; + ret = connection_create(&connection); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_create failed"); + connection = NULL; + } + + return connection; +} + +/** + * Destroys the connection handle. + * + * @param[in] connection The handle of the connection + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_destroy(connection_h connection) +{ + int ret; + + if (!connection) { + _ERR("connection is NULL."); + return RET_FAILED; + } + + ret = connection_destroy(connection); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_destroy() failed."); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the ethernet profile information. + * + * Iterates all the profile in the connection, and gets the ethernet one. + * + * @param[in] connection The handle of the connection + * @param[out] info The structure to store profile information + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_get_profile_info( + connection_h connection, struct connection_info *info) +{ + connection_profile_iterator_h iter; + connection_profile_h profile; + connection_profile_type_e type; + char *name; + int ret; + + if (!info || !connection) { + _ERR("param is NULL."); + return RET_FAILED; + } + + ret = connection_get_profile_iterator(connection, + CONNECTION_ITERATOR_TYPE_REGISTERED, &iter); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("Fail to get profile iterator [%d]\n", ret); + return RET_FAILED; + } + + while (connection_profile_iterator_has_next(iter)) { + profile = NULL; + if (connection_profile_iterator_next(iter, + &profile) != CONNECTION_ERROR_NONE) { + _ERR("Fail to get profile handle\n"); + return RET_FAILED; + } + + if (!profile) { + _ERR("get profile failed."); + return RET_FAILED; + } + + if (connection_profile_get_type(profile, + &type) != CONNECTION_ERROR_NONE) { + _ERR("Fail to get profile type\n"); + return RET_FAILED; + } + + name = NULL; + if (connection_profile_get_name(profile, + &name) != CONNECTION_ERROR_NONE) { + _ERR("Fail to get profile name\n"); + return RET_FAILED; + } + + if (!name) { + _ERR("get name failed."); + return RET_FAILED; + } + + if (type == CONNECTION_PROFILE_TYPE_ETHERNET) { + strncpy(info->name, name, MAX_NAME_SIZE - 1); + info->profile = profile; + } + + free(name); + } + + return RET_SUCCESS; +} + +/** + * Registers the callback called when the state of profile is changed. + * + * If the state of profile is changed, the registered callback will be called. + * + * @param[in] profile The handle of the profile + * @param[in] cb The callback function to be called + * @param[in] data User data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +#if 0 +int connection_mgr_set_profile_state_changed_cb( + connection_profile_h profile, + connection_profile_state_changed_cb cb, void *data) +{ + int ret; + + if (!profile || !cb || !data) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = connection_profile_set_state_changed_cb(profile, + cb, data); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_profile_set_state_changed_cb() failed."); + return RET_FAILED; + } + + return RET_SUCCESS; +} +#endif + +/** + * Gets the state of the connection. + * + * @param[in] connection The handle of the connection + * @return EINA_TRUE if the connection is OK; EINA_FALSE otherwise; + */ +Eina_Bool connection_mgr_is_connected(connection_h connection) +{ + int ret; + connection_ethernet_state_e state; + + if (!connection) { + _ERR("the connection is NULL."); + return EINA_FALSE; + } + + ret = connection_get_ethernet_state(connection, &state); + if (ret == CONNECTION_ERROR_NONE && + state == CONNECTION_ETHERNET_STATE_CONNECTED) + return EINA_TRUE; + + return EINA_FALSE; +} + +/** + * Sets the profile information. + * + * Sets the network information to profile. + * + * @param[in] connection The handle of the connection + * @param[in] profile The handle of the profile + * @param[in] info Network information + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_set_profile(connection_h connection, + connection_profile_h profile, + struct network_info *info) +{ + int ret; + + if (!connection || !profile || !info) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = connection_update_profile(connection, profile); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_update_profile failed.\n"); + return RET_FAILED; + } + + ret = connection_profile_set_ip_config_type(profile, + CONNECTION_ADDRESS_FAMILY_IPV4, + CONNECTION_IP_CONFIG_TYPE_STATIC); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_profile_set_ip_config_type() failed."); + return RET_FAILED; + } + + ret = connection_profile_set_ip_address(profile, + CONNECTION_ADDRESS_FAMILY_IPV4, + info->ip_addr); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_profile_set_ip_address() failed."); + return RET_FAILED; + } + + ret = connection_profile_set_subnet_mask(profile, + CONNECTION_ADDRESS_FAMILY_IPV4, + info->submask); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("fail to set_subnet_mask %d\n" , ret); + return RET_FAILED; + } + + ret = connection_profile_set_gateway_address(profile, + CONNECTION_ADDRESS_FAMILY_IPV4, + info->gateway); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("fail to set_gateway_address %d\n" , ret); + return RET_FAILED; + } + + ret = connection_profile_set_dns_address(profile, 1, + CONNECTION_ADDRESS_FAMILY_IPV4, + info->dns); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("fail to set_dns_address %d\n" , ret); + return RET_FAILED; + } + + ret = connection_update_profile(connection, profile); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_update_profile failed.\n"); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets whether the profile can access to the internet asynchronously. + * + * The result will return in the registered callback. + * + * @param[in] connection The handle of the connection + * @param[in] cb The callback function to be called + * @param[in] data User data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +#if 0 +int connection_mgr_get_is_online_async( + connection_h connection, + connection_is_online_async_cb cb, void *data) +{ + int ret; + + if (!connection || !cb || !data) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = connection_get_is_online_async(connection, cb, data); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_get_is_online_async() failed."); + return RET_FAILED; + } + + return RET_SUCCESS; +} +#endif + +/** + * Validates gateway address set for Ethernet Asynchronusly. + * + * The result will return in the registered callback. + * + * @param[in] profile The handle of the profile + * @param[in] cb The callback function to be called + * @param[in] data User data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +#if 0 +int connection_mgr_check_gateway_async( + connection_profile_h profile, + connection_profile_check_gateway_async_cb cb, void *data) +{ + int ret; + + if (!profile || !cb || !data) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = connection_profile_check_gateway_async(profile, cb, data); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_get_is_online_async() failed."); + return RET_FAILED; + } + + return RET_SUCCESS; +} +#endif + +/** + * Sets the IP config type into dynamic. + * + * Called when the profile need getting IP dynamically. + * + * @param[in] connection The handle of the connection + * @param[in] profile The handle of the profile + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_ip_dynamic_config( + connection_h connection, + connection_profile_h profile) +{ + int ret; + + if (!connection || !profile) { + _ERR("The param is invalid.\n"); + return RET_FAILED; + } + + ret = connection_update_profile(connection, profile); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_update_profile failed, ret: %s.\n", + _convert_error_to_string(ret)); + return RET_FAILED; + } + + ret = connection_profile_set_ip_config_type(profile, + CONNECTION_ADDRESS_FAMILY_IPV4, + CONNECTION_IP_CONFIG_TYPE_DYNAMIC); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("Fail to set ip method type[%s]\n", + _convert_error_to_string(ret)); + return RET_FAILED; + } + + ret = connection_update_profile(connection, profile); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_update_profile failed, ret: %s.\n", + _convert_error_to_string(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Registers callback for ethernet cable. + * + * Including cable plugged [in/out] event. + * + * @param[in] connection The handle of the connection + * @param[in] cb The callback function to be called + * @param[in] data User data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +#if 0 +int connection_mgr_register_ethernet_state_cb( + connection_h connection, + connection_ethernet_state_chaged_cb cb, void *data) +{ + int ret; + + if (!connection || !cb || !data) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = connection_set_ethernet_state_chaged_cb(connection, cb, data); + if (ret != RET_SUCCESS) { + _ERR("connection_set_ethernet_state_chaged_cb() failed."); + return RET_FAILED; + } + + return RET_SUCCESS; +} +#endif + +/** + * Gets the state of ethernet. + * + * The returned state is for the ethernet connection state. + * + * @param[in] connection The handle of the connection + * @param[out] plugin The cable plugged state + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_get_ethernet_state( + connection_h connection, Eina_Bool *plugin) +{ + int ret; + connection_ethernet_state_e state; + + if (!connection || !plugin) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = connection_get_ethernet_state(connection, &state); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_get_ethernet_state() failed."); + return RET_FAILED; + } + + if (state == CONNECTION_ETHERNET_STATE_DEACTIVATED) + *plugin = EINA_FALSE; + else + *plugin = EINA_TRUE; + + return RET_SUCCESS; +} + +/** + * Sets the network information. + * + * Including IP, submask and gateway. + * + * @param[in] profile The handle of the profile + * @param[in] info The structure of network + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_set_ip_config( + connection_profile_h profile, + struct network_info *info) +{ + int ret; + + if (!profile || !info) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = connection_profile_set_ip_address(profile, + CONNECTION_ADDRESS_FAMILY_IPV4, + info->ip_addr); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("set ip address fail, ret: %s\n", + _convert_error_to_string(ret)); + return RET_FAILED; + } + + ret = connection_profile_set_subnet_mask(profile, + CONNECTION_ADDRESS_FAMILY_IPV4, + info->submask); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("set subnet mask fail. %s\n", + _convert_error_to_string(ret)); + return RET_FAILED; + } + + ret = connection_profile_set_gateway_address(profile, + CONNECTION_ADDRESS_FAMILY_IPV4, + info->gateway); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("set gateway address fail %s\n", + _convert_error_to_string(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Sets the DNS. + * + * @param[in] profile The handle of the profile + * @param[in] info The structure of network + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_set_dns_config( + connection_profile_h profile, + struct network_info *info) +{ + int ret; + + if (!profile || !info) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = connection_profile_set_dns_address(profile, 1, + CONNECTION_ADDRESS_FAMILY_IPV4, + info->dns); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("set dns address fail %d\n", + _convert_error_to_string(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the network information. + * + * @param[in] profile The handle of the profile + * @param[out] info The structure of network + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_get_ip_info( + connection_profile_h profile, + struct network_info *info) +{ + char *str_value; + + if (!profile || !info) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + if (connection_profile_get_ip_address(profile, + CONNECTION_ADDRESS_FAMILY_IPV4, + &str_value) != CONNECTION_ERROR_NONE) { + _ERR("Fail to get IP address!\n"); + strncpy(info->ip_addr, ZERO_IP, IP_STRING_MAX_SIZE); + } else { + strncpy(info->ip_addr, str_value, IP_STRING_MAX_SIZE); + free(str_value); + } + + if (connection_profile_get_subnet_mask(profile, + CONNECTION_ADDRESS_FAMILY_IPV4, + &str_value) != CONNECTION_ERROR_NONE) { + _ERR("Fail to get subnet mask!\n"); + strncpy(info->submask, ZERO_IP, IP_STRING_MAX_SIZE); + } else { + strncpy(info->submask, str_value, IP_STRING_MAX_SIZE); + free(str_value); + } + + if (connection_profile_get_gateway_address(profile, + CONNECTION_ADDRESS_FAMILY_IPV4, + &str_value) != CONNECTION_ERROR_NONE) { + _ERR("Fail to get gateway!\n"); + strncpy(info->gateway, ZERO_IP, IP_STRING_MAX_SIZE); + } else { + strncpy(info->gateway, str_value, IP_STRING_MAX_SIZE); + free(str_value); + } + + if (connection_profile_get_dns_address(profile, 1, + CONNECTION_ADDRESS_FAMILY_IPV4, + &str_value) != CONNECTION_ERROR_NONE) { + _ERR("Fail to get DNS1!\n"); + strncpy(info->dns, ZERO_IP, IP_STRING_MAX_SIZE); + } else { + strncpy(info->dns, str_value, IP_STRING_MAX_SIZE); + free(str_value); + } + + return RET_SUCCESS; +} diff --git a/ug/network/src/ip_setting_view.c b/ug/network/src/ip_setting_view.c new file mode 100644 index 0000000..b02258b --- /dev/null +++ b/ug/network/src/ip_setting_view.c @@ -0,0 +1,2629 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +#include + +#include "defs.h" +#include "dbg.h" +#include "ip_setting_view.h" +#include "vconf_mgr.h" +#include "i18n.h" +#include "util.h" +#include "common.h" +#include "util.h" +#include "wifi_mgr.h" + +#define KEY_PRIV "priv" + +#define MODE_BTN_NUM 2 +#define MAX_IP_NUM 255 +#define IP_SET_MAX_NUM 4 +#define STRING_MAX_SIZE 50 +#define SETTING_MODE_OFFSET_X 448 +#define SETTING_MODE_OFFSET_Y 0 +#define SETTING_VALUE_OFFSET_X 162 +#define SETTING_VALUE_OFFSET_Y 20 +#define CENTER_ALIGN 0.5 +#define BOX_PAD_X 0 +#define BOX_PAD_Y 2 +#define RATIO 10 + +#define IP_VALUE1 "value1" +#define IP_VALUE2 "value2" +#define IP_VALUE3 "value3" +#define IP_VALUE4 "value4" + +#define TXT_MAKE_OTHER_NETWORK _("You can make other network"\ + "
Enter the IP address to use.") + +enum connection_setting_enum { + SETTING_INVALID, + SETTING_IP, + SETTING_IP_ADDRESS, + SETTING_SUBNET_MASK, + SETTING_GATEWAY, + SETTING_DNS, + SETTING_DNS_SERVER +}; + +struct _priv { + Evas_Object *win; + ui_gadget_h ug; + struct viewmgr *vmgr; + + Evas_Object *base; + Evas_Object *dim_ly; + Evas_Object *ip_mode_btn; + Evas_Object *ip_addr_btn; + Evas_Object *subnet_mask_btn; + Evas_Object *gateway_btn; + Evas_Object *dns_mode_btn; + Evas_Object *dns_server_btn; + Evas_Object *ip_mode_ly; + Evas_Object *dns_mode_ly; + Evas_Object *config_popup; + Evas_Object *cur_ip_btn[IP_SET_MAX_NUM]; + Evas_Object *confirm_popup; + Evas_Object *ok_btn; + Evas_Object *cancel_btn; + + struct network_info info; + enum setting_mode ip_mode; + enum setting_mode dns_mode; + + enum connection_setting_enum cur_type; + enum network_type_enum network_type; + + connection_h connection; + connection_profile_h profile; + + wifi_ap_h ap; + + char name[MAX_NAME_SIZE]; +}; + +static void _show_confirm_popup(struct _priv *priv); +static void _popup_dismissed_cb(void *data, Evas_Object *obj, void *ev); + +/** + * Initializes the private data. + * + * Called when the view is loaded. + * + * @return the handler of the private data; + */ +static struct _priv *_init_priv() +{ + struct _priv *priv; + + priv = calloc(1, sizeof(*priv)); + + return priv; +} + +/** + * Deinitializes the private data. + * + * Called when the view is deleted. + * + * @param[in] priv The handler of the private data + */ +static void _fini_priv(struct _priv *priv) +{ + if (!priv) + return; + + if (priv->dim_ly) + evas_object_del(priv->dim_ly); + + free(priv); +} + +/** + * Sets the cycle focus in the direction of up and down. + * + * Sets the cycle focus for an array of objects. + * + * @param[in] obj The handler of objects + * @param[in] count The count of objects + */ +static void _set_up_down_cycle_focus(Evas_Object **obj, + int count) +{ + int i; + + if (!*obj || !obj) + return; + + for (i = 0; i < count; i++) { + if (i == count - 1) + elm_object_focus_next_object_set(obj[i], obj[0], + ELM_FOCUS_DOWN); + else + elm_object_focus_next_object_set(obj[i], obj[i + 1], + ELM_FOCUS_DOWN); + + if (i == 0) + elm_object_focus_next_object_set(obj[i], obj[count - 1], + ELM_FOCUS_UP); + else + elm_object_focus_next_object_set(obj[i], obj[i - 1], + ELM_FOCUS_UP); + } +} + +/** + * Creates the basic layout of the view. + * + * @param[in] parent The parent object + * @return layout if the operation is successful; NULL if failed; + */ +static Evas_Object *_create_basic_layout(Evas_Object *parent) +{ + Evas_Object *base; + + if (!parent) { + _ERR("parent is NULL."); + return NULL; + } + + base = elm_layout_add(parent); + if (!base) { + _ERR("elm_layout_add() failed."); + return NULL; + } + + elm_layout_file_set(base, UG_NETWORK_EDJ_FILE, + GRP_CONNECTION_SETTING); + + evas_object_show(base); + + return base; +} + +/** + * Sets the description. + * + * Sets the description for the IP setting view. + * + * @param[in] priv The handler of the private data + */ +static void _set_description(struct _priv *priv) +{ + if (!priv || !priv->base) { + _ERR("priv is invalid."); + return; + } + + elm_object_part_text_set(priv->base, + PART_CONNECTION_DESCRITION, + TXT_MAKE_OTHER_NETWORK); +} + +/** + * Gets the network type. + * + * For either wired or wireless. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _get_cur_mode(struct _priv *priv) +{ + int ret; + + if (!priv) { + _ERR("The param is invalid.\n"); + return RET_FAILED; + } + + if (priv->network_type == TYPE_WIRED) { + ret = vconf_mgr_get_wired_ip_mode(&priv->ip_mode); + if (ret != RET_SUCCESS) + _ERR("get wired ip mode from vconf failed."); + + ret = vconf_mgr_get_wired_dns_mode(&priv->dns_mode); + if (ret != RET_SUCCESS) + _ERR("get wired dns mode from vconf failed."); + } else if (priv->network_type == TYPE_WIRELESS) { + ret = vconf_mgr_get_wireless_ip_mode(&priv->ip_mode); + if (ret != RET_SUCCESS) + _ERR("get wireless ip mode from vconf failed."); + + ret = vconf_mgr_get_wireless_dns_mode(&priv->dns_mode); + if (ret != RET_SUCCESS) + _ERR("get wireless dns mode from vconf failed."); + } else { + _ERR("the network type is invalid."); + ret = RET_FAILED; + } + + return ret; +} + +/** + * Gets the network information for the profile. + * + * For wired network. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _get_connection_profile_info(struct _priv *priv) +{ + struct connection_info info; + int ret; + + if (!priv) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = connection_mgr_get_profile_info(priv->connection, &info); + if (ret != RET_SUCCESS) { + _ERR("connection_mgr_get_profile_info() failed."); + return RET_FAILED; + } + + priv->profile = info.profile; + + return RET_SUCCESS; +} + +/** + * Gets the network information for the profile. + * + * For either wired network or wireless network. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _get_cur_ip_info(struct _priv *priv) +{ + struct network_info info; + int ret; + + if (!priv) { + _ERR("The param is invalid.\n"); + return RET_FAILED; + } + + ret = _get_connection_profile_info(priv); + if (ret != RET_SUCCESS) { + _ERR("get profile failed."); + return RET_FAILED; + } + + if (priv->network_type == TYPE_WIRED) { + if (priv->ip_mode == MODE_AUTO) { + ret = connection_mgr_get_ip_info(priv->profile, &info); + if (ret != RET_SUCCESS) { + _ERR("connection_mgr_get_ip_info() failed."); + return ret; + } + } else if (priv->ip_mode == MODE_MAN) { + ret = vconf_mgr_get_wired_network_info(&info); + if (ret != RET_SUCCESS) { + _ERR("get wired network info failed."); + return ret; + } + } else { + _ERR("ip mode is invalid."); + return RET_FAILED; + } + } else if (priv->network_type == TYPE_WIRELESS) { + if (priv->ip_mode == MODE_AUTO) { + ret = wifi_mgr_get_ip_info(priv->ap, &info); + if (ret != RET_SUCCESS) { + _ERR("wifi_mgr_get_ip_info() failed."); + return ret; + } + } else if (priv->ip_mode == MODE_MAN) { + ret = vconf_mgr_get_wireless_network_info(&info); + if (ret != RET_SUCCESS) { + _ERR("get wireless network info failed."); + return ret; + } + } else { + _ERR("ip mode is invalid."); + return RET_FAILED; + } + } else { + _ERR("network type is invalid."); + return RET_FAILED; + } + + strncpy(priv->info.ip_addr, info.ip_addr, IP_STRING_MAX_SIZE); + strncpy(priv->info.submask, info.submask, IP_STRING_MAX_SIZE); + strncpy(priv->info.gateway, info.gateway, IP_STRING_MAX_SIZE); + strncpy(priv->info.dns, info.dns, IP_STRING_MAX_SIZE); + + return RET_SUCCESS; +} + +/** + * Shows the dim layout. + * + * Called when there is a ctxpopup. + * + * @param[in] priv The handler of the private data + */ +static void _set_layout_dim(struct _priv *priv) +{ + if (!priv || !priv->dim_ly) { + _ERR("The param is invalid.\n"); + return; + } + + evas_object_show(priv->dim_ly); +} + +/** + * Hides the dim layout. + * + * Called when the existing ctxpopup is deleted. + * + * @param[in] priv The handler of the private data + */ +static void _unset_layout_dim(struct _priv *priv) +{ + if (!priv || !priv->dim_ly) { + _ERR("The param is invalid.\n"); + return; + } + + evas_object_hide(priv->dim_ly); +} + +/** + * Deletes the confirm popup. + * + * @param[in] priv The handler of the private data + */ +static void _del_confirm_popup(struct _priv *priv) +{ + if (!priv || !priv->confirm_popup) { + _ERR("The param is invalid.\n"); + return; + } + + evas_object_del(priv->confirm_popup); + priv->confirm_popup = NULL; + + _unset_layout_dim(priv); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* When the 'OK' or 'Cancel' button is clicked, delete the popup, +* and set the default focus. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] event Event information +*/ +static void _popup_ok_cancel_btn_clicked_cb(void *data, + Evas_Object *obj, void *event) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + _del_confirm_popup(priv); + + elm_object_focus_set(priv->ok_btn, EINA_TRUE); +} + +/** + * Keeps the focused layout for the specific button. + * + * Emits a signal to edc to keep the focused state. + * + * @param[in] priv The handler of the private data + */ +static void _keep_button_focused(struct _priv *priv) +{ + Evas_Object *obj; + + if (!priv) { + _ERR("the param is invalid."); + return; + } + + switch (priv->cur_type) { + case SETTING_IP: + obj = priv->ip_mode_btn; + break; + case SETTING_IP_ADDRESS: + obj = priv->ip_addr_btn; + break; + case SETTING_SUBNET_MASK: + obj = priv->subnet_mask_btn; + break; + case SETTING_GATEWAY: + obj = priv->gateway_btn; + break; + case SETTING_DNS: + obj = priv->dns_mode_btn; + break; + case SETTING_DNS_SERVER: + obj = priv->dns_server_btn; + break; + default: + return; + } + + elm_object_signal_emit(obj, SIG_BTN_SELECTED, PROG); +} + +/** + * Disables the IP buttons. + * + * If the mode is automatic, the IP buttons will be disabled. + * + * @param[in] priv The handler of the private data + */ +static void _disable_ip_btns(struct _priv *priv) +{ + if (!priv) { + _ERR("the param is invalid."); + return; + } + + elm_object_disabled_set(priv->ip_addr_btn, EINA_TRUE); + elm_object_disabled_set(priv->subnet_mask_btn, EINA_TRUE); + elm_object_disabled_set(priv->gateway_btn, EINA_TRUE); +} + +/** + * Eables the IP buttons. + * + * If the mode is manual, the IP buttons will be eabled. + * + * @param[in] priv The handler of the private data + */ +static void _enable_ip_btns(struct _priv *priv) +{ + if (!priv) { + _ERR("the param is invalid."); + return; + } + + elm_object_disabled_set(priv->ip_addr_btn, EINA_FALSE); + elm_object_disabled_set(priv->subnet_mask_btn, EINA_FALSE); + elm_object_disabled_set(priv->gateway_btn, EINA_FALSE); +} + +/** +* @Evas_Smart_Cb type callback for handling dismissed event. +* +* When the ctxpopup is dismissed, delete the ctxpopup, +* and set the default focus. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _popup_dismissed_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + _unset_layout_dim(priv); + + if (priv->confirm_popup) + evas_object_del(priv->confirm_popup); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* When the 'automatical' button is clicked, delete the popup, +* and disable the IP buttons. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _ip_auto_mode_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + _disable_ip_btns(priv); + + if (priv->ip_mode_btn) + elm_object_part_text_set(priv->ip_mode_btn, + PART_VALUE, _(TXT_OBTAIN_AUTO)); + + evas_object_del(priv->ip_mode_ly); + priv->ip_mode_ly = NULL; + priv->ip_mode = MODE_AUTO; + + _unset_layout_dim(priv); +} + +/** +* @Evas_Smart_Cb type callback for handling dismissed event. +* +* When the ctxpopup is dismissed, delete the ctxpopup. +* +* @param[in] data User data +* @param[in] o The corresponding object which the focus event occurred +* @param[in] ei Event information +*/ +static void _mode_sub_popup_dismissed_cb(void *data, + Evas_Object *o, void *ei) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + _unset_layout_dim(priv); + + if (priv->cur_type == SETTING_IP) { + evas_object_del(priv->ip_mode_ly); + priv->ip_mode_ly = NULL; + } else if (priv->cur_type == SETTING_DNS) { + evas_object_del(priv->dns_mode_ly); + priv->dns_mode_ly = NULL; + } +} + +/** + * Callback for key pressed event. + * + * If the key is KEY_BACK, delete the mode ctxpopup. + * + * @param[in] data User data + * @param[in] evas Evas handler + * @param[in] o The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _mode_sub_popup_key_pressed_cb(void *data, Evas *evas, + Evas_Object *o, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!ei || !data) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_LEFT) || !strcmp(ev->keyname, KEY_RIGHT)) { + _unset_layout_dim(priv); + + if (priv->cur_type == SETTING_IP) { + evas_object_del(priv->ip_mode_ly); + priv->ip_mode_ly = NULL; + } else if (priv->cur_type == SETTING_DNS) { + evas_object_del(priv->dns_mode_ly); + priv->dns_mode_ly = NULL; + } + } +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* When the manual mode button is clicked, delete the popup, +* and enable the IP buttons. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _ip_manual_mode_btn_clicked_cb(void *data, + Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + _enable_ip_btns(priv); + + elm_object_part_text_set(priv->ip_mode_btn, + PART_VALUE, _(TXT_ENTER_MAN)); + + evas_object_del(priv->ip_mode_ly); + priv->ip_mode_ly = NULL; + priv->ip_mode = MODE_MAN; + + _unset_layout_dim(priv); +} + +/** + * Callback for key pressed event. + * + * If the key is KEY_BACK, delete the IP value ctxpopup. + * + * @param[in] data User data + * @param[in] evas Evas handler + * @param[in] o The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _ip_ctxpopup_key_pressed_cb(void *data, Evas *evas, + Evas_Object *o, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!ei || !data) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_BACK)) { + _unset_layout_dim(priv); + + evas_object_del(priv->ip_mode_ly); + priv->ip_mode_ly = NULL; + } +} + +/** + * Callback for key pressed event. + * + * If the key is KEY_BACK, delete the ctxpopup. + * + * @param[in] data User data + * @param[in] e Evas handler + * @param[in] obj The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _ctxpopup_pressed_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!data || !ei) { + _ERR("Parameter error!"); + return; + } + + priv = data; + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_BACK)) { + _unset_layout_dim(priv); + evas_object_del(obj); + } +} + +/** +* @Evas_Smart_Cb type callback for handling unfocused event. +* +* When the ctxpopup is unfocused, hide the dim layout, +* and delete the ctxpopup. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] source Event information +*/ +static void _ctxpopup_unfocused_cb(void *data, + Evas_Object *obj, void *source) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("data is NULL.\n"); + return; + } + + priv = data; + + _unset_layout_dim(priv); + evas_object_del(obj); +} + +/** + * Creates the mode button. + * + * Uses the style of 'mode_select'. + * + * @param[in] base The parent object + * @param[in] txt The text in button + * @param[in] cb The callback for clicked event + * @param[in] data User data + * @return button if the operation is successful; NULL if failed; + */ +static Evas_Object *_create_mode_setting_btn(Evas_Object *base, + char *txt, Evas_Smart_Cb cb, void *data) +{ + Evas_Object *btn; + + if (!base || !txt || !cb || !data) { + _ERR("The param is invalid.\n"); + return NULL; + } + + btn = util_add_button(base, STYLE_MODE_SELECT_BTN, NULL, txt); + if (!btn) { + _ERR("Add btn failed.\n"); + return NULL; + } + + evas_object_smart_callback_add(btn, SIG_DISMISSED, + _mode_sub_popup_dismissed_cb, data); + evas_object_smart_callback_add(btn, SIG_CLICKED, cb, data); + evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, + _mode_sub_popup_key_pressed_cb, data); + + return btn; +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* Creates the IP value ctxpopup. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _ip_setting_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + Evas_Object *base; + Evas_Object *ctxpopup; + Evas_Object *box; + Evas_Object *auto_btn; + Evas_Object *man_btn; + Evas_Coord x; + Evas_Coord y; + Evas_Coord w; + Evas_Coord h; + Evas_Object *btn[MODE_BTN_NUM]; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + priv->cur_type = SETTING_IP; + base = priv->base; + + if (priv->ip_mode == MODE_INVALID) + priv->ip_mode = MODE_MAN; + + ctxpopup = util_add_layout(base, UG_NETWORK_EDJ_FILE, + GRP_NETWORK_MODE_SETTING); + if (!ctxpopup) { + _ERR("elm_layout_add() failed.\n"); + return; + } + + _set_layout_dim(priv); + _keep_button_focused(priv); + + box = util_add_box(ctxpopup, PART_SWALLOW_CONTENT); + if (!box) { + _ERR("create box failed."); + evas_object_del(ctxpopup); + return; + } + + elm_box_horizontal_set(box, EINA_FALSE); + + auto_btn = _create_mode_setting_btn(ctxpopup, _(TXT_OBTAIN_AUTO), + _ip_auto_mode_btn_clicked_cb, (void *)priv); + if (!auto_btn) { + _ERR("Add btn failed.\n"); + evas_object_del(ctxpopup); + return; + } + + elm_box_pack_end(box, auto_btn); + elm_object_focus_set(auto_btn, EINA_TRUE); + btn[0] = auto_btn; + + man_btn = _create_mode_setting_btn(ctxpopup, _(TXT_ENTER_MAN), + _ip_manual_mode_btn_clicked_cb, (void *)priv); + if (!man_btn) { + _ERR("Add btn failed.\n"); + evas_object_del(ctxpopup); + return; + } + + elm_box_pack_end(box, man_btn); + btn[1] = man_btn; + + _set_up_down_cycle_focus(btn, 2); + + evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_KEY_DOWN, + _ip_ctxpopup_key_pressed_cb, priv); + evas_object_smart_callback_add(ctxpopup, SIG_UNFOCUSED, + _ctxpopup_unfocused_cb, priv); + + priv->ip_mode_ly = ctxpopup; + + if (priv->ip_mode == MODE_AUTO) + elm_object_signal_emit(auto_btn, SIG_BTN_SELECTED, PROG); + else if (priv->ip_mode == MODE_MAN) + elm_object_signal_emit(man_btn, SIG_BTN_SELECTED, PROG); + + evas_object_geometry_get(priv->ip_mode_btn, &x, &y, &w, &h); + evas_object_move(ctxpopup, (x + SETTING_MODE_OFFSET_X) * ELM_SCALE, + (y + h) * ELM_SCALE); +} + +/** + * Gets the position of IP value ctxpopup. + * + * Gets the specific position by the current type. + * + * @param[in] priv The handler of the private data + * @param[out] pos_x X position + * @param[out] pos_y Y position + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _get_value_popup_pos(struct _priv *priv, + Evas_Coord *pos_x, Evas_Coord *pos_y) +{ + Evas_Coord x; + Evas_Coord y; + Evas_Coord w; + Evas_Coord h; + + if (!priv || !pos_x || !pos_y) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + switch (priv->cur_type) { + case SETTING_IP_ADDRESS: + evas_object_geometry_get(priv->ip_addr_btn, &x, &y, &w, &h); + *pos_x = x + SETTING_VALUE_OFFSET_X; + *pos_y = y - SETTING_VALUE_OFFSET_Y; + break; + case SETTING_SUBNET_MASK: + evas_object_geometry_get(priv->subnet_mask_btn, &x, &y, &w, &h); + *pos_x = x + SETTING_VALUE_OFFSET_X; + *pos_y = y - SETTING_VALUE_OFFSET_Y; + break; + case SETTING_GATEWAY: + evas_object_geometry_get(priv->gateway_btn, &x, &y, &w, &h); + *pos_x = x + SETTING_VALUE_OFFSET_X; + *pos_y = y - SETTING_VALUE_OFFSET_Y; + break; + case SETTING_DNS_SERVER: + evas_object_geometry_get(priv->dns_server_btn, &x, &y, &w, &h); + *pos_x = x + SETTING_VALUE_OFFSET_X; + *pos_y = y - 2 * SETTING_VALUE_OFFSET_Y; + break; + default: + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Sets the number to the object text. + * + * @param[in] obj The handler of the object + * @param[in] num The number + */ +static void _set_text_num(Evas_Object *obj, int num) +{ + char value[IP_STRING_MAX_SIZE]; + + if (!obj) { + _ERR("The param is invalid."); + return; + } + + memset(value, 0, IP_STRING_MAX_SIZE); + snprintf(value, IP_STRING_MAX_SIZE - 1, "%d", num); + elm_object_text_set(obj, value); +} + +/** + * Callback for key pressed event. + * + * The button responds the key, and sets the number for the button. + * + * @param[in] data User data + * @param[in] evas Evas handler + * @param[in] obj The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _ip_btn_key_pressed_cb(void *data, Evas *evas, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + const char *value; + int num, new_num; + + if (!ei || !data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_UP)) { + value = elm_object_text_get(obj); + num = atoi(value); + num++; + if (num > MAX_IP_NUM) + num = 0; + } else if (!strcmp(ev->keyname, KEY_DOWN)) { + value = elm_object_text_get(obj); + num = atoi(value); + num--; + if (num < 0) + num = MAX_IP_NUM; + } else if (!strcmp(ev->keyname, KEY_0) || + !strcmp(ev->keyname, KEY_1) || + !strcmp(ev->keyname, KEY_2) || + !strcmp(ev->keyname, KEY_3) || + !strcmp(ev->keyname, KEY_4) || + !strcmp(ev->keyname, KEY_5) || + !strcmp(ev->keyname, KEY_6) || + !strcmp(ev->keyname, KEY_7) || + !strcmp(ev->keyname, KEY_8) || + !strcmp(ev->keyname, KEY_9)) { + value = elm_object_text_get(obj); + if (!value) + elm_object_text_set(obj, ev->keyname); + + new_num = atoi(ev->keyname); + + num = atoi(value); + if (!num || (num * RATIO + new_num) > MAX_IP_NUM) { + elm_object_text_set(obj, ev->keyname); + return; + } + + num = num * RATIO + new_num; + } else { + return; + } + + _set_text_num(obj, num); +} + +/** + * Sets the value to the object text. + * + * @param[in] priv The handler of the private data + */ +static void _set_the_value(struct _priv *priv) +{ + Evas_Object *btn; + const char *value1; + const char *value2; + const char *value3; + const char *value4; + char value[IP_STRING_MAX_SIZE]; + + if (!priv || !priv->config_popup) { + _ERR("The param is invalid.\n"); + return; + } + + value1 = NULL; + btn = evas_object_data_get(priv->config_popup, IP_VALUE1); + if (btn) + value1 = elm_object_text_get(btn); + + value2 = NULL; + btn = evas_object_data_get(priv->config_popup, IP_VALUE2); + if (btn) + value2 = elm_object_text_get(btn); + + value3 = NULL; + btn = evas_object_data_get(priv->config_popup, IP_VALUE3); + if (btn) + value3 = elm_object_text_get(btn); + + value4 = NULL; + btn = evas_object_data_get(priv->config_popup, IP_VALUE4); + if (btn) + value4 = elm_object_text_get(btn); + + memset(value, 0, IP_STRING_MAX_SIZE); + snprintf(value, IP_STRING_MAX_SIZE, "%s.%s.%s.%s", + value1 ? value1 : "\\0", value2 ? value2 : "\\0", + value3 ? value3 : "\\0", value4 ? value4 : "\\0"); + + switch (priv->cur_type) { + case SETTING_IP_ADDRESS: + elm_object_part_text_set(priv->ip_addr_btn, + PART_VALUE, value); + strncpy(priv->info.ip_addr, value, IP_STRING_MAX_SIZE); + break; + case SETTING_SUBNET_MASK: + elm_object_part_text_set(priv->subnet_mask_btn, + PART_VALUE, value); + strncpy(priv->info.submask, value, IP_STRING_MAX_SIZE); + break; + case SETTING_GATEWAY: + elm_object_part_text_set(priv->gateway_btn, + PART_VALUE, value); + strncpy(priv->info.gateway, value, IP_STRING_MAX_SIZE); + break; + case SETTING_DNS_SERVER: + elm_object_part_text_set(priv->dns_server_btn, + PART_VALUE, value); + strncpy(priv->info.dns, value, IP_STRING_MAX_SIZE); + break; + default: + return; + } + + evas_object_del(priv->config_popup); + priv->config_popup = NULL; +} + +/** + * Callback for key pressed event. + * + * If the key is KEY_BACK, delete the IP value ctxpopup. + * If the key is KEY_ENTER, set the value into the button. + * + * @param[in] data User data + * @param[in] evas Evas handler + * @param[in] obj The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _value_ctxpopup_key_pressed_cb(void *data, Evas *evas, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!ei || !data) { + _ERR("The param is invalid.\n"); + return; + } + + ev = ei; + priv = data; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_ENTER)) { + _unset_layout_dim(priv); + _set_the_value(priv); + evas_object_del(obj); + } else if (!strcmp(ev->keyname, KEY_BACK)) { + _unset_layout_dim(priv); + evas_object_del(obj); + } +} + +/** + * Sets the cycle focus in the direction of left and right. + * + * Sets the cycle focus for an array of objects. + * + * @param[in] obj The handler of objects + * @param[in] count The count of objects + */ +static void _set_left_right_cycle_focus(Evas_Object **obj, int count) +{ + int i; + + if (!obj || !*obj) { + _ERR("the param is invalid."); + return; + } + + for (i = 0; i < count; i++) { + if (i == count - 1) + elm_object_focus_next_object_set(obj[i], + obj[0], ELM_FOCUS_RIGHT); + else + elm_object_focus_next_object_set(obj[i], + obj[i + 1], ELM_FOCUS_RIGHT); + + if (i == 0) + elm_object_focus_next_object_set(obj[i], + obj[count - 1], ELM_FOCUS_LEFT); + else + elm_object_focus_next_object_set(obj[i], + obj[i - 1], ELM_FOCUS_LEFT); + } +} + +/** + * Creates the value button for IP setting. + * + * @param[in] base The parent object + * @param[in] num The sequence number of the button + * @param[in] txt The text in the button + * @param[in] data User data + * @return button if the operation is successful; NULL if failed; + */ +static Evas_Object *_create_value_btn(Evas_Object *base, int num, + char *txt, void *data) +{ + Evas_Object *btn; + + if (!base || !txt || !data) { + _ERR("The param is invalid.\n"); + return NULL; + } + + btn = util_add_button(base, STYLE_VALUE_BTN, NULL, txt); + if (!btn) { + _ERR("add button failed.\n"); + return NULL; + } + + switch (num) { + case 0: + elm_object_part_content_set(base, PART_IP_FIRST, btn); + evas_object_data_set(base, IP_VALUE1, btn); + elm_object_focus_set(btn, EINA_TRUE); + break; + case 1: + elm_object_part_content_set(base, PART_IP_SECOND, btn); + evas_object_data_set(base, IP_VALUE2, btn); + break; + case 2: + elm_object_part_content_set(base, PART_IP_THIRD, btn); + evas_object_data_set(base, IP_VALUE3, btn); + break; + case 3: + elm_object_part_content_set(base, PART_IP_FORTH, btn); + evas_object_data_set(base, IP_VALUE4, btn); + break; + default: + break; + } + + evas_object_smart_callback_add(btn, SIG_CLICKED, + _popup_dismissed_cb, data); + evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, + _ip_btn_key_pressed_cb, data); + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_UP); + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_DOWN); + + return btn; +} + +/** + * Creates value ctxpopup. + * + * User can set number in the ctxpopup. + * + * @param[in] priv The handler of the private data + */ +static void _create_value_popup(struct _priv *priv) +{ + Evas_Object *base; + Evas_Object *ctxpopup; + Evas_Object *btn; + Evas_Coord pos_x; + Evas_Coord pos_y; + int i; + + if (!priv || !priv->base) { + _ERR("The param is invalid.\n"); + return; + } + + base = priv->base; + + ctxpopup = util_add_layout(base, UG_NETWORK_EDJ_FILE, + GRP_NETWORK_VALUE_SETTING); + if (!ctxpopup) { + _ERR("elm_ctxpopup_add() failed.\n"); + return; + } + + elm_object_focus_allow_set(ctxpopup, EINA_TRUE); + evas_object_smart_callback_add(ctxpopup, SIG_UNFOCUSED, + _ctxpopup_unfocused_cb, priv); + priv->config_popup = ctxpopup; + + _set_layout_dim(priv); + + for (i = 0; i < IP_SET_MAX_NUM; i++) { + btn = _create_value_btn(ctxpopup, i, _(TXT_ZERO), (void *)priv); + if (!btn) { + _ERR("_create_value_btn() failed.\n"); + evas_object_del(ctxpopup); + priv->config_popup = NULL; + return; + } + + priv->cur_ip_btn[i] = btn; + } + + evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_KEY_DOWN, + _value_ctxpopup_key_pressed_cb, priv); + _set_left_right_cycle_focus(priv->cur_ip_btn, IP_SET_MAX_NUM); + + _keep_button_focused(priv); + + pos_x = 0; + pos_y = 0; + _get_value_popup_pos(priv, &pos_x, &pos_y); + evas_object_move(ctxpopup, pos_x * ELM_SCALE, pos_y * ELM_SCALE); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* After the IP button is clicked, the value ctxpopup +* will be created to set the value. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _ip_address_btn_clicked_cb(void *data, + Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + priv->cur_type = SETTING_IP_ADDRESS; + _create_value_popup(priv); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* After the submask button is clicked, the value ctxpopup +* will be created to set the value. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _sub_mask_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + priv->cur_type = SETTING_SUBNET_MASK; + _create_value_popup(priv); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* After the gateway button is clicked, the value ctxpopup +* will be created to set the value. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _gateway_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + priv->cur_type = SETTING_GATEWAY; + _create_value_popup(priv); +} + +/** + * Creates setting button. + * + * @param[in] base The parent object + * @param[in] key The key value + * @param[in] txt The text in the button + * @param[in] cb The callback for clicked event + * @param[in] data User data + * @return button if the operation is successful; NULL if failed; + */ +static Evas_Object *_create_setting_btn(Evas_Object *base, + char *key, char *txt, Evas_Smart_Cb cb, void *data) +{ + Evas_Object *btn; + + if (!base || !key || !txt || !cb || !data) { + _ERR("The param is invalid.\n"); + return NULL; + } + + btn = util_add_key_value_button(base, NULL, key, txt); + if (!btn) { + _ERR("Add button failed.\n"); + return NULL; + } + + evas_object_smart_callback_add(btn, SIG_CLICKED, cb, data); + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); + + return btn; +} + +/** + * Creates IP setting layout. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _create_ip_setting(struct _priv *priv) +{ + Evas_Object *base; + Evas_Object *scroll; + Evas_Object *box; + Evas_Object *btn; + char mode[STRING_MAX_SIZE]; + + if (!priv || !priv->base) { + _ERR("The param is invalid.\n"); + return RET_FAILED; + } + + base = priv->base; + + scroll = util_add_scroll(base, PART_CONNECTION_IP_SETTING); + if (!scroll) { + _ERR("add scroll failed."); + return RET_FAILED; + } + + box = util_add_box(scroll, NULL); + if (!box) { + _ERR("add box failed."); + evas_object_del(scroll); + return RET_FAILED; + } + + elm_box_horizontal_set(box, EINA_FALSE); + elm_box_padding_set(box, BOX_PAD_X, BOX_PAD_Y); + + memset(mode, 0, STRING_MAX_SIZE); + if (priv->ip_mode == MODE_AUTO) + snprintf(mode, STRING_MAX_SIZE - 1, + "%s", _(TXT_OBTAIN_AUTO)); + else + snprintf(mode, STRING_MAX_SIZE - 1, + "%s", _(TXT_ENTER_MAN)); + + btn = _create_setting_btn(base, _(TXT_IP_SETTING), mode, + _ip_setting_btn_clicked_cb, (void *)priv); + if (!btn) { + _ERR("Add button failed.\n"); + evas_object_del(scroll); + return RET_FAILED; + } + + elm_box_pack_end(box, btn); + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_UP); + elm_object_focus_set(btn, EINA_TRUE); + priv->ip_mode_btn = btn; + + btn = _create_setting_btn(base, _(TXT_IP_ADDR), priv->info.ip_addr, + _ip_address_btn_clicked_cb, (void *)priv); + if (!btn) { + _ERR("Add btn failed.\n"); + evas_object_del(scroll); + return RET_FAILED; + } + + elm_box_pack_end(box, btn); + priv->ip_addr_btn = btn; + + btn = _create_setting_btn(base, _(TXT_SUBNET_MASK), priv->info.submask, + _sub_mask_btn_clicked_cb, (void *)priv); + if (!btn) { + _ERR("Add btn failed.\n"); + evas_object_del(scroll); + return RET_FAILED; + } + + elm_box_pack_end(box, btn); + priv->subnet_mask_btn = btn; + + btn = _create_setting_btn(base, _(TXT_GATEWAY), priv->info.gateway, + _gateway_btn_clicked_cb, (void *)priv); + if (!btn) { + _ERR("Add btn failed.\n"); + evas_object_del(scroll); + return RET_FAILED; + } + + elm_object_signal_emit(btn, SIG_HIDE_BOTTOME_LINE, PROG); + + elm_box_pack_end(box, btn); + priv->gateway_btn = btn; + + elm_object_content_set(scroll, box); + + if (priv->ip_mode == MODE_AUTO) + _disable_ip_btns(priv); + + return RET_SUCCESS; +} + +/** + * Disables DNS setting button. + * + * @param[in] priv The handler of the private data + */ +static void _disable_dns_btns(struct _priv *priv) +{ + if (!priv || !priv->dns_server_btn) { + _ERR("The param is invalid.\n"); + return; + } + + elm_object_disabled_set(priv->dns_server_btn, EINA_TRUE); +} + +/** + * Enables DNS setting button. + * + * @param[in] priv The handler of the private data + */ +static void _enable_dns_btns(struct _priv *priv) +{ + if (!priv || !priv->dns_server_btn) { + _ERR("The param is invalid.\n"); + return; + } + + elm_object_disabled_set(priv->dns_server_btn, EINA_FALSE); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* When the 'automatical' button is clicked, delete the popup, +* and disable the DNS buttons. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _dns_auto_mode_btn_clicked_cb(void *data, + Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + _disable_dns_btns(priv); + + elm_object_part_text_set(priv->dns_mode_btn, + PART_VALUE, _(TXT_OBTAIN_AUTO)); + + evas_object_del(priv->dns_mode_ly); + priv->dns_mode_ly = NULL; + priv->dns_mode = MODE_AUTO; + + _unset_layout_dim(priv); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* When the manual mode button is clicked, delete the popup, +* and enable the DNS buttons. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _dns_manual_mode_btn_clicked_cb(void *data, + Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + _enable_dns_btns(priv); + + elm_object_part_text_set(priv->dns_mode_btn, + PART_VALUE, _(TXT_ENTER_MAN)); + + evas_object_del(priv->dns_mode_ly); + priv->dns_mode_ly = NULL; + priv->dns_mode = MODE_MAN; + + _unset_layout_dim(priv); +} + +/** +* @Evas_Smart_Cb type callback for handling dismissed event. +* +* When the ctxpopup is dismissed, delete the ctxpopup. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _dns_ctxpopup_dismissed_cb(void *data, + Evas_Object *obj, void *source) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + _unset_layout_dim(priv); + + evas_object_del(priv->dns_mode_ly); + priv->dns_mode_ly = NULL; +} + +/** + * Callback for key pressed event. + * + * If the key is KEY_BACK, delete the DNS ctxpopup. + * If the key is KEY_EXIT, destroy the ug. + * + * @param[in] data User data + * @param[in] evas Evas handler + * @param[in] o The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _dns_ctxpopup_key_pressed_cb(void *data, Evas *evas, + Evas_Object *o, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!ei || !data) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_BACK)) { + _unset_layout_dim(priv); + evas_object_del(priv->dns_mode_ly); + priv->dns_mode_ly = NULL; + } else if (!strcmp(ev->keyname, KEY_EXIT)) { + ug_destroy_me(priv->ug); + } +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* Creates the DNS mode ctxpopup. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _dns_setting_btn_clicked_cb(void *data, + Evas_Object *obj, void *ev) +{ + struct _priv *priv; + Evas_Object *base; + Evas_Object *ctxpopup, *box; + Evas_Object *btn_auto, *btn_man; + Evas_Coord x, y, w, h; + Evas_Object *btn[2]; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + priv->cur_type = SETTING_DNS; + + base = priv->base; + + if (priv->dns_mode == MODE_INVALID) + priv->dns_mode = MODE_MAN; + + ctxpopup = util_add_layout(base, UG_NETWORK_EDJ_FILE, + GRP_NETWORK_MODE_SETTING); + if (!ctxpopup) { + _ERR("elm_layout_add() failed.\n"); + return; + } + + box = util_add_box(ctxpopup, PART_SWALLOW_CONTENT); + if (!box) { + _ERR("add box failed."); + evas_object_del(ctxpopup); + return; + } + + elm_box_horizontal_set(box, EINA_FALSE); + + btn_auto = _create_mode_setting_btn(ctxpopup, _(TXT_OBTAIN_AUTO), + _dns_auto_mode_btn_clicked_cb, priv); + if (!btn_auto) { + _ERR("Add btn failed.\n"); + evas_object_del(ctxpopup); + return; + } + + elm_box_pack_end(box, btn_auto); + elm_object_focus_set(btn_auto, EINA_TRUE); + btn[0] = btn_auto; + + btn_man = _create_mode_setting_btn(ctxpopup, _(TXT_ENTER_MAN), + _dns_manual_mode_btn_clicked_cb, priv); + if (!btn_man) { + _ERR("Add btn failed.\n"); + evas_object_del(ctxpopup); + return; + } + + elm_box_pack_end(box, btn_man); + btn[1] = btn_man; + + _set_up_down_cycle_focus(btn, 2); + + evas_object_event_callback_add(ctxpopup, + EVAS_CALLBACK_KEY_DOWN, + _dns_ctxpopup_key_pressed_cb, priv); + evas_object_smart_callback_add(ctxpopup, SIG_UNFOCUSED, + _ctxpopup_unfocused_cb, priv); + evas_object_smart_callback_add(ctxpopup, SIG_DISMISSED, + _dns_ctxpopup_dismissed_cb, priv); + + evas_object_geometry_get(priv->dns_mode_btn, &x, &y, &w, &h); + priv->dns_mode_ly = ctxpopup; + + evas_object_move(ctxpopup, (x + SETTING_MODE_OFFSET_X) * ELM_SCALE, + (y + h) * ELM_SCALE); + + if (priv->dns_mode == MODE_AUTO) + elm_object_signal_emit(btn_auto, SIG_BTN_SELECTED, PROG); + else if (priv->dns_mode == MODE_MAN) + elm_object_signal_emit(btn_man, SIG_BTN_SELECTED, PROG); + + _set_layout_dim(priv); + + _keep_button_focused(priv); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* After the DNS button is clicked, the value ctxpopup +* will be created to set the value. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _dns_server_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + priv->cur_type = SETTING_DNS_SERVER; + _create_value_popup(priv); +} + +/** + * Creates DNS setting layout. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _create_dns_setting(struct _priv *priv) +{ + Evas_Object *base; + Evas_Object *btn; + Evas_Object *box; + char mode[STRING_MAX_SIZE]; + + if (!priv || !priv->base) { + _ERR("The param is invalid.\n"); + return RET_FAILED; + } + + base = priv->base; + + box = util_add_box(base, PART_CONNECTION_DNS_SETTING); + if (!box) { + _ERR("add box failed."); + return RET_FAILED; + } + + elm_box_horizontal_set(box, EINA_FALSE); + elm_box_padding_set(box, BOX_PAD_X, BOX_PAD_Y); + + memset(mode, 0, STRING_MAX_SIZE); + if (priv->dns_mode == MODE_AUTO) + snprintf(mode, STRING_MAX_SIZE - 1, + "%s", _(TXT_OBTAIN_AUTO)); + else + snprintf(mode, STRING_MAX_SIZE - 1, + "%s", _(TXT_ENTER_MAN)); + + btn = util_add_key_value_button(base, NULL, + _(TXT_DNS_SETING), mode); + if (!btn) { + _ERR("Add button failed.\n"); + evas_object_del(box); + return RET_FAILED; + } + + evas_object_smart_callback_add(btn, + SIG_CLICKED, _dns_setting_btn_clicked_cb, priv); + elm_box_pack_end(box, btn); + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); + + priv->dns_mode_btn = btn; + + btn = util_add_key_value_button(base, NULL, + _(TXT_DNS_SERVER), priv->info.dns); + if (!btn) { + _ERR("Add btn failed.\n"); + evas_object_del(box); + return RET_FAILED; + } + + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); + evas_object_smart_callback_add(btn, SIG_CLICKED, + _dns_server_btn_clicked_cb, priv); + elm_object_signal_emit(btn, SIG_HIDE_BOTTOME_LINE, PROG); + elm_box_pack_end(box, btn); + + priv->dns_server_btn = btn; + + if (priv->dns_mode == MODE_AUTO) + _disable_dns_btns(priv); + + return RET_SUCCESS; +} + +/** + * Checks if IP is valid. + * + * Now only check if IP is '0.0.0.0'. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; + * RET_IP_INVALID if the IP is '0.0.0.0'; RET_FAILED if failed; + */ +static int _check_is_ip_valid(struct _priv *priv) +{ + if (!priv) { + _ERR("The param is NULL.\n"); + return RET_FAILED; + } + + if (!strncmp(priv->info.ip_addr, ZERO_IP, + IP_STRING_MAX_SIZE)) { + _ERR("IP addr is invalid."); + return RET_IP_INVALID; + } + + if (!strncmp(priv->info.submask, ZERO_IP, + IP_STRING_MAX_SIZE)) { + _ERR("submask addr is invalid."); + return RET_IP_INVALID; + } + + if (!strncmp(priv->info.gateway, ZERO_IP, + IP_STRING_MAX_SIZE)) { + _ERR("gateway addr is invalid."); + return RET_IP_INVALID; + } + + if (!strncmp(priv->info.dns, ZERO_IP, + IP_STRING_MAX_SIZE)) { + _ERR("dns addr is invalid."); + return RET_IP_INVALID; + } + + return RET_SUCCESS; +} + +/** + * Shows the invalid IP ctxpopup. + * + * @param[in] priv The handler of the private data + */ +static void _show_invalid_ip_popup(struct _priv *priv) +{ + Evas_Object *layout; + Evas_Object *ok_btn; + char content[CONTENT_TXT_SIZE]; + + if (!priv) { + _ERR("The param is NULL.\n"); + return; + } + + if (priv->confirm_popup) + _del_confirm_popup(priv); + + _set_layout_dim(priv); + + layout = util_add_layout(priv->base, UG_NETWORK_EDJ_FILE, + GRP_CONFIRM_LAYOUT); + if (!layout) { + _ERR("add layout failed."); + _unset_layout_dim(priv); + return; + } + + evas_object_show(layout); + + if (priv->network_type == TYPE_WIRED) + elm_object_part_text_set(layout, + PART_TEXT_TITLE, _(TXT_WIRED_LY)); + else + elm_object_part_text_set(layout, + PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); + + memset(content, 0, CONTENT_TXT_SIZE); + snprintf(content, CONTENT_TXT_SIZE - 1, "%s", + _(TXT_INVALID_IP)); + elm_object_part_text_set(layout, + PART_TEXT_CONTENT, content); + + ok_btn = util_add_button(layout, + STYLE_SETTING_BTN, PART_OK_BTN, _(TXT_OK)); + if (!ok_btn) { + _ERR("util add button failed."); + evas_object_del(layout); + _unset_layout_dim(priv); + return; + } + + elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_UP); + elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_DOWN); + evas_object_smart_callback_add(ok_btn, SIG_CLICKED, + _popup_ok_cancel_btn_clicked_cb, priv); + + elm_object_focus_set(ok_btn, EINA_TRUE); + + elm_object_focus_allow_set(layout, EINA_TRUE); + evas_object_smart_callback_add(layout, SIG_UNFOCUSED, + _ctxpopup_unfocused_cb, priv); + evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, + _ctxpopup_pressed_cb, priv); + + evas_object_move(layout, CENTER_ALIGN * (DEFAULT_WIN_WIDTH - POPUP_WIDTH) * ELM_SCALE, + CENTER_ALIGN * (DEFAULT_WIN_HEIGHT - POPUP_HEIGHT) * ELM_SCALE); + + priv->confirm_popup = layout; +} + +/** + * Sets the mode as 'manually'. + * + * Depends on the network type. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _config_network_manually(struct _priv *priv) +{ + int ret; + + if (!priv) { + _ERR("The param is NULL.\n"); + return RET_FAILED; + } + + ret = _check_is_ip_valid(priv); + if (ret != RET_SUCCESS) { + _ERR("the ip is invalid."); + _show_invalid_ip_popup(priv); + return ret; + } + + _get_connection_profile_info(priv); + + switch (priv->network_type) { + case TYPE_WIRED: + ret = connection_mgr_set_profile(priv->connection, + priv->profile, &priv->info); + if (ret != RET_SUCCESS) { + _ERR("set profile failed."); + return ret; + } + + ret = vconf_mgr_save_wired_config_info(&priv->info); + if (ret != RET_SUCCESS) { + _ERR("saved wired ip info to vconf failed."); + return ret; + } + + break; + case TYPE_WIRELESS: + ret = wifi_mgr_set_ip_config(priv->ap, &priv->info); + if (ret != RET_SUCCESS) { + _ERR("set wifi ip config failed."); + return ret; + } + + ret = wifi_mgr_set_dns_config(priv->ap, &priv->info); + if (ret != RET_SUCCESS) { + _ERR("set wifi dns config failed."); + return ret; + } + + ret = vconf_mgr_save_wireless_config_info(&priv->info); + if (ret != RET_SUCCESS) { + _ERR("saved wireless ip info to vconf failed."); + return ret; + } + + break; + default: + break; + } + + return RET_SUCCESS; +} + +/** + * Sets the mode as 'dynamic'. + * + * Depends on the network type. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _config_network_dynamic(struct _priv *priv) +{ + int ret; + + if (!priv) { + _ERR("The param is NULL.\n"); + return RET_FAILED; + } + + _get_connection_profile_info(priv); + + switch (priv->network_type) { + case TYPE_WIRED: + ret = connection_mgr_ip_dynamic_config(priv->connection, + priv->profile); + if (ret != RET_SUCCESS) { + _ERR("connection_mgr_ip_dynamic_config() failed."); + return RET_FAILED; + } + + break; + case TYPE_WIRELESS: + ret = wifi_mgr_ap_set_ip_config_type(priv->ap, + WIFI_IP_CONFIG_TYPE_DYNAMIC); + if (ret != RET_SUCCESS) { + _ERR("connection_mgr_ip_dynamic_config() failed."); + return RET_FAILED; + } + + break; + default: + break; + } + + return RET_SUCCESS; +} + +/** + * Saves the mode to vconf. + * + * @param[in] priv The handler of the private data + */ +static void _save_mode(struct _priv *priv) +{ + int ret; + + if (!priv) { + _ERR("The param is NULL.\n"); + return; + } + + switch (priv->network_type) { + case TYPE_WIRED: + ret = vconf_mgr_set_wired_ip_mode(priv->ip_mode); + if (ret != RET_SUCCESS) + _ERR("vconf_mgr_set_wired_ip_mode() failed."); + + ret = vconf_mgr_set_wired_dns_mode(priv->dns_mode); + if (ret != RET_SUCCESS) + _ERR("vconf_mgr_set_wired_dns_mode() failed."); + + break; + case TYPE_WIRELESS: + ret = vconf_mgr_set_wireless_ip_mode(priv->ip_mode); + if (ret != RET_SUCCESS) + _ERR("vconf_mgr_set_wireless_ip_mode() failed."); + + ret = vconf_mgr_set_wireless_dns_mode(priv->dns_mode); + if (ret != RET_SUCCESS) + _ERR("vconf_mgr_set_wireless_dns_mode() failed."); + + break; + default: + break; + } +} + +/** + * Configs the network mode. + * + * @param[in] priv The handler of the private data + */ +static void _config_network(struct _priv *priv) +{ + int ret; + + if (!priv) { + _ERR("Parameter error!"); + return; + } + + switch (priv->ip_mode) { + case MODE_AUTO: + ret = _config_network_dynamic(priv); + if (ret != RET_SUCCESS) { + _ERR("config network automatically failed."); + goto error; + } + + break; + case MODE_MAN: + ret = _config_network_manually(priv); + if (ret == RET_IP_INVALID) { + _ERR("invalid IP."); + return; + } else if (ret != RET_SUCCESS) { + _ERR("config network manually failed."); + goto error; + } + + break; + default: + goto error; + } + + _save_mode(priv); + + viewmgr_pop(priv->vmgr); + + return; + +error: + _show_confirm_popup(priv); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* When the 'Retry' button is clicked, retry to connect to the network. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] event Event information +*/ +static void _retry_btn_clicked_cb(void *data, + Evas_Object *obj, void *event) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + _del_confirm_popup(priv); + + elm_object_focus_set(priv->ok_btn, EINA_TRUE); + + _config_network(priv); +} + +/** + * Shows the confirm ctxpopup. + * + * Decides to connect the network again or cancel it. + * + * @param[in] priv The handler of the private data + */ +static void _show_confirm_popup(struct _priv *priv) +{ + Evas_Object *layout; + Evas_Object *retry_btn, *cancel_btn; + char content[CONTENT_TXT_SIZE]; + + if (!priv) { + _ERR("the param is NULL."); + return; + } + + _set_layout_dim(priv); + + layout = util_add_layout(priv->base, UG_NETWORK_EDJ_FILE, + GRP_CONFIRM_LAYOUT); + if (!layout) { + _ERR("add layout failed."); + _unset_layout_dim(priv); + return; + } + + priv->confirm_popup = layout; + + if (priv->network_type == TYPE_WIRED) + elm_object_part_text_set(layout, + PART_TEXT_TITLE, _(TXT_WIRED_LY)); + else + elm_object_part_text_set(layout, + PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); + + memset(content, 0, CONTENT_TXT_SIZE); + snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", + _(TXT_FAILED_CONNECT), priv->name); + elm_object_part_text_set(layout, + PART_TEXT_CONTENT, content); + + retry_btn = util_add_button(layout, + STYLE_SETTING_BTN, PART_RETRY_BTN, _(TXT_RETRY)); + if (!retry_btn) { + _ERR("util add button failed."); + evas_object_del(layout); + _unset_layout_dim(priv); + return; + } + + cancel_btn = util_add_button(layout, + STYLE_SETTING_BTN, PART_CANCEL_BTN, _(TXT_CANCEL)); + if (!cancel_btn) { + _ERR("util add button failed."); + evas_object_del(layout); + _unset_layout_dim(priv); + return; + } + + elm_object_focus_next_object_set(retry_btn, cancel_btn, + ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(cancel_btn, retry_btn, + ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(retry_btn, retry_btn, + ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_UP); + elm_object_focus_next_object_set(retry_btn, retry_btn, + ELM_FOCUS_UP); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_DOWN); + elm_object_focus_next_object_set(retry_btn, retry_btn, + ELM_FOCUS_DOWN); + + evas_object_smart_callback_add(retry_btn, SIG_CLICKED, + _retry_btn_clicked_cb, priv); + evas_object_smart_callback_add(cancel_btn, SIG_CLICKED, + _popup_ok_cancel_btn_clicked_cb, priv); + + elm_object_focus_set(retry_btn, EINA_TRUE); + + elm_object_focus_allow_set(layout, EINA_TRUE); + evas_object_smart_callback_add(layout, SIG_UNFOCUSED, + _ctxpopup_unfocused_cb, priv); + evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, + _ctxpopup_pressed_cb, priv); + + evas_object_move(layout, CENTER_ALIGN * (DEFAULT_WIN_WIDTH - POPUP_WIDTH) * ELM_SCALE, + CENTER_ALIGN * (DEFAULT_WIN_HEIGHT - POPUP_HEIGHT) * ELM_SCALE); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* Configs the network. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _ok_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + _config_network(priv); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* Cancels to config the network, and pops the view. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _cancel_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + if (priv && priv->vmgr) + viewmgr_pop(priv->vmgr); +} + +/** + * Creates the action buttons. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _create_btns(struct _priv *priv) +{ + Evas_Object *base; + Evas_Object *ok_btn; + Evas_Object *cancel_btn; + + if (!priv) { + _ERR("The param is invalid.\n"); + return RET_FAILED; + } + + base = priv->base; + + ok_btn = util_add_button(base, STYLE_SETTING_BTN, NULL, _(TXT_OK)); + if (!ok_btn) { + _ERR("Add button failed.\n"); + return RET_FAILED; + } + + elm_object_part_content_set(base, PART_CONNECTION_OK_BTN, ok_btn); + priv->ok_btn = ok_btn; + evas_object_smart_callback_add(ok_btn, SIG_CLICKED, + _ok_btn_clicked_cb, priv); + + cancel_btn = util_add_button(base, STYLE_SETTING_BTN, + PART_CONNECTION_CANCEL_BTN, _(TXT_CANCEL)); + if (!cancel_btn) { + _ERR("Add button failed.\n"); + evas_object_del(ok_btn); + return RET_FAILED; + } + + evas_object_smart_callback_add(cancel_btn, SIG_CLICKED, + _cancel_btn_clicked_cb, priv); + + priv->cancel_btn = cancel_btn; + + return RET_SUCCESS; +} + +/** + * Creates the dim layout. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _create_dim_layout(struct _priv *priv) +{ + Evas_Object *dim_ly; + + if (!priv || !priv->win) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + dim_ly = util_add_layout(priv->win, UG_NETWORK_EDJ_FILE, + GRP_DIM_LY); + if (!dim_ly) { + _ERR("elm_layout_add() failed.\n"); + return RET_FAILED; + } + + priv->dim_ly = dim_ly; + _unset_layout_dim(priv); + + return RET_SUCCESS; +} + +/** + * Callback for key pressed event. + * + * If the key is KEY_BACK, pops the view. + * + * @param[in] data User data + * @param[in] evas Evas handler + * @param[in] obj The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _base_key_pressed_cb(void *data, Evas *evas, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!ei || !data) { + _ERR("The param is invalid.\n"); + return; + } + + ev = ei; + priv = data; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_BACK)) { + viewmgr_pop(priv->vmgr); + return; + } +} + +/** + * Creates the layout of the view. + * + * Called when the view is pushed. + * + * @param[in] vmgr The handler of view manager + * @param[in] data The passed data from main view + * @return layout if the operation is successful; NULL if failed; + */ +static Evas_Object *_create(struct viewmgr *vmgr, void *data) +{ + struct _priv *priv; + Evas_Object *base; + struct connection_info *info; + int ret; + + if (!vmgr || !vmgr->win || !vmgr->ug || !data) { + _ERR("Parameter error!"); + return NULL; + } + + priv = _init_priv(); + if (!priv) { + _ERR("init priv failed."); + return NULL; + } + + priv->win = vmgr->win; + priv->ug = vmgr->ug; + priv->vmgr = vmgr; + + info = data; + priv->connection = info->connection; + priv->network_type = info->cur_type; + priv->ap = info->ap; + strncpy(priv->name, info->name, MAX_NAME_SIZE - 1); + + base = _create_basic_layout(priv->win); + if (!base) { + _ERR("Add main view failed.\n"); + _fini_priv(priv); + return NULL; + } + + evas_object_event_callback_add(base, EVAS_CALLBACK_KEY_DOWN, + _base_key_pressed_cb, priv); + + priv->base = base; + + evas_object_data_set(base, KEY_PRIV, priv); + + _set_description(priv); + + ret = _get_cur_mode(priv); + if (ret != RET_SUCCESS) + goto error; + + ret = _get_cur_ip_info(priv); + if (ret != RET_SUCCESS) + goto error; + + ret = _create_dns_setting(priv); + if (ret != RET_SUCCESS) + goto error; + + ret = _create_btns(priv); + if (ret != RET_SUCCESS) + goto error; + + ret = _create_ip_setting(priv); + if (ret != RET_SUCCESS) + goto error; + + ret = _create_dim_layout(priv); + if (ret != RET_SUCCESS) + goto error; + + return base; + +error: + evas_object_del(base); + _fini_priv(priv); + + return NULL; +} + +/** + * Destroies the layout of the view. + * + * Called when the view is popped. + * + * @param[in] base The base layout + */ +static void _destroy(Evas_Object *base) +{ + struct _priv *priv; + + if (!base) { + _ERR("Parameter error!"); + return; + } + + priv = evas_object_data_get(base, KEY_PRIV); + if (!priv) + return; + + _fini_priv(priv); +} + +/** + * Gets the current view type. + * + * @return view type; + */ +static enum view_type _get_view_type(void) +{ + return NETWORK_IP_SETTING_VIEW; +} + +static struct view_class _vclass = { + .create = _create, + .resume = NULL, + .pause = NULL, + .terminate = _destroy, + .message_handler = NULL, + .get_view_type = _get_view_type, +}; + +/** + * Gets the current view class. + * + * @return view class; + */ +struct view_class *ip_setting_view_vclass_get(void) +{ + return &_vclass; +} diff --git a/ug/network/src/main_view.c b/ug/network/src/main_view.c new file mode 100644 index 0000000..54f32b3 --- /dev/null +++ b/ug/network/src/main_view.c @@ -0,0 +1,2543 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include + +#include "defs.h" +#include "dbg.h" +#include "main_view.h" +#include "vconf_mgr.h" +#include "ip_setting_view.h" +#include "connection_mgr.h" +#include "i18n.h" +#include "wifi_mgr.h" +#include "common.h" +#include "wifi_passcode_view.h" +#include "util.h" + +#define BTN_ACT 4 +#define BTN_TYPE 2 +#define TIMER_INTERNAL 0.1 + +#define KEY_PRIV "priv" + +#define TYPE_POPUP_X_OFFSET 190 + +enum action_btn_enum { + CONNECT, + REFRESH, + OTHER, + CLOSE +}; + +static char *action_button[] = { + [CONNECT] = TXT_CONNECT_BTN, + [REFRESH] = TXT_REFRESH_BTN, + [OTHER] = TXT_OTHER_BTN, + [CLOSE] = TXT_CLOSE_BTN +}; + +static char *button_swallow[] = { + [CONNECT] = PART_CONNECT_BTN, + [REFRESH] = PART_REFRESH_BTN, + [OTHER] = PART_OTHER_BTN, + [CLOSE] = PART_CLOSE_BTN +}; + +static char *popup_button[] = { + [TYPE_WIRELESS] = TXT_WIRELESS, + [TYPE_WIRED] = TXT_WIRED +}; + +struct _priv { + ui_gadget_h ug; + struct viewmgr *vmgr; + + Evas_Object *win; + Evas_Object *base; + Evas_Object *type_btn; + Evas_Object *network_ctxpopup; + Evas_Object *dim_ly; + Evas_Object *connect_btn; + Evas_Object *refresh_btn; + Evas_Object *other_btn; + Evas_Object *close_btn; + Evas_Object *genlist; + Evas_Object *wired_con_box; + Evas_Object *wireless_discon_ly; + Evas_Object *wired_discon_ly; + Evas_Object *status_popup; + + Elm_Genlist_Item_Class *lock_ic; + Elm_Genlist_Item_Class *nolock_ic; + Elm_Object_Item *last_item; + + Eina_List *ap_list; + Ecore_Timer *timer; + + enum network_type_enum network_type; + enum view_type cur_view; + + int wifi_init; + Eina_Bool wifi_conn; + Eina_Bool wired_conn; + + connection_h connection; + connection_profile_h profile; + char profile_name[MAX_NAME_SIZE]; + + wifi_ap_h ap; + char *ap_name; + char *ap_pwd; +}; + +static void _show_confirm_popup(struct _priv *priv); +static void _show_progress_popup(struct _priv *priv); + +/** +* Initialize the priv +* +* Called when initialize the network +* +* @return the _priv object initialized +*/ +static struct _priv *_init_priv() +{ + struct _priv *priv; + + priv = calloc(1, sizeof(*priv)); + if (!priv) { + _ERR("calloc priv failed."); + return NULL; + } + + return priv; +} + +/** +* Finalize the priv +* +* Called when app is destroyed +* +* @param[in] priv the _priv object +*/ +static void _fini_priv(struct _priv *priv) +{ + void *data; + + if (!priv) + return; + + if (priv->lock_ic) + elm_genlist_item_class_free(priv->lock_ic); + + if (priv->nolock_ic) + elm_genlist_item_class_free(priv->nolock_ic); + + if (priv->ap_list) + EINA_LIST_FREE(priv->ap_list, data) + free(data); + + if (priv->dim_ly) + evas_object_del(priv->dim_ly); + + if (priv->timer) + ecore_timer_del(priv->timer); + + connection_mgr_destroy(priv->connection); + + if (priv->ap) + wifi_mgr_ap_destroy(priv->ap); + + free(priv->ap_name); + free(priv->ap_pwd); + + wifi_mgr_deinit(); + + free(priv); +} + +/** +* Eable the "Connect" button +* +* @param[in] priv _priv object bypassed +*/ +static void _enable_connect_btn(struct _priv *priv) +{ + if (!priv || !priv->connect_btn) { + _ERR("The param is invalid."); + return; + } + + elm_object_disabled_set(priv->connect_btn, EINA_FALSE); +} + +/** +* Disable the "Connect" button +* +* @param[in] priv _priv object bypassed +*/ +static void _disable_connect_btn(struct _priv *priv) +{ + if (!priv || !priv->connect_btn) { + _ERR("The param is invalid."); + return; + } + + elm_object_disabled_set(priv->connect_btn, EINA_TRUE); +} + +/** +* Enable the "Other" button +* +* @param[in] priv _priv object bypassed +*/ +static void _enable_other_btn(struct _priv *priv) +{ + if (!priv || !priv->other_btn) { + _ERR("The param is invalid."); + return; + } + + elm_object_disabled_set(priv->other_btn, EINA_FALSE); +} + +/** +* Disable the "Other" button +* +* @param[in] priv _priv object bypassed +*/ +static void _disable_other_btn(struct _priv *priv) +{ + if (!priv || !priv->other_btn) { + _ERR("The param is invalid."); + return; + } + + elm_object_disabled_set(priv->other_btn, EINA_TRUE); +} + +/** +* Enable the dim effect +* +* Called when popup is displayed +* +* @param[in] priv _priv object bypassed +*/ +static void _set_layout_dim(struct _priv *priv) +{ + if (!priv || !priv->dim_ly) { + _ERR("The param is invalid.\n"); + return; + } + + evas_object_show(priv->dim_ly); +} + +/** +* Disable the dim effect +* +* This function is the opposite action of the set_layout_dim +* +* @param[in] priv _priv object bypassed +*/ +static void _unset_layout_dim(struct _priv *priv) +{ + if (!priv || !priv->dim_ly) { + _ERR("The param is invalid.\n"); + return; + } + + evas_object_hide(priv->dim_ly); +} + +/** +* Evas_object_Event_Cb type callback for handling delection event +* +* @param[in] data the user data +* @param[in] e evas handler +* @param[in] obj the corresponding object which clicked event occurred +* @param[in] ei event information +*/ +static void _ctxpopup_pressed_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!data || !ei || !obj) { + _ERR("Parameter error!"); + return; + } + + priv = data; + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_BACK)) { + _unset_layout_dim(priv); + evas_object_del(obj); + } +} + +/** +* Delete the connection progress popup when connection successed or failed +* +* @param[in] priv _priv object bypassed +*/ +static void _del_status_popup(struct _priv *priv) +{ + if (!priv) { + _ERR("priv is NULL."); + return; + } + + _unset_layout_dim(priv); + + if (priv->status_popup) + evas_object_del(priv->status_popup); + + priv->status_popup = NULL; +} + +/** +* Evas_Object_Event_Cb type callback for handling back event +* +* This function delete the ug when EVAS_CALLBACK_KEY_DOWN happens +* +* @param[in] data the user data +* @param[in] e evas handler +* @param[in] obj the corresponding object which clicked event occurred +* @param[in] ei event information +*/ +static void _main_ly_key_pressed_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!data || !ei) { + _ERR("Parameter error!"); + return; + } + + priv = data; + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!priv->ug) + return; + + if (!strcmp(ev->keyname, KEY_BACK)) + ug_destroy_me(priv->ug); +} + +/** +* Create the base layout +* +* Called by _create when network is invoked +* +* @param[in] priv _priv object bypassed +*/ +static Evas_Object *_create_main_layout(struct _priv *priv) +{ + Evas_Object *base; + + if (!priv) { + _ERR("Parameter error!"); + return NULL; + } + + base = util_add_layout(priv->win, UG_NETWORK_EDJ_FILE, GRP_MAIN); + if (!base) { + _ERR("Add pannel view failed.\n"); + return NULL; + } + + evas_object_event_callback_add(base, EVAS_CALLBACK_KEY_DOWN, + _main_ly_key_pressed_cb, priv); + + evas_object_show(base); + + return base; +} + +/** +* Refresh the object of the defined part +* +* @param[in] priv _priv object bypassed +* @param[in] obj the Evas_Object to be setted to the part +*/ +static void _fill_content_part(struct _priv *priv, Evas_Object *obj) +{ + Evas_Object *old_obj; + + if (!priv || !obj || !priv->base) { + _ERR("The param is invalid.\n"); + return; + } + + old_obj = elm_object_part_content_get(priv->base, PART_NETLIST_PANNEL); + if (old_obj == obj) { + _ERR("PART_NETLIST_PANNEL already filled with this object."); + return; + } + + if (old_obj) { + elm_object_part_content_unset(priv->base, PART_NETLIST_PANNEL); + evas_object_hide(old_obj); + } + + elm_object_part_content_set(priv->base, PART_NETLIST_PANNEL, obj); + + evas_object_show(obj); +} + +/** +* Refresh the buttons of the correct position +* +* Called when the view type is changed +* +* @param[in] priv _priv object bypassed +*/ +static void _set_action_btn_pos(struct _priv *priv) +{ + Evas_Object *base; + Evas_Object *btn; + + if (!priv || !priv->base) { + _ERR("Parameter error!"); + return; + } + + base = priv->base; + + btn = elm_object_part_content_get(base, button_swallow[CONNECT]); + if (!btn) { + elm_object_part_content_set(base, button_swallow[CONNECT], + priv->connect_btn); + evas_object_show(priv->connect_btn); + } + + btn = elm_object_part_content_get(base, button_swallow[REFRESH]); + if (btn) { + elm_object_part_content_unset(base, button_swallow[REFRESH]); + evas_object_hide(btn); + } + + btn = elm_object_part_content_get(base, button_swallow[OTHER]); + if (btn) { + elm_object_part_content_unset(base, button_swallow[OTHER]); + evas_object_hide(btn); + } + + btn = elm_object_part_content_get(base, button_swallow[CLOSE]); + if (btn) { + elm_object_part_content_unset(base, button_swallow[CLOSE]); + evas_object_hide(btn); + } + + if (priv->network_type == TYPE_WIRELESS) { + if (!priv->wifi_conn) { + elm_object_part_content_set(base, + button_swallow[REFRESH], + priv->other_btn); + evas_object_show(priv->other_btn); + + elm_object_part_content_set(base, button_swallow[OTHER], + priv->close_btn); + evas_object_show(priv->close_btn); + } else { + elm_object_part_content_set(base, + button_swallow[REFRESH], + priv->refresh_btn); + evas_object_show(priv->refresh_btn); + + elm_object_part_content_set(base, button_swallow[OTHER], + priv->other_btn); + evas_object_show(priv->other_btn); + + elm_object_part_content_set(base, button_swallow[CLOSE], + priv->close_btn); + evas_object_show(priv->close_btn); + } + + if (priv->ap) { + elm_object_disabled_set(priv->other_btn, EINA_FALSE); + elm_object_disabled_set(priv->connect_btn, EINA_FALSE); + } else { + elm_object_disabled_set(priv->connect_btn, EINA_TRUE); + elm_object_disabled_set(priv->other_btn, EINA_TRUE); + } + } else if (priv->network_type == TYPE_WIRED) { + if (!priv->wired_conn) { + elm_object_disabled_set(priv->connect_btn, EINA_TRUE); + elm_object_disabled_set(priv->other_btn, EINA_TRUE); + } else { + elm_object_disabled_set(priv->connect_btn, EINA_FALSE); + elm_object_disabled_set(priv->other_btn, EINA_FALSE); + } + + elm_object_part_content_set(base, button_swallow[REFRESH], + priv->other_btn); + evas_object_show(priv->other_btn); + + elm_object_part_content_set(base, button_swallow[OTHER], + priv->close_btn); + evas_object_show(priv->close_btn); + } +} + +/** +* Get the connection profile infomation +* +* @param[in] priv _priv object bypassed +* @return 0 on success,otherwise -1 +*/ +static int _get_connection_profile_info(struct _priv *priv) +{ + struct connection_info info; + int ret; + + if (!priv) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = connection_mgr_get_profile_info(priv->connection, &info); + if (ret != RET_SUCCESS) { + _ERR("connection_mgr_get_profile_info() failed."); + return RET_FAILED; + } + + priv->profile = info.profile; + strncpy(priv->profile_name, info.name, MAX_NAME_SIZE - 1); + + return RET_SUCCESS; +} + +/** +* Callback function to set content to list panel +* +* Depending on different ethernet, set corresponding connection state +* view to the list panel +* +* @param[in] priv _priv object bypassed +*/ +#if 0 +static void _connection_ethernet_state_callback( + connection_ethernet_cable_state_e state, void *data) +{ + struct _priv *priv; + + if (!data) { + _ERR("data is NULL."); + return; + } + + priv = data; + + if (priv->network_type != TYPE_WIRED) { + _ERR("cur network type is wireless, return."); + return; + } + + if (state == CONNECTION_ETHERNET_CABLE_ATTACHED) { + _fill_content_part(priv, priv->wired_con_box); + } else if (state == CONNECTION_ETHERNET_CABLE_DETACHED) { + _fill_content_part(priv, priv->wired_discon_ly); + + priv->wired_conn = EINA_FALSE; + } + + _set_action_btn_pos(priv); +} +#endif + +/** +* Initialize the connection information +* +* @param[in] priv _priv object bypassed +* @return 0 on success,otherwise -1 +*/ +static int _init_connection(struct _priv *priv) +{ + int ret = RET_FAILED; + + if (!priv) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + priv->connection = connection_mgr_create(); + if (!priv->connection) { + _ERR("connection_mgr_create() failed."); + return RET_FAILED; + } + +#if 0 + ret = connection_mgr_register_ethernet_state_cb + (priv->connection, + _connection_ethernet_state_callback, + priv); +#endif + if (ret != RET_SUCCESS) { + _ERR("register_ethernet_state_cb() failed."); + return RET_FAILED; + } + + ret = _get_connection_profile_info(priv); + if (ret != RET_SUCCESS) { + _ERR("_get_connection_profile_info() failed."); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Create the layout when no network cable plugin +* +* @param[in] priv _priv object bypassed +* @return 0 on success,otherwise -1 +*/ +static int _create_wired_disconnect_part(struct _priv *priv) +{ + Evas_Object *disconnect_ly; + + if (!priv || !priv->base) { + _ERR("the param is NULL.\n"); + return RET_FAILED; + } + + disconnect_ly = util_add_layout(priv->base, + UG_NETWORK_EDJ_FILE, GRP_WIRED_DISCONNECTED_LY); + if (!disconnect_ly) { + _ERR("call elm_layout_add() failed.\n"); + return RET_FAILED; + } + + elm_object_part_text_set(disconnect_ly, PART_DISCONNECT_TEXT, + _(TXT_PLUG_CABLE)); + + evas_object_hide(disconnect_ly); + + priv->wired_discon_ly = disconnect_ly; + + return RET_SUCCESS; +} + +/** +* Callback function when profile button is clicked +* +* This function disable/enable the relating buttons according to the connection state +* +* @param[in] data the user data +* @param[in] obj the corresponding object which clicked event occurred +* @param[in] event_inf event information +*/ +static void _profie_btn_clicked_cb(void *data, + Evas_Object *obj, void *event_inf) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + if (priv->wired_conn) { + elm_object_signal_emit(obj, SIG_STATE_UNSELECTED, ELM); + priv->wired_conn = EINA_FALSE; + _disable_connect_btn(priv); + _disable_other_btn(priv); + } else { + elm_object_signal_emit(obj, SIG_STATE_SELECTED, ELM); + priv->wired_conn = EINA_TRUE; + _enable_connect_btn(priv); + _enable_other_btn(priv); + } +} + +/** +* Create the layout when wired connect successful +* +* @param[in] priv _priv object bypassed +* @return 0 on success,otherwise -1 +*/ +static int _create_wired_connect_part(struct _priv *priv) +{ + Evas_Object *box; + Evas_Object *btn; + + if (!priv || !priv->base) { + _ERR("the param is NULL.\n"); + return RET_FAILED; + } + + box = util_add_box(priv->base, NULL); + if (!box) { + _ERR("add wired connect box failed."); + return RET_FAILED; + } + + elm_box_horizontal_set(box, EINA_FALSE); + + btn = util_add_button(box, STYLE_WIRED_LIST_BTN, NULL, + _(priv->profile_name)); + if (!btn) { + _ERR("elm_button_add failed.\n"); + evas_object_del(box); + return RET_FAILED; + } + + evas_object_size_hint_align_set(btn, 0, 0); + evas_object_smart_callback_add(btn, SIG_CLICKED, + _profie_btn_clicked_cb, priv); + if (priv->wired_conn) + elm_object_signal_emit(btn, SIG_STATE_SELECTED, ELM); + elm_box_pack_end(box, btn); + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); + evas_object_hide(box); + + priv->wired_con_box = box; + + return RET_SUCCESS; +} + +/** +* Display the wired view when select the wired network type +* +* This fuction is called when the wired of the network type popup is clicked +* +* @param[in] priv _priv object bypassed +* @return 0 on success,otherwise -1 +*/ +static int _display_wired_setting(struct _priv *priv) +{ + Eina_Bool plugin; + int ret; + + if (!priv) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + _create_wired_connect_part(priv); + + _create_wired_disconnect_part(priv); + + ret = connection_mgr_get_ethernet_state(priv->connection, + &plugin); + if (ret != RET_SUCCESS) { + _ERR("connection_mgr_get_ethernet_state() failed."); + plugin = EINA_FALSE; + } + + if (plugin) { + _fill_content_part(priv, priv->wired_con_box); + } else { + priv->wired_conn = EINA_FALSE; + _fill_content_part(priv, priv->wired_discon_ly); + } + + _set_action_btn_pos(priv); + + return RET_SUCCESS; +} + +/** +* Create the layout when wireless connect successful +* +* @param[in] priv _priv object bypassed +* @return 0 on success,otherwise -1 +*/ +static void _create_wireless_disconnect_part(struct _priv *priv) +{ + Evas_Object *disconnect_ly; + + if (!priv) { + _ERR("the param is invalid."); + return; + } + + if (priv->wireless_discon_ly) + return; + + disconnect_ly = util_add_layout(priv->base, + UG_NETWORK_EDJ_FILE, GRP_WIRELESS_DISCONNECT_LY); + if (!disconnect_ly) { + _ERR("call elm_layout_add() failed.\n"); + return; + } + + elm_object_part_text_set(disconnect_ly, PART_DISCONNECT_TEXT, + TXT_NO_NETWORK); + + evas_object_hide(disconnect_ly); + + priv->wireless_discon_ly = disconnect_ly; +} + +/** +* Callback funcion called to get the text name of the added item +* +* This function return the strdup'()ed string of the added genlist item +* +* @param[in] data the user data +* @param[in] obj the genlist object +* @param[in] part the part text +* @return strdup'()ed string on success ,NULL otherwise +*/ +static char *_item_ap_name_get(void *data, Evas_Object *obj, const char *part) +{ + struct wifi_ap_info *ap_info; + + if (!data || !obj || !part) { + _ERR("Parameter error!"); + return NULL; + } + + ap_info = data; + + if (!strcmp(part, PART_ELM_TEXT)) + return strdup(ap_info->essid); + + return NULL; +} + +/** +* Create a new genlist item class in a given genlist widget +* +* @param[in] style the genlist style set to the item +* @return new allocated genlist item class +*/ +static Elm_Genlist_Item_Class *_create_item_class(char *style) +{ + Elm_Genlist_Item_Class *ic; + + if (!style) { + _ERR("the param is invalid."); + return NULL; + } + + ic = elm_genlist_item_class_new(); + if (!ic) { + _ERR("elm_genlist_item_class_new() failed."); + return NULL; + } + + ic->item_style = style; + ic->func.text_get = _item_ap_name_get; + ic->func.content_get = NULL; + ic->func.state_get = NULL; + ic->func.del = NULL; + + return ic; +} + +/** +* Create the genlist item class for both locked and unlocked +* +* @param[in] priv the data _priv structure bypassed +*/ +static void _create_genlist_item_class(struct _priv *priv) +{ + Elm_Genlist_Item_Class *ic; + + if (!priv) { + _ERR("the param is invalid."); + return; + } + + ic = _create_item_class(STYLE_ITEM_LOCK); + if (!ic) { + _ERR("get item class failed."); + return; + } + + priv->lock_ic = ic; + + ic = _create_item_class(STYLE_ITEM_NOLOCK); + if (!ic) { + _ERR("get item class failed."); + return; + } + + priv->nolock_ic = ic; +} + +/** +* Create the genlist view +* +* This function create the genlist item class and genlist widget +* +* @param[in] priv _priv object bypassed +* @return the genlist object in success,NULL otherwise +*/ +static Evas_Object *_create_genlist_view(struct _priv *priv) +{ + Evas_Object *genlist; + + if (!priv) { + _ERR("Parameter error!"); + return NULL; + } + + _create_genlist_item_class(priv); + + genlist = util_add_genlist(priv->base); + if (!genlist) { + _ERR("util_add_genlist() failed.\n"); + return NULL; + } + + priv->genlist = genlist; + + elm_object_focus_next_object_set(genlist, genlist, ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(genlist, priv->close_btn, + ELM_FOCUS_RIGHT); + + return genlist; +} + +/** +* Callback function called when a certain genlist item is clicked +* +* @param[in] data the user data +* @param[in] obj the corresponding item which clicked event occurred +* @param[in] event_inf event information +*/ +static void _item_select_cb(void *data, Evas_Object *obj, void *ei) +{ + struct _priv *priv; + Elm_Object_Item *gen_item; + struct wifi_ap_info *ap_info; + int index; + + if (!data || !ei) { + _ERR("Parameter error!"); + return; + } + + priv = data; + gen_item = ei; + + if (priv->last_item == gen_item) { + elm_object_item_signal_emit(gen_item, SIG_STATE_UNSELECTED, ELM); + + _disable_connect_btn(priv); + _disable_other_btn(priv); + + priv->last_item = NULL; + + return; + } + + elm_object_item_signal_emit(gen_item, SIG_STATE_SELECTED, ELM); + if (priv->last_item) + elm_object_item_signal_emit(priv->last_item, + SIG_STATE_UNSELECTED, ELM); + priv->last_item = gen_item; + + _enable_connect_btn(priv); + _enable_other_btn(priv); + + index = elm_genlist_item_index_get(priv->last_item); + if (index < 0) { + _ERR("the index of item is invalid."); + return; + } + + ap_info = eina_list_nth(priv->ap_list, index); + if (!ap_info) { + _ERR("ap info is NULL."); + return; + } + + if (priv->ap_name) { + free(priv->ap_name); + priv->ap_name = NULL; + } + + priv->ap_name = strdup(ap_info->essid); + if (!priv->ap_name) { + _ERR("ap name gets failed."); + return; + } + + if (priv->ap) { + wifi_mgr_ap_destroy(priv->ap); + priv->ap = NULL; + } + + wifi_mgr_ap_clone(&priv->ap, ap_info->ap); + if (!priv->ap) { + _ERR("ap clone failed."); + return; + } + + if (ap_info->secure_type == WIFI_SECURITY_TYPE_NONE) { + if (priv->ap_pwd) { + free(priv->ap_pwd); + priv->ap_pwd = NULL; + } + } +} + +/** +* Effect the connected state when timer is empired +* +* @param[in]data the user data +* @return ECORE_CALLBACK_CANCEL returns to finish time +*/ +static Eina_Bool _select_connected_cb(void *data) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return ECORE_CALLBACK_CANCEL; + } + + priv = data; + + elm_object_item_signal_emit(priv->last_item, SIG_STATE_SELECTED, ELM); + _enable_connect_btn(priv); + _enable_other_btn(priv); + + priv->timer = NULL; + + return ECORE_CALLBACK_CANCEL; +} + +/** +*This is a callback function called when you get the found access point repeatedly +* +* The ap valid only here. if use outside the function, must wifi_mgr_ap_clone() to clone it +* +* @param[in] ap the access point +* @param[in] data the user data +* @return 0 to continue with the next iterator of the loop,-1 to break +*/ +static bool _wifi_found_ap_cb(wifi_ap_h ap, void *data) +{ + int ret; + bool state; + struct _priv *priv; + struct wifi_ap_info *ap_info; + Elm_Object_Item *item; + + if (!ap || !data) { + _ERR("Parameter error!"); + return EINA_FALSE; + } + + priv = data; + + ret = wifi_mgr_is_activated(&state); + if (ret != WIFI_ERROR_NONE || state == 0) { + _ERR("failt to wifi_is_activated"); + return EINA_FALSE; + } + + ap_info = calloc(1, sizeof(*ap_info)); + if (!ap_info) { + _ERR("calloc failed"); + return EINA_FALSE; + } + + wifi_mgr_get_ap_info(ap, ap_info); + + ap_info->ap = ap; + ap_info->user_data = priv; + priv->ap_list = eina_list_append(priv->ap_list, ap_info); + + _fill_content_part(priv, priv->genlist); + + if (ap_info->secure_type == WIFI_SECURITY_TYPE_NONE) + item = elm_genlist_item_append(priv->genlist, priv->nolock_ic, + ap_info, NULL, ELM_GENLIST_ITEM_NONE, + _item_select_cb, priv); + else + item = elm_genlist_item_append(priv->genlist, priv->lock_ic, + ap_info, NULL, ELM_GENLIST_ITEM_NONE, + _item_select_cb, priv); + if (!item) { + _ERR("genlist append item failed."); + return EINA_FALSE; + } + + if (ap_info->state == WIFI_CONNECTION_STATE_CONNECTED) { + priv->last_item = item; + if (priv->ap) { + wifi_mgr_ap_destroy(priv->ap); + priv->ap = NULL; + } + + wifi_mgr_ap_clone(&priv->ap, ap); + + priv->timer = ecore_timer_add(TIMER_INTERNAL, + _select_connected_cb, priv); + if (!priv->timer) { + _ERR("add timer failed."); + return EINA_FALSE; + } + } + + return EINA_TRUE; +} + +/** +* Scan the wifi access point +* +* @param[in] error_code the wifi error type +* @param[in] data the user data +*/ +static void _wifi_scan_request_cb(wifi_error_e error_code, void *data) +{ + int ret; + + if (!data) { + _ERR("data is NULL."); + return; + } + + ret = wifi_mgr_foreach_found_aps(_wifi_found_ap_cb, data); + if (ret != RET_SUCCESS) { + _ERR("wifi_mgr_foreach_found_aps() failed."); + return; + } +} + +/** +* Callback function briefly called after wifi activated successfully +* +* @param[in] error_code the wifi activation error type +* @param[in] data the user data +*/ +static void _wifi_activated_cb(wifi_error_e result, void *data) +{ + struct _priv *priv; + int ret; + + if (result != WIFI_ERROR_NONE) { + _ERR("Wi-Fi Activation Failed! error ==%s.\n", + wifi_mgr_error_dbg(result)); + return; + } + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + ret = wifi_mgr_scan_request(_wifi_scan_request_cb, data); + if (ret != RET_SUCCESS) { + _ERR("wifi_mgr_scan_request() failed."); + _fill_content_part(priv, priv->wireless_discon_ly); + _set_action_btn_pos(priv); + return; + } + + priv->wifi_conn = EINA_TRUE; + + _set_action_btn_pos(priv); + + _fill_content_part(priv, priv->genlist); +} + +/** +* Clear the genlist item list. +* +* Called when need clear the ap list,eg.refrsh button is clicked +* +* @param[in] priv _priv object bypassed +*/ +static void _clear_genlist_item_list(struct _priv *priv) +{ + void *temp; + + if (!priv || !priv->genlist) { + _ERR("Parameter error!"); + return; + } + + elm_genlist_clear(priv->genlist); + + if (priv->ap_list) + EINA_LIST_FREE(priv->ap_list, temp) + free(temp); +} + +/** +* Display the wireless view when select the wireless network type +* +* Called when the wireless of the network type popup is clicked +* +* @param[in] priv _priv object bypassed +* @return 0 on success,otherwise -1 +*/ +static int _display_wireless_setting(struct _priv *priv) +{ + Evas_Object *obj; + bool activated; + int ret; + + if (!priv) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + _create_wireless_disconnect_part(priv); + + if (!priv->wifi_init) { + obj = _create_genlist_view(priv); + if (!obj) { + _ERR("fail to create genlist"); + return RET_FAILED; + } + + ret = wifi_mgr_init(); + if (ret != RET_SUCCESS) { + _ERR("fail to init wifi network"); + return RET_FAILED; + } + + priv->wifi_init = 1; + } + + _clear_genlist_item_list(priv); + + activated = EINA_FALSE; + ret = wifi_mgr_is_activated(&activated); + if (ret != RET_SUCCESS) { + _ERR("the wifi is not activated."); + return RET_FAILED; + } + + if (activated) { + if (priv->ap) { + wifi_mgr_ap_destroy(priv->ap); + priv->ap = NULL; + } + + ret = wifi_mgr_scan_request(_wifi_scan_request_cb, + (void *)priv); + if (ret != RET_SUCCESS) { + _ERR("wifi_mgr_scan_request() failed."); + goto _wireless_finish; + } + + priv->wifi_conn = EINA_TRUE; + } else { + priv->wifi_conn = EINA_FALSE; + + ret = wifi_mgr_activate(_wifi_activated_cb, (void *)priv); + if (ret != RET_SUCCESS) + _ERR("wifi_mgr_activate() failed."); + } + +_wireless_finish: + _fill_content_part(priv, priv->wireless_discon_ly); + _set_action_btn_pos(priv); + + return RET_SUCCESS; +} + +/** +* Refresh the text content below the network type button +* +* Called to set the network type name according to the network type currently +* +* @param[in] priv _priv object bypassed +*/ +static void _refresh_network_type_text(struct _priv *priv) +{ + if (!priv) { + _ERR("the param is invalid."); + return; + } + + switch (priv->network_type) { + case TYPE_WIRELESS: + elm_object_part_text_set(priv->base, + PART_CUR_TYPE_TEXT, + _(TXT_WIRELESS_NETWORK)); + elm_object_part_text_set(priv->type_btn, + PART_NETWORK_TYPE_SELECTED, + _(TXT_WIRELESS)); + break; + case TYPE_WIRED: + elm_object_part_text_set(priv->base, + PART_CUR_TYPE_TEXT, _(TXT_WIRED_NETWORK)); + elm_object_part_text_set(priv->type_btn, + PART_NETWORK_TYPE_SELECTED, _(TXT_WIRED)); + break; + default: + break; + } +} + +/** +* Callback function when popup type button is clicked +* +* This fuction set the current network type according to the clicked button text +* +* @param[in] priv _priv object bypassed +*/ +static void _type_select_btn_cb(void *data, + Evas_Object *obj, void *event_inf) +{ + struct _priv *priv; + const char *value; + + if (!data || !obj) { + _ERR("the param is invalid."); + return; + } + + priv = data; + + value = elm_object_text_get(obj); + if (!value) { + _ERR("get text from network type btn is NULL."); + return; + } + + if ((!strcmp(value, _(popup_button[TYPE_WIRELESS]))) + && priv->network_type == TYPE_WIRED) { + priv->network_type = TYPE_WIRELESS; + + _display_wireless_setting(priv); + vconf_mgr_set_network_type(TYPE_WIRELESS); + } else if ((!strcmp(value, _(popup_button[TYPE_WIRED]))) + && priv->network_type == TYPE_WIRELESS) { + priv->network_type = TYPE_WIRED; + + _display_wired_setting(priv); + vconf_mgr_set_network_type(TYPE_WIRED); + } + + _refresh_network_type_text(priv); + + if (priv->network_ctxpopup) { + evas_object_del(priv->network_ctxpopup); + priv->network_ctxpopup = NULL; + } + + _unset_layout_dim(priv); +} + +/** +* Evas_Object_Event_Cb type callback for handling back event +* +* @param[in] data the user data +* @param[in] e evas handler +* @param[in] o the corresponding object which clicked event occurred +* @param[in] ei event information +*/ +static void _type_key_pressed_cb(void *data, + Evas *evas, Evas_Object *o, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!ei || !data) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_BACK)) { + _unset_layout_dim(priv); + + if (priv->network_ctxpopup) { + evas_object_del(priv->network_ctxpopup); + priv->network_ctxpopup = NULL; + } + + return; + } +} + +/** +* Evas_Smart_Cb type callback for handling clicked event +* +* @param[in] data the user data +* @param[in] obj the corresponding object which clicked event occurred +* @param[in] event_inf event information +*/ +static void _network_type_btn_clicked_cb(void *data, + Evas_Object *obj, void *event_inf) +{ + struct _priv *priv; + Evas_Object *base; + Evas_Object *layout, *box; + Evas_Object *btn[BTN_TYPE]; + Evas_Coord x; + Evas_Coord y; + Evas_Coord w; + Evas_Coord h; + int i; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + base = priv->base; + + _set_layout_dim(priv); + + layout = util_add_layout(base, UG_NETWORK_EDJ_FILE, + GRP_NETWORK_TYPE_SELECT); + if (!layout) { + _ERR("util_add_layout() failed.\n"); + return; + } + + box = util_add_box(layout, PART_SWALLOW_CONTENT); + if (!box) { + evas_object_del(layout); + return; + } + + evas_object_size_hint_weight_set(box, + EVAS_HINT_EXPAND, 0); + + for (i = 0; i < BTN_TYPE; i++) { + btn[i] = util_add_button(box, STYLE_POPUP_BTN, NULL, + _(popup_button[i])); + if (!btn[i]) { + evas_object_del(layout); + return; + } + + elm_box_pack_end(box, btn[i]); + + evas_object_smart_callback_add(btn[i], SIG_CLICKED, + _type_select_btn_cb, priv); + } + + if (priv->network_type == TYPE_WIRELESS) + elm_object_signal_emit(btn[TYPE_WIRELESS], + SIG_BTN_SELECTED, PROG); + else + elm_object_signal_emit(btn[TYPE_WIRED], + SIG_BTN_SELECTED, PROG); + + elm_object_part_content_set(layout, PART_SWALLOW_CONTENT, box); + + elm_object_focus_next_object_set(btn[1], btn[0], ELM_FOCUS_DOWN); + elm_object_focus_next_object_set(btn[0], btn[1], ELM_FOCUS_UP); + elm_object_focus_next_object_set(btn[1], btn[0], ELM_FOCUS_UP); + elm_object_focus_next_object_set(btn[0], btn[1], ELM_FOCUS_DOWN); + elm_object_focus_next_object_set(btn[0], btn[0], ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(btn[0], btn[0], ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(btn[1], btn[1], ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(btn[1], btn[1], ELM_FOCUS_RIGHT); + + x = 0; + y = 0; + w = 0; + h = 0; + evas_object_geometry_get(priv->type_btn, &x, &y, &w, &h); + evas_object_move(layout, (x + w - TYPE_POPUP_X_OFFSET) * ELM_SCALE, + (y + h) * ELM_SCALE); + + priv->network_ctxpopup = layout; + evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, + _type_key_pressed_cb, priv); + + elm_object_focus_set(btn[0], EINA_TRUE); + evas_object_show(layout); +} + +/** +* Create the upper part for the base view +* +* @param[in] priv _priv object bypassed +* @return 0 on success,-1 otherwise +*/ +static int _create_upper_layout(struct _priv *priv) +{ + Evas_Object *type_btn; + Evas_Object *base; + + if (!priv || !priv->base) { + _ERR("Parameter error!"); + return RET_FAILED; + } + + base = priv->base; + + elm_object_part_text_set(base, PART_SELECT_TEXT, _(TXT_NETWORK_DISC)); + + type_btn = util_add_button(base, STYLE_TYPE_BTN, PART_NETWORK_TYPE, + _(TXT_TYPE_BTN)); + if (!type_btn) + return RET_FAILED; + + evas_object_smart_callback_add(type_btn, SIG_CLICKED, + _network_type_btn_clicked_cb, priv); + + elm_object_focus_next_object_set(type_btn, type_btn, ELM_FOCUS_UP); + elm_object_focus_next_object_set(type_btn, type_btn, ELM_FOCUS_LEFT); + + priv->type_btn = type_btn; + + elm_object_focus_set(type_btn, EINA_TRUE); + + _refresh_network_type_text(priv); + + return RET_SUCCESS; +} + +/** +* Callback function briefly called after wifi connected successfully +* +* @param[in] error_code the wifi activation error type +* @param[in] user_data the user data +*/ +static void _wifi_connected_cb(wifi_error_e error_code, void *user_data) +{ + struct _priv *priv; + + if (!user_data) { + _ERR("Parameter error!"); + return; + } + + priv = user_data; + + if (!priv->status_popup) + return; + + if (error_code != WIFI_ERROR_NONE) { + _ERR("connect AP failed."); + _show_confirm_popup(priv); + return; + } + + ug_destroy_me(priv->ug); +} + +/** +* Connect to the selected wifi access point +* +* @param[in] priv _priv object bypassed +* @param[in] index the index of the access point +* @return 0 on success, otherwise -1 +*/ +static int _wifi_connect_ap(struct _priv *priv, int index) +{ + struct wifi_ap_info *ap_info; + int ret; + + if (!priv || index < 0) { + _ERR("Parameter error!"); + return RET_FAILED; + } + + _show_progress_popup(priv); + + ap_info = eina_list_nth(priv->ap_list, index); + if (!ap_info) { + _ERR("ap info is NULL."); + return RET_FAILED; + } + + if (priv->ap_name) { + free(priv->ap_name); + priv->ap_name = NULL; + } + + priv->ap_name = strdup(ap_info->essid); + if (!priv->ap_name) { + _ERR("ap name gets failed."); + return RET_FAILED; + } + + if (ap_info->secure_type == WIFI_SECURITY_TYPE_NONE) { + if (priv->ap_pwd) { + free(priv->ap_pwd); + priv->ap_pwd = NULL; + } + } else { + priv->cur_view = NETWORK_WIFI_PASSCODE_VIEW; + viewmgr_push(priv->vmgr, + wifi_passcode_view_vclass_get(), + ap_info); + + return RET_SUCCESS; + } + + ret = wifi_mgr_forget_last_ap(); + if (ret != RET_SUCCESS) { + _ERR("forget last ap failed."); + return RET_FAILED; + } + + if (priv->ap_pwd) { + ret = wifi_mgr_set_passphrase(priv->ap, + priv->ap_pwd); + if (ret != RET_SUCCESS) { + _ERR("wifi_mgr_set_passphrase() failed."); + return RET_FAILED; + } + } + + ret = wifi_mgr_connect(priv->ap, _wifi_connected_cb, priv); + if (ret != RET_SUCCESS) { + _ERR("Fail to connection request.\n"); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Convert connection error type code to the corresponding string +* +* @param[in] err_code the connection error type +* @return the error description string +*/ +#if 0 +static const char *_convert_error_to_string(connection_error_e err_type) +{ + switch (err_type) { + case CONNECTION_ERROR_NONE: + return "NONE"; + case CONNECTION_ERROR_INVALID_PARAMETER: + return "INVALID_PARAMETER"; + case CONNECTION_ERROR_OUT_OF_MEMORY: + return "OUT_OF_MEMORY"; + case CONNECTION_ERROR_INVALID_OPERATION: + return "INVALID_OPERATION"; + case CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED: + return "ADDRESS_FAMILY_NOT_SUPPORTED"; + case CONNECTION_ERROR_OPERATION_FAILED: + return "OPERATION_FAILED"; + case CONNECTION_ERROR_ITERATOR_END: + return "ITERATOR_END"; + case CONNECTION_ERROR_NO_CONNECTION: + return "NO_CONNECTION"; + case CONNECTION_ERROR_NOW_IN_PROGRESS: + return "NOW_IN_PROGRESS"; + case CONNECTION_ERROR_ALREADY_EXISTS: + return "ALREADY_EXISTS"; + case CONNECTION_ERROR_OPERATION_ABORTED: + return "OPERATION_ABORTED"; + case CONNECTION_ERROR_DHCP_FAILED: + return "DHCP_FAILED"; + case CONNECTION_ERROR_INVALID_KEY: + return "INVALID_KEY"; + case CONNECTION_ERROR_NO_REPLY: + return "NO_REPLY"; + case CONNECTION_ERROR_NO_KEYWORD: + return "NO_KEYWORD"; + case CONNECTION_ERROR_TCP_RST: + return "RST_IN_TCP_RESPONSE"; + case CONNECTION_ERROR_TCP_SYN_TIMEOUT: + return "TCP_SYN_TIMEOUT"; + case CONNECTION_ERROR_OFFLINE: + return "CONNECTION_OFFLINE"; + case CONNECTION_ERROR_NETWORK_MONITOR_FAILURE: + return "monitor failer"; + case CONNECTION_ERROR_INVALID_GATEWAY: + return "invalid gateway"; + case CONNECTION_ERROR_INVALID_MACADDRESS: + return "invalid mac addr"; + default: + break; + } + + return "Unknown"; +} +#endif + +/** +* Callback function called by _connection_check_gateway_async_cb() +* +* Called after checking whether the profile can access to the internet asynchronously +* +* @param[in] result the connection error type +* @param[in] data the user data +*/ +#if 0 +static void _connection_get_is_online_async_cb( + connection_error_e result, void *data) +{ + struct _priv *priv; + + if (!data) { + _ERR("the param is invalid."); + return; + } + + priv = data; + + if (result != CONNECTION_ERROR_NONE) { + _ERR("connection result: %s.", + _convert_error_to_string(result)); + _show_confirm_popup(priv); + } else { + ug_destroy_me(priv->ug); + } +} + +/** +* Check whether the profile can access to the internet asynchronously +* +* @param[in] result the connection error type +* @param[in] data the user data +*/ +static void _connection_check_gateway_async_cb( + connection_error_e result, void *data) +{ + struct _priv *priv; + int ret; + + if (!data) { + _ERR("the param is invalid."); + return; + } + + priv = data; + + if (result != CONNECTION_ERROR_NONE) { + _ERR("connection result: %s.", + _convert_error_to_string(result)); + _show_confirm_popup(priv); + } else { + ret = connection_mgr_get_is_online_async(priv->connection, + _connection_get_is_online_async_cb, + (void *)priv); + if (ret != RET_SUCCESS) { + _ERR("connection_mgr_get_is_online_async() failed."); + return; + } + } +} +#endif + +/** +* Write the connection information saved last time to the profile +* +* @param[in] priv _priv object bypassed +* @return 0 on success, otherwize -1 +*/ +static int _connection_set_last_network(struct _priv *priv) +{ + int ret; + enum setting_mode ip_mode; + struct network_info info; + + if (!priv) { + _ERR("the param is NULL."); + return RET_FAILED; + } + + ret = vconf_mgr_get_wired_ip_mode(&ip_mode); + if (ret != RET_SUCCESS) { + _ERR("get wired ip mode from vconf failed."); + return ret; + } + + if (ip_mode == MODE_AUTO) { + ret = connection_mgr_ip_dynamic_config(priv->connection, + priv->profile); + if (ret != RET_SUCCESS) { + _ERR("connection_mgr_ip_dynamic_config() failed."); + return ret; + } + } else { + ret = vconf_mgr_get_wired_network_info(&info); + if (ret != RET_SUCCESS) { + _ERR("vconf_mgr_get_wired_network_info() failed."); + return ret; + } + + ret = connection_mgr_set_profile(priv->connection, + priv->profile, &info); + if (ret != RET_SUCCESS) { + _ERR("set profile failed."); + return ret; + } + } + + return RET_SUCCESS; +} + +/** +* Proccess the wired network connection +* +* @param[in] priv _priv object bypassed +* @return 0 on success, otherwise -1 +*/ +static int _wired_connect_proc(struct _priv *priv) +{ + int ret; + + if (!priv) { + _ERR("the param is NULL."); + return RET_FAILED; + } + + _show_progress_popup(priv); + + _get_connection_profile_info(priv); + + ret = _connection_set_last_network(priv); + if (ret != RET_SUCCESS) { + _ERR("_connection_set_last_network() failed."); + return ret; + } + + _DBG("Not Yet"); +#if 0 + ret = connection_mgr_check_gateway_async(priv->profile, + _connection_check_gateway_async_cb, (void *)priv); + if (ret != RET_SUCCESS) { + _ERR("connection_mgr_get_is_online_async() failed."); + return ret; + } +#endif + + return RET_SUCCESS; +} + +/** +* Process the network connection +* +* @param[in] priv _priv object bypassed +*/ +static void _connect_network(struct _priv *priv) +{ + int index; + int ret; + + if (!priv) { + _ERR("the param is NULL."); + return; + } + + if (priv->network_type == TYPE_WIRELESS) { + if (priv->last_item) { + index = elm_genlist_item_index_get(priv->last_item); + + ret = _wifi_connect_ap(priv, index); + if (ret != RET_SUCCESS) { + _ERR("connect ap"); + _show_confirm_popup(priv); + return; + } + } + } else { + ret = _wired_connect_proc(priv); + if (ret != RET_SUCCESS) { + _ERR("connect ap"); + _show_confirm_popup(priv); + return; + } + } +} + +/** +* @Evas_Smart_Cb type callback for handling click event +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] event event information +*/ +static void _retry_btn_clicked_cb(void *data, + Evas_Object *obj, void *event) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + _del_status_popup(priv); + + _connect_network(priv); +} + +/** +* @Evas_Smart_Cb type callback for handling click event. +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] event event information +*/ +static void _cancel_btn_clicked_cb(void *data, + Evas_Object *obj, void *event) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + _del_status_popup(priv); + + elm_object_focus_set(priv->connect_btn, EINA_TRUE); +} + +/** +* @Evas_Smart_Cb type callback for handling unfocus event +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the unfocus event occurred +* @param[in] source event information +*/ +static void _ctxpopup_unfocused_cb(void *data, + Evas_Object *obj, void *source) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("data is NULL.\n"); + return; + } + + priv = data; + + _unset_layout_dim(priv); + + evas_object_del(obj); +} + +/** +* Called when confirm information popup is shown +* +* @param[in] priv _priv object bypassed +*/ +static void _show_confirm_popup(struct _priv *priv) +{ + Evas_Object *layout; + Evas_Object *retry_btn; + Evas_Object *cancel_btn; + // Evas_Coord w; + // Evas_Coord h; + char content[CONTENT_TXT_SIZE]; + + if (!priv) { + _ERR("the param is NULL."); + return; + } + + if (priv->status_popup) + _del_status_popup(priv); + + _set_layout_dim(priv); + + layout = util_add_layout(priv->base, UG_NETWORK_EDJ_FILE, + GRP_CONFIRM_LAYOUT); + if (!layout) { + _ERR("add layout failed."); + _unset_layout_dim(priv); + return; + } + + evas_object_show(layout); + + memset(content, 0, CONTENT_TXT_SIZE); + if (priv->network_type == TYPE_WIRED) { + elm_object_part_text_set(layout, + PART_TEXT_TITLE, _(TXT_WIRED_LY)); + snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", + _(TXT_FAILED_CONNECT), _(priv->profile_name)); + } else { + elm_object_part_text_set(layout, + PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); + snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", + _(TXT_FAILED_CONNECT), priv->ap_name); + } + + elm_object_part_text_set(layout, + PART_TEXT_CONTENT, content); + + retry_btn = util_add_button(layout, STYLE_SETTING_BTN, + PART_RETRY_BTN, _(TXT_RETRY)); + if (!retry_btn) { + _ERR("util add button failed."); + evas_object_del(layout); + _unset_layout_dim(priv); + return; + } + + cancel_btn = util_add_button(layout, STYLE_SETTING_BTN, + PART_CANCEL_BTN, _(TXT_CANCEL)); + if (!cancel_btn) { + _ERR("util add button failed."); + evas_object_del(layout); + _unset_layout_dim(priv); + return; + } + + elm_object_focus_next_object_set(retry_btn, cancel_btn, + ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(cancel_btn, retry_btn, + ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(retry_btn, retry_btn, + ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_UP); + elm_object_focus_next_object_set(retry_btn, retry_btn, + ELM_FOCUS_UP); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_DOWN); + elm_object_focus_next_object_set(retry_btn, retry_btn, + ELM_FOCUS_DOWN); + + evas_object_smart_callback_add(retry_btn, SIG_CLICKED, + _retry_btn_clicked_cb, priv); + evas_object_smart_callback_add(cancel_btn, SIG_CLICKED, + _cancel_btn_clicked_cb, priv); + + elm_object_focus_set(retry_btn, EINA_TRUE); + + elm_object_focus_allow_set(layout, EINA_TRUE); + evas_object_smart_callback_add(layout, SIG_UNFOCUSED, + _ctxpopup_unfocused_cb, priv); + evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, + _ctxpopup_pressed_cb, priv); + + evas_object_move(layout, CENTER_ALIGN * (DEFAULT_WIN_WIDTH - POPUP_WIDTH) * ELM_SCALE, + CENTER_ALIGN * (DEFAULT_WIN_HEIGHT - POPUP_HEIGHT) * ELM_SCALE); + + priv->status_popup = layout; +} + +/** +* Called when connect a wifi device and show connection progress +* +* @param[in] priv _priv object to be finalized +*/ +static void _show_progress_popup(struct _priv *priv) +{ + Evas_Object *layout; + Evas_Object *cancel_btn; + char content[CONTENT_TXT_SIZE]; + + if (!priv) { + _ERR("the param is NULL."); + return; + } + + if (priv->status_popup) + _del_status_popup(priv); + + _set_layout_dim(priv); + + layout = util_add_layout(priv->base, UG_NETWORK_EDJ_FILE, + GRP_PROCESSING_LAYOUT); + if (!layout) { + _ERR("add layout failed."); + _unset_layout_dim(priv); + return; + } + + evas_object_show(layout); + + priv->status_popup = layout; + + memset(content, 0, CONTENT_TXT_SIZE); + if (priv->network_type == TYPE_WIRED) { + elm_object_part_text_set(layout, + PART_TEXT_TITLE, _(TXT_WIRED_LY)); + snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", + _(TXT_CONNECTTING), _(priv->profile_name)); + } else { + elm_object_part_text_set(layout, + PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); + snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", + _(TXT_CONNECTTING), priv->ap_name); + } + + elm_object_part_text_set(layout, PART_TEXT_CONTENT, content); + + cancel_btn = util_add_button(layout, STYLE_SETTING_BTN, + PART_CANCEL_BTN, _(TXT_CANCEL)); + if (!cancel_btn) { + _ERR("util add button failed."); + evas_object_del(layout); + _unset_layout_dim(priv); + return; + } + + evas_object_show(cancel_btn); + + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_UP); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_DOWN); + + evas_object_smart_callback_add(cancel_btn, SIG_CLICKED, + _cancel_btn_clicked_cb, priv); + + elm_object_focus_set(cancel_btn, EINA_TRUE); + + elm_object_focus_allow_set(layout, EINA_TRUE); + evas_object_smart_callback_add(layout, SIG_UNFOCUSED, + _ctxpopup_unfocused_cb, priv); + evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, + _ctxpopup_pressed_cb, priv); + + evas_object_move(layout, CENTER_ALIGN * (DEFAULT_WIN_WIDTH - POPUP_WIDTH) * ELM_SCALE, + CENTER_ALIGN * (DEFAULT_WIN_HEIGHT - POPUP_HEIGHT) * ELM_SCALE); +} + +/** +* @Evas_Smart_Cb type callback for handling click event +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] event event information +*/ +static void _connect_btn_clicked_cb(void *data, + Evas_Object *obj, void *event) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + _connect_network(priv); +} + +/** +* @Evas_Smart_Cb type callback for handling click event +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] event event information +*/ +static void _refresh_btn_clicked_cb(void *data, + Evas_Object *obj, void *event) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + _clear_genlist_item_list(priv); + + _display_wireless_setting(priv); +} + +/** +* @Evas_Smart_Cb type callback for handling click event +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] event event information +*/ +static void _other_btn_clicked_cb(void *data, + Evas_Object *obj, void *event) +{ + struct _priv *priv; + Evas_Object *base; + struct connection_info info; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + priv->cur_view = NETWORK_IP_SETTING_VIEW; + + info.cur_type = priv->network_type; + info.connection = priv->connection; + + if (priv->network_type == TYPE_WIRED) { + strncpy(info.name, priv->profile_name, + MAX_NAME_SIZE - 1); + } else { + if (!priv->ap) { + _ERR("selected ap is NULL."); + return; + } + + info.ap = priv->ap; + + if (priv->ap_name) + strncpy(info.name, priv->ap_name, + MAX_NAME_SIZE - 1); + } + + base = viewmgr_push(priv->vmgr, + ip_setting_view_vclass_get(), &info); + if (!base) + _ERR("add connection layout failed."); +} + +/** +* @Evas_Smart_Cb type callback for handling click event +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] event event information +*/ +static void _close_btn_clicked_cb(void *data, + Evas_Object *obj, void *event) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + if (!priv->ug) + return; + + ug_destroy_me(priv->ug); +} + +/** +* Create the action buttons such as "Connect" button and set to defined part +* +* @param[in] priv _priv object bypassed +* @return 0 on success,otherwise -1 +*/ +static int _create_action_btns(struct _priv *priv) +{ + Evas_Object *bt[BTN_ACT]; + Evas_Object *base; + int i; + + if (!priv || !priv->base) { + _ERR("Parameter error!"); + return RET_FAILED; + } + + base = priv->base; + + for (i = 0; i < BTN_ACT; i++) { + bt[i] = util_add_button(base, STYLE_ACTION_BTN, + button_swallow[i], _(action_button[i])); + if (!bt[i]) + return RET_FAILED; + } + + priv->connect_btn = bt[CONNECT]; + priv->refresh_btn = bt[REFRESH]; + priv->other_btn = bt[OTHER]; + priv->close_btn = bt[CLOSE]; + + evas_object_hide(priv->refresh_btn); + + evas_object_smart_callback_add(bt[CONNECT], SIG_CLICKED, + _connect_btn_clicked_cb, priv); + evas_object_smart_callback_add(bt[REFRESH], SIG_CLICKED, + _refresh_btn_clicked_cb, priv); + evas_object_smart_callback_add(bt[OTHER], SIG_CLICKED, + _other_btn_clicked_cb, priv); + evas_object_smart_callback_add(bt[CLOSE], SIG_CLICKED, + _close_btn_clicked_cb, priv); + + _set_action_btn_pos(priv); + + return RET_SUCCESS; +} + +/** +* Create the dim layout but didn't show it +* +* @param[in] priv _priv object bypassed +* @return 0 on success,otherwise -1 +*/ +static int _create_dim_layout(struct _priv *priv) +{ + Evas_Object *dim_ly; + + if (!priv || !priv->win) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + dim_ly = util_add_layout(priv->win, UG_NETWORK_EDJ_FILE, GRP_DIM_LY); + if (!dim_ly) { + _ERR("elm_layout_add() failed.\n"); + return RET_FAILED; + } + + priv->dim_ly = dim_ly; + + _unset_layout_dim(priv); + + return RET_SUCCESS; +} + +/** +* Create the base layout and initialize the network +* +* Called at the start of the application for initializing before the main loop start up +* +* @param[in] vmgr view manager object +* @param[in] data the user data passed from the callback registration function +* @return the base layout of network setting +*/ +static Evas_Object *_create(struct viewmgr *vmgr, void *data) +{ + struct _priv *priv; + Evas_Object *base; + int ret; + + if (!vmgr || !vmgr->win || !vmgr->ug) { + _ERR("Parameter error!"); + return NULL; + } + + priv = _init_priv(); + if (!priv) { + _ERR("init priv failed."); + return NULL; + } + + priv->win = vmgr->win; + priv->ug = vmgr->ug; + priv->vmgr = vmgr; + + ret = _init_connection(priv); + if (ret != RET_SUCCESS) { + _ERR("create connection failed."); + _fini_priv(priv); + return NULL; + } + + base = _create_main_layout(priv); + if (!base) { + _ERR("Add main view failed.\n"); + _fini_priv(priv); + return NULL; + } + + priv->base = base; + + evas_object_data_set(base, KEY_PRIV, priv); + + vconf_mgr_get_network_type(&priv->network_type); + + ret = _create_upper_layout(priv); + if (ret != RET_SUCCESS) { + _ERR("create network type button failed."); + goto error; + } + + if (priv->network_type == TYPE_WIRELESS) + ret = _display_wireless_setting(priv); + else if (priv->network_type == TYPE_WIRED) + ret = _display_wired_setting(priv); + else + ret = RET_FAILED; + if (ret != RET_SUCCESS) + goto error; + + ret = _create_action_btns(priv); + if (ret != RET_SUCCESS) + goto error; + + ret = _create_dim_layout(priv); + if (ret != RET_SUCCESS) + goto error; + + return base; + +error: + evas_object_del(priv->base); + _fini_priv(priv); + + return NULL; +} + +/** +* Resume the network ug +* +* @param[in] base the base layout which was initilized in the _create() +*/ +static void _resume(Evas_Object *base) +{ + struct _priv *priv; + + if (!base) { + _ERR("Parameter error!"); + return; + } + + priv = evas_object_data_get(base, KEY_PRIV); + if (!priv) { + _ERR("priv got from base is NULL."); + return; + } + + evas_object_show(base); + + switch (priv->cur_view) { + case NETWORK_IP_SETTING_VIEW: + elm_object_focus_set(priv->other_btn, EINA_TRUE); + break; + case NETWORK_WIFI_PASSCODE_VIEW: + elm_object_focus_set(priv->connect_btn, EINA_TRUE); + break; + default: + break; + } +} + +/** +* Handle the message sended +* +* @param[in] base the base layout which was initilized in the _create() +* @param[in] message_id the id of the message sended +* @param[in] data the user data +*/ +static void _message_handler(Evas_Object *base, + enum message_id msg_id, void *data) +{ + struct _priv *priv; + + if (!base) { + _ERR("Parameter error!"); + return; + } + + priv = evas_object_data_get(base, KEY_PRIV); + if (!priv) { + _ERR("priv got from base is NULL."); + return; + } + + if (msg_id == PASSCODE_DEVIVER) { + if (priv->ap_pwd) + free(priv->ap_pwd); + priv->ap_pwd = strdup((char *)data); + } +} + +/** +* Pause the network ug +* +* @param[in] base the base layout which was initilized in the _create() +*/ +static void _pause(Evas_Object *base) +{ + if (!base) { + _ERR("Parameter error!"); + return; + } + + evas_object_hide(base); +} + +/** +* Destroy the network ug and release the resource +* +* @param[in] base the base layout which was initilized in the _create() +*/ +static void _destroy(Evas_Object *base) +{ + struct _priv *priv; + + if (!base) { + _ERR("Parameter error!"); + return; + } + + priv = evas_object_data_get(base, KEY_PRIV); + + _fini_priv(priv); +} + +/** +* Get the view type +* +* @return the view type +*/ +static enum view_type _get_view_type(void) +{ + return NETWORK_MAIN_VIEW; +} + +static struct view_class _vclass = { + .create = _create, + .pause = _pause, + .resume = _resume, + .terminate = _destroy, + .message_handler = _message_handler, + .get_view_type = _get_view_type, +}; + +/** +* Get the network view class +* +* @return the view class +*/ +struct view_class *main_view_vclass_get(void) +{ + return &_vclass; +} diff --git a/ug/network/src/network_viewmgr.c b/ug/network/src/network_viewmgr.c new file mode 100644 index 0000000..4fe384c --- /dev/null +++ b/ug/network/src/network_viewmgr.c @@ -0,0 +1,259 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include "network_viewmgr.h" +#include "defs.h" +#include "dbg.h" + +struct _viewinfo { + struct view_class *vclass; + Evas_Object *base; + enum view_type view_type; +}; + +/** + * Create and initialize the view manager. + * + * Called when app is created. + * + * @return View manager object + */ +struct viewmgr *viewmgr_init() +{ + struct viewmgr *vmgr; + + vmgr = calloc(1, sizeof(*vmgr)); + if (!vmgr) { + _ERR("calloc vmgr failed."); + return NULL; + } + + return vmgr; +} + +/** + * Finalize the view manager. + * + * Called when app is about to destroyed. + * + * @param[in] vmgr View manager object + */ +void viewmgr_fini(struct viewmgr *vmgr) +{ + int i; + + if (!vmgr) + return; + + for (i = eina_list_count(vmgr->vlist); i > 0; i--) + viewmgr_pop(vmgr); + + free(vmgr); +} + +/** + * Callback function for the view deleted event. + * + * Called when the view is deleted. + * + * @param[in] data The pointer to view class object + * @param[in] e The pointer of the evas canvas + * @param[in] obj The object that is deleted + * @param[in] ev The pointer of event info + */ +static void _view_deleted(void *data, Evas *e, Evas_Object *obj, void *ev) +{ + struct view_class *vclass; + + if (!data || !obj) + return; + + vclass = data; + if (vclass->terminate) + vclass->terminate(obj); +} + +/** + * Push a view to the view manager. + * + * Called when one new view is to be pushed. + * + * @param[in] vmgr View manager object + * @param[in] vclass The specific view class for the view to be pushed + * @param[in] data User data + * @return base if the view is created successfully; NULL if failed; + */ +Evas_Object *viewmgr_push(struct viewmgr *vmgr, + struct view_class *vclass, void *data) +{ + struct _viewinfo *vinfo, *vinfo_pre; + Evas_Object *base; + + if (!vmgr || !vmgr->win || !vclass || !vclass->create) + return NULL; + + vinfo = calloc(1, sizeof(*vinfo)); + if (!vinfo) + return NULL; + + base = vclass->create(vmgr, data); + if (!base) { + free(vinfo); + return NULL; + } + evas_object_event_callback_add(base, EVAS_CALLBACK_DEL, + _view_deleted, vclass); + + vinfo->base = base; + vinfo->vclass = vclass; + vinfo->view_type = vclass->get_view_type(); + + vinfo_pre = eina_list_data_get(vmgr->vlist); + if (vinfo_pre && vinfo_pre->base + && vinfo_pre->vclass->pause) + vinfo_pre->vclass->pause(vinfo_pre->base); + + vmgr->vlist = eina_list_prepend(vmgr->vlist, vinfo); + + return base; +} + +/** + * Send a message between the views. + * + * Called when there is the information to pass. + * + * @param[in] vmgr View manager object + * @param[in] view_type The view type + * @param[in] msg_id Message ID + * @param[in] data User data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int viewmgr_send_message(struct viewmgr *vmgr, + enum view_type view_type, + enum message_id msg_id, void *data) +{ + struct _viewinfo *vinfo; + struct view_class *vclass; + Eina_List *list, *list_next; + + if (!vmgr) { + _ERR("vmgr is NULL."); + return RET_FAILED; + } + + EINA_LIST_FOREACH_SAFE(vmgr->vlist, list, list_next, vinfo) { + if (!vinfo) { + _ERR("vinfo is NULL."); + continue; + } + + vclass = vinfo->vclass; + + if (vinfo->view_type == view_type) { + if (vclass && vclass->message_handler) + vclass->message_handler(vinfo->base, + msg_id, data); + + /*only support single message now, so break.*/ + break; + } + } + + return RET_SUCCESS; +} + +/** + * Pop a view from the view manager. + * + * Called when the top view is to be poped. + * + * @param[in] vmgr View manager object + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int viewmgr_pop(struct viewmgr *vmgr) +{ + struct _viewinfo *vinfo; + + if (!vmgr || !vmgr->vlist) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + vinfo = eina_list_data_get(vmgr->vlist); + if (!vinfo) { + _ERR("eina_list_data_get() failed."); + return RET_FAILED; + } + + vmgr->vlist = eina_list_remove_list(vmgr->vlist, vmgr->vlist); + viewmgr_resume(vmgr); + + evas_object_del(vinfo->base); + + free(vinfo); + + return RET_SUCCESS; +} + +/** + * Resume a view with the view manager. + * + * When the top view is poped, and the next view has some + * specific state to be show, the function is called. + * + * @param[in] vmgr View manager object + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int viewmgr_resume(struct viewmgr *vmgr) +{ + struct _viewinfo *vinfo; + struct view_class *vclass; + + if (!vmgr || !vmgr->vlist) { + _ERR("param is invalid."); + return RET_FAILED; + } + + vinfo = eina_list_data_get(vmgr->vlist); + if (!vinfo || !vinfo->vclass || !vinfo->base) { + _ERR("vinfo, vinfo->vclass, or vinfo->base is NULL."); + return RET_FAILED; + } + + vclass = vinfo->vclass; + if (vclass->resume) + vclass->resume(vinfo->base); + + return RET_SUCCESS; +} + +/** + * Get the pointer of window. + * + * @param[in] vmgr View manager object + * @return win if the operation is successful; NULL if failed; + */ +Evas_Object *viewmgr_win_get(struct viewmgr *vmgr) +{ + if (!vmgr) + return NULL; + + return vmgr->win; +} diff --git a/ug/network/src/ug_network_settings.cpp b/ug/network/src/ug_network_settings.c similarity index 89% rename from ug/network/src/ug_network_settings.cpp rename to ug/network/src/ug_network_settings.c index 78ad856..f3f38dc 100644 --- a/ug/network/src/ug_network_settings.cpp +++ b/ug/network/src/ug_network_settings.c @@ -18,25 +18,20 @@ #define UG_MODULE_API __attribute__ ((visibility("default"))) #endif +#include #include #include "i18n.h" #include "defs.h" -#include - -#include "wifi.h" -#include "NetworkMainView.h" - -#if defined (__cplusplus) -extern "C" { -#endif +#include "dbg.h" +#include "main_view.h" +#include "network_viewmgr.h" struct _ug_data { Evas_Object *win; Evas_Object *base; ui_gadget_h ug; - CViewMgr *pViewMgr; - CNetworkMainView *pNetworkMainView; + struct viewmgr *vmgr; }; /** @@ -62,19 +57,21 @@ static void *_on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv) { struct _ug_data *ugd; + Evas_Object *base; Evas_Object *win; + struct viewmgr *vmgr; if (!ug || !priv) { _ERR("Parameter error!"); return NULL; } - ugd = (struct _ug_data *) priv; + ugd = priv; ugd->ug = ug; elm_theme_extension_add(NULL, UG_NETWORK_EDJ_THEME); - win = (Evas_Object *) ug_get_window(); + win = ug_get_window(); if (!win) { _ERR("window get failed"); return NULL; @@ -84,25 +81,27 @@ static void *_on_create(ui_gadget_h ug, enum ug_mode mode, elm_win_focus_highlight_enabled_set(win, EINA_TRUE); elm_win_focus_highlight_style_set(win, "invisible"); - CViewMgr::Initialize(ugd->win, NULL); - ugd->pViewMgr = CViewMgr::GetInstance(); - if(!ugd->pViewMgr) { - CViewMgr::Finalize(); - _ERR("Fail to get CViewMgr instance"); + vmgr = viewmgr_init(); + if (!vmgr) { + _ERR("init view mgr failed.\n"); return NULL; } - ugd->pNetworkMainView = new CNetworkMainView(NETWORK_MAINVIEW); - if(!ugd->pViewMgr->AddView(ugd->pNetworkMainView)) { - _ERR("Fail to add pFbBaseView"); - CViewMgr::Finalize(); - return false; + ugd->vmgr = vmgr; + + vmgr->ug = ug; + vmgr->win = win; + + base = viewmgr_push(vmgr, main_view_vclass_get(), NULL); + if (!base) { + _ERR("add base layout failed."); + viewmgr_fini(vmgr); + return NULL; } - ugd->pViewMgr->PushView(NETWORK_MAINVIEW, NULL); - ugd->base = ugd->pNetworkMainView->Base(); - evas_object_raise(ugd->base); + ugd->base = base; + evas_object_raise(base); - return ugd->base; + return base; } /** @@ -173,7 +172,17 @@ static void _on_resume(ui_gadget_h ug, service_h service, void *priv) */ static void _on_destroy(ui_gadget_h ug, service_h service, void *priv) { - CViewMgr::Finalize(); + struct _ug_data *ugd = priv; + + if (!ug || !priv) { + _ERR("Parameter error!"); + return; + } + + if (!ugd || !ugd->base) + return; + + viewmgr_fini(ugd->vmgr); } /** @@ -250,7 +259,7 @@ UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) if (!ops) return -1; - ugd = (struct _ug_data *) calloc(1, sizeof(*ugd)); + ugd = calloc(1, sizeof(*ugd)); if (!ugd) return -1; @@ -285,11 +294,7 @@ UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops) if (!ops) return; - ugd = (struct _ug_data *) ops->priv; + ugd = ops->priv; free(ugd); } - -#if defined (__cplusplus) -}; -#endif diff --git a/ug/network/src/util.cpp b/ug/network/src/util.c similarity index 99% rename from ug/network/src/util.cpp rename to ug/network/src/util.c index a8888f8..926a634 100644 --- a/ug/network/src/util.cpp +++ b/ug/network/src/util.c @@ -19,7 +19,7 @@ #include #include "i18n.h" #include "defs.h" -#include +#include "dbg.h" #include "util.h" /** diff --git a/ug/network/src/vconf_mgr.c b/ug/network/src/vconf_mgr.c new file mode 100644 index 0000000..b4c72c8 --- /dev/null +++ b/ug/network/src/vconf_mgr.c @@ -0,0 +1,404 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "defs.h" +#include "dbg.h" +#include "vconf_mgr.h" +#include "i18n.h" + +static const char *WIRED_DNS_LAST_MODE = "db/menu/network/wired_dns_mode"; +static const char *WIRED_IP_LAST_MODE = "db/menu/network/wired_ip_mode"; +static const char *WIRED_IP_KEY = "db/menu/network/wired_ip"; +static const char *WIRED_SUBMASK_KEY = "db/menu/network/wired_subnet"; +static const char *WIRED_GATEWAY_KEY = "db/menu/network/wired_gateway"; +static const char *WIRED_DNS_KEY = "db/menu/network/wired_dns"; + +static const char *WIRELESS_IP_LAST_MODE = "db/menu/network/wireless_ip_mode"; +static const char *WIRELESS_DNS_LAST_MODE = "db/menu/network/wireless_dns_mode"; +static const char *WIRELESS_IP_KEY = "db/menu/network/wireless_ip"; +static const char *WIRELESS_SUBMASK_KEY = "db/menu/network/wireless_subnet"; +static const char *WIRELESS_GATEWAY_KEY = "db/menu/network/wireless_gateway"; +static const char *WIRELESS_DNS_KEY = "db/menu/network/wireless_dns"; + +static const char *SELECTED_NETWORK_TYPE_KEY = "db/menu/network/network_type"; + +/** + * Gets the network type. + * + * Gets the last network type from vconf. + * + * @param[out] network_type Network type + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_get_network_type(enum network_type_enum *network_type) +{ + const char *str; + + if (!network_type) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + str = vconf_get_str(SELECTED_NETWORK_TYPE_KEY); + if (str && !strcmp(str, TXT_WIRED)) + *network_type = TYPE_WIRED; + else + *network_type = TYPE_WIRELESS; + + return RET_SUCCESS; +} + +/** + * Sets the network type. + * + * Sets the network type into vconf, so it can be used + * next time by calling vconf_mgr_get_network_type. + * + * @param[in] network_type Network type + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_set_network_type(enum network_type_enum network_type) +{ + switch (network_type) { + case TYPE_WIRED: + vconf_set_str(SELECTED_NETWORK_TYPE_KEY, TXT_WIRED); + break; + case TYPE_WIRELESS: + vconf_set_str(SELECTED_NETWORK_TYPE_KEY, TXT_WIRELESS); + break; + default: + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the string value from the vconf. + * + * @param[out] des The string value + * @param[in] key Vconf key + */ +static void _get_info(char *des, const char *key) +{ + const char *str; + + if (!des || !key) + return; + + str = vconf_get_str(key); + if (!str) + return; + + if (str == '\0' || !strncmp(str, NULL_STRING, IP_STRING_MAX_SIZE)) + strncpy(des, _(ZERO_IP), IP_STRING_MAX_SIZE); + else + strncpy(des, str, IP_STRING_MAX_SIZE); +} + +/** + * Gets wired network information. + * + * Including IP, submask, gateway and DNS. + * + * @param[out] info The structure of network information + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_get_wired_network_info(struct network_info *info) +{ + if (!info) { + _ERR("the param is NULL."); + return RET_FAILED; + } + + _get_info(info->ip_addr, WIRED_IP_KEY); + _get_info(info->submask, WIRED_SUBMASK_KEY); + _get_info(info->gateway, WIRED_GATEWAY_KEY); + _get_info(info->dns, WIRED_DNS_KEY); + + return RET_SUCCESS; +} + +/** + * Gets wireless network information. + * + * Including IP, submask, gateway and DNS. + * + * @param[out] info The structure of network information + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_get_wireless_network_info(struct network_info *info) +{ + if (!info) { + _ERR("the param is NULL."); + return RET_FAILED; + } + + _get_info(info->ip_addr, WIRELESS_IP_KEY); + _get_info(info->submask, WIRELESS_SUBMASK_KEY); + _get_info(info->gateway, WIRELESS_GATEWAY_KEY); + _get_info(info->dns, WIRELESS_DNS_KEY); + + return RET_SUCCESS; +} + +/** + * Saves wired network information into vconf. + * + * Including IP, submask, gateway and DNS. + * + * @param[in] info The structure of network information + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_save_wired_config_info(struct network_info *info) +{ + if (!info) { + _ERR("the param is NULL."); + return RET_FAILED; + } + + vconf_set_str(WIRED_IP_KEY, info->ip_addr); + vconf_set_str(WIRED_SUBMASK_KEY, info->submask); + vconf_set_str(WIRED_GATEWAY_KEY, info->gateway); + vconf_set_str(WIRED_DNS_KEY, info->dns); + + return RET_SUCCESS; +} + +/** + * Saves wireless network information into vconf. + * + * Including IP, submask, gateway and DNS. + * + * @param[in] info The structure of network information + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_save_wireless_config_info(struct network_info *info) +{ + if (!info) { + _ERR("the param is NULL."); + return RET_FAILED; + } + + vconf_set_str(WIRELESS_IP_KEY, info->ip_addr); + vconf_set_str(WIRELESS_SUBMASK_KEY, info->submask); + vconf_set_str(WIRELESS_GATEWAY_KEY, info->gateway); + vconf_set_str(WIRELESS_DNS_KEY, info->dns); + + return RET_SUCCESS; +} + +/** + * Gets the wired IP mode from vconf. + * + * The mode includes automatical and manual. + * + * @param[out] mode The enum of setting mode + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_get_wired_ip_mode(enum setting_mode *mode) +{ + const char *str; + + if (!mode) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + str = vconf_get_str(WIRED_IP_LAST_MODE); + if (str && !strcmp(str, _(TXT_OBTAIN_AUTO))) + *mode = MODE_AUTO; + else + *mode = MODE_MAN; + + return RET_SUCCESS; +} + +/** + * Sets the wired IP mode into vconf. + * + * The mode includes automatical and manual. + * + * @param[in] mode The enum of setting mode + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_set_wired_ip_mode(enum setting_mode mode) +{ + switch (mode) { + case MODE_AUTO: + vconf_set_str(WIRED_IP_LAST_MODE, _(TXT_OBTAIN_AUTO)); + break; + case MODE_MAN: + vconf_set_str(WIRED_IP_LAST_MODE, _(TXT_ENTER_MAN)); + break; + default: + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the wired DNS mode from vconf. + * + * The mode includes automatical and manual. + * + * @param[out] mode The enum of setting mode + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_get_wired_dns_mode(enum setting_mode *mode) +{ + char *str; + + if (!mode) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + str = vconf_get_str(WIRED_DNS_LAST_MODE); + if (str && !strcmp(str, _(TXT_OBTAIN_AUTO))) + *mode = MODE_AUTO; + else + *mode = MODE_MAN; + + return RET_SUCCESS; +} + +/** + * Sets the wired DNS mode into vconf. + * + * The mode includes automatical and manual. + * + * @param[in] mode The enum of setting mode + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_set_wired_dns_mode(enum setting_mode mode) +{ + switch (mode) { + case MODE_AUTO: + vconf_set_str(WIRED_DNS_LAST_MODE, _(TXT_OBTAIN_AUTO)); + break; + case MODE_MAN: + vconf_set_str(WIRED_DNS_LAST_MODE, _(TXT_ENTER_MAN)); + break; + default: + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the wireless IP mode from vconf. + * + * The mode includes automatical and manual. + * + * @param[out] mode The enum of setting mode + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_get_wireless_ip_mode(enum setting_mode *mode) +{ + char *str; + + if (!mode) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + str = vconf_get_str(WIRELESS_IP_LAST_MODE); + if (str && !strcmp(str, _(TXT_OBTAIN_AUTO))) + *mode = MODE_AUTO; + else + *mode = MODE_MAN; + + return RET_SUCCESS; +} + +/** + * Sets the wireless IP mode into vconf. + * + * The mode includes automatical and manual. + * + * @param[in] mode The enum of setting mode + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_set_wireless_ip_mode(enum setting_mode mode) +{ + switch (mode) { + case MODE_AUTO: + vconf_set_str(WIRELESS_IP_LAST_MODE, _(TXT_OBTAIN_AUTO)); + break; + case MODE_MAN: + vconf_set_str(WIRELESS_IP_LAST_MODE, _(TXT_ENTER_MAN)); + break; + default: + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the wireless DNS mode from vconf. + * + * The mode includes automatical and manual. + * + * @param[out] mode The enum of setting mode + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_get_wireless_dns_mode(enum setting_mode *mode) +{ + char *str; + + if (!mode) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + str = vconf_get_str(WIRELESS_DNS_LAST_MODE); + if (str && !strcmp(str, _(TXT_OBTAIN_AUTO))) + *mode = MODE_AUTO; + else + *mode = MODE_MAN; + + return RET_SUCCESS; +} + +/** + * Sets the wireless DNS mode into vconf. + * + * The mode includes automatical and manual. + * + * @param[in] mode The enum of setting mode + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_set_wireless_dns_mode(enum setting_mode mode) +{ + switch (mode) { + case MODE_AUTO: + vconf_set_str(WIRELESS_DNS_LAST_MODE, + _(TXT_OBTAIN_AUTO)); + break; + case MODE_MAN: + vconf_set_str(WIRELESS_DNS_LAST_MODE, + _(TXT_ENTER_MAN)); + break; + default: + return RET_FAILED; + } + + return RET_SUCCESS; +} diff --git a/ug/network/src/wifi_mgr.c b/ug/network/src/wifi_mgr.c new file mode 100644 index 0000000..7555aeb --- /dev/null +++ b/ug/network/src/wifi_mgr.c @@ -0,0 +1,615 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include "defs.h" +#include "dbg.h" +#include "wifi_mgr.h" + +/** + * Converts the error type to string information. + * + * @param[in] err_type Error type + * @return error string information; + */ +const char *wifi_mgr_error_dbg(wifi_error_e err_type) +{ + switch (err_type) { + case WIFI_ERROR_NONE: + return "NONE"; + case WIFI_ERROR_INVALID_PARAMETER: + return "INVALID_PARAMETER"; + case WIFI_ERROR_OUT_OF_MEMORY: + return "OUT_OF_MEMORY"; + case WIFI_ERROR_INVALID_OPERATION: + return "INVALID_OPERATION"; + case WIFI_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED: + return "ADDRESS_FAMILY_NOT_SUPPORTED"; + case WIFI_ERROR_OPERATION_FAILED: + return "OPERATION_FAILED"; + case WIFI_ERROR_NO_CONNECTION: + return "NO_CONNECTION"; + case WIFI_ERROR_NOW_IN_PROGRESS: + return "NOW_IN_PROGRESS"; + case WIFI_ERROR_ALREADY_EXISTS: + return "ALREADY_EXISTS"; + case WIFI_ERROR_OPERATION_ABORTED: + return "OPERATION_ABORTED"; + case WIFI_ERROR_DHCP_FAILED: + return "DHCP_FAILED"; + case WIFI_ERROR_INVALID_KEY: + return "INVALID_KEY"; + case WIFI_ERROR_NO_REPLY: + return "NO_REPLY"; + case WIFI_ERROR_SECURITY_RESTRICTED: + return "SECURITY_RESTRICTED"; + default: + break; + } + + return "UNKNOWN"; +} + +/** + * Initializes Wi-Fi. + * + * Called before using wifi APIs. + * + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_init(void) +{ + int ret; + + ret = wifi_initialize(); + if (ret != WIFI_ERROR_NONE) { + _ERR("Fail to wifi_initialize.\n"); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Deinitializes Wi-Fi. + * + * Called when network setting is destroyed. + * + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_deinit(void) +{ + int ret; + + ret = wifi_deinitialize(); + if (ret != WIFI_ERROR_NONE) { + _ERR("Fail to wifi_deinitialize.\n"); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Checks whether Wi-Fi is activated. + * + * @param[out] activated The activated value of wifi + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_is_activated(bool *activated) +{ + int ret; + + ret = wifi_is_activated(activated); + if (ret != WIFI_ERROR_NONE) { + _ERR("Fail to wifi_is_activated %s\n", + wifi_mgr_error_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Starts scan, asynchronously. + * + * Called if you want to get the ap list. + * + * @param[in] cb The callback function to be called + * @param[in] data User data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_scan_request(wifi_scan_finished_cb cb, void *data) +{ + int ret; + + if (!cb || !data) { + _ERR("null pointer"); + return RET_FAILED; + } + + ret = wifi_scan(cb, data); + if (ret != WIFI_ERROR_NONE) { + _ERR("Scan request failed [%s]\n", + wifi_mgr_error_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the result of scan. + * + * Called in the callback of wifi_scan(). + * + * @param[in] cb The callback function to be called + * @param[in] data User data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_foreach_found_aps(wifi_found_ap_cb cb, void *data) +{ + int ret; + + if (!cb || !data) { + _ERR("null pointer"); + return RET_FAILED; + } + + ret = wifi_foreach_found_aps(cb, data); + if (ret != WIFI_ERROR_NONE) { + _ERR("Fail to get AP list %s.\n", wifi_mgr_error_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Activates Wi-Fi, asynchronously. + * + * If the wireless adaptor is not activated, you should activate it first. + * + * @param[in] cb The callback function to be called + * @param[in] data User data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_activate(wifi_activated_cb cb, void *data) +{ + int ret; + + if (!cb || !data) { + _ERR("null pointer"); + return RET_FAILED; + } + + ret = wifi_activate(cb, data); + if (ret != WIFI_ERROR_NONE) { + _ERR("Fail to wifi_activate %s\n", + wifi_mgr_error_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the handle of connected access point. + * + * You can get the connected access point and its configuration. + * + * @param[out] ap The handle of access point + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_get_connected_ap(wifi_ap_h *ap) +{ + int ret; + + if (!ap) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = wifi_get_connected_ap(ap); + if (ret != WIFI_ERROR_NONE) { + _ERR("wifi_get_connected_ap() failed."); + return ret; + } + + return RET_SUCCESS; +} + +/** + * Destroys the handle of access point. + * + * when you cloned an ap and don't use it later, you should destroy it. + * + * @param[in] ap The handle of access point + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_ap_destroy(wifi_ap_h ap) +{ + int ret; + + if (!ap) { + _ERR("the ap is already NULL."); + return RET_SUCCESS; + } + + ret = wifi_ap_destroy(ap); + if (ret != WIFI_ERROR_NONE) + ret = RET_FAILED; + else + ret = RET_SUCCESS; + + return ret; +} + +/** + * Clones the handle of access point. + * + * Copy the data of an ap. + * + * @param[out] cloned_ap The handle of access point to clone + * @param[in] origin The handle of access point to be cloned + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_ap_clone(wifi_ap_h *cloned_ap, wifi_ap_h origin) +{ + int ret; + + if (!cloned_ap || !origin) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = wifi_ap_clone(cloned_ap, origin); + if (ret != WIFI_ERROR_NONE) + ret = RET_FAILED; + else + ret = RET_SUCCESS; + + return ret; +} + +/** + * Gets the data of access point. + * + * @param[in] ap The handle of access point + * @param[out] ap_info The structue to store the data of access point + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_get_ap_info(wifi_ap_h ap, struct wifi_ap_info *ap_info) +{ + char *str; + + if (!ap || !ap_info) { + _ERR("null pointer"); + return RET_FAILED; + } + + str = NULL; + if (wifi_ap_get_essid(ap, &str) == WIFI_ERROR_NONE) { + _ERR("ESSID : %s\n", str); + strncpy(ap_info->essid, str, SSID_MAX_LENTH - 1); + free(str); + } else { + _ERR("Fail to get ESSID\n"); + return RET_FAILED; + } + + if (wifi_ap_get_connection_state(ap, + &ap_info->state) != WIFI_ERROR_NONE) { + _ERR("Fail to get Connection State\n"); + return RET_FAILED; + } + + if (wifi_ap_get_security_type(ap, + &ap_info->secure_type) != WIFI_ERROR_NONE) { + _ERR("Fail to get Security type\n"); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Deletes the information of stored access point and disconnects it when it is connected. + * + * If an AP is connected, then connection information will be stored. + * This information is used when a connection to that AP is established automatically. + * If you want to connect another access point, you should desconnect the connected one. + * + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_forget_last_ap(void) +{ + int ret; + wifi_ap_h ap; + char *name; + + ret = wifi_get_connected_ap(&ap); + if (ret == WIFI_ERROR_NO_CONNECTION) { + return RET_SUCCESS; + } else if (ret != WIFI_ERROR_NONE) { + _ERR("Fail to get connected AP [%s]\n", + wifi_mgr_error_dbg(ret)); + return RET_FAILED; + } + + ret = wifi_ap_get_essid(ap, &name); + if (ret != WIFI_ERROR_NONE) { + _ERR("Fail to wifi_ap_get_essid AP [%s]\n", + wifi_mgr_error_dbg(ret)); + wifi_ap_destroy(ap); + return RET_FAILED; + } + + ret = wifi_forget_ap(ap); + if (ret != WIFI_ERROR_NONE) { + _ERR("Fail to forget [%s],[%s].\n", name, + wifi_mgr_error_dbg(ret)); + wifi_ap_destroy(ap); + free(name); + return RET_FAILED; + } + + free(name); + + return RET_SUCCESS; +} + +/** + * Sets the passphrase. + * + * When the access point is locked, you should set passphrase first. + * + * @param[in] ap The handle of access point + * @param[in] passcode The passcode + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_set_passphrase(wifi_ap_h ap, const char *passcode) +{ + int ret; + + if (!ap || !passcode) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = wifi_ap_set_passphrase(ap, passcode); + if (ret != WIFI_ERROR_NONE) { + _ERR("failed to set passcode. ret: %s.", + wifi_mgr_error_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Connects the access point, asynchronously. + * + * After you make the preprarion, such as setting passphrase, + * forgetting the connected ap, then you can connect the ap. + * + * @param[in] ap The handle of access point + * @param[in] cb The callback function to be called + * @param[in] data User data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_connect(wifi_ap_h ap, wifi_connected_cb cb, void *data) +{ + int ret; + + if (!cb || !ap || !data) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = wifi_connect(ap, cb, data); + if (ret != WIFI_ERROR_NONE) { + _ERR("failed to connect ap. ret: %s.", + wifi_mgr_error_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Sets the config type of IP. + * + * Only support IPV4 now. + * + * @param[in] ap The handle of access point + * @param[in] type The type of IP config + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_ap_set_ip_config_type(wifi_ap_h ap, + wifi_ip_config_type_e type) +{ + int ret; + + if (!ap) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = wifi_ap_set_ip_config_type(ap, WIFI_ADDRESS_FAMILY_IPV4, type); + if (ret != WIFI_ERROR_NONE) { + _ERR("failed to connect ap. ret: %s.", + wifi_mgr_error_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the data of access point. + * + * Get ip, dns, submask, and gateway info. + * + * @param[in] ap The handle of access point + * @param[out] info The structure to store ip info + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_get_ip_info(wifi_ap_h ap, struct network_info *info) +{ + char *str_value; + + if (!info || !ap) { + _ERR("null pointer"); + return RET_FAILED; + } + + str_value = NULL; + if (wifi_ap_get_ip_address(ap, WIFI_ADDRESS_FAMILY_IPV4, + &str_value) == WIFI_ERROR_NONE) { + strncpy(info->ip_addr, str_value, IP_STRING_MAX_SIZE); + free(str_value); + } else { + strncpy(info->ip_addr, ZERO_IP, IP_STRING_MAX_SIZE); + _ERR("Fail to get Gateway\n"); + } + + str_value = NULL; + if (wifi_ap_get_subnet_mask(ap, WIFI_ADDRESS_FAMILY_IPV4, + &str_value) == WIFI_ERROR_NONE) { + strncpy(info->submask, str_value, IP_STRING_MAX_SIZE); + free(str_value); + } else { + strncpy(info->submask, ZERO_IP, IP_STRING_MAX_SIZE); + _ERR("Fail to get Gateway\n"); + } + + str_value = NULL; + if (wifi_ap_get_gateway_address(ap, WIFI_ADDRESS_FAMILY_IPV4, + &str_value) == WIFI_ERROR_NONE) { + strncpy(info->gateway, str_value, IP_STRING_MAX_SIZE); + free(str_value); + } else { + strncpy(info->gateway, ZERO_IP, IP_STRING_MAX_SIZE); + _ERR("Fail to get Gateway\n"); + } + + str_value = NULL; + if (wifi_ap_get_dns_address(ap, 1, WIFI_ADDRESS_FAMILY_IPV4, + &str_value) == WIFI_ERROR_NONE) { + strncpy(info->dns, str_value, IP_STRING_MAX_SIZE); + free(str_value); + } else { + strncpy(info->dns, ZERO_IP, IP_STRING_MAX_SIZE); + _ERR("Fail to get DNS1\n"); + } + + return RET_SUCCESS; +} + +/** + * Sets the data of access point. + * + * Set ip, submask, and gateway info. + * + * @param[in] ap The handle of access point + * @param[in] info The structure of ip info + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_set_ip_config(wifi_ap_h ap, struct network_info *info) +{ + int ret; + + if (!info || !ap) { + _ERR("null pointer"); + return RET_FAILED; + } + + ret = wifi_ap_set_ip_address(ap, WIFI_ADDRESS_FAMILY_IPV4, + info->ip_addr); + if (ret != WIFI_ERROR_NONE) + _ERR("Fail to set ip address[%s]\n", + wifi_mgr_error_dbg(ret)); + + ret = wifi_ap_set_subnet_mask(ap, WIFI_ADDRESS_FAMILY_IPV4, + info->submask); + if (ret != WIFI_ERROR_NONE) + _ERR("Fail to set subnet mask[%s]\n", + wifi_mgr_error_dbg(ret)); + + ret = wifi_ap_set_gateway_address(ap, WIFI_ADDRESS_FAMILY_IPV4, + info->gateway); + if (ret != WIFI_ERROR_NONE) + _ERR("Fail to set gateway address[%s]\n", + wifi_mgr_error_dbg(ret)); + + return RET_SUCCESS; +} + +/** + * Sets dns of access point. + * + * @param[in] ap The handle of access point + * @param[in] info The structure of ip info + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_set_dns_config(wifi_ap_h ap, struct network_info *info) +{ + int ret; + + if (!info || !ap) { + _ERR("null pointer"); + return RET_FAILED; + } + + ret = wifi_ap_set_dns_address(ap, 1, WIFI_ADDRESS_FAMILY_IPV4, + info->dns); + if (ret != WIFI_ERROR_NONE) { + _ERR("Fail to set dns address[%s]\n", + wifi_mgr_error_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets whether Wi-Fi can access to the internet asynchronously. + * + * @param[in] cb The callback function to be called + * @param[in] data User data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +#if 0 +int wifi_mgr_get_is_online_async(wifi_get_is_online_async_cb cb, + void *data) +{ + int ret; + + if (!cb || !data) { + _ERR("the param is NULL."); + return RET_FAILED; + } + + ret = wifi_get_is_online_async(cb, data); + if (ret != WIFI_ERROR_NONE) { + _ERR("wifi_get_is_online_async() failed."); + return RET_FAILED; + } + + return RET_SUCCESS; +} +#endif diff --git a/ug/network/src/wifi_passcode_view.c b/ug/network/src/wifi_passcode_view.c new file mode 100644 index 0000000..e8a03b1 --- /dev/null +++ b/ug/network/src/wifi_passcode_view.c @@ -0,0 +1,956 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +#include + +#include "defs.h" +#include "dbg.h" +#include "i18n.h" +#include "util.h" +#include "common.h" +#include "wifi_passcode_view.h" +#include "util.h" +#include "wifi_mgr.h" + +#define KEY_PRIV "priv" +#define KEY_NETWORK_ENTER "Select" + +#define AP_NAME_LENTH 256 + +#define TXT_PASSCODE "Network passcode" +#define TXT_ENTER_PASSCODE "Enter the network password" + +#define STYLE_ENTRY_FOCUS "focus" +#define STYLE_ENTRY_TXT "DEFAULT='font_size=30 linesize=40'" + +struct _priv { + Evas_Object *win; + ui_gadget_h ug; + struct viewmgr *vmgr; + Evas_Object *base; + Evas_Object *entry; + Evas_Object *dim_ly; + Evas_Object *ctxpopup; + char ap_name[AP_NAME_LENTH + 1]; + char *ap_pwd; +}; + +static int _wifi_connect_ap(struct _priv *priv); +static void _show_confirm_popup(struct _priv *priv); +static void _show_progress_popup(struct _priv *priv); + +/** + * Initializes the private data. + * + * Called when the view is loaded. + * + * @return the handler of the private data; + */ +static struct _priv *_init_priv(void) +{ + struct _priv *priv; + + priv = calloc(1, sizeof(*priv)); + + return priv; +} + +/** + * Deinitializes the private data. + * + * Called when the view is deleted. + * + * @param[in] priv The handler of the private data + */ +static void _fini_priv(struct _priv *priv) +{ + if (!priv) { + _ERR("priv is already NULL."); + return; + } + + if (priv->dim_ly) + evas_object_del(priv->dim_ly); + + free(priv->ap_pwd); + free(priv); +} + +/** + * Shows the dim layout. + * + * Called when there is a ctxpopup. + * + * @param[in] priv The handler of the private data + */ +static void _set_layout_dim(struct _priv *priv) +{ + if (!priv || !priv->dim_ly) { + _ERR("The param is invalid.\n"); + return; + } + + evas_object_show(priv->dim_ly); +} + +/** + * Hides the dim layout. + * + * Called when the existing ctxpopup is deleted. + * + * @param[in] priv The handler of the private data + */ +static void _unset_layout_dim(struct _priv *priv) +{ + if (!priv || !priv->dim_ly) { + _ERR("The param is invalid.\n"); + return; + } + + evas_object_hide(priv->dim_ly); +} + +/** + * Creates the dim layout. + * + * Called when the view is created. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _create_dim_layout(struct _priv *priv) +{ + Evas_Object *dim_ly; + + if (!priv || !priv->win) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + dim_ly = util_add_layout(priv->win, UG_NETWORK_EDJ_FILE, GRP_DIM_LY); + if (!dim_ly) { + _ERR("elm_layout_add() failed.\n"); + return RET_FAILED; + } + + priv->dim_ly = dim_ly; + + _unset_layout_dim(priv); + + return RET_SUCCESS; +} + +/** + * Callback for key pressed event. + * + * If the key is KEY_BACK, delete this view. + * + * @param[in] data User data + * @param[in] e Evas handler + * @param[in] obj The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _base_key_press_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!ei || !data) { + _ERR("ei or data is NULL"); + return; + } + + priv = data; + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_BACK)) + viewmgr_pop(priv->vmgr); +} + +/** + * Sets the description. + * + * Sets the description for the passcode view. + * + * @param[in] priv The handler of the private data + */ +static void _set_description(struct _priv *priv) +{ + if (!priv || !priv->base) { + _ERR("priv is invalid."); + return; + } + + elm_object_part_text_set(priv->base, PART_WIFI_PASSCODE_TITLE, + _(TXT_PASSCODE)); + elm_object_part_text_set(priv->base, PART_WIFI_PASSCODE_TEXT, + _(TXT_ENTER_PASSCODE)); + elm_object_part_text_set(priv->base, PART_WIFI_PASSCODE_AP_NAME, + priv->ap_name); +} + +/** +* @Evas_Smart_Cb type callback for handling click event. +* +* When the 'OK' button is clicked, delete the popup, +* and set the default focus. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] event Event information +*/ +static void _popup_ok_btn_clicked_cb(void *data, + Evas_Object *obj, void *event) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } + + elm_object_focus_set(priv->entry, EINA_TRUE); +} + +/** +* @Evas_Smart_Cb type callback for handling unfocused event. +* +* When the ctxpopup is unfocused, hide the dim layout, +* and delete the ctxpopup. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] source Event information +*/ +static void _ctxpopup_unfocused_cb(void *data, + Evas_Object *obj, void *source) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("data is NULL.\n"); + return; + } + + priv = data; + + _unset_layout_dim(priv); + + evas_object_del(obj); +} + +/** +* @Evas_Object_Event_Cb type callback for handling pressed event. +* +* When KEY_BACK is pressed in the ctxpopup, delete the ctxpopup. +* +* @param[in] data User data +* @param[in] e Evas handler +* @param[in] obj The corresponding object which the deletion event occurred +* @param[in] ei Event information +*/ +static void _ctxpopup_pressed_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!data || !ei || !obj) { + _ERR("Parameter error!"); + return; + } + + priv = data; + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_BACK)) { + _unset_layout_dim(priv); + evas_object_del(obj); + + elm_object_focus_set(priv->entry, EINA_TRUE); + } +} + +/** + * Shows the invalid ctxpopup. + * + * The ctxpopup will show the invalid passcode information. + * + * @param[in] priv The handler of the private data + */ +static void _show_invalid_pwd_popup(struct _priv *priv) +{ + Evas_Object *layout; + Evas_Object *ok_btn; + char content[CONTENT_TXT_SIZE]; + + if (!priv) { + _ERR("The param is NULL.\n"); + return; + } + + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } + + _set_layout_dim(priv); + + layout = util_add_layout(priv->base, UG_NETWORK_EDJ_FILE, + GRP_CONFIRM_LAYOUT); + if (!layout) { + _ERR("add layout failed."); + _unset_layout_dim(priv); + return; + } + + elm_object_part_text_set(layout, + PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); + + memset(content, 0, CONTENT_TXT_SIZE); + snprintf(content, CONTENT_TXT_SIZE - 1, "%s", + _(TXT_INVALID_PWD)); + elm_object_part_text_set(layout, + PART_TEXT_CONTENT, content); + + ok_btn = util_add_button(layout, STYLE_SETTING_BTN, + PART_OK_BTN, _(TXT_OK)); + if (!ok_btn) { + _ERR("util add button failed."); + evas_object_del(layout); + _unset_layout_dim(priv); + return; + } + + elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_UP); + elm_object_focus_next_object_set(ok_btn, ok_btn, ELM_FOCUS_DOWN); + evas_object_smart_callback_add(ok_btn, SIG_CLICKED, + _popup_ok_btn_clicked_cb, priv); + + elm_object_focus_set(ok_btn, EINA_TRUE); + + elm_object_focus_allow_set(layout, EINA_TRUE); + evas_object_smart_callback_add(layout, SIG_UNFOCUSED, + _ctxpopup_unfocused_cb, priv); + evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, + _ctxpopup_pressed_cb, priv); + + evas_object_move(layout, CENTER_ALIGN * (DEFAULT_WIN_WIDTH - POPUP_WIDTH) * ELM_SCALE, + CENTER_ALIGN * (DEFAULT_WIN_HEIGHT - POPUP_HEIGHT) * ELM_SCALE); + + priv->ctxpopup = layout; +} + +/** +* @Evas_Smart_Cb type callback for handling clicking event. +* +* When the 'Retry' button is clicked, retry to connect the ap. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] event Event information +*/ +static void _retry_btn_clicked_cb(void *data, + Evas_Object *obj, void *event) +{ + struct _priv *priv; + int ret; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } + + _unset_layout_dim(priv); + + ret = _wifi_connect_ap(priv); + if (ret != RET_SUCCESS) { + _ERR("connect ap"); + _show_confirm_popup(priv); + return; + } +} + +/** +* @Evas_Smart_Cb type callback for handling clicking event. +* +* When the 'Cancel' button is clicked, delete the ctxpopup +* where the button is located. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] event Event information +*/ +static void _cancel_btn_clicked_cb(void *data, + Evas_Object *obj, void *event) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } + + _unset_layout_dim(priv); + + elm_object_focus_set(priv->entry, EINA_TRUE); +} + +/** + * Shows the confirm ctxpopup. + * + * The ctxpopup will show the result of connectting the ap. + * + * @param[in] priv The handler of the private data + */ +static void _show_confirm_popup(struct _priv *priv) +{ + Evas_Object *layout; + Evas_Object *retry_btn; + Evas_Object *cancel_btn; + char content[CONTENT_TXT_SIZE]; + + if (!priv) { + _ERR("the param is NULL."); + return; + } + + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } + + _set_layout_dim(priv); + + layout = util_add_layout(priv->base, UG_NETWORK_EDJ_FILE, + GRP_CONFIRM_LAYOUT); + if (!layout) { + _ERR("add layout failed."); + _unset_layout_dim(priv); + return; + } + + memset(content, 0, CONTENT_TXT_SIZE); + elm_object_part_text_set(layout, + PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); + snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", + _(TXT_FAILED_CONNECT), priv->ap_name); + + elm_object_part_text_set(layout, + PART_TEXT_CONTENT, content); + + retry_btn = util_add_button(layout, STYLE_SETTING_BTN, + PART_RETRY_BTN, _(TXT_RETRY)); + if (!retry_btn) { + _ERR("util add button failed."); + evas_object_del(layout); + _unset_layout_dim(priv); + return; + } + + cancel_btn = util_add_button(layout, STYLE_SETTING_BTN, + PART_CANCEL_BTN, _(TXT_CANCEL)); + if (!cancel_btn) { + _ERR("util add button failed."); + evas_object_del(layout); + _unset_layout_dim(priv); + return; + } + + elm_object_focus_next_object_set(retry_btn, cancel_btn, + ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(cancel_btn, retry_btn, + ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(retry_btn, retry_btn, + ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_UP); + elm_object_focus_next_object_set(retry_btn, retry_btn, + ELM_FOCUS_UP); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_DOWN); + elm_object_focus_next_object_set(retry_btn, retry_btn, + ELM_FOCUS_DOWN); + + evas_object_smart_callback_add(retry_btn, SIG_CLICKED, + _retry_btn_clicked_cb, priv); + evas_object_smart_callback_add(cancel_btn, SIG_CLICKED, + _cancel_btn_clicked_cb, priv); + + elm_object_focus_set(retry_btn, EINA_TRUE); + + elm_object_focus_allow_set(layout, EINA_TRUE); + evas_object_smart_callback_add(layout, SIG_UNFOCUSED, + _ctxpopup_unfocused_cb, priv); + evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, + _ctxpopup_pressed_cb, priv); + + evas_object_move(layout, CENTER_ALIGN * (DEFAULT_WIN_WIDTH - POPUP_WIDTH) * ELM_SCALE, + CENTER_ALIGN * (DEFAULT_WIN_HEIGHT - POPUP_HEIGHT) * ELM_SCALE); + + priv->ctxpopup = layout; +} + +/** + * Shows the progress ctxpopup. + * + * The ctxpopup will show the progress of connectting the ap. + * + * @param[in] priv The handler of the private data + */ +static void _show_progress_popup(struct _priv *priv) +{ + Evas_Object *layout; + Evas_Object *cancel_btn; + char content[CONTENT_TXT_SIZE]; + + if (!priv) { + _ERR("the param is NULL."); + return; + } + + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } + + _set_layout_dim(priv); + + layout = util_add_layout(priv->base, UG_NETWORK_EDJ_FILE, + GRP_PROCESSING_LAYOUT); + if (!layout) { + _ERR("add layout failed."); + _unset_layout_dim(priv); + return; + } + + memset(content, 0, CONTENT_TXT_SIZE); + elm_object_part_text_set(layout, + PART_TEXT_TITLE, _(TXT_WIRELESS_LY)); + snprintf(content, CONTENT_TXT_SIZE - 1, "%s %s", + _(TXT_CONNECTTING), priv->ap_name); + elm_object_part_text_set(layout, PART_TEXT_CONTENT, content); + + cancel_btn = util_add_button(layout, STYLE_SETTING_BTN, + PART_CANCEL_BTN, _(TXT_CANCEL)); + if (!cancel_btn) { + _ERR("util add button failed."); + evas_object_del(layout); + _unset_layout_dim(priv); + return; + } + + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_UP); + elm_object_focus_next_object_set(cancel_btn, cancel_btn, + ELM_FOCUS_DOWN); + + evas_object_smart_callback_add(cancel_btn, SIG_CLICKED, + _cancel_btn_clicked_cb, priv); + + elm_object_focus_set(cancel_btn, EINA_TRUE); + + elm_object_focus_allow_set(layout, EINA_TRUE); + evas_object_smart_callback_add(layout, SIG_UNFOCUSED, + _ctxpopup_unfocused_cb, priv); + evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, + _ctxpopup_pressed_cb, priv); + + evas_object_move(layout, CENTER_ALIGN * (DEFAULT_WIN_WIDTH - POPUP_WIDTH) * ELM_SCALE, + CENTER_ALIGN * (DEFAULT_WIN_HEIGHT - POPUP_HEIGHT) * ELM_SCALE); + + priv->ctxpopup = layout; +} + +/** + * The callback of wifi connection. + * + * The result is in the error code. + * + * @param[in] error_code Error code + * @param[in] user_data User data + */ +static void _wifi_connected_cb(wifi_error_e error_code, void *user_data) +{ + struct _priv *priv; + + if (!user_data) { + _ERR("Parameter error!"); + return; + } + + priv = user_data; + + if (!priv->ctxpopup) + return; + + if (error_code != WIFI_ERROR_NONE) { + _ERR("connect AP failed, ret: %s.", + wifi_mgr_error_dbg(error_code)); + _show_confirm_popup(priv); + return; + } + + ug_destroy_me(priv->ug); +} + +/** + * The callback of finding ap. + * + * The callback will be called the same times as the ap count. + * + * @param[in] ap The hander of ap + * @param[in] data User data + */ +static bool _wifi_found_ap_cb(wifi_ap_h ap, void *data) +{ + int ret; + struct _priv *priv; + struct wifi_ap_info ap_info; + + if (!ap || !data) { + _ERR("Parameter error!"); + return false; + } + + priv = data; + + wifi_mgr_get_ap_info(ap, &ap_info); + + if (!strncmp(priv->ap_name, ap_info.essid, AP_NAME_LENTH)) { + ret = wifi_mgr_set_passphrase(ap, priv->ap_pwd); + if (ret != RET_SUCCESS) { + _ERR("wifi_mgr_set_passphrase() failed."); + _show_confirm_popup(priv); + return false; + } + + ret = wifi_mgr_connect(ap, _wifi_connected_cb, priv); + if (ret != RET_SUCCESS) { + _ERR("Fail to connection request.\n"); + _show_confirm_popup(priv); + return false; + } + + return false; + } + + return true; +} + +/** + * The callback of ap scanning request. + * + * The callback will be called the same times as the ap count. + * + * @param[in] error_code Error code + * @param[in] data User data + */ +static void _wifi_scan_request_cb(wifi_error_e error_code, void *data) +{ + int ret; + + if (!data) { + _ERR("data is NULL."); + return; + } + + ret = wifi_mgr_foreach_found_aps(_wifi_found_ap_cb, data); + if (ret != RET_SUCCESS) { + _ERR("wifi_mgr_foreach_found_aps() failed."); + _show_confirm_popup(data); + return; + } +} + +/** + * Connects the ap. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _wifi_connect_ap(struct _priv *priv) +{ + int ret; + + if (!priv || !priv->ap_pwd) { + _ERR("Parameter error!"); + return RET_FAILED; + } + + _show_progress_popup(priv); + + ret = wifi_mgr_forget_last_ap(); + if (ret != RET_SUCCESS) { + _ERR("forget last ap failed."); + return false; + } + + ret = wifi_mgr_scan_request(_wifi_scan_request_cb, priv); + if (ret != RET_SUCCESS) { + _ERR("wifi_mgr_scan_request() failed."); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Callback for key pressed event. + * + * If the key is 'Select', connect the ap. + * + * @param[in] data User data + * @param[in] e Evas handler + * @param[in] obj The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _entry_key_press_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + int ret; + + if (!ei || !data) { + _ERR("ei or data is NULL"); + return; + } + + priv = data; + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_NETWORK_ENTER)) { + if (priv->ap_pwd) { + free(priv->ap_pwd); + priv->ap_pwd = NULL; + } + + priv->ap_pwd = strdup(elm_entry_entry_get(obj)); + if (!priv->ap_pwd) { + _ERR("the passcode in entry is NULL."); + _show_invalid_pwd_popup(priv); + return; + } + + ret = _wifi_connect_ap(priv); + if (ret != RET_SUCCESS) { + _ERR("connect ap"); + _show_confirm_popup(priv); + return; + } + } +} + +/** + * Creates the entry. + * + * @param[in] priv The handler of the private data + */ +static void _add_entry(struct _priv *priv) +{ + Evas_Object *base; + Evas_Object *entry; + + if (!priv || !priv->base) { + _ERR("the param is invalid."); + return; + } + + base = priv->base; + + entry = util_add_entry(base, STYLE_ENTRY_FOCUS, + PART_WIFI_PASSCODE_ENTRY); + if (!entry) { + _ERR("util_add_entry failed."); + evas_object_del(base); + _fini_priv(priv); + return; + } + + elm_entry_password_set(entry, EINA_TRUE); + elm_entry_text_style_user_push(entry, STYLE_ENTRY_TXT); + evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN, + _entry_key_press_cb, priv); + + elm_entry_input_panel_enabled_set(entry, EINA_TRUE); + + elm_object_focus_next_object_set(entry, entry, ELM_FOCUS_UP); + elm_object_focus_next_object_set(entry, entry, ELM_FOCUS_LEFT); + + elm_object_focus_set(entry, EINA_TRUE); + + priv->entry = entry; +} + +/** + * Creates the layout of the view. + * + * Called when the view is pushed. + * + * @param[in] vmgr View manager + * @param[in] data User data + * @return layout if the operation is successful; NULL if failed; + */ +static Evas_Object *_create(struct viewmgr *vmgr, void *data) +{ + struct _priv *priv; + struct wifi_ap_info *ap_info; + Evas_Object *base; + + if (!vmgr || !vmgr->win || !vmgr->ug || !data) { + _ERR("Parameter error!"); + return NULL; + } + + priv = _init_priv(); + if (!priv) { + _ERR("init priv failed."); + return NULL; + } + + priv->win = vmgr->win; + priv->ug = vmgr->ug; + priv->vmgr = vmgr; + + ap_info = data; + strncpy(priv->ap_name, ap_info->essid, AP_NAME_LENTH); + + base = util_add_layout(priv->win, UG_NETWORK_EDJ_FILE, + GRP_WIFI_PASSCODE_BASE); + if (!base) { + _ERR("util_add_layout failed."); + _fini_priv(priv); + return NULL; + } + + evas_object_data_set(base, KEY_PRIV, priv); + + evas_object_event_callback_add(base, EVAS_CALLBACK_KEY_DOWN, + _base_key_press_cb, priv); + + priv->base = base; + + _set_description(priv); + + _add_entry(priv); + + _create_dim_layout(priv); + + return base; +} + +/** + * Destroies the layout of the view. + * + * Called when the view is popped. + * + * @param[in] base The base layout + */ +static void _destroy(Evas_Object *base) +{ + struct _priv *priv; + + if (!base) { + _ERR("Parameter error!"); + return; + } + + priv = evas_object_data_get(base, KEY_PRIV); + if (!priv) + return; + + _fini_priv(priv); +} + +/** + * Gets the current view type. + * + * @return view type; + */ +static enum view_type _get_view_type(void) +{ + return NETWORK_WIFI_PASSCODE_VIEW; +} + + +static struct view_class _vclass = { + .create = _create, + .resume = NULL, + .terminate = _destroy, + .message_handler = NULL, + .get_view_type = _get_view_type, +}; + +/** + * Gets the current view class. + * + * @return view class; + */ +struct view_class *wifi_passcode_view_vclass_get(void) +{ + return &_vclass; +} diff --git a/ug/proxy/CMakeLists.txt b/ug/proxy/CMakeLists.txt index 20da480..7df799f 100644 --- a/ug/proxy/CMakeLists.txt +++ b/ug/proxy/CMakeLists.txt @@ -24,6 +24,7 @@ SET(UG_PROXY_EDJ_THEME "ug-proxy-settings-theme.edj") INCLUDE(FindPkgConfig) pkg_check_modules(UG_PROXY_PKGS REQUIRED + dlog eina edje evas @@ -36,6 +37,8 @@ pkg_check_modules(UG_PROXY_PKGS REQUIRED capi-network-wifi capi-network-connection ) + #ecore-x + SET(PKGS_LDFLAGS "${PKGS_LDFLAGS} ${UG_PROXY_PKGS_LDFLAGS}") FOREACH(FLAG ${UG_PROXY_PKGS_CFLAGS}) @@ -45,17 +48,15 @@ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=hidden -Wall -W SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}") SET(SRCS - src/ug_proxy_settings.cpp - src/ProxyMainView.cpp - src/util.cpp - ../src/WifiMgr.cpp - ../src/NetConMgr.cpp + src/ug_proxy_settings.c + src/main_view.c + src/vconf_mgr.c + src/connection_mgr.c + src/wifi_mgr.c + src/util.c ) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../include) - ADD_DEFINITIONS("-DPKGNAME=\"${PROJECT_NAME}\"") ADD_DEFINITIONS("-DUG_PROXY_EDJ_FILE=\"${UG_PROXY_EDJE_DIR}/${UG_PROXY_EDJ_FILE}\"") diff --git a/ug/proxy/edje/images/ico_dropdown_menu_check.png b/ug/proxy/edje/images/ico_dropdown_menu_check.png index d32061e3f26a756ae7721c99edb3533edd3e15ba..9e7d114640bde4abbaac4165a1829ca15854f039 100644 GIT binary patch literal 17850 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 delta 228 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 Z?A^PZanHR#792U?V6)mf-)i&je*=kyrUd{1 delta 259 zcmV+e0sQ{rivg1YkQsjj0002}V%>BA000DMK}|sb0fwM4=$2mq007EKL_t(I%iWVb z4gp~lMeh((DVdrLAU41ngxCVX8pINmVhdsm60rdr5YZ})W+s`Vn2%(bpJqhjz3#qq zPxma8#}sn0d`mNuCxm>>V)==DA>?Ts$$8%nSHf9iM=mxibGducjkZ2DqQ=qS2b@>x zus7+E`gvF*;yGuU$z-}lRM-Kqr<%rDna@ztQbkSWr$O18Up~WMXdd}sJ2^!EMKb^Z002ov JPDHLkV1gi;ZSMd8 diff --git a/ug/proxy/edje/images/ico_spincontrol_up.png b/ug/proxy/edje/images/ico_spincontrol_up.png index 9adb1654d765617d3a47cce6940b15c7ba260ed7..f5b25873540507e3accfe8b0a377d73872511cb0 100644 GIT binary patch literal 17871 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 diff --git a/ug/proxy/edje/images/modal_dialogs_bg.png b/ug/proxy/edje/images/modal_dialogs_bg.png index b825c26ac096423670d23e6034147eba9d054d2f..0ae9c5875e9e2e4afddd42325caa8d72a01a0e46 100644 GIT binary patch literal 18657 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

uS12DDi@LizSbN$V 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 Zv3>&#P^vtFe}@MEIVokyYH^d${{iJKIxheK diff --git a/ug/wifi-direct/edje/images/loading_96_14.png b/ug/wifi-direct/edje/images/loading_96_14.png index af6e44975379bbda503e781a0929f735480c57cc..e648437fb6b3e1bf1b673cbf5e827c7c605e1034 100644 GIT binary patch literal 14991 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 sm?*5k3v^@4;mUad#0(NJ`k! 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�> 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 Z1^~pm;{}N@rK|t|002ovPDHLkV1iHHQ~3Y@ literal 12376 zcmV-eFsILnP)QC8+ikbwR}`EW*}Q@U2`D5{WMSZoQBV*Hf_#ez zLO?)B4hRtevgF_dge9clkYF4j4vulR+wHFIuIlP~-dp#1-skM+T5HZZ_^|dq_f)yM z>sIw`S2d|At#j^Ld*8j+n*TAz9OFO6m`BWvkH?2M^uxY^f858%0DQ>fV*ozn@i71& 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 KMNUMnLSTZSDcFtx diff --git a/ug/wifi-direct/edje/images/loading_96_17.png b/ug/wifi-direct/edje/images/loading_96_17.png index 260f1e7b47eb2c41be715c65321ab7aad48bac05..5f93920d3f35654b3287a2e778fa0567f7a8098e 100644 GIT binary patch literal 15112 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 N002ovPDHLkV1iMOfO7x< literal 12555 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 diff --git a/ug/wifi-direct/edje/images/round_rectangle_4X4.png b/ug/wifi-direct/edje/images/round_rectangle_4X4.png index b0c09a8d4272f4d2dcecb6a42070778feb997dd6..5a1f51d38f87ccd9c29476b13310fb47e158e57c 100644 GIT binary patch literal 18179 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 delta 129 zcmZqfW1Pe|L9&vCfq}tm#<|%*iY49A*O7s-ZGqv7Y4Je5r>Bc!2*>re3> diff --git a/ug/wifi-direct/edje/images/second_depth_bg.png b/ug/wifi-direct/edje/images/second_depth_bg.png index 602e2724c46424c7ad67cad0fb6f46ad2a5a6b3b..5b3c6243cce9d58310769c773fdbee3cb6b9b926 100644 GIT binary patch literal 22286 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 literal 3115 zcmeAS@N?(olHy`uVBq!ia0y~yU@>7}VA{jM0u(r4mpUpUR-};7vuN+9?pj{p7QNsIb?aaWc{9+XWuG$85|zfePdvF zuq*GgO*IokL8zV-gM(WJ1B2v3MuwCYHiij;qXMJhF`67kbHiw1Fj^Ll)(xXo<7mrZ zv|%*bE~I9&c&e%iLqpdE1_q;cAR(1q25ftqn9X-&Y&cfkH}m*SZH9)^k( + +#ifdef LOG_TAG +#undef LOG_TAG +#endif +#define LOG_TAG "ug-wifi-direct" + +#ifndef _ERR +#define _ERR(fmt, args...) LOGE("[%s:%d] "fmt"\n", __func__, __LINE__, ##args) +#endif + +#ifndef _DBG +#define _DBG(fmt, args...) LOGD("[%s:%d] "fmt"\n", __func__, __LINE__, ##args) +#endif + +#ifndef _INFO +#define _INFO(fmt, args...) LOGI("[%s:%d] "fmt"\n", __func__, __LINE__, ##args) +#endif + +#endif /* __DBG_H__ */ diff --git a/ug/wifi-direct/include/defs.h b/ug/wifi-direct/include/defs.h index 48db63a..a40c295 100644 --- a/ug/wifi-direct/include/defs.h +++ b/ug/wifi-direct/include/defs.h @@ -37,9 +37,6 @@ #define ELM_SCALE elm_config_scale_get() -/* View */ -#define WIFI_DIRECT_MAINVIEW "WIFI_DIRECT_MAINVIEW" - /*GROUP*/ #define GRP_MAIN "main_view" #define GRP_WIFI_DIRECT_SELECT "grp_wifi_direct_select" @@ -94,4 +91,22 @@ #define SIG_CLICKED "clicked" #define SIG_BTN_SELECTED "btn,selected" +/* Key defines */ +#define KEY_UP "Up" +#define KEY_DOWN "Down" +#define KEY_LEFT "Left" +#define KEY_RIGHT "Right" +#define KEY_EXIT "XF86Close" + +#define KEY_0 "0" +#define KEY_1 "1" +#define KEY_2 "2" +#define KEY_3 "3" +#define KEY_4 "4" +#define KEY_5 "5" +#define KEY_6 "6" +#define KEY_7 "7" +#define KEY_8 "8" +#define KEY_9 "9" + #endif /* __DEFS_H__ */ diff --git a/ug/wifi-direct/include/util.h b/ug/wifi-direct/include/util.h index 871e775..1de093a 100644 --- a/ug/wifi-direct/include/util.h +++ b/ug/wifi-direct/include/util.h @@ -17,10 +17,13 @@ #ifndef __UTIL_H__ #define __UTIL_H__ -Evas_Object *util_add_layout(Evas_Object *parent, const char *file, const char *group); -Evas_Object *util_add_button(Evas_Object *parent, const char *style, const char *part, const char *text); +Evas_Object *util_add_layout(Evas_Object *parent, const char *file, + const char *group); +Evas_Object *util_add_button(Evas_Object *parent, const char *style, + const char *part, const char *text); Evas_Object *util_add_box(Evas_Object *parent, const char *part); -Evas_Object *util_add_progressbar(Evas_Object *parent, const char *style, const char *part); +Evas_Object *util_add_progressbar(Evas_Object *parent, + const char *style, const char *part); void util_set_cycle_focus(Evas_Object **obj, int count); #endif /* __UTIL_H__ */ diff --git a/ug/wifi-direct/include/wifi_direct_mgr.h b/ug/wifi-direct/include/wifi_direct_mgr.h new file mode 100644 index 0000000..d448ed4 --- /dev/null +++ b/ug/wifi-direct/include/wifi_direct_mgr.h @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __WIFI_DIRECT_MGR_H__ +#define __WIFI_DIRECT_MGR_H__ + +#include "defs.h" +#include +#include +#include +#include +#include + +#define WIFI_DIRECT_DISCOVERY_LISTEN_AND_SCAN 0 +#define WIFI_DIRECT_SCAN_TIMEOUT 3 + +struct device_info { + char dev_name[WIFI_DIRECT_DEFAULT_BUF_LEN]; + char mac_addr[WIFI_DIRECT_DEFAULT_BUF_LEN]; + Eina_Bool is_conn; + int wps_types; + char wps_pin[WIFI_DIRECT_STATE_BUF_LEN]; + char state[WIFI_DIRECT_STATE_BUF_LEN]; +}; + +struct discovered_device_info { + char mac_addr[WIFI_DIRECT_DEFAULT_BUF_LEN]; + int conn_status; + int wps_types; + char wps_pin[WIFI_DIRECT_STATE_BUF_LEN]; +}; + +struct wifi_direct_cbs { + wifi_direct_device_state_changed_cb device_state_cb; + wifi_direct_discovery_state_chagned_cb discovery_state_cb; + wifi_direct_connection_state_changed_cb connection_state_cb; + wifi_direct_connected_peer_cb connected_peer_cb; + wifi_direct_discovered_peer_cb discovered_peer_cb; +}; + +const char *wifi_direct_mgr_err_dbg(int errcode); +char *wifi_direct_mgr_get_device_name(void); +char *wifi_direct_mgr_get_mac_address(void); +int wifi_direct_mgr_register_callback(struct wifi_direct_cbs *cbs, + void *data); +int wifi_direct_mgr_unregister_callback(void); +int wifi_direct_mgr_wifi_init(void); +int wifi_direct_mgr_wifi_fini(void); +int wifi_direct_mgr_wifi_direct_init(void); +int wifi_direct_mgr_wifi_direct_fini(void); +int wifi_direct_mgr_get_state(wifi_direct_state_e *status); +int wifi_direct_mgr_activate(void); +int wifi_direct_mgr_deactivate(void); +int wifi_direct_mgr_set_configure_num(void); +int wifi_direct_mgr_foreach_discovered_peers( + wifi_direct_discovered_peer_cb cb, void *data); +int wifi_direct_mgr_foreach_connected_peers( + wifi_direct_connected_peer_cb cb, void *data); +int wifi_direct_mgr_start_discovery(void); +int wifi_direct_mgr_cancel_discovery(void); +int wifi_direct_mgr_connect(const char *mac_addr); +int wifi_direct_mgr_disconnect(const char *mac_addr); +int wifi_direct_mgr_reject_connection(const char *mac_addr); +int wifi_direct_mgr_accept_connection(char *mac_addr); +int wifi_direct_mgr_get_wps_type(Eina_Bool *is_pbc); +int wifi_direct_mgr_set_wps_type(wifi_direct_wps_type_e *type); + +#endif /* __WIFI_DIRECT_MGR_H__ */ diff --git a/ug/wifi-direct/include/wifi_direct_view.h b/ug/wifi-direct/include/wifi_direct_view.h new file mode 100644 index 0000000..1fb28b4 --- /dev/null +++ b/ug/wifi-direct/include/wifi_direct_view.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __WIFI_DIRECT_VIEW_H__ +#define __WIFI_DIRECT_VIEW_H__ + +#include +#include + +Evas_Object *wifi_direct_view_create(Evas_Object *win, ui_gadget_h ug); + +#endif /* __WIFI_DIRECT_VIEW_H__ */ diff --git a/ug/wifi-direct/src/WifiDirectMainView.cpp b/ug/wifi-direct/src/WifiDirectMainView.cpp deleted file mode 100644 index 2a230f1..0000000 --- a/ug/wifi-direct/src/WifiDirectMainView.cpp +++ /dev/null @@ -1,1553 +0,0 @@ -#include -#include "defs.h" -#include -#include "util.h" - -#include "WifiDirectMgr.h" - - -#include "WifiDirectMainView.h" - -const char *action_button[] = { - TXT_REFRESH_BTN, - TXT_CLOSE_BTN, - TXT_STOP_BTN -}; - -const char *popup_button_on[] = { - TXT_ON_BTN, - TXT_OFF_BTN -}; - -static const char *popup_button_conn[] = { - TXT_CONNECT, - TXT_DISCONNECT -}; - -static const char *popup_button_req[] = { - TXT_YES, - TXT_NO -}; - -static const char *part_req[] = { - PART_YES, - PART_NO -}; - -enum action_btn_enum { - ACTION_BTN_REFRESH, - ACTION_BTN_CLOSE, - ACTION_BTN_STOP -}; -enum direct_swith_enum { - DIRECT_ON = 0, - DIRECT_OFF -}; - -struct SWifiDirectMainView { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - Evas_Object *genlist; - Evas_Object *on_btn; - Evas_Object *direct_popup; - Evas_Object *connect_popup; - Evas_Object *dim_ly; - Evas_Object *btn_refresh; - Evas_Object *btn_close; - Evas_Object *btn_stop; - Evas_Object *scan_ly; - Evas_Object *scan_pb; - Evas_Object *no_conn_ly; - Evas_Object *prog_popup; - Evas_Object *req_popup; - - Elm_Genlist_Item_Class *itc; - Elm_Object_Item *popup_item; - Eina_List *item_list; - Ecore_Timer *timer; - - int conn_idx; - int direct_on_flag; - int finish_flag; - char *req_addr; - - - CViewMgr *pViewMgr; - CWifiDirectMgr *pWifiDirectMgr; -}; - - -void CWifiDirectMainView::sm_CbDeviceStateChanged(int errcode, wifi_direct_device_state_e state, void *data) -{ - bool ret = false; - SWifiDirectMainView *m; - - if (!data) { - _ERR("The param is invalid."); - return; - } - - m = (SWifiDirectMainView *) data; - - if (state != WIFI_DIRECT_DEVICE_STATE_ACTIVATED) { - elm_genlist_clear(m->genlist); - return; - } - - ret = m->pWifiDirectMgr->SetMaxClient(); - if (ret != true) { - _ERR("set configure num failed."); - return; - } - - ret = m->pWifiDirectMgr->StartDiscovery(); - if (ret != true) - _ERR("start discovery failed."); -} - - -void CWifiDirectMainView::sm_CbDiscoveryStateChanged(int errcode, wifi_direct_discovery_state_e state, void *data) -{ - CWifiDirectMainView *instance = NULL; - - if (!state || !data) { - _ERR("data is invalid."); - return; - } - - instance = (CWifiDirectMainView *) data; - instance->m_OnDiscoveryStateChanged(errcode, state); -} - - -void CWifiDirectMainView::m_OnDiscoveryStateChanged(int errcode, wifi_direct_discovery_state_e state) -{ - switch (state) { - case WIFI_DIRECT_DISCOVERY_STARTED: - m_ProcessDiscoveryStart(); - break; - case WIFI_DIRECT_DISCOVERY_FOUND: - m_ProcessDiscoveryFound(); - break; - case WIFI_DIRECT_DISCOVERY_FINISHED: - m_ProcessDiscoveryFinish(); - break; - default: - break; - } -} - - -void CWifiDirectMainView::sm_CbConnectionStateChanged(int errcode, wifi_direct_connection_state_e state, const char *addr, void *data) -{ - CWifiDirectMainView *instance = NULL; - - if (!state || !data) { - _ERR("data is invalid."); - return; - } - - instance = (CWifiDirectMainView *) data; - instance->m_OnConnectionStateChanged(errcode, state, addr); -} - - -void CWifiDirectMainView::m_OnConnectionStateChanged(int errcode, wifi_direct_connection_state_e state, const char *addr) -{ - if (!state || !addr) { - _ERR("The param is invalid."); - return; - } - - switch (state) { - case WIFI_DIRECT_CONNECTION_REQ: - m_ProcessConnectionReq(addr); - break; - case WIFI_DIRECT_CONNECTION_IN_PROGRESS: - m_ProcessConnectionProg(); - break; - case WIFI_DIRECT_CONNECTION_RSP: - m_ProcessConnectionRsp(); - break; - case WIFI_DIRECT_DISCONNECTION_IND: - m_ProcessConnectionInd(); - break; - default: - break; - } -} - - -bool CWifiDirectMainView::sm_CbConnectedPeers(wifi_direct_connected_peer_info_s *conn_info, void *data) -{ - CWifiDirectMainView *instance = NULL; - - if (!data) { - _ERR("data is invalid."); - return false; - } - - instance = (CWifiDirectMainView *) data; - return instance->m_OnConnectedPeers(conn_info); -} - - -bool CWifiDirectMainView::m_OnConnectedPeers(wifi_direct_connected_peer_info_s *conn_info) -{ - struct device_info *info; - bool ret = false; - - if (!conn_info) { - _ERR("The param is NULL."); - return false; - } - - info = (struct device_info *) calloc(1, sizeof(*info)); - if (!info) { - _ERR("calloc failed."); - return false; - } - - strncpy(info->dev_name, conn_info->device_name, WIFI_DIRECT_DEFAULT_BUF_LEN); - strncpy(info->mac_addr, conn_info->mac_address, WIFI_DIRECT_DEFAULT_BUF_LEN); - info->is_conn = true; - - ret = m_UpdateGenlistItem(info); - if (ret != true) { - _ERR("update genlist view failed."); - free(info); - return false; - } - - return true; -} - - -bool CWifiDirectMainView::sm_CbDiscoverdPeers(wifi_direct_discovered_peer_info_s * discov_info, void *data) -{ - CWifiDirectMainView *instance = NULL; - - if (!data) { - _ERR("data is invalid."); - return false; - } - - instance = (CWifiDirectMainView *) data; - instance->m_OnDiscoverdPeers(discov_info); - return true; -} - - -bool CWifiDirectMainView::m_OnDiscoverdPeers(wifi_direct_discovered_peer_info_s * discov_info) -{ - struct device_info *info; - bool ret = false; - - if (!discov_info) { - _ERR("The param is invalid."); - return false; - } - - info = (struct device_info *) calloc(1, sizeof(*info)); - if (!info) { - _ERR("calloc failed."); - return false; - } - - strncpy(info->dev_name, discov_info->device_name, WIFI_DIRECT_DEFAULT_BUF_LEN); - strncpy(info->mac_addr, discov_info->mac_address, WIFI_DIRECT_DEFAULT_BUF_LEN); - info->is_conn = (Eina_Bool) discov_info->is_connected; - info->wps_types = discov_info->supported_wps_types; - - ret = m_UpdateGenlistItem(info); - if (ret != true) { - _ERR("update genlist view failed."); - free(info); - return false; - } - - return true; -} - - -char *CWifiDirectMainView::sm_GetItemLabel(void *data, Evas_Object *obj, const char *part) -{ - struct device_info *info; - char buf_name[WIFI_DIRECT_DEFAULT_BUF_LEN]; - - if (!data) { - _ERR("data is NULL."); - return NULL; - } - - info = (struct device_info *) data; - - memset(&buf_name, 0x00, WIFI_DIRECT_DEFAULT_BUF_LEN); - if (!strcmp(part, TXT_ELM_TEXT)) { - strncpy(buf_name, info->dev_name, WIFI_DIRECT_HALF_BUF_LEN); - strncat(buf_name, TXT_COLON, WIFI_DIRECT_COLON_LEN); - strncat(buf_name, info->state, WIFI_DIRECT_HALF_BUF_LEN); - - return strdup(buf_name); - } - - return NULL; -} - - -void CWifiDirectMainView::t_OnShow() -{ - _DBG(); - - evas_object_show(m->base); - - CBaseView::t_OnShow(); -} - - -void CWifiDirectMainView::t_OnUpdate(void *data) -{ - _DBG(); - - evas_object_show(m->base); -} - - -void CWifiDirectMainView::t_OnHide() -{ - _DBG(); - - evas_object_hide(m->base); - - CBaseView::t_OnHide(); -} - - -Eina_Bool CWifiDirectMainView::sm_CbConnectionInd(void *data) -{ - bool ret = false; - SWifiDirectMainView *m; - - if (!data) { - _ERR("the param is invalid."); - return ECORE_CALLBACK_CANCEL; - } - - m = (SWifiDirectMainView *) data; - - ret = m->pWifiDirectMgr->StartDiscovery(); - if (ret != true) - _ERR("start discovery failed."); - - m->timer = NULL; - - return ECORE_CALLBACK_CANCEL; -} - - -void CWifiDirectMainView::sm_CbGenlistItemSelected(void *data, Evas_Object *obj, void *event_info) -{ - CWifiDirectMainView *instance = NULL; - - if (!data) { - _ERR("data is invalid."); - return; - } - - instance = (CWifiDirectMainView *) data; - instance->m_OnGenlistItemSelected(obj, event_info); -} - - -void CWifiDirectMainView::m_OnGenlistItemSelected(Evas_Object *obj, void *event_info) -{ - Elm_Object_Item *gen_item; - Evas_Object *layout, *box, *item_btn; - Evas_Object *btn[BTN_DIRECT]; - struct device_info *info; - int cur_idx; - int i; - bool ret = false; - int btn_x, btn_y, btn_w, btn_h; - int move_x, move_y; - - if (!obj || !event_info) { - _ERR("The param is invalid."); - return; - } - - if (!m->dim_ly) { - ret = m_CreateWifiDirectDim(); - if (ret != true) { - Destroy(); - return; - } - } - - evas_object_show(m->dim_ly); - - gen_item = (Elm_Object_Item *) event_info; - m->popup_item = gen_item; - - layout = util_add_layout(m->base, UG_WIFI_DIRECT_EDJ_FILE, GRP_WIFI_DIRECT_SELECT); - if (!layout) { - _ERR("add connect popup failed."); - return; - } - - box = util_add_box(layout, PART_SWALLOW_CONTENT); - if (!box) { - _ERR("add box failed."); - evas_object_del(layout); - return; - } - - for (i = 0; i < BTN_DIRECT; i++) { - btn[i] = util_add_button(box, STYLE_POPUP_BUTTON, NULL, _(popup_button_conn[i])); - if (!btn[i]) { - _ERR("add connect btn failed."); - evas_object_del(layout); - return; - } - - elm_box_pack_end(box, btn[i]); -#if 0 - evas_object_event_callback_add(btn[i], EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); -#endif - } - //evas_object_smart_callback_add(btn[i], SIG_CLICKED, _item_conn_btn_clicked_cb, priv); - Connect(btn[0], 13); - Connect(btn[1], 14); - - cur_idx = elm_genlist_item_index_get(gen_item); - if (cur_idx < 0) - return; - - info = (struct device_info *) eina_list_nth(m->item_list, cur_idx); - if (!info) - return; - - if (info->is_conn) - elm_object_signal_emit(btn[DIRECT_ON], SIG_BTN_SELECTED, PROG); - else - elm_object_signal_emit(btn[DIRECT_OFF], SIG_BTN_SELECTED, PROG); - - util_set_cycle_focus(btn, BTN_DIRECT); - - item_btn = elm_object_item_track(gen_item); - if (!item_btn) { - _ERR("get genlist item track failed."); - evas_object_del(layout); - return; - } - - evas_object_geometry_get(item_btn, &btn_x, &btn_y, &btn_w, &btn_h); - - move_x = btn_x + btn_w - POPUP_WIDTH * HALF_SCALE - POPUP_RIGHT; - move_y = btn_y + btn_h; - evas_object_move(layout, move_x * ELM_SCALE, move_y * ELM_SCALE); - m->connect_popup = layout; - - //evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, _popup_back_pressed_cb, priv); - Connect(layout, 15); - - elm_object_focus_set(btn[0], EINA_TRUE); -} - - -bool CWifiDirectMainView::m_WifiDirectInit(void) -{ - - if(!CWifiDirectMgr::Initialize()) { - return false; - } - - m->pWifiDirectMgr = NULL; - m->pWifiDirectMgr = CWifiDirectMgr::GetInstance(); - ASSERT(m->pWifiDirectMgr); - - return true; -} - - -bool CWifiDirectMainView::m_RegisterWifiDirectCallback(void) -{ - if(!m->pWifiDirectMgr->SetDeviceStateChangedCb(sm_CbDeviceStateChanged, m)) { - return false; - } - - if(!m->pWifiDirectMgr->SetDiscoveryStateChangedCb(sm_CbDiscoveryStateChanged, this)) { - return false; - } - - if(!m->pWifiDirectMgr->SetConnectionStateChangedCb(sm_CbConnectionStateChanged, this)) { - return false; - } - return true; -} - - -void CWifiDirectMainView::m_UnRegisterWifiDirectCallback(void) -{ - m->pWifiDirectMgr->UnSetConnectionStateChangedCb(); - m->pWifiDirectMgr->UnSetDiscoveryStateChangedCb(); - m->pWifiDirectMgr->UnSetDeviceStateChangedCb(); - m->pWifiDirectMgr->UnSetClientIpAddrAssignedCb(); -} - - -bool CWifiDirectMainView::m_CreateButton(void) -{ - Evas_Object *on_btn; - - on_btn = util_add_button(m->base, STYLE_WIFI_DIRECT_BTN, PART_WIFI_DIRECT_ON, TXT_WIFI_DIRECT); - if (!on_btn) { - _ERR("Add wifi direct button failed."); - return false; - } - - elm_object_focus_allow_set(on_btn, EINA_TRUE); - elm_object_focus_set(on_btn, EINA_TRUE); - elm_object_focus_next_object_set(on_btn, on_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(on_btn, on_btn, ELM_FOCUS_LEFT); - - //evas_object_smart_callback_add(on_btn, SIG_CLICKED, _wifi_direct_btn_clicked_cb, priv); -#if 0 - evas_object_event_callback_add(on_btn, EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); -#endif - Connect(m->on_btn, 1); - m->on_btn = on_btn; - - m_RefreshOnText(); - - return true; -} - - -bool CWifiDirectMainView::m_CreateGenlist(void) -{ - Evas_Object *genlist; - Elm_Genlist_Item_Class *itc; - - genlist = elm_genlist_add(m->base); - if (!genlist) { - _ERR("add genlist failed."); - return false; - } - - itc = elm_genlist_item_class_new(); - if (!itc) { - _ERR("genlist item class new failed."); - evas_object_del(genlist); - return false; - } - - m->genlist = genlist; - - itc->item_style = STYLE_TEXT_ICON; - itc->func.text_get = sm_GetItemLabel; - itc->func.content_get = NULL; - itc->func.state_get = NULL; - itc->func.del = NULL; - - m->itc = itc; - - evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_object_focus_next_object_set(genlist, genlist, ELM_FOCUS_LEFT); - - return true; -} - - -bool CWifiDirectMainView::m_CreateActionBtns(void) -{ - Evas_Object *btn_refresh; - Evas_Object *btn_close; - - btn_refresh = util_add_button(m->base, STYLE_ACTION_BUTTON, PART_REFRESH_BTN, _(action_button[ACTION_BTN_REFRESH])); - btn_close = util_add_button(m->base, STYLE_ACTION_BUTTON, PART_CLOSE_BTN, _(action_button[ACTION_BTN_CLOSE])); - - m->btn_refresh = btn_refresh; - m->btn_close = btn_close; - -#if 0 - evas_object_event_callback_add(m->btn_refresh, EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); - evas_object_event_callback_add(m->btn_close, EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); -#endif - //evas_object_smart_callback_add(m->btn_refresh, SIG_CLICKED, _refresh_btn_clicked_cb, priv); - //evas_object_smart_callback_add(m->btn_close, SIG_CLICKED, _close_btn_clicked_cb, priv); - Connect(m->btn_refresh, 4); - Connect(m->btn_close, 5); - - return true; -} - - -bool CWifiDirectMainView::m_CreateDeviceListView(void) -{ - wifi_direct_state_e status; - bool ret = false; - - if (m->no_conn_ly) - evas_object_hide(m->no_conn_ly); - - ret = m->pWifiDirectMgr->GetState(&status); - if (ret != true) { - _ERR("get state failed."); - return false; - } - - if (status < WIFI_DIRECT_STATE_ACTIVATED) { - ret = m->pWifiDirectMgr->Activate(); - if (ret != true) { - _ERR("activate failed."); - return false; - } - } else { - ret = m->pWifiDirectMgr->SetMaxClient(); - if (ret != true) { - _ERR("set configure num failed."); - return false; - } - - ret = m->pWifiDirectMgr->StartDiscovery(); - if (ret != true) { - _ERR("start discovery failed."); - return false; - } - } - - m_FillContentPart(m->genlist); - - elm_object_focus_set(m->btn_refresh, EINA_TRUE); - return true; -} - - -void CWifiDirectMainView::m_FillContentPart(Evas_Object *obj) -{ - Evas_Object *old_obj; - - old_obj = elm_object_part_content_get(m->base, PART_GENLIST_ITEMS); - if (old_obj) { - elm_object_part_content_unset(m->base, PART_GENLIST_ITEMS); - evas_object_hide(old_obj); - } - - elm_object_part_content_set(m->base, PART_GENLIST_ITEMS, obj); - evas_object_show(obj); -} - - -bool CWifiDirectMainView::m_DisplayDisconnect(void) -{ - bool ret = false; - - if (!m->no_conn_ly) { - ret = m_CreateDisconnectPart(); - if (ret != true) { - _ERR("m_CreateDisconnectPart() failed."); - return false; - } - } - - m_FillContentPart(m->no_conn_ly); - - elm_object_part_content_unset(m->base, PART_REFRESH_BTN); - evas_object_hide(m->btn_refresh); - elm_object_part_content_set(m->base, PART_REFRESH_BTN, m->btn_close); - evas_object_show(m->btn_close); - - //evas_object_smart_callback_add(m->btn_close, SIG_CLICKED, _close_btn_clicked_cb, priv); - Connect(m->btn_close, 6); -#if 0 - evas_object_event_callback_add(m->btn_close, EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); -#endif - return true; -} - - -bool CWifiDirectMainView::m_CreateDisconnectPart(void) -{ - Evas_Object *ly; - - ly = util_add_layout(m->base, UG_WIFI_DIRECT_EDJ_FILE, GRP_WIFIDIRECT_DISCONNECT_LY); - if (!ly) { - _ERR("Add noconnect_ly failed."); - return false; - } - - elm_object_part_text_set(ly, PART_DISCONNECT_TEXT, TXT_WIFIDIRECT_NONE); - - m->no_conn_ly = ly; - evas_object_hide(ly); - - return true; -} - - -void CWifiDirectMainView::m_RefreshOnText(void) -{ - if (m->scan_ly) - evas_object_hide(m->scan_ly); - - if (m->direct_on_flag == DIRECT_ON) - elm_object_part_text_set(m->on_btn, PART_WIFI_DIRECT_SELECT, _(popup_button_on[DIRECT_ON])); - else - elm_object_part_text_set(m->on_btn, PART_WIFI_DIRECT_SELECT, _(popup_button_on[DIRECT_OFF])); -} - - -void CWifiDirectMainView::m_ProcessDiscoveryStart(void) -{ - bool ret = false; - struct device_info *info; - void *obj; - - if (m->genlist) - elm_genlist_clear(m->genlist); - - if (m->item_list) - EINA_LIST_FREE(m->item_list, obj) - { - info = (struct device_info *) obj; - free(info); - } - - ret = m->pWifiDirectMgr->GetAllConnectedPeerInfo(sm_CbConnectedPeers, this); - if (ret != true) { - _ERR("foreach connected peers failed "); - return; - } - - ret = m_CreateWifiDirectScan(); - if (ret != true) - _ERR("m_CreateWifiDirectScan() failed "); -} - - -void CWifiDirectMainView::m_ProcessDiscoveryFound(void) -{ - bool ret = false; - - ret = m->pWifiDirectMgr->GetAllDicoveredPeerInfo(sm_CbDiscoverdPeers, this); - if (ret != true) - _ERR("foreach connected peers failed "); -} - - -void CWifiDirectMainView::m_ProcessDiscoveryFinish(void) -{ - elm_object_part_content_unset(m->base, PART_REFRESH_BTN); - evas_object_hide(m->btn_stop); - - m_ShowActionBtn(); - - m_FillContentPart(m->genlist); -} - - -void CWifiDirectMainView::m_ProcessConnectionReq(const char *addr) -{ - Eina_Bool is_pbc; - bool ret = false; - - if (!addr) { - _ERR("the param is invalid."); - return; - } - - ret = m->pWifiDirectMgr->GetWPStype(&is_pbc); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("Get wps type failed."); - return; - } - - m->req_addr = strdup(addr); - if (!m->req_addr) { - _ERR("strdup wrong."); - return; - } - - if (is_pbc) { - ret = m_CreateReqPopupLayout(); - if (ret != true) - _ERR("Create rep popup failed."); - } -} - - -void CWifiDirectMainView::m_ProcessConnectionProg(void) -{ - Evas_Object *layout; - char title[MAX_STRING_LENTH]; - int x, y, w, h; - int move_x, move_y; - - if (m->dim_ly) - evas_object_show(m->dim_ly); - - layout = util_add_layout(m->base, UG_WIFI_DIRECT_EDJ_FILE, GRP_CONNECT_ACCEPT); - if (!layout) { - _ERR("add con_popup layout failed."); - return; - } - - memset(&title, 0x00, MAX_STRING_LENTH); - snprintf(title, MAX_STRING_LENTH - 1, "%s", TXT_CONN_PROG); - elm_object_part_text_set(layout, PART_TITLE, title); - - evas_object_geometry_get(m->on_btn, &x, &y, &w, &h); - move_x = x + w - POPUP_WIDTH * HALF_SCALE - POPUP_RIGHT; - move_y = y + CENTER_HEIGHT; - evas_object_move(layout, move_x * ELM_SCALE, move_y * ELM_SCALE); - - m->prog_popup = layout; -} - - -void CWifiDirectMainView::m_ProcessConnectionRsp(void) -{ - struct device_info *info; - int cur_index; - - cur_index = m->conn_idx; - info = (struct device_info *) eina_list_nth(m->item_list, cur_index); - if (!info) - return; - - info->is_conn = true; - strncpy(info->state, TXT_CONNECT, WIFI_DIRECT_STATE_BUF_LEN); - - elm_genlist_item_update(m->popup_item); - - if (m->dim_ly) - evas_object_hide(m->dim_ly); - - if (m->prog_popup) { - evas_object_del(m->prog_popup); - m->prog_popup = NULL; - } - - if (m->connect_popup) { - evas_object_del(m->connect_popup); - m->connect_popup = NULL; - } -} - - -void CWifiDirectMainView::m_ProcessConnectionInd(void) -{ - Ecore_Timer *timer; - - timer = ecore_timer_add(HANDLER_INTERVAL, sm_CbConnectionInd, m); - if (!timer) { - _ERR("add timer failed."); - return; - } - - m->timer = timer; -} - - -bool CWifiDirectMainView::m_CreateWifiDirectScan(void) -{ - Evas_Object *ly; - Evas_Object *pb; - Evas_Object *btn; - - - ly = util_add_layout(m->base, UG_WIFI_DIRECT_EDJ_FILE, - GRP_WIFIDIRECT_SCAN_LY); - if (!ly) { - _ERR("Add scan_ly failed."); - return false; - } - - m->scan_ly = ly; - - elm_object_part_content_unset(m->base, PART_REFRESH_BTN); - evas_object_hide(m->btn_refresh); - - elm_object_part_content_unset(m->base, PART_CLOSE_BTN); - evas_object_hide(m->btn_close); - - pb = util_add_progressbar(ly, STYLE_SEARCH_PROGRESS, PART_SEARCH_IMAGE); - if (!pb) { - _ERR("Add progressbar failed."); - goto error; - } - - btn = util_add_button(m->base, STYLE_ACTION_BUTTON, PART_REFRESH_BTN, _(action_button[ACTION_BTN_STOP])); - if (!btn) { - _ERR("Add stop button failed."); - goto error; - } - - m->scan_pb = pb; - m->btn_stop = btn; - - elm_object_focus_set(m->btn_stop, EINA_TRUE); -#if 0 - evas_object_event_callback_add(m->btn_stop, EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); -#endif - //evas_object_smart_callback_add(m->btn_stop, SIG_CLICKED, _stop_btn_clicked_cb, priv); - Connect(m->btn_stop, 7); - - m_FillContentPart(m->scan_ly); - - return true; - -error: - evas_object_del(ly); - return false; -} - - -void CWifiDirectMainView::m_ShowActionBtn(void) -{ - Evas_Object *btn; - - if (!m->btn_refresh || !m->btn_close) { - _ERR("action btn NULL!"); - return; - } - - btn = elm_object_part_content_get(m->base, PART_REFRESH_BTN); - if (btn) { - elm_object_part_content_unset(m->base, PART_REFRESH_BTN); - evas_object_hide(btn); - } - - elm_object_part_content_set(m->base, PART_REFRESH_BTN, m->btn_refresh); - evas_object_show(m->btn_refresh); - - elm_object_part_content_set(m->base, PART_CLOSE_BTN, m->btn_close); - evas_object_show(m->btn_close); - - //evas_object_smart_callback_add(m->btn_refresh, SIG_CLICKED, _refresh_btn_clicked_cb, priv); - //evas_object_smart_callback_add(m->btn_close, SIG_CLICKED, _close_btn_clicked_cb, priv); - Connect(m->btn_refresh, 8); - Connect(m->btn_close, 9); -#if 0 - evas_object_event_callback_add(m->btn_refresh, EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); - evas_object_event_callback_add(m->btn_close, EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); -#endif -} - - -bool CWifiDirectMainView::m_UpdateGenlistItem(device_info *info) -{ - bool exist; - - if (!info) { - _ERR("The param is invalid."); - return false; - } - - exist = m_IsPeerExist(info); - if (!exist) { - m->item_list = eina_list_append(m->item_list, info); - - if (info->is_conn) - strncpy(info->state, TXT_CONNECT, WIFI_DIRECT_STATE_BUF_LEN); - else - strncpy(info->state, TXT_DISCONNECT, WIFI_DIRECT_STATE_BUF_LEN); - - elm_genlist_item_append(m->genlist, m->itc, info, NULL, ELM_GENLIST_ITEM_NONE, sm_CbGenlistItemSelected, (void *)this); - } - - return true; -} - - -bool CWifiDirectMainView::m_IsPeerExist(device_info *new_info) -{ - struct device_info *cur_info; - void *obj; - Eina_List *l; - - if (!new_info) { - _ERR("The param is invalid."); - return false; - } - - if (!m->item_list) { - _ERR("The list is NULL now."); - return false; - } - - EINA_LIST_FOREACH(m->item_list, l, obj) { - cur_info = (struct device_info *) obj; - if (!strncmp(cur_info->mac_addr, new_info->mac_addr, WIFI_DIRECT_DEFAULT_BUF_LEN - 1)) - return true; - } - - return false; -} - - -bool CWifiDirectMainView::m_CreateReqPopupLayout(void) -{ - Evas_Object *layout; - Evas_Object *btn[BTN_DIRECT]; - int i, x, y, w, h; - - if (!m->base) { - _ERR("the param is invalid."); - return false; - } - - layout = util_add_layout(m->base, UG_WIFI_DIRECT_EDJ_FILE, GRP_CONNECT_ACCEPT); - if (!layout) { - _ERR("elm_layout_add() failed."); - return false; - } - - for (i = 0; i < BTN_DIRECT; i++) { - btn[i] = util_add_button(layout, STYLE_POPUP_BUTTON, part_req[i], _(popup_button_req[i])); - if (!btn[i]) { - _ERR("add btn req failed."); - evas_object_del(layout); - return false; - } - -#if 0 - evas_object_event_callback_add(btn[i], EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); -#endif - } - //evas_object_smart_callback_add(btn[i], SIG_CLICKED, _req_btn_clicked_cb, priv); - Connect(btn[0], 10); - Connect(btn[1], 11); - - evas_object_geometry_get(m->genlist, &x, &y, &w, &h); - evas_object_move(layout, (x + RSP_X) * ELM_SCALE, (y + RSP_Y) * ELM_SCALE); - - m->req_popup = layout; - - elm_object_focus_set(btn[DIRECT_ON], EINA_TRUE); - - //evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, _popup_back_pressed_cb, priv); - Connect(layout, 12); - - return true; -} - - -bool CWifiDirectMainView::m_UpdateDeviceConnState(bool conn) -{ - struct device_info *cur_info; - void *obj; - Eina_List *l; - - EINA_LIST_FOREACH(m->item_list, l, obj) { - cur_info = (struct device_info *) obj; - if (!strncmp(cur_info->mac_addr, m->req_addr, WIFI_DIRECT_DEFAULT_BUF_LEN - 1)) { - cur_info->is_conn = conn; - return true; - } - } - - return false; -} - - -bool CWifiDirectMainView::m_WifiDirectCbBtnConnect(struct device_info *info, int is_conn) -{ - int ret = -1; - wifi_direct_wps_type_e wps_type; - - if (!info) { - _ERR("parameter is NULL!"); - return false; - } - - if (is_conn) { - if ((info->wps_types & WIFI_DIRECT_WPS_TYPE_PBC) == WIFI_DIRECT_WPS_TYPE_PBC) - wps_type = WIFI_DIRECT_WPS_TYPE_PBC; - else if ((info->wps_types & WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD) == WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD) - wps_type = WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD; - else if ((info->wps_types & WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY) == WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY) - wps_type = WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY; - - ret = m->pWifiDirectMgr->SetWPStype(&wps_type); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct set wps type failev!"); - return false; - } - - ret = m->pWifiDirectMgr->Connect(info->mac_addr); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct_connect:%s fail!", info->dev_name); - return false; - } - } else { - ret = m->pWifiDirectMgr->Disconnect(info->mac_addr); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct_disconnect:%s fail!", info->dev_name); - return false; - } - } - return true; -} - - -bool CWifiDirectMainView::m_CreateWifiDirectDim(void) -{ - Evas_Object *ly; - - ly = util_add_layout(m->base, UG_WIFI_DIRECT_EDJ_FILE, GRP_DIM_LY); - if (!ly) { - _ERR("Add dim layout failed."); - return false; - } - - m->dim_ly = ly; - - evas_object_hide(ly); - - return true; -} - - -bool CWifiDirectMainView::Create(void *data) -{ - _DBG(); - ASSERT(!m); - - _CREATE_BEGIN{ - _CHECK(m = new SWifiDirectMainView) - _CHECK(m->win = CViewMgr::GetInstance()->Window()) - _CHECK(m_WifiDirectInit()) - _CHECK(m_RegisterWifiDirectCallback()) - _CHECK(m->base = util_add_layout(m->win, UG_WIFI_DIRECT_EDJ_FILE, GRP_MAIN)) - _CHECK(m_CreateButton()) - _CHECK(m_CreateGenlist()) - _CHECK(m_CreateActionBtns()) - _CHECK(m_CreateDeviceListView()) - _COMMAND { - char descrption[MAX_STRING_LENTH]; - memset(&descrption, 0x00, MAX_STRING_LENTH); - snprintf(descrption, MAX_STRING_LENTH - 1, "%s", TXT_WIFI_DIRECT_DISC); - elm_object_part_text_set(m->base, PART_DESCRIPTION, descrption); - } - _WHEN_SUCCESS { - m->pViewMgr = CViewMgr::GetInstance(); - //evas_object_event_callback_add(base, EVAS_CALLBACK_KEY_DOWN, _base_layout_key_down_cb, priv); - Connect(m->base, 0); - evas_object_show(m->base); - } - _CHECK_FAIL{/* m_CreateDeviceListView() */} - _CHECK_FAIL{/* m_CreateActionBtns() */} - _CHECK_FAIL{/* m_CreateGenlist() */} - _CHECK_FAIL{/* m_CreateButton() */} - _CHECK_FAIL{ evas_object_del(m->base); } - _CHECK_FAIL{m_UnRegisterWifiDirectCallback();} - _CHECK_FAIL{CWifiDirectMgr::Finalize();} - _CHECK_FAIL{/* m->win = CViewMgr::GetInstance()->Window() */} - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - return true; -} - - -void CWifiDirectMainView::Destroy() -{ - ASSERT(m); - _DBG(); - - struct device_info *info; - void *obj; - - if (!m->item_list) - EINA_LIST_FREE(m->item_list, obj) - { - info = (struct device_info *) obj; - free(info); - } - - if (m->dim_ly) - evas_object_del(m->dim_ly); - - if (m->scan_ly) - evas_object_del(m->scan_ly); - - if (m->timer) - ecore_timer_del(m->timer); - - m_UnRegisterWifiDirectCallback(); - CWifiDirectMgr::Finalize(); - - if (m->base) - evas_object_del(m->base); - - CBaseView::Destroy(); - delete m; - m = NULL; -} - - -Evas_Object* CWifiDirectMainView::Base(void) -{ - ASSERT(m); - - return m->base; -} - - -void CWifiDirectMainView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) -{ - /* ID list */ - /* 0 m->base */ - /* 1 */ - - if (!ev->keyname) { - _ERR("ev->keyname is NULL."); - return; - } - - switch(id) { - case 0: - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE) || !strcmp(ev->keyname, KEY_EXIT)) { - ug_destroy_me(m->ug); - } - break; - case 12: - case 15: - case 16: - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - if (m->dim_ly) - evas_object_hide(m->dim_ly); - - evas_object_del(obj); - } - break; - default: - break; - } -} - - -void CWifiDirectMainView::OnMouseClicked(int id, Evas_Object *obj) -{ - switch(id) { - case 1: - { - Evas_Object *layout; - Evas_Object *box; - Evas_Object *btn[BTN_DIRECT]; - int i; - int btn_x, btn_y, btn_w, btn_h; - int move_x, move_y; - - if (!m->dim_ly) { - m->dim_ly = util_add_layout(m->base, UG_WIFI_DIRECT_EDJ_FILE, GRP_DIM_LY); - if (!m->dim_ly) { - _ERR("Add dim layout failed."); - Destroy(); - return ; - } - evas_object_hide(m->dim_ly); - } - - evas_object_show(m->dim_ly); - - layout = util_add_layout(m->base, UG_WIFI_DIRECT_EDJ_FILE, GRP_WIFI_DIRECT_SELECT); - if (!layout){ - _ERR("Fail to add layout"); - return; - } - - elm_object_focus_allow_set(layout, EINA_TRUE); - - box = util_add_box(layout, PART_SWALLOW_CONTENT); - if (!box) { - _ERR("Fail to add box"); - evas_object_del(layout); - return; - } - - for (i = 0; i < BTN_DIRECT; i++) { - btn[i] = util_add_button(box, STYLE_POPUP_BUTTON, NULL, _(popup_button_on[i])); - if (!btn[i]) { - _ERR("add btn direct failed."); - evas_object_del(layout); - return; - } - - elm_box_pack_end(box, btn[i]); -#if 0 - evas_object_event_callback_add(btn[i], EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); -#endif - } - //evas_object_smart_callback_add(btn[0], SIG_CLICKED, _wifi_direct_select_btn_cb, priv); - //evas_object_smart_callback_add(btn[1], SIG_CLICKED, _wifi_direct_select_btn_cb, priv); - Connect(btn[0], 2); - Connect(btn[1], 3); - - if (m->direct_on_flag == DIRECT_ON) - elm_object_signal_emit(btn[DIRECT_ON], SIG_BTN_SELECTED, PROG); - else - elm_object_signal_emit(btn[DIRECT_OFF], SIG_BTN_SELECTED, PROG); - - util_set_cycle_focus(btn, BTN_DIRECT); - - evas_object_geometry_get(m->on_btn, &btn_x, &btn_y, &btn_w, &btn_h); - move_x = btn_x + btn_w - POPUP_WIDTH * HALF_SCALE - POPUP_RIGHT; - move_y = btn_y + btn_h; - evas_object_move(layout, move_x * ELM_SCALE, move_y * ELM_SCALE); - - m->direct_popup = layout; - - //evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, _popup_back_pressed_cb, priv); - Connect(layout, 16); - - elm_object_focus_set(btn[0], EINA_TRUE); - } - break; - case 2: - case 3: - { - struct device_info *info; - void *temp_obj; - const char *value; - bool ret = false; - - value = (const char *) elm_object_text_get(obj); - if (!value) { - _ERR("get text from network type btn is NULL."); - return; - } - - if (!strcmp(value, popup_button_on[DIRECT_ON])) { - if (m->direct_on_flag == DIRECT_OFF) { - m->direct_on_flag = DIRECT_ON; - - elm_genlist_clear(m->genlist); - - if (m->item_list) - EINA_LIST_FREE(m->item_list, temp_obj) - { - info = (struct device_info *) temp_obj; - free(info); - } - - m_CreateDeviceListView(); - - m_ShowActionBtn(); - } - } else { - m->direct_on_flag = DIRECT_OFF; - - ret = m_DisplayDisconnect(); - if (ret != true) { - _ERR("m_DisplayDisconnect() failed."); - return; - } - - ret = m->pWifiDirectMgr->Deactivate(); - if (ret != true) { - _ERR("wif direct deactivate failed."); - return; - } - } - - m_RefreshOnText(); - - if (m->direct_popup) { - evas_object_del(m->direct_popup); - m->direct_popup = NULL; - } - - if (m->dim_ly) - evas_object_hide(m->dim_ly); - - } - break; - case 4: - case 8: - { - struct device_info *info; - void *temp_obj; - - if (m->scan_ly) - evas_object_hide(m->scan_ly); - - elm_genlist_clear(m->genlist); - - if (m->item_list) - EINA_LIST_FREE(m->item_list, temp_obj) - { - info = (struct device_info *) temp_obj; - free(info); - } - - m_CreateDeviceListView(); - } - break; - case 5: - case 6: - case 9: - ug_destroy_me(m->ug); - Destroy(); - break; - case 7: - { - bool ret = false; - Evas_Object *btn; - - ret = m->pWifiDirectMgr->CancelDiscovery(); - if (ret != true) { - _ERR("Cancel disconery failed."); - return; - } - - btn = elm_object_part_content_get(m->base, PART_REFRESH_BTN); - if (btn) { - elm_object_part_content_unset(m->base, PART_REFRESH_BTN); - evas_object_hide(btn); - } - - m_ShowActionBtn(); - - m_FillContentPart(m->genlist); - } - break; - case 10: - case 11: - { - const char *value; - bool ret = false; - - if (!obj) { - _ERR("The param is invalid."); - return; - } - - value = elm_object_text_get(obj); - if (!value) { - _ERR("get text from network type btn is NULL."); - return; - } - - if (!strcmp(value, popup_button_req[DIRECT_ON])) { - ret = m->pWifiDirectMgr->AcceptConnection(m->req_addr); - if (ret != true) { - _ERR("Disconnection failed."); - return; - } - - ret = m_UpdateDeviceConnState(true); - if (ret != true) - _ERR("m_UpdateDeviceConnState() failed."); - } else { -#if 0 - ret = m->pWifiDirectMgr->RejectConnection(m->req_addr); - if (ret != true) { - _ERR("Accept connection failed."); - return; - } -#endif - - ret = m_UpdateDeviceConnState(false); - if (ret != true) - _ERR("m_UpdateDeviceConnState() failed."); - } - - free(m->req_addr); - m->req_addr = NULL; - - if (m->req_popup) { - evas_object_del(m->req_popup); - m->req_popup = NULL; - } - - if (m->dim_ly) - evas_object_hide(m->dim_ly); - - } - break; - case 13: - case 14: - { - const char *value; - bool ret = false; - Elm_Object_Item *gen_item; - struct device_info *info; - int cur_idx; - - if (!obj) { - _ERR("the param is invalid."); - return; - } - - value = elm_object_text_get(obj); - if (!value) { - _ERR("get text from wifi_direct device btn is NULL."); - return; - } - - gen_item = m->popup_item; - - cur_idx = elm_genlist_item_index_get(gen_item); - if (cur_idx < 0) - return; - - info = (struct device_info *) eina_list_nth(m->item_list, cur_idx); - if (!info) - return; - - if (!strcmp(value, TXT_CONNECT)) { - ret = m_WifiDirectCbBtnConnect(info, CONN_YES); - if (ret == false) { - _ERR("Connect failed"); - return; - } - - info->is_conn = true; - } else if (!strcmp(value, TXT_DISCONNECT)) { - ret = m_WifiDirectCbBtnConnect(info, CONN_NO); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct_mgr_disconnect failed,,%s", - info->mac_addr); - return; - } - - strncpy(info->state, TXT_DISCONNECT, WIFI_DIRECT_STATE_BUF_LEN); - info->is_conn = false; - } - - if (m->direct_popup) { - evas_object_del(m->direct_popup); - m->direct_popup = NULL; - } - - if (m->connect_popup) { - evas_object_del(m->connect_popup); - m->connect_popup = NULL; - } - - if (m->dim_ly) - evas_object_hide(m->dim_ly); - } - break; - default: - break; - } -} - - -void CWifiDirectMainView::OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item) -{ - switch(id) { - case 0: - break; - default: - break; - } -} - diff --git a/ug/wifi-direct/src/ug_wifi_direct.cpp b/ug/wifi-direct/src/ug_wifi_direct.c similarity index 84% rename from ug/wifi-direct/src/ug_wifi_direct.cpp rename to ug/wifi-direct/src/ug_wifi_direct.c index c14014b..6a5d359 100644 --- a/ug/wifi-direct/src/ug_wifi_direct.cpp +++ b/ug/wifi-direct/src/ug_wifi_direct.c @@ -18,24 +18,16 @@ #define UG_MODULE_API __attribute__ ((visibility("default"))) #endif +#include #include -#include -#include "defs.h" #include "i18n.h" - -#include "wifi.h" -#include "WifiDirectMainView.h" - -#if defined (__cplusplus) -extern "C" { -#endif +#include "dbg.h" +#include "wifi_direct_view.h" struct _ug_data { Evas_Object *win; Evas_Object *base; ui_gadget_h ug; - CViewMgr *pViewMgr; - CWifiDirectMainView *pWifiDirectMainView; }; /** @@ -55,6 +47,7 @@ static void *_on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv) { struct _ug_data *ugd; + Evas_Object *base; Evas_Object *win; if (!ug || !priv) { @@ -62,12 +55,12 @@ static void *_on_create(ui_gadget_h ug, enum ug_mode mode, return NULL; } - ugd = (struct _ug_data *) priv; + ugd = priv; ugd->ug = ug; elm_theme_extension_add(NULL, UG_WIFI_DIRECT_EDJ_THEME); - win = (Evas_Object *) ug_get_window(); + win = ug_get_window(); if (!win) { _ERR("window get failed"); return NULL; @@ -77,24 +70,16 @@ static void *_on_create(ui_gadget_h ug, enum ug_mode mode, elm_win_focus_highlight_enabled_set(win, EINA_TRUE); elm_win_focus_highlight_style_set(win, "invisible"); - CViewMgr::Initialize(ugd->win, NULL); - ugd->pViewMgr = CViewMgr::GetInstance(); - if(!ugd->pViewMgr) { - CViewMgr::Finalize(); - _ERR("Fail to get CViewMgr instance"); + base = wifi_direct_view_create(win, ug); + if (!base) { + _ERR("add base layout failed."); return NULL; } - ugd->pWifiDirectMainView = new CWifiDirectMainView(WIFI_DIRECT_MAINVIEW); - if(!ugd->pViewMgr->AddView(ugd->pWifiDirectMainView)) { - _ERR("Fail to add pFbBaseView"); - CViewMgr::Finalize(); - return false; - } - ugd->pViewMgr->PushView(WIFI_DIRECT_MAINVIEW, NULL); - ugd->base = ugd->pWifiDirectMainView->Base(); + ugd->base = base; + evas_object_raise(base); - return ugd->base; + return base; } /** @@ -147,7 +132,6 @@ static void _on_resume(ui_gadget_h ug, service_h service, void *priv) */ static void _on_destroy(ui_gadget_h ug, service_h service, void *priv) { - CViewMgr::Finalize(); } /** @@ -217,7 +201,7 @@ UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) if (!ops) return -1; - ugd = (struct _ug_data *) calloc(1, sizeof(*ugd)); + ugd = calloc(1, sizeof(*ugd)); if (!ugd) return -1; @@ -252,10 +236,6 @@ UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops) if (!ops) return; - ugd = (struct _ug_data *) ops->priv; + ugd = ops->priv; free(ugd); } - -#if defined (__cplusplus) -}; -#endif diff --git a/ug/wifi-direct/src/util.cpp b/ug/wifi-direct/src/util.c similarity index 99% rename from ug/wifi-direct/src/util.cpp rename to ug/wifi-direct/src/util.c index 0d9fe6b..961c90b 100644 --- a/ug/wifi-direct/src/util.cpp +++ b/ug/wifi-direct/src/util.c @@ -19,7 +19,7 @@ #include #include "i18n.h" #include "defs.h" -#include +#include "dbg.h" #include "util.h" /** diff --git a/ug/wifi-direct/src/wifi_direct_mgr.c b/ug/wifi-direct/src/wifi_direct_mgr.c new file mode 100644 index 0000000..02cf4a3 --- /dev/null +++ b/ug/wifi-direct/src/wifi_direct_mgr.c @@ -0,0 +1,612 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include "defs.h" +#include "dbg.h" +#include "wifi_direct_mgr.h" + +#define LOCAL_MAX_CLIENT 8 + +/** +* Convert the error code to the corresponding string. +* +* @param[in] errcode the wifi direct error code bypassed +* @return the error description +*/ +const char *wifi_direct_mgr_err_dbg(int errcode) +{ + switch (errcode) { + case WIFI_DIRECT_ERROR_OUT_OF_MEMORY: + return "WIFI_DIRECT_ERROR_OUT_OF_MEMORY"; + break; + case WIFI_DIRECT_ERROR_NOT_PERMITTED: + return "WIFI_DIRECT_ERROR_NOT_PERMITTED"; + break; + case WIFI_DIRECT_ERROR_INVALID_PARAMETER: + return "WIFI_DIRECT_ERROR_INVALID_PARAMETER"; + break; + case WIFI_DIRECT_ERROR_RESOURCE_BUSY: + return "WIFI_DIRECT_ERROR_RESOURCE_BUSY"; + break; + case WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT: + return "WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT"; + break; + case WIFI_DIRECT_ERROR_NOT_INITIALIZED: + return "WIFI_DIRECT_ERROR_NOT_INITIALIZED"; + break; + case WIFI_DIRECT_ERROR_COMMUNICATION_FAILED: + return "WIFI_DIRECT_ERROR_COMMUNICATION_FAILED"; + break; + case WIFI_DIRECT_ERROR_WIFI_USED: + return "WIFI_DIRECT_ERROR_WIFI_USED"; + break; + case WIFI_DIRECT_ERROR_MOBILE_AP_USED: + return "WIFI_DIRECT_ERROR_MOBILE_AP_USED"; + break; + case WIFI_DIRECT_ERROR_CONNECTION_FAILED: + return "WIFI_DIRECT_ERROR_CONNECTION_FAILED"; + break; + case WIFI_DIRECT_ERROR_AUTH_FAILED: + return "WIFI_DIRECT_ERROR_AUTH_FAILED"; + break; + case WIFI_DIRECT_ERROR_OPERATION_FAILED: + return "WIFI_DIRECT_ERROR_OPERATION_FAILED"; + break; + case WIFI_DIRECT_ERROR_TOO_MANY_CLIENT: + return "WIFI_DIRECT_ERROR_TOO_MANY_CLIENT"; + break; + default: + break; + } + + return "UNKNOWN"; +} + +/** +* Get device name. +* +* @return device name on success,otherwise NULL +*/ +char *wifi_direct_mgr_get_device_name(void) +{ + int ret; + char *name; + + name = NULL; + ret = wifi_direct_get_device_name(&name); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("get device name failed, ret: %s.", + wifi_direct_mgr_err_dbg(ret)); + return NULL; + } + + return name; +} + +/** +* Get local MAC address. +* +* @return MAC address string on success, otherwise NULL +*/ +char *wifi_direct_mgr_get_mac_address(void) +{ + int ret; + char *mac_addr; + + mac_addr = NULL; + ret = wifi_direct_get_mac_address(&mac_addr); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("get mac address failed, ret: %s.", + wifi_direct_mgr_err_dbg(ret)); + return NULL; + } + + return mac_addr; +} + +/** +* Initialize WiFi server. +* +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_wifi_init(void) +{ + int ret; + + ret = wifi_initialize(); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_initialize failed, ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Finalize WiFi server +* +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_wifi_fini(void) +{ + int ret; + + ret = wifi_deinitialize(); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_deinitialize failed, ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Initialize WiFi Direct server +* +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_wifi_direct_init(void) +{ + int ret; + + ret = wifi_direct_initialize(); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct_initialize failed, ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Finalize Wi-Fi Direct server. +* +* Uses the midware API to deregister the client application with the Wi-Fi Direct server. +* and releases all resources. Pre Application must be already registered to the Wi-Fi Direct server. +* +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_wifi_direct_fini(void) +{ + int ret; + + ret = wifi_direct_deinitialize(); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct_deinitialize failed, ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Register the callback functions called. +* +* Each callback function is synchronous. +* +* @param[in] cbs The fuction struct contains the action callback fuctions +* @param[in] data the user data +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_register_callback(struct wifi_direct_cbs *cbs, + void *data) +{ + int ret; + + if (!cbs || !data) { + _ERR("The parameter is NULL."); + return RET_FAILED; + } + + ret = wifi_direct_set_device_state_changed_cb(cbs->device_state_cb, + data); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("set device state changed cb failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + ret = wifi_direct_set_discovery_state_changed_cb( + cbs->discovery_state_cb, data); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("set discovery state changed cb failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + wifi_direct_unset_device_state_changed_cb(); + return RET_FAILED; + } + + ret = wifi_direct_set_connection_state_changed_cb( + cbs->connection_state_cb, data); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("set connection state changed cb failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + wifi_direct_unset_device_state_changed_cb(); + wifi_direct_unset_discovery_state_changed_cb(); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Unregister the action callback fuctions. +* +* Opposite action to wifi_direct_mgr_register_callback. +* +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_unregister_callback(void) +{ + int ret; + int result; + + result = RET_SUCCESS; + ret = wifi_direct_unset_device_state_changed_cb(); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("unset device state changed cb failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + result = RET_FAILED; + } + + ret = wifi_direct_unset_discovery_state_changed_cb(); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("unset discovery state changed cb failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + result = RET_FAILED; + } + + ret = wifi_direct_unset_connection_state_changed_cb(); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("unset connection state changed cb failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + result = RET_FAILED; + } + + ret = wifi_direct_unset_client_ip_address_assigned_cb(); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("unset device state changed cb failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + result = RET_FAILED; + } + + return result; +} + +/** +* Get the state of Wi-Fi Direct server +* +* @param[in] status The param bypassed used to save the status of the Wi-Fi Direct server +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_get_state(wifi_direct_state_e *status) +{ + int ret; + + if (!status) { + _ERR("The param is NULL."); + return RET_FAILED; + } + + ret = wifi_direct_get_state(status); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("get state failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Activate Wi-Fi Direct server +* +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_activate(void) +{ + int ret; + + ret = wifi_direct_activate(); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct_activate failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Deactivate Wi-Fi Direct server +* +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_deactivate(void) +{ + int ret; + + ret = wifi_direct_deactivate(); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct_deactivate failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Set the number of the clients. +* +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_set_configure_num(void) +{ + int ret; + + ret = wifi_direct_set_max_clients(LOCAL_MAX_CLIENT); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("set max client failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Get the information of all discovered peers.Synchronous. +* +* @param[in] cb the callback function +* @param[in] data the user data +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_foreach_discovered_peers( + wifi_direct_discovered_peer_cb cb, void *data) +{ + int ret; + + if (!cb || !data) { + _ERR("The parameter is NULL."); + return RET_FAILED; + } + + ret = wifi_direct_foreach_discovered_peers(cb, data); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("foreach connected pees failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Get the information of the connected peers.Synchronous. +* +* @param[in] cd the callback function +* @param[in] data the user data +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_foreach_connected_peers( + wifi_direct_connected_peer_cb cb, void *data) +{ + int ret; + + if (!cb || !data) { + _ERR("The parameter is NULL."); + return RET_FAILED; + } + + ret = wifi_direct_foreach_connected_peers(cb, data); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("foreach connected peers failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Start discovery process.Asynchronous. +* +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_start_discovery(void) +{ + int ret; + + ret = wifi_direct_start_discovery(WIFI_DIRECT_DISCOVERY_LISTEN_AND_SCAN, + WIFI_DIRECT_SCAN_TIMEOUT); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("start discovery failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Cancel discovery process +* +* The oppsite action to wifi_direct_mgr_start_discovery +* +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_cancel_discovery(void) +{ + int ret; + + ret = wifi_direct_cancel_discovery(); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct_cancel_discovery failed ret:%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Connect the peer specified by MAC address. Asynchronous. +* +* @param[in] mac_adrr the MAC address +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_connect(const char *mac_addr) +{ + int ret; + + if (!mac_addr) { + _ERR("mac_address is NULL"); + return RET_FAILED; + } + + ret = wifi_direct_connect(mac_addr); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct_connect failed,%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Disconnect to a peer. +* +* @param[in] mac_adrr the MAC address +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_disconnect(const char *mac_addr) +{ + int ret; + + if (!mac_addr) { + _ERR("mac_address is NULL"); + return RET_FAILED; + } + + ret = wifi_direct_disconnect(mac_addr); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct_disconnect failed,%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Accept connection requested by a peer. +* +* Called for request event,WIFI_DIRECT_CONNECTION_REQ +* +* @param[in] mac_adrr the MAC address of the request peer +* @return[in] 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_accept_connection(char *mac_addr) +{ + int ret; + + if (!mac_addr) { + _ERR("mac_address is NULL"); + return RET_FAILED; + } + + ret = wifi_direct_accept_connection(mac_addr); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct_accept_connection failed,%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** +* Verify the WPS type. +* +* This function get the WPS(Wi-Fi Protected Setup) type and check if it is equal to PBC type, +* if equal, set EINA_TRUE to is_pbc, otherwise set EINA_FALSE,and return it. +* +* @param[in] is_pbc The point pointing to mark if WPS is PBC +* @return[in] 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_get_wps_type(Eina_Bool *is_pbc) +{ + _DBG("Not Yet"); +#if 0 + wifi_direct_wps_type_e type; + + if (!is_pbc) { + _ERR("Parameter is NULL"); + return RET_FAILED; + } + + int ret; + ret = wifi_direct_get_wps_type(&type); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct_get_wps_type failed,%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } + + if ((type & WIFI_DIRECT_WPS_TYPE_PBC) == WIFI_DIRECT_WPS_TYPE_PBC) + *is_pbc = EINA_TRUE; + else + *is_pbc = EINA_FALSE; + + return RET_SUCCESS; +#endif + return RET_FAILED; +} + +/** +* Set the WPS(Wi-Fi Protected Setyup) type. +* +* @param[in] type The WPS type +* @return 0 on success, otherwise -1 +*/ +int wifi_direct_mgr_set_wps_type(wifi_direct_wps_type_e *type) +{ + if (!type) { + _ERR("Parameter is NULL"); + return RET_FAILED; + } + + _DBG("Not Yet"); +#if 0 + int ret; + ret = wifi_direct_set_wps_type(*type); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct_get_wps_type failed,%s.", + wifi_direct_mgr_err_dbg(ret)); + return RET_FAILED; + } +#endif + + return RET_SUCCESS; +} diff --git a/ug/wifi-direct/src/wifi_direct_view.c b/ug/wifi-direct/src/wifi_direct_view.c new file mode 100644 index 0000000..913be55 --- /dev/null +++ b/ug/wifi-direct/src/wifi_direct_view.c @@ -0,0 +1,2040 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include + +#include "defs.h" +#include "dbg.h" +#include "wifi_direct_view.h" +#include "wifi_direct_mgr.h" +#include "util.h" + +struct _priv { + Evas_Object *win; + Evas_Object *base; + Evas_Object *genlist; + Evas_Object *on_btn; + Evas_Object *direct_popup; + Evas_Object *connect_popup; + Evas_Object *dim_ly; + Evas_Object *btn_refresh; + Evas_Object *btn_close; + Evas_Object *btn_stop; + Evas_Object *scan_ly; + Evas_Object *scan_pb; + Evas_Object *no_conn_ly; + Evas_Object *prog_popup; + Evas_Object *req_popup; + + ui_gadget_h ug; + Elm_Genlist_Item_Class *itc; + Elm_Object_Item *popup_item; + Eina_List *item_list; + Ecore_Timer *timer; + + int conn_idx; + int direct_on_flag; + int finish_flag; + char *req_addr; +}; + +enum action_btn_enum { + ACTION_BTN_REFRESH, + ACTION_BTN_CLOSE, + ACTION_BTN_STOP +}; + +enum direct_swith_enum { + DIRECT_ON = 0, + DIRECT_OFF +}; + +const char *action_button[] = { + [ACTION_BTN_REFRESH] = TXT_REFRESH_BTN, + [ACTION_BTN_CLOSE] = TXT_CLOSE_BTN, + [ACTION_BTN_STOP] = TXT_STOP_BTN +}; + +const char *popup_button_on[] = { + [DIRECT_OFF] = TXT_OFF_BTN, + [DIRECT_ON] = TXT_ON_BTN +}; + +static char *popup_button_conn[] = { + [DIRECT_ON] = TXT_CONNECT, + [DIRECT_OFF] = TXT_DISCONNECT +}; + +static char *popup_button_req[] = { + [DIRECT_ON] = TXT_YES, + [DIRECT_OFF] = TXT_NO +}; + +static char *part_req[] = { + [DIRECT_ON] = PART_YES, + [DIRECT_OFF] = PART_NO +}; + +static void _device_state_changed_cb(int errcode, + wifi_direct_device_state_e state, void *data); +static void _discovery_state_changed_cb(int errcode, + wifi_direct_discovery_state_e state, void *data); +static void _connection_state_changed_cb(int errcode, + wifi_direct_connection_state_e state, const char *addr, + void *data); +static bool _connected_peer_cb( + wifi_direct_connected_peer_info_s * conn_info, void *data); +static bool _discoverd_peers_cb( + wifi_direct_discovered_peer_info_s * discov_info, + void *data); + +static struct wifi_direct_cbs cbs = { + .device_state_cb = _device_state_changed_cb, + .discovery_state_cb = _discovery_state_changed_cb, + .connection_state_cb = _connection_state_changed_cb, + .connected_peer_cb = _connected_peer_cb, + .discovered_peer_cb = _discoverd_peers_cb +}; + +static void _fill_content_part(struct _priv *priv, Evas_Object *obj); +static int _create_wifi_direct_scan(struct _priv *priv); +static void _create_device_list_view(struct _priv *priv); +static void _show_action_btn(struct _priv *priv); + +/** +* Initialize the priv. +* +* @return _priv _priv object initialized +*/ +static struct _priv *_init_priv(void) +{ + struct _priv *priv; + + priv = calloc(1, sizeof(*priv)); + if (!priv) { + _ERR("calloc failed."); + return NULL; + } + + return priv; +} + +/** +* Finalize the priv. +* +* Recycles memory allocated for the priv and free the point. +* +* @param[in] priv _priv object to be finalized +*/ +static void _fini_priv(struct _priv *priv) +{ + struct device_info *info; + + if (!priv) { + _ERR("priv is already NULL."); + return; + } + + if (!priv->item_list) + EINA_LIST_FREE(priv->item_list, info) + free(info); + + if (priv->dim_ly) + evas_object_del(priv->dim_ly); + + if (priv->scan_ly) + evas_object_del(priv->scan_ly); + + if (priv->timer) + ecore_timer_del(priv->timer); + + wifi_direct_mgr_wifi_fini(); + wifi_direct_mgr_unregister_callback(); + wifi_direct_mgr_wifi_direct_fini(); + + if (priv->base) + evas_object_del(priv->base); + + free(priv); +} + +/** +* It is a callback function responding mouse event +* +* This function set focus on the object when mouse is put on it +* +* @param[in] dt the user data +* @param[in] e evas handler +* @param[in] obj the corresponding object which the mouse event occurred +* @param[in] ei event information +*/ +static void _list_btn_mouse_in_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ + if (!obj) { + _ERR("Invalid argument obj"); + return; + } + + elm_object_focus_set(obj, EINA_TRUE); +} + +/** +* Evas_Smart_Cb type callback for handling click event +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] event event information +*/ +static void _refresh_btn_clicked_cb(void *data, + Evas_Object *obj, void *ev) +{ + struct _priv *priv; + struct device_info *info; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + if (priv->scan_ly) + evas_object_hide(priv->scan_ly); + + elm_genlist_clear(priv->genlist); + + if (priv->item_list) + EINA_LIST_FREE(priv->item_list, info) + free(info); + + _create_device_list_view(priv); +} + +/** +* Evas_Smart_Cb type callback for handling click event +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] event event information +*/ +static void _close_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + if (!priv->ug) { + _ERR("priv->ug is NULL."); + return; + } + + ug_destroy_me(priv->ug); + + _fini_priv(priv); +} + +/** +* Create the action buttons. +* +* @param[in] priv _priv object bypassed +*/ +static void _show_action_btn(struct _priv *priv) +{ + Evas_Object *btn; + + if (!priv || !priv->base) { + _ERR("Parameter error!"); + return; + } + + if (!priv->btn_refresh || !priv->btn_close) { + _ERR("action btn NULL!"); + return; + } + + btn = elm_object_part_content_get(priv->base, PART_REFRESH_BTN); + if (btn) { + elm_object_part_content_unset(priv->base, PART_REFRESH_BTN); + evas_object_hide(btn); + } + + elm_object_part_content_set(priv->base, PART_REFRESH_BTN, + priv->btn_refresh); + evas_object_show(priv->btn_refresh); + + elm_object_part_content_set(priv->base, PART_CLOSE_BTN, + priv->btn_close); + evas_object_show(priv->btn_close); + + evas_object_smart_callback_add(priv->btn_refresh, SIG_CLICKED, + _refresh_btn_clicked_cb, priv); + evas_object_event_callback_add(priv->btn_refresh, + EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); + evas_object_smart_callback_add(priv->btn_close, SIG_CLICKED, + _close_btn_clicked_cb, priv); + evas_object_event_callback_add(priv->btn_close, + EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); +} + +/** +* Create the dim layout but did not show it. +* +* @param[in] priv _priv object bypassed +* @return on success, otherwise -1. +*/ +static int _create_wifi_direct_dim(struct _priv *priv) +{ + Evas_Object *base; + Evas_Object *ly; + + if (!priv || !priv->base) { + _ERR("Parameter error!"); + return RET_FAILED; + } + + base = priv->base; + + ly = util_add_layout(base, UG_WIFI_DIRECT_EDJ_FILE, GRP_DIM_LY); + if (!ly) { + _ERR("Add dim layout failed."); + return RET_FAILED; + } + + priv->dim_ly = ly; + + evas_object_hide(ly); + + return RET_SUCCESS; +} + +/** +* Evas_Smart_Cb type callback for handling click event +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] ev event information +*/ +static void _stop_btn_clicked_cb(void *data, + Evas_Object *obj, void *ev) +{ + int ret; + struct _priv *priv; + Evas_Object *btn; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + ret = wifi_direct_mgr_cancel_discovery(); + if (ret != RET_SUCCESS) { + _ERR("Cancel disconery failed."); + return; + } + + btn = elm_object_part_content_get(priv->base, PART_REFRESH_BTN); + if (btn) { + elm_object_part_content_unset(priv->base, PART_REFRESH_BTN); + evas_object_hide(btn); + } + + _show_action_btn(priv); + + _fill_content_part(priv, priv->genlist); +} + +/** +* Create the scan process view +* +* @param[in] priv _priv object bypassed +*/ +static int _create_wifi_direct_scan(struct _priv *priv) +{ + Evas_Object *ly; + Evas_Object *pb; + Evas_Object *btn; + + if (!priv || !priv->base) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ly = util_add_layout(priv->base, UG_WIFI_DIRECT_EDJ_FILE, + GRP_WIFIDIRECT_SCAN_LY); + if (!ly) { + _ERR("Add scan_ly failed.\n"); + return RET_FAILED; + } + + priv->scan_ly = ly; + + elm_object_part_content_unset(priv->base, PART_REFRESH_BTN); + evas_object_hide(priv->btn_refresh); + + elm_object_part_content_unset(priv->base, PART_CLOSE_BTN); + evas_object_hide(priv->btn_close); + + pb = util_add_progressbar(ly, STYLE_SEARCH_PROGRESS, PART_SEARCH_IMAGE); + if (!pb) { + _ERR("Add progressbar failed.\n"); + goto error; + } + + btn = util_add_button(priv->base, STYLE_ACTION_BUTTON, PART_REFRESH_BTN, + _(action_button[ACTION_BTN_STOP])); + if (!btn) { + _ERR("Add stop button failed."); + goto error; + } + + priv->scan_pb = pb; + priv->btn_stop = btn; + + elm_object_focus_set(priv->btn_stop, EINA_TRUE); + evas_object_event_callback_add(priv->btn_stop, EVAS_CALLBACK_MOUSE_IN, + _list_btn_mouse_in_cb, priv); + evas_object_smart_callback_add(priv->btn_stop, SIG_CLICKED, + _stop_btn_clicked_cb, priv); + + _fill_content_part(priv, priv->scan_ly); + + return RET_SUCCESS; + +error: + evas_object_del(ly); + return RET_FAILED; +} + +/** +* Display device list view. +* +* Called when start or refresh the WiFi direct +* +* @param[in] priv the _priv object +*/ +static void _create_device_list_view(struct _priv *priv) +{ + wifi_direct_state_e status; + int ret; + + if (!priv) { + _ERR("parameter is invalid."); + return; + } + + if (priv->no_conn_ly) + evas_object_hide(priv->no_conn_ly); + + ret = wifi_direct_mgr_get_state(&status); + if (ret != RET_SUCCESS) { + _ERR("get state failed."); + return; + } + + if (status < WIFI_DIRECT_STATE_ACTIVATED) { + ret = wifi_direct_mgr_activate(); + if (ret != RET_SUCCESS) { + _ERR("activate failed."); + return; + } + } else { + ret = wifi_direct_mgr_set_configure_num(); + if (ret != RET_SUCCESS) { + _ERR("set configure num failed."); + return; + } + + ret = wifi_direct_mgr_start_discovery(); + if (ret != RET_SUCCESS) { + _ERR("start discovery failed."); + return; + } + } + + _fill_content_part(priv, priv->genlist); + + elm_object_focus_set(priv->btn_refresh, EINA_TRUE); +} + +/** +* Evas_object_Event_Cb type callback for handling delection event +* +* @param[in] data the user data +* @param[in] e evas handler +* @param[in] obj the corresponding object which clicked event occurred +* @param[in] ei event information +*/ +static void _popup_back_pressed_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!data || !obj || !ei) { + _ERR("Parameter error!"); + return; + } + + priv = data; + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_BACK)) { + if (priv->dim_ly) + evas_object_hide(priv->dim_ly); + + evas_object_del(obj); + } +} + +/** +* Handle connection request. +* +* @param[in] info the target device infomation +* @param[in] is_conn request type +* @return 0 on success,otherwize -1 +*/ +int wifi_direct_cbbutton_connect( + struct device_info *info, int is_conn) +{ + int ret; + wifi_direct_wps_type_e wps_type; + + if (!info) { + _ERR("parameter is NULL!"); + return RET_FAILED; + } + + if (is_conn) { + if ((info->wps_types & WIFI_DIRECT_WPS_TYPE_PBC) + == WIFI_DIRECT_WPS_TYPE_PBC) + wps_type = WIFI_DIRECT_WPS_TYPE_PBC; + else if ((info->wps_types & WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD) == + WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD) + wps_type = WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD; + else if ((info->wps_types & WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY) == + WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY) + wps_type = WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY; + + ret = wifi_direct_mgr_set_wps_type(&wps_type); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct set wps type failev!"); + return RET_FAILED; + } + + ret = wifi_direct_mgr_connect(info->mac_addr); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct_connect:%s fail!", info->dev_name); + return RET_FAILED; + } + } else { + ret = wifi_direct_mgr_disconnect(info->mac_addr); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct_disconnect:%s fail!", info->dev_name); + return RET_FAILED; + } + } + + return RET_SUCCESS; +} + +/** +* @Evas_Smart_Cb type callback for handling click event. +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] event_info event information +*/ +static void _item_conn_btn_clicked_cb(void *data, + Evas_Object *obj, void *event_inf) +{ + struct _priv *priv; + const char *value; + int ret; + Elm_Object_Item *gen_item; + struct device_info *info; + int cur_idx; + + if (!data || !obj) { + _ERR("the param is invalid."); + return; + } + + value = elm_object_text_get(obj); + if (!value) { + _ERR("get text from wifi_direct device btn is NULL."); + return; + } + + priv = data; + + gen_item = priv->popup_item; + + cur_idx = elm_genlist_item_index_get(gen_item); + if (cur_idx < 0) + return; + + info = eina_list_nth(priv->item_list, cur_idx); + if (!info) + return; + + if (!strcmp(value, TXT_CONNECT)) { + ret = wifi_direct_cbbutton_connect(info, CONN_YES); + if (ret == RET_FAILED) { + _ERR("Connect failed"); + return; + } + + info->is_conn = EINA_TRUE; + } else if (!strcmp(value, TXT_DISCONNECT)) { + ret = wifi_direct_cbbutton_connect(info, CONN_NO); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("wifi_direct_mgr_disconnect failed,,%s", + info->mac_addr); + return; + } + + strncpy(info->state, TXT_DISCONNECT, WIFI_DIRECT_STATE_BUF_LEN); + info->is_conn = EINA_FALSE; + } + + if (priv->direct_popup) { + evas_object_del(priv->direct_popup); + priv->direct_popup = NULL; + } + + if (priv->connect_popup) { + evas_object_del(priv->connect_popup); + priv->connect_popup = NULL; + } + + if (priv->dim_ly) + evas_object_hide(priv->dim_ly); +} + +/** +* @Evas_Smart_Cb type callback for handling click event. +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] event_info event information +*/ +static void _genlist_item_select_cb(void *data, + Evas_Object *obj, void *event_info) +{ + struct _priv *priv; + Elm_Object_Item *gen_item; + Evas_Object *layout; + Evas_Object *box; + Evas_Object *item_btn; + Evas_Object *btn[BTN_DIRECT]; + struct device_info *info; + int cur_idx; + int i; + int ret; + int btn_x; + int btn_y; + int btn_w; + int btn_h; + int move_x; + int move_y; + + if (!data || !obj || !event_info) { + _ERR("The param is invalid."); + return; + } + + priv = data; + + if (!priv->dim_ly) { + ret = _create_wifi_direct_dim(priv); + if (ret != RET_SUCCESS) { + _fini_priv(priv); + return; + } + } + + evas_object_show(priv->dim_ly); + + gen_item = event_info; + priv->popup_item = gen_item; + + layout = util_add_layout(priv->base, UG_WIFI_DIRECT_EDJ_FILE, + GRP_WIFI_DIRECT_SELECT); + if (!layout) { + _ERR("add connect popup failed.\n"); + return; + } + + box = util_add_box(layout, PART_SWALLOW_CONTENT); + if (!box) { + _ERR("add box failed."); + evas_object_del(layout); + return; + } + + for (i = 0; i < BTN_DIRECT; i++) { + btn[i] = util_add_button(box, STYLE_POPUP_BUTTON, NULL, + _(popup_button_conn[i])); + if (!btn[i]) { + _ERR("add connect btn failed."); + evas_object_del(layout); + return; + } + + elm_box_pack_end(box, btn[i]); + evas_object_smart_callback_add(btn[i], SIG_CLICKED, + _item_conn_btn_clicked_cb, priv); + evas_object_event_callback_add(btn[i], + EVAS_CALLBACK_MOUSE_IN, + _list_btn_mouse_in_cb, priv); + } + + cur_idx = elm_genlist_item_index_get(gen_item); + if (cur_idx < 0) + return; + + info = eina_list_nth(priv->item_list, cur_idx); + if (!info) + return; + + if (info->is_conn) + elm_object_signal_emit(btn[DIRECT_ON], + SIG_BTN_SELECTED, PROG); + else + elm_object_signal_emit(btn[DIRECT_OFF], + SIG_BTN_SELECTED, PROG); + + util_set_cycle_focus(btn, BTN_DIRECT); + + item_btn = elm_object_item_track(gen_item); + if (!item_btn) { + _ERR("get genlist item track failed."); + evas_object_del(layout); + return; + } + + evas_object_geometry_get(item_btn, &btn_x, &btn_y, &btn_w, &btn_h); + + move_x = btn_x + btn_w - POPUP_WIDTH * HALF_SCALE - POPUP_RIGHT; + move_y = btn_y + btn_h; + evas_object_move(layout, move_x * ELM_SCALE, move_y * ELM_SCALE); + priv->connect_popup = layout; + + evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, + _popup_back_pressed_cb, priv); + + elm_object_focus_set(btn[0], EINA_TRUE); +} + +/** +* Check if the peer discovered is already in the list. +* +* @param[in] priv the _priv object bypassed +* @param[in] new_info device_info object to be checked +* @return 0 if exist,otherwise -1 +*/ +static Eina_Bool _is_peer_exist(struct _priv *priv, + struct device_info *new_info) +{ + struct device_info *cur_info; + Eina_List *l; + + if (!priv || !new_info) { + _ERR("The param is invalid."); + return EINA_FALSE; + } + + if (!priv->item_list) { + _ERR("The list is NULL now."); + return EINA_FALSE; + } + + EINA_LIST_FOREACH(priv->item_list, l, cur_info) { + if (!strncmp(cur_info->mac_addr, new_info->mac_addr, + WIFI_DIRECT_DEFAULT_BUF_LEN - 1)) + return EINA_TRUE; + } + + return EINA_FALSE; +} + +/** +* Update the device connection state. +* +* @param[in] priv the _priv object bypassed +* @param[in] conn connection type +* @return 0 if exist,otherwise -1 +*/ +static Eina_Bool _update_device_conn_state(struct _priv *priv, + Eina_Bool conn) +{ + struct device_info *cur_info; + Eina_List *l; + + EINA_LIST_FOREACH(priv->item_list, l, cur_info) { + if (!strncmp(cur_info->mac_addr, priv->req_addr, + WIFI_DIRECT_DEFAULT_BUF_LEN - 1)) { + cur_info->is_conn = conn; + return EINA_TRUE; + } + } + + return EINA_FALSE; +} + +/** +* Update the device list. +* +* @param[in] priv the _priv object bypassed +* @param[in] device_info new device infomation +* @return 0 in success,otherwise -1 +*/ +static int _update_genlist_item(struct _priv *priv, + struct device_info *info) +{ + Eina_Bool exist; + + if (!priv || !info || !priv->genlist) { + _ERR("The param is invalid."); + return RET_FAILED; + } + + exist = _is_peer_exist(priv, info); + if (!exist) { + priv->item_list = eina_list_append(priv->item_list, info); + + if (info->is_conn) + strncpy(info->state, TXT_CONNECT, + WIFI_DIRECT_STATE_BUF_LEN); + else + strncpy(info->state, TXT_DISCONNECT, + WIFI_DIRECT_STATE_BUF_LEN); + + elm_genlist_item_append(priv->genlist, priv->itc, info, NULL, + ELM_GENLIST_ITEM_NONE, _genlist_item_select_cb, + (void *)priv); + } + + return RET_SUCCESS; +} + +/** +* Called when the device state is WIFI_DIRECT_DISCOVERY_STARTED. +* +* @param[in] cd the callback functions to invoke +* @param[in] data the user data +*/ +static void _process_discovery_start(struct wifi_direct_cbs cbs, + void *data) +{ + int ret; + struct _priv *priv; + struct device_info *info; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + if (priv->genlist) + elm_genlist_clear(priv->genlist); + + if (priv->item_list) + EINA_LIST_FREE(priv->item_list, info) + free(info); + + ret = wifi_direct_mgr_foreach_connected_peers( + cbs.connected_peer_cb, data); + if (ret != RET_SUCCESS) { + _ERR("foreach connected peers failed "); + return; + } + + ret = _create_wifi_direct_scan(priv); + if (ret != RET_SUCCESS) + _ERR("_create_wifi_direct_scan failed "); +} + +/** +* Called when the device state is WIFI_DIRECT_DISCOVERY_FOUND. +* +* @param[in] cbs the callback functions +* @param[in] data the user data +*/ +static void _process_discovery_found(struct wifi_direct_cbs cbs, + void *data) +{ + int ret; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + ret = wifi_direct_mgr_foreach_discovered_peers( + cbs.discovered_peer_cb, data); + if (ret != RET_SUCCESS) + _ERR("foreach connected peers failed "); +} + +/** +* Called when the device state is WIFI_DIRECT_DISCOVERY_FINISHED. +* +* @param[in] data the user data +*/ +static void _process_discovery_finished(void *data) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter is NULL."); + return; + } + + priv = data; + + elm_object_part_content_unset(priv->base, PART_REFRESH_BTN); + evas_object_hide(priv->btn_stop); + + _show_action_btn(priv); + + _fill_content_part(priv, priv->genlist); +} + +/** +* Evas_Smart_Cb type callback for handling click event. +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] ev event information +*/ +static void _req_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + const char *value; + int ret; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + value = elm_object_text_get(obj); + if (!value) { + _ERR("get text from network type btn is NULL."); + return; + } + + if (!strcmp(value, popup_button_req[DIRECT_ON])) { + ret = wifi_direct_mgr_accept_connection(priv->req_addr); + if (ret != RET_SUCCESS) { + _ERR("Disconnection failed."); + return; + } + + ret = _update_device_conn_state(priv, EINA_TRUE); + if (ret != EINA_TRUE) + _ERR("_update_device_conn_state failed."); + } else { + ret = wifi_direct_mgr_reject_connection(priv->req_addr); + if (ret != RET_SUCCESS) { + _ERR("Accept connection failed."); + return; + } + + ret = _update_device_conn_state(priv, EINA_FALSE); + if (ret != EINA_TRUE) + _ERR("_update_device_conn_state failed."); + } + + free(priv->req_addr); + priv->req_addr = NULL; + + if (priv->req_popup) { + evas_object_del(priv->req_popup); + priv->req_popup = NULL; + } + + if (priv->dim_ly) + evas_object_hide(priv->dim_ly); +} + +/** +* Create the reqest popup when has connection request by other devices. +* +* @param[in] priv the _priv object bypassed +* @return 0 on sucess, otherwise -1 +*/ +static int _create_req_popup_ly(struct _priv *priv) +{ + Evas_Object *layout; + Evas_Object *btn[BTN_DIRECT]; + int i; + int x; + int y; + int w; + int h; + + if (!priv || !priv->base) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + layout = util_add_layout(priv->base, UG_WIFI_DIRECT_EDJ_FILE, + GRP_CONNECT_ACCEPT); + if (!layout) { + _ERR("elm_layout_add() failed.\n"); + return RET_FAILED; + } + + for (i = 0; i < BTN_DIRECT; i++) { + btn[i] = util_add_button(layout, STYLE_POPUP_BUTTON, + part_req[i], _(popup_button_req[i])); + if (!btn[i]) { + _ERR("add btn req failed."); + evas_object_del(layout); + return RET_FAILED; + } + + evas_object_smart_callback_add(btn[i], + SIG_CLICKED, _req_btn_clicked_cb, priv); + evas_object_event_callback_add(btn[i], + EVAS_CALLBACK_MOUSE_IN, + _list_btn_mouse_in_cb, priv); + } + + evas_object_geometry_get(priv->genlist, &x, &y, &w, &h); + evas_object_move(layout, (x + RSP_X) * ELM_SCALE, + (y + RSP_Y) * ELM_SCALE); + + priv->req_popup = layout; + + elm_object_focus_set(btn[DIRECT_ON], EINA_TRUE); + + evas_object_event_callback_add(layout, + EVAS_CALLBACK_KEY_DOWN, _popup_back_pressed_cb, priv); + + return RET_SUCCESS; +} + +/** +* Process the connection request when the device state is WIFI_DIRECT_CONNECTION_REQ. +* +* @param[in] addr the MAC address +* @param[in] data the user data +*/ +static void _process_connection_req(const char *addr, void *data) +{ + struct _priv *priv; + Eina_Bool is_pbc; + int ret; + + if (!data || !addr) { + _ERR("the param is invalid."); + return; + } + + priv = data; + + ret = wifi_direct_mgr_get_wps_type(&is_pbc); + if (ret != WIFI_DIRECT_ERROR_NONE) { + _ERR("Get wps type failed."); + return; + } + + priv->req_addr = strdup(addr); + if (!priv->req_addr) { + _ERR("strdup wrong."); + return; + } + + if (is_pbc == EINA_TRUE) { + ret = _create_req_popup_ly(priv); + if (ret != RET_SUCCESS) + _ERR("Create rep popup failed."); + } +} + +/** +* Called when the device state is WIFI_DIRECT_CONNECTION_PROG. +* +* @param[in] data The data to be passed to the function +*/ +static void _process_connection_prog(void *data) +{ + struct _priv *priv; + Evas_Object *layout; + char title[MAX_STRING_LENTH]; + int x; + int y; + int w; + int h; + int move_x; + int move_y; + + if (!data) { + _ERR("the param is invalid."); + return; + } + + priv = data; + + if (priv->dim_ly) + evas_object_show(priv->dim_ly); + + layout = util_add_layout(priv->base, UG_WIFI_DIRECT_EDJ_FILE, + GRP_CONNECT_ACCEPT); + if (!layout) { + _ERR("add con_popup layout failed."); + return; + } + + memset(&title, 0x00, MAX_STRING_LENTH); + snprintf(title, MAX_STRING_LENTH - 1, "%s", TXT_CONN_PROG); + elm_object_part_text_set(layout, PART_TITLE, title); + + evas_object_geometry_get(priv->on_btn, &x, &y, &w, &h); + move_x = x + w - POPUP_WIDTH * HALF_SCALE - POPUP_RIGHT; + move_y = y + CENTER_HEIGHT; + evas_object_move(layout, move_x * ELM_SCALE, move_y * ELM_SCALE); + + priv->prog_popup = layout; +} + +/** +* Starts the device discovery when timer is empired. +* +* @param[in] data the user data +* @return ECORE_CALLBACK_CANCEL returns to finish time +*/ +static Eina_Bool _connection_ind_cb(void *data) +{ + int ret; + struct _priv *priv; + + if (!data) { + _ERR("the param is invalid."); + return ECORE_CALLBACK_CANCEL; + } + + priv = data; + + ret = wifi_direct_mgr_start_discovery(); + if (ret != RET_SUCCESS) + _ERR("start discovery failed."); + + priv->timer = NULL; + + return ECORE_CALLBACK_CANCEL; +} + +/** +* Called when the device state is WIFI_DIRECT_DISCONNECTION_IND. +* +* @param[in] data The data to be passed to the function +*/ +static void _process_connection_ind(void *data) +{ + struct _priv *priv; + Ecore_Timer *timer; + + if (!data) { + _ERR("parameter is invalid."); + return; + } + + priv = data; + + timer = ecore_timer_add(HANDLER_INTERVAL, _connection_ind_cb, priv); + if (!timer) { + _ERR("add timer failed."); + return; + } + + priv->timer = timer; +} + +/** +* Called when the device state is WIFI_DIRECT_CONNECTION_RSP +* +* @param[in] data the user data +*/ +static void _process_connection_rsp(void *data) +{ + struct _priv *priv; + struct device_info *info; + int cur_index; + + if (!data) { + _ERR("the param is invalid."); + return; + } + + priv = data; + + cur_index = priv->conn_idx; + info = eina_list_nth(priv->item_list, cur_index); + if (!info) + return; + + info->is_conn = EINA_TRUE; + strncpy(info->state, TXT_CONNECT, WIFI_DIRECT_STATE_BUF_LEN); + + elm_genlist_item_update(priv->popup_item); + + if (priv->dim_ly) + evas_object_hide(priv->dim_ly); + + if (priv->prog_popup) { + evas_object_del(priv->prog_popup); + priv->prog_popup = NULL; + } + + if (priv->connect_popup) { + evas_object_del(priv->connect_popup); + priv->connect_popup = NULL; + } +} + +/** +* Callback function is called when device state is changed. +* +* @param[in] errcode error code +* @param[in] state WiFi Direct device state +* @param[in] data the user data +*/ +static void _device_state_changed_cb(int errcode, + wifi_direct_device_state_e state, void *data) +{ + int ret; + struct _priv *priv; + + if (!data) { + _ERR("The param is invalid."); + return; + } + + priv = data; + + if (state != WIFI_DIRECT_DEVICE_STATE_ACTIVATED) { + elm_genlist_clear(priv->genlist); + return; + } + + ret = wifi_direct_mgr_set_configure_num(); + if (ret != RET_SUCCESS) { + _ERR("set configure num failed."); + return; + } + + ret = wifi_direct_mgr_start_discovery(); + if (ret != RET_SUCCESS) + _ERR("start discovery failed."); +} + +/** +* Callback function is called when discovery state is changed. +* +* discovery state: +* WIFI_DIRECT_DISCOVERY_STARTED +* WIFI_DIRECT_DISCOVERY_FOUND +* WIFI_DIRECT_DISCOVERY_FINISHED +* +* @param[in] errcode error code +* @param[in] state WiFi Direct descovery state +* @param[in] data the user data +*/ +static void _discovery_state_changed_cb( + int errcode, wifi_direct_discovery_state_e state, void *data) +{ + if (!state || !data) { + _ERR("data is invalid."); + return; + } + + switch (state) { + case WIFI_DIRECT_DISCOVERY_STARTED: + _process_discovery_start(cbs, data); + break; + case WIFI_DIRECT_DISCOVERY_FOUND: + _process_discovery_found(cbs, data); + break; + case WIFI_DIRECT_DISCOVERY_FINISHED: + _process_discovery_finished(data); + break; + default: + break; + } +} + +/** +* Callback function is called when connection state is changed. +* +* connection state: +* WIFI_DIRECT_CONNECTION_REQ +* WIFI_DIRECT_CONNECTION_IN_PROGRESS +* WIFI_DIRECT_CONNECTION_RSP +* WIFI_DIRECT_DISCONNECTION_IND +* ... +* +* @param[in] errcode error code +* @param[in] state WiFi Direct descovery state +* @param[in] data the user data passed +*/ +static void _connection_state_changed_cb(int errcode, + wifi_direct_connection_state_e state, + const char *addr, void *data) +{ + if (!state || !addr || !data) { + _ERR("The param is invalid."); + return; + } + + switch (state) { + case WIFI_DIRECT_CONNECTION_REQ: + _process_connection_req(addr, data); + break; + case WIFI_DIRECT_CONNECTION_IN_PROGRESS: + _process_connection_prog(data); + break; + case WIFI_DIRECT_CONNECTION_RSP: + _process_connection_rsp(data); + break; + case WIFI_DIRECT_DISCONNECTION_IND: + _process_connection_ind(data); + break; + default: + break; + } +} + +/** +* Called for each connected peer and save its information. +* +* @param[in] conn_info wifi_direct_connected_peer_info_s store info of connected peer +* @param[in] data the user data +* @return EINA_TURE on success, otherwise EINA_FALSE +*/ +static bool _connected_peer_cb( + wifi_direct_connected_peer_info_s * conn_info, void *data) +{ + struct _priv *priv; + struct device_info *info; + int ret; + + if (!conn_info || !data) { + _ERR("The param is NULL."); + return EINA_FALSE; + } + + priv = data; + + info = calloc(1, sizeof(*info)); + if (!info) { + _ERR("calloc failed."); + return EINA_FALSE; + } + + strncpy(info->dev_name, conn_info->device_name, + WIFI_DIRECT_DEFAULT_BUF_LEN); + strncpy(info->mac_addr, conn_info->mac_address, + WIFI_DIRECT_DEFAULT_BUF_LEN); + info->is_conn = EINA_TRUE; + + ret = _update_genlist_item(priv, info); + if (ret != RET_SUCCESS) { + _ERR("update genlist view failed."); + free(info); + return EINA_FALSE; + } + + return EINA_TRUE; +} + +/** +* Called for each discovered peer and save its information. +* +* @param[in] discov_info wifi_direct_discovered_peer_info_s store info of discovered peer +* @param[in] data the user data passed to the callback function +* @return EINA_TURE on success, otherwise EINA_FALSE +*/ +static bool _discoverd_peers_cb( + wifi_direct_discovered_peer_info_s * discov_info, + void *data) +{ + struct _priv *priv; + struct device_info *info; + int ret; + + if (!discov_info || !data) { + _ERR("The param is invalid."); + return EINA_FALSE; + } + + priv = data; + info = calloc(1, sizeof(*info)); + if (!info) { + _ERR("calloc failed."); + return EINA_FALSE; + } + + strncpy(info->dev_name, discov_info->device_name, + WIFI_DIRECT_DEFAULT_BUF_LEN); + strncpy(info->mac_addr, discov_info->mac_address, + WIFI_DIRECT_DEFAULT_BUF_LEN); + info->is_conn = discov_info->is_connected; + info->wps_types = discov_info->supported_wps_types; + + ret = _update_genlist_item(priv, info); + if (ret != RET_SUCCESS) { + _ERR("update genlist view failed."); + free(info); + return EINA_FALSE; + } + + return EINA_TRUE; +} + +/** +* Refresh the ON/OFF sign on the Wi-Fi Direct button when popup button is clicked. +* +* @param[in] priv _priv object bypassed +*/ +static void _refresh_wifi_direct_on_text(struct _priv *priv) +{ + if (!priv) { + _ERR("the param is invalid."); + return; + } + + if (priv->scan_ly) + evas_object_hide(priv->scan_ly); + + if (priv->direct_on_flag == DIRECT_ON) + elm_object_part_text_set(priv->on_btn, PART_WIFI_DIRECT_SELECT, + _(popup_button_on[DIRECT_ON])); + else + elm_object_part_text_set(priv->on_btn, PART_WIFI_DIRECT_SELECT, + _(popup_button_on[DIRECT_OFF])); +} + +/** +* Set the object to the specified part. +* +* @param[in] priv _priv object bypassed +* @param[in] obj Evas_Object to be set to the part +*/ +static void _fill_content_part(struct _priv *priv, Evas_Object *obj) +{ + Evas_Object *old_obj; + + if (!priv || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + old_obj = elm_object_part_content_get(priv->base, PART_GENLIST_ITEMS); + if (old_obj) { + elm_object_part_content_unset(priv->base, PART_GENLIST_ITEMS); + evas_object_hide(old_obj); + } + + elm_object_part_content_set(priv->base, PART_GENLIST_ITEMS, obj); + evas_object_show(obj); +} + +/** +* Create the Wi-Fi Direct off layout, but does not show here. +* +* @param[in] priv _priv object bypassed +* @return 0 on success,otherwise -1 +*/ +static int _create_wifi_direct_disconnect_part(struct _priv *priv) +{ + Evas_Object *ly; + + if (!priv || !priv->base) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ly = util_add_layout(priv->base, + UG_WIFI_DIRECT_EDJ_FILE, GRP_WIFIDIRECT_DISCONNECT_LY); + if (!ly) { + _ERR("Add noconnect_ly failed.\n"); + return RET_FAILED; + } + + elm_object_part_text_set(ly, PART_DISCONNECT_TEXT, + TXT_WIFIDIRECT_NONE); + + priv->no_conn_ly = ly; + evas_object_hide(ly); + + return RET_SUCCESS; +} + +/** +* Called when WiFi Direct is off . +* +* @param[in] priv _priv object bypassed +* @return 0 on success, otherwise -1 +*/ +static int _display_wifi_direct_disconnect(struct _priv *priv) +{ + int ret; + + if (!priv) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + if (!priv->no_conn_ly) { + ret = _create_wifi_direct_disconnect_part(priv); + if (ret != RET_SUCCESS) { + _ERR("_create_wifi_direct_disconnect_part failed."); + return RET_FAILED; + } + } + + _fill_content_part(priv, priv->no_conn_ly); + + elm_object_part_content_unset(priv->base, PART_REFRESH_BTN); + evas_object_hide(priv->btn_refresh); + elm_object_part_content_set(priv->base, PART_REFRESH_BTN, + priv->btn_close); + evas_object_show(priv->btn_close); + + evas_object_smart_callback_add(priv->btn_close, + SIG_CLICKED, _close_btn_clicked_cb, priv); + evas_object_event_callback_add(priv->btn_close, + EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); + + return RET_SUCCESS; +} + +/** +* Evas_Smart_Cb type callback for handling on/off button click event. +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] event_inf event information +*/ +static void _wifi_direct_select_btn_cb(void *data, + Evas_Object *obj, void *event_inf) +{ + struct _priv *priv; + struct device_info *info; + const char *value; + int ret; + + if (!data || !obj) { + _ERR("the param is invalid."); + return; + } + + priv = data; + + value = elm_object_text_get(obj); + if (!value) { + _ERR("get text from network type btn is NULL."); + return; + } + + if (!strcmp(value, popup_button_on[DIRECT_ON])) { + if (priv->direct_on_flag == DIRECT_OFF) { + priv->direct_on_flag = DIRECT_ON; + + elm_genlist_clear(priv->genlist); + + if (priv->item_list) + EINA_LIST_FREE(priv->item_list, info) + free(info); + + _create_device_list_view(priv); + + _show_action_btn(priv); + } + } else { + priv->direct_on_flag = DIRECT_OFF; + + ret = _display_wifi_direct_disconnect(priv); + if (ret != RET_SUCCESS) { + _ERR("_display_wifi_direct_disconnect failed."); + return; + } + + ret = wifi_direct_mgr_deactivate(); + if (ret != RET_SUCCESS) { + _ERR("wif direct deactivate failed."); + return; + } + } + + _refresh_wifi_direct_on_text(priv); + + if (priv->direct_popup) { + evas_object_del(priv->direct_popup); + priv->direct_popup = NULL; + } + + if (priv->dim_ly) + evas_object_hide(priv->dim_ly); +} + +/** +* Evas_Smart_Cb type callback for handling click event. +* +* @param[in] data the user data +* @param[in] obj the corresponding object which the click event occurred +* @param[in] event_inf event information +*/ +static void _wifi_direct_btn_clicked_cb(void *data, + Evas_Object *obj, void *event_inf) +{ + Evas_Object *layout; + Evas_Object *box; + Evas_Object *btn[BTN_DIRECT]; + struct _priv *priv; + int ret; + int i; + int btn_x; + int btn_y; + int btn_w; + int btn_h; + int move_x; + int move_y; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + if (!priv->dim_ly) { + ret = _create_wifi_direct_dim(priv); + if (ret != RET_SUCCESS) { + _fini_priv(priv); + return; + } + } + + evas_object_show(priv->dim_ly); + + layout = util_add_layout(priv->base, UG_WIFI_DIRECT_EDJ_FILE, + GRP_WIFI_DIRECT_SELECT); + if (!layout) + return; + + elm_object_focus_allow_set(layout, EINA_TRUE); + + box = util_add_box(layout, PART_SWALLOW_CONTENT); + if (!box) { + evas_object_del(layout); + return; + } + + for (i = 0; i < BTN_DIRECT; i++) { + btn[i] = util_add_button(box, STYLE_POPUP_BUTTON, NULL, + _(popup_button_on[i])); + if (!btn[i]) { + _ERR("add btn direct failed."); + evas_object_del(layout); + return; + } + + elm_box_pack_end(box, btn[i]); + evas_object_smart_callback_add(btn[i], SIG_CLICKED, + _wifi_direct_select_btn_cb, priv); + evas_object_event_callback_add(btn[i], + EVAS_CALLBACK_MOUSE_IN, + _list_btn_mouse_in_cb, priv); + } + + if (priv->direct_on_flag == DIRECT_ON) + elm_object_signal_emit(btn[DIRECT_ON], + SIG_BTN_SELECTED, PROG); + else + elm_object_signal_emit(btn[DIRECT_OFF], + SIG_BTN_SELECTED, PROG); + + util_set_cycle_focus(btn, BTN_DIRECT); + + evas_object_geometry_get(priv->on_btn, &btn_x, &btn_y, &btn_w, &btn_h); + move_x = btn_x + btn_w - POPUP_WIDTH * HALF_SCALE - POPUP_RIGHT; + move_y = btn_y + btn_h; + evas_object_move(layout, move_x * ELM_SCALE, move_y * ELM_SCALE); + + priv->direct_popup = layout; + + evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, + _popup_back_pressed_cb, priv); + + elm_object_focus_set(btn[0], EINA_TRUE); +} + +/** +* Set the Wi-Fi Direct description. +* +* @param[in] priv _priv object bypassed +*/ +static void _set_description(struct _priv *priv) +{ + char descrption[MAX_STRING_LENTH]; + + if (!priv) { + _ERR("priv is invalid."); + return; + } + + memset(&descrption, 0x00, MAX_STRING_LENTH); + snprintf(descrption, MAX_STRING_LENTH - 1, "%s", TXT_WIFI_DIRECT_DISC); + elm_object_part_text_set(priv->base, PART_DESCRIPTION, descrption); +} + +/** +* Create the Wi-Fi Direct state button. +* +* @param[in] priv _priv object bypassed +* @return 0 on success, -1 otherwise +*/ +static int _create_wifi_direct_button(struct _priv *priv) +{ + Evas_Object *on_btn; + Evas_Object *base; + + if (!priv || !priv->base) { + _ERR("Parameter error!"); + return RET_FAILED; + } + + base = priv->base; + + on_btn = util_add_button(base, STYLE_WIFI_DIRECT_BTN, + PART_WIFI_DIRECT_ON, TXT_WIFI_DIRECT); + if (!on_btn) { + _ERR("Add wifi direct button failed."); + return RET_FAILED; + } + + elm_object_focus_allow_set(on_btn, EINA_TRUE); + elm_object_focus_set(on_btn, EINA_TRUE); + elm_object_focus_next_object_set(on_btn, on_btn, ELM_FOCUS_UP); + elm_object_focus_next_object_set(on_btn, on_btn, ELM_FOCUS_LEFT); + + evas_object_smart_callback_add(on_btn, SIG_CLICKED, + _wifi_direct_btn_clicked_cb, priv); + evas_object_event_callback_add(on_btn, + EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); + + priv->on_btn = on_btn; + + _refresh_wifi_direct_on_text(priv); + + return RET_SUCCESS; +} + +/** +* Create the genlist item text label. +* +* @param[in] data the user data +* @return pointer pointing to the text label +*/ +static char *_item_label_get(void *data, Evas_Object *obj, + const char *part) +{ + struct device_info *info; + char buf_name[WIFI_DIRECT_DEFAULT_BUF_LEN]; + + if (!data) { + _ERR("data is NULL."); + return NULL; + } + + info = data; + + memset(&buf_name, 0x00, WIFI_DIRECT_DEFAULT_BUF_LEN); + if (!strcmp(part, TXT_ELM_TEXT)) { + strncpy(buf_name, info->dev_name, WIFI_DIRECT_HALF_BUF_LEN); + strncat(buf_name, TXT_COLON, WIFI_DIRECT_COLON_LEN); + strncat(buf_name, info->state, WIFI_DIRECT_HALF_BUF_LEN); + + return strdup(buf_name); + } + + return NULL; +} + +/** +* Create the genlist object. +* +* @param[in] priv _priv object bypassed +* @return genlist object on success, otherwise NULL +*/ +static Evas_Object *_create_genlist(struct _priv *priv) +{ + Evas_Object *genlist; + Elm_Genlist_Item_Class *itc; + + if (!priv || !priv->base) { + _ERR("priv is invalid."); + return NULL; + } + + genlist = elm_genlist_add(priv->base); + if (!genlist) { + _ERR("add genlist failed."); + return NULL; + } + + priv->genlist = genlist; + + itc = elm_genlist_item_class_new(); + if (!itc) { + _ERR("genlist item class new failed."); + evas_object_del(genlist); + return NULL; + } + + itc->item_style = STYLE_TEXT_ICON; + itc->func.text_get = _item_label_get; + itc->func.content_get = NULL; + itc->func.state_get = NULL; + itc->func.del = NULL; + + priv->itc = itc; + + evas_object_size_hint_weight_set(genlist, + EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(genlist, + EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_focus_next_object_set(genlist, genlist, ELM_FOCUS_LEFT); + + return genlist; +} + +/** +* Creates the action buttons including refresh button and close button. +* +* @param[in] priv _priv object bypassed +* @return 0 on success, otherwise -1 +*/ +static int _create_action_btn(struct _priv *priv) +{ + Evas_Object *btn_refresh; + Evas_Object *btn_close; + + if (!priv || !priv->base) { + _ERR("priv is invalid."); + return RET_FAILED; + } + + btn_refresh = util_add_button(priv->base, STYLE_ACTION_BUTTON, + PART_REFRESH_BTN, _(action_button[ACTION_BTN_REFRESH])); + btn_close = util_add_button(priv->base, STYLE_ACTION_BUTTON, + PART_CLOSE_BTN, _(action_button[ACTION_BTN_CLOSE])); + + priv->btn_refresh = btn_refresh; + priv->btn_close = btn_close; + + evas_object_event_callback_add(priv->btn_refresh, + EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); + evas_object_smart_callback_add(priv->btn_refresh, + SIG_CLICKED, _refresh_btn_clicked_cb, priv); + evas_object_event_callback_add(priv->btn_close, + EVAS_CALLBACK_MOUSE_IN, _list_btn_mouse_in_cb, priv); + evas_object_smart_callback_add(priv->btn_close, + SIG_CLICKED, _close_btn_clicked_cb, priv); + + return RET_SUCCESS; +} + +/** +* Initialize Wi-Fi Direct stack. +* +* @param[in] priv _priv object bypassed +* @return 0 on success, otherwise -1 +*/ +static int _wifi_direct_view_stack_init(struct _priv *priv) +{ + int ret; + + if (!priv) { + _ERR("priv is NULL."); + return RET_FAILED; + } + + ret = wifi_direct_mgr_wifi_init(); + if (ret != RET_SUCCESS) { + _ERR("init wifi failed."); + return ret; + } + + ret = wifi_direct_mgr_wifi_direct_init(); + if (ret != RET_SUCCESS) { + _ERR("init wifi direct failed."); + wifi_direct_mgr_wifi_fini(); + return ret; + } + + ret = wifi_direct_mgr_register_callback(&cbs, (void *)priv); + if (ret != RET_SUCCESS) { + _ERR("register callback failed."); + wifi_direct_mgr_wifi_fini(); + wifi_direct_mgr_wifi_direct_fini(); + return ret; + } + + return ret; +} + +/** +* Evas_Object_Event_Cb type callback for handling deletion event. +* +* @param[in] data the user data +* @param[in] e evas handler +* @param[in] obj the corresponding object which the deletion event occurred +* @param[in] event_info event information +*/ +static void _base_layout_key_down_cb(void *data, + Evas *e, Evas_Object *obj, void *event_info) +{ + struct _priv *priv; + Evas_Event_Key_Down *ei; + + if (!data || !event_info) { + _ERR("the param is invalid."); + return; + } + + priv = data; + ei = event_info; + + if (!ei->keyname) { + _ERR("ei->keyname is NULL."); + return; + } + + if (!priv->ug) { + _ERR("priv->ug -s NULL."); + return; + } + + if (!strcmp(ei->keyname, KEY_BACK) || + !strcmp(ei->keyname, KEY_EXIT)) { + ug_destroy_me(priv->ug); + _fini_priv(priv); + } +} + +/** +* Create wifi direct main view. +* +* @param[in] win parent window +* @param[in] ug UI gadget object +* @return base layout +*/ +Evas_Object *wifi_direct_view_create(Evas_Object *win, ui_gadget_h ug) +{ + Evas_Object *base; + Evas_Object *obj; + struct _priv *priv; + int ret; + + if (!win || !ug) { + _ERR("The param is invalid.\n"); + return NULL; + } + + priv = _init_priv(); + if (!priv) { + _ERR("calloc priv failed.\n"); + return NULL; + } + + priv->win = win; + priv->ug = ug; + priv->direct_on_flag = DIRECT_ON; + + ret = _wifi_direct_view_stack_init(priv); + if (ret != RET_SUCCESS) { + _ERR("wifi direct view stack init failed."); + goto error; + } + + base = util_add_layout(win, UG_WIFI_DIRECT_EDJ_FILE, GRP_MAIN); + if (!base) { + _ERR("Add base layout failed.\n"); + goto error; + } + + priv->base = base; + + _set_description(priv); + + ret = _create_wifi_direct_button(priv); + if (ret != RET_SUCCESS) { + _ERR("fail to create wifi direct button."); + goto error; + } + + obj = _create_genlist(priv); + if (!obj) { + _ERR("fail to create genlist."); + goto error; + } + + ret = _create_action_btn(priv); + if (ret != RET_SUCCESS) { + _ERR("fail to create action button."); + goto error; + } + + _create_device_list_view(priv); + + evas_object_event_callback_add(base, EVAS_CALLBACK_KEY_DOWN, + _base_layout_key_down_cb, priv); + + evas_object_show(base); + + return base; + +error: + _fini_priv(priv); + return NULL; +} -- 2.7.4 From 5f2dd2066c3eb4100ca77767a58c0853842019f4 Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Thu, 21 May 2015 22:39:14 +0900 Subject: [PATCH 09/16] Enable network settings view This ignores return value from register_ethernet_state_cb() (this API is actually missing from capi-network-connection at this moment). Change-Id: I8748505ee362cc986cb9ac47106dd1cb4c7128e2 --- ug/network/src/main_view.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ug/network/src/main_view.c b/ug/network/src/main_view.c index 54f32b3..0f78e08 100644 --- a/ug/network/src/main_view.c +++ b/ug/network/src/main_view.c @@ -604,12 +604,12 @@ static int _init_connection(struct _priv *priv) (priv->connection, _connection_ethernet_state_callback, priv); -#endif + if (ret != RET_SUCCESS) { _ERR("register_ethernet_state_cb() failed."); return RET_FAILED; } - +#endif ret = _get_connection_profile_info(priv); if (ret != RET_SUCCESS) { _ERR("_get_connection_profile_info() failed."); -- 2.7.4 From 97c3d00781e496eade1970b2cee43254236e7c95 Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Tue, 26 May 2015 14:46:50 +0900 Subject: [PATCH 10/16] Strip out all profiles and comments from PNG images Change-Id: Ie4d55a6421ab3f2cc29aedb1c985feae2f5db7ba --- data/images/allbrowser_menu_bg.png | Bin 17782 -> 167 bytes data/images/btn_down.png | Bin 17853 -> 233 bytes data/images/btn_text_foc.png | Bin 17864 -> 248 bytes data/images/btn_text_nor.png | Bin 17860 -> 248 bytes data/images/btn_up.png | Bin 17851 -> 229 bytes data/images/checkbox_check_foc.png | Bin 18058 -> 365 bytes data/images/checkbox_check_nor.png | Bin 18051 -> 373 bytes data/images/checkbox_uncheck_foc.png | Bin 17866 -> 212 bytes data/images/checkbox_uncheck_nor.png | Bin 17882 -> 249 bytes data/images/ico_arrow_down.png | Bin 15473 -> 516 bytes data/images/ico_arrow_up.png | Bin 15473 -> 500 bytes data/images/ico_hyperlink_arrow.png | Bin 15115 -> 219 bytes data/images/ico_settings.png | Bin 21525 -> 4072 bytes data/images/ico_settings_channel.png | Bin 18483 -> 739 bytes data/images/ico_settings_device.png | Bin 17841 -> 234 bytes data/images/ico_settings_network.png | Bin 18793 -> 1020 bytes data/images/ico_settings_picture.png | Bin 18088 -> 423 bytes data/images/ico_settings_sound.png | Bin 18239 -> 535 bytes data/images/ico_settings_support.png | Bin 18628 -> 832 bytes data/images/ico_settings_system.png | Bin 18371 -> 675 bytes data/images/ico_spincontrol_check.png | Bin 18264 -> 206 bytes data/images/input_box_highlight.png | Bin 10237 -> 7730 bytes data/images/input_box_nor.png | Bin 4567 -> 1333 bytes data/images/list_highlight.png | Bin 9239 -> 9249 bytes data/images/listview_menu_bg.png | Bin 18418 -> 363 bytes data/images/modal_dialogs_bg.png | Bin 18657 -> 859 bytes data/images/progress_wheel.png | Bin 18939 -> 1182 bytes data/images/radiobtn_br_off_nor.png | Bin 18307 -> 553 bytes data/images/radiobtn_on_foc.png | Bin 18282 -> 511 bytes data/images/round_rectangle_4X4.png | Bin 18179 -> 130 bytes data/images/round_rectangle_8X8_top.png | Bin 17774 -> 150 bytes data/images/scrollbar_horizontal.png | Bin 17735 -> 127 bytes data/images/scrollbar_vertical.png | Bin 17745 -> 134 bytes data/images/search_searchbar_bg_foc.png | Bin 17789 -> 173 bytes data/images/search_searchbar_bg_nor.png | Bin 17740 -> 133 bytes data/images/search_searchbar_small_bg_foc.png | Bin 17688 -> 90 bytes data/images/search_searchbar_small_bg_nor.png | Bin 17688 -> 75 bytes data/images/second_depth_bg.png | Bin 22286 -> 3099 bytes data/images/setting_highlight.png | Bin 5209 -> 2660 bytes data/images/setting_list_dot.png | Bin 2869 -> 140 bytes data/images/setting_list_dot_s.png | Bin 2899 -> 221 bytes data/images/settings_bg.png | Bin 117649 -> 77190 bytes data/images/settings_bg_shadow.png | Bin 17691 -> 83 bytes data/images/slider_thumb.png | Bin 18869 -> 1395 bytes data/images/tooltip_arrow.png | Bin 17852 -> 203 bytes data/images/tooltip_bg.png | Bin 17912 -> 259 bytes org.tizen.settings-tv-ref.png | Bin 21525 -> 4072 bytes org.tizen.settings-tv-ref_4x2.png | Bin 89073 -> 91860 bytes ug/channel/edje/images/btn_text_foc.png | Bin 17864 -> 248 bytes ug/channel/edje/images/btn_text_nor.png | Bin 17860 -> 248 bytes ug/channel/edje/images/list_highlight.png | Bin 9239 -> 9249 bytes ug/channel/edje/images/radiobtn_off_br.png | Bin 18295 -> 577 bytes ug/channel/edje/images/radiobtn_off_dark.png | Bin 18125 -> 466 bytes ug/channel/edje/images/radiobtn_on_br.png | Bin 18488 -> 750 bytes ug/channel/edje/images/radiobtn_on_dark.png | Bin 18330 -> 639 bytes ug/channel/edje/images/round_rectangle_4X4.png | Bin 18179 -> 130 bytes ug/channel/edje/images/second_depth_bg.png | Bin 22286 -> 3099 bytes .../edje/images/thumbnail_highlight_glowrect.png | Bin 11341 -> 8909 bytes ug/channel/edje/images/wi_progress_bar.png | Bin 3171 -> 339 bytes ug/channel/edje/images/wi_progress_bg.png | Bin 3537 -> 612 bytes ug/network/edje/images/btn_down.png | Bin 17853 -> 233 bytes ug/network/edje/images/btn_focused.png | Bin 275 -> 155 bytes ug/network/edje/images/btn_normal.png | Bin 4033 -> 1404 bytes ug/network/edje/images/btn_up.png | Bin 17851 -> 229 bytes ug/network/edje/images/check_foc.png | Bin 18316 -> 647 bytes ug/network/edje/images/check_nor.png | Bin 18363 -> 623 bytes ug/network/edje/images/ico_dropdown_menu_check.png | Bin 17850 -> 228 bytes ug/network/edje/images/ico_spincontrol_check.png | Bin 18264 -> 206 bytes ug/network/edje/images/ico_spincontrol_down.png | Bin 17890 -> 259 bytes ug/network/edje/images/ico_spincontrol_up.png | Bin 17871 -> 241 bytes ug/network/edje/images/ico_wifi.png | Bin 18239 -> 534 bytes ug/network/edje/images/ico_wifi_lock.png | Bin 18310 -> 593 bytes ug/network/edje/images/modal_dialogs_bg.png | Bin 18657 -> 859 bytes ug/network/edje/images/progress_wheel.png | Bin 18939 -> 1182 bytes ug/network/edje/images/radiobtn_br_off_nor.png | Bin 18307 -> 553 bytes ug/network/edje/images/radiobtn_off_foc.png | Bin 18125 -> 466 bytes ug/network/edje/images/radiobtn_off_nor.png | Bin 18295 -> 577 bytes ug/network/edje/images/radiobtn_on_foc.png | Bin 18282 -> 511 bytes ug/network/edje/images/radiobtn_on_nor.png | Bin 18195 -> 502 bytes ug/network/edje/images/round_rectangle_4X4.png | Bin 18179 -> 130 bytes .../edje/images/round_rectangle_4X4_bottom.png | Bin 17711 -> 107 bytes ug/network/edje/images/round_rectangle_4X4_top.png | Bin 17710 -> 106 bytes ug/network/edje/images/round_rectangle_8X8_top.png | Bin 17774 -> 150 bytes ug/network/edje/images/second_depth_bg.png | Bin 22286 -> 3099 bytes ug/network/edje/images/setting_ico_no_network.png | Bin 20127 -> 1930 bytes .../edje/images/setting_ico_no_network.png.png | Bin 20127 -> 1930 bytes .../edje/images/setting_ico_plug_network_Cable.png | Bin 19103 -> 1048 bytes ug/network/edje/images/sub_popup_bg.png | Bin 3615 -> 789 bytes ug/proxy/edje/images/ico_dropdown_menu_check.png | Bin 17850 -> 228 bytes ug/proxy/edje/images/ico_spincontrol_down.png | Bin 17890 -> 259 bytes ug/proxy/edje/images/ico_spincontrol_up.png | Bin 17871 -> 241 bytes ug/proxy/edje/images/modal_dialogs_bg.png | Bin 18657 -> 859 bytes ug/proxy/edje/images/round_rectangle_4X4.png | Bin 18179 -> 130 bytes ug/proxy/edje/images/round_rectangle_8X8_top.png | Bin 17774 -> 150 bytes .../clock/edje/images/ico_dropdown_menu_check.png | Bin 17850 -> 228 bytes .../clock/edje/images/round_rectangle_4X4.png | Bin 18179 -> 130 bytes ug/system/clock/edje/images/second_depth_bg.png | Bin 22286 -> 3099 bytes .../clock/edje/images/spincontrol_arrow_down.png | Bin 17900 -> 263 bytes .../clock/edje/images/spincontrol_arrow_up.png | Bin 17881 -> 248 bytes .../edje/images/ico_dropdown_menu_check.png | Bin 17850 -> 228 bytes ug/wifi-direct/edje/images/loading_96_01.png | Bin 14922 -> 12311 bytes ug/wifi-direct/edje/images/loading_96_02.png | Bin 14977 -> 12383 bytes ug/wifi-direct/edje/images/loading_96_03.png | Bin 15099 -> 12496 bytes ug/wifi-direct/edje/images/loading_96_04.png | Bin 15112 -> 12497 bytes ug/wifi-direct/edje/images/loading_96_05.png | Bin 15010 -> 12384 bytes ug/wifi-direct/edje/images/loading_96_06.png | Bin 14824 -> 12205 bytes ug/wifi-direct/edje/images/loading_96_07.png | Bin 14980 -> 12339 bytes ug/wifi-direct/edje/images/loading_96_08.png | Bin 15089 -> 12470 bytes ug/wifi-direct/edje/images/loading_96_09.png | Bin 15054 -> 12445 bytes ug/wifi-direct/edje/images/loading_96_10.png | Bin 14752 -> 12189 bytes ug/wifi-direct/edje/images/loading_96_11.png | Bin 14882 -> 12282 bytes ug/wifi-direct/edje/images/loading_96_12.png | Bin 14976 -> 12401 bytes ug/wifi-direct/edje/images/loading_96_13.png | Bin 15052 -> 12447 bytes ug/wifi-direct/edje/images/loading_96_14.png | Bin 14991 -> 12368 bytes ug/wifi-direct/edje/images/loading_96_15.png | Bin 14803 -> 12195 bytes ug/wifi-direct/edje/images/loading_96_16.png | Bin 14991 -> 12376 bytes ug/wifi-direct/edje/images/loading_96_17.png | Bin 15112 -> 12510 bytes ug/wifi-direct/edje/images/loading_96_18.png | Bin 15135 -> 12555 bytes ug/wifi-direct/edje/images/round_rectangle_4X4.png | Bin 18179 -> 130 bytes ug/wifi-direct/edje/images/second_depth_bg.png | Bin 22286 -> 3099 bytes 120 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/images/allbrowser_menu_bg.png b/data/images/allbrowser_menu_bg.png index 55a4ed88d0e55b5816adf2dea6d9644a90a3a3ac..efdd16e41591a7755c6a27e661467a878df31499 100644 GIT binary patch delta 151 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 TwR&h^00000NkvXXu0mjfjj?2= literal 17853 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 diff --git a/data/images/btn_text_foc.png b/data/images/btn_text_foc.png index c43ca3c388f629adf187ddfcef456af6f55157ee..4a30fecd9d447fee770c3267769c1f84e2938c5e 100644 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRO!3-qZo6;u&DUSf35LY1W+W#L7Id}hX?)hnw zz27){AD^tTQ^#kZGG1vz_n&|KeE#C( z@2w|a{n^&EUv9JPJDxicKqVfYE{-7_*G-SP3pFSRFdS5rn5dBX|9`OeK|528+#?yR zWfQL_T{Ox#bEoUijkL19ox_!3^W$GZu Nc)I$ztaD0e0sy7jT801s literal 17864 zcmeI3cT`i^x5qDv^rli�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 diff --git a/data/images/btn_up.png b/data/images/btn_up.png index 4609691a1fc2707bbb3f36278900da023b8e57a3..d13c7df5bd147b564a3df5f6bf6ff4b55002a69d 100644 GIT binary patch delta 213 zcmV;`04o2xivi^UkQsjj0001-Jrw=`0068>L_t&-(|yoENxgor-Qz<{)4+#U}pzb9?rv=Q9?F)9<9^bv#d=DH@v3uA9q4%`%cc( z)iGRHq~Kliud8XE+z-V8zW1BV7x~Ezxk*ZvIwJIKL1|cfV+c=5ur=5N2Tt@&)2F=` P00000NkvXXu0mjf!CYd9 literal 17851 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 diff --git a/data/images/checkbox_check_foc.png b/data/images/checkbox_check_foc.png index 3880414e6cc859b66368209b7f5a2fd3e1efab70..08ccc2541611cdcaeca33a8015f018c45ce8c62a 100644 GIT binary patch delta 350 zcmeC`WqivtL9(8ifq`NEW63!{Dks1v#PvU3aQVsqoMr#3*8hL|<^Q=y|9vL^ckTZ_ z>(Kudr~fx^`TzUR|382KUw-;OW6A%bRsSEp{hzt?f7s0b58nQ-Soi<$zyB{j{*Rga z|M|!NTQ2>dy8nNm>!11^K#Ms`g8YIRRM&n~fB#wIQ{Bb8FMxu}JzX3_EKZ-ja#E_v zfQKc)!*NCSopQn2|K%ak`xZH8?7V6Df4a|X70)-Go|%SSm%>tazVn@D>2^!F$mi#c z6NYbnTXJk>o;#GYFCmWYru#>&BRx_1OlMZDH93@5Z{fvtqw{Btph(yTZS!-hqW$x) z-n9y`aLT>I9GV{VSR!=$gkyiT7MeeH@cg<@R_mkaEA>_O|L-+&TNKRYzF(-Zua9G@ gk=9CE#f{HcFE3R|72m0F2k2%7Pgg&ebxsLQ0218B-v9sr literal 18058 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 lG`Oott}K*vQ>%Rpm@K#))4Eak-ar*3) zlVVKhn z-}hvxRb|T`3v_jVv86i5bXJJU6yaXG+h- o9#@q2>uqUrXFc)o3d<~W#yItt|B~Z;f$nDTboFyt=akR{0D4in!2kdN literal 18051 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 diff --git a/data/images/checkbox_uncheck_foc.png b/data/images/checkbox_uncheck_foc.png index f7c57a3a03d0698119454e3185b3f41c2ee67691..b100b998742d735f6caaf4eb09340f7ce64d72ca 100644 GIT binary patch delta 196 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 literal 17882 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 z zPH*E|#6&50HUy8Q$fFGq$)&9)CdHKa8ra!I3I{tgbM;hxGBOV zoDak+!UX{$+!Wyw&IjTZ;er4WZi;XT=L7MIa6y0wH$}LF^MQCpxFA4;n<8Ao`9QoP zTo53_O%X2Pd>~#CE(j3erU;jCJ`k@67X*lKQ-n)6ABb0k3j##ADZ(Y355z0N1py-5 z6yXxi2jUgsf&dY2if{?%1M!M*L4XK1MYx3Xfp|r@AV7qhB3#1xK)fPc5Fo-$5ia3; zAYKtJ2oT|>2$yg^5U&Uq1c-1`giAOdh*yLQ0z|ke!X=y!#4ExD0V3QK;S$aV;uYb7 z01<8q#U(xcq$iyXKHljEKF8STcyiBH{Ptjr88IfOCZr?>F!%D9~SIh zX37I%()`0nN1s$PW-ZxY=}A2BDPQ*Of@jp-wrI00j}M_0t(GVb88vK6t}UL+1zcbQ zm59)#Poi(130idVm+O4C)aKAnrZoYxqN7?%@_6T6R>H(*Ij!DMwK*|`quY3Ou5?U_ z&M~q4UQOlTy|32FQ5n}|6!p;G{Hf-WGYyu6w4t^JRq}GJ>v*vk01?DcS)4!1@M^@O z`Lq-@#aPuN05h#mo3u*P`K9};WbLGcu2KnLnG?Lh>#bfEIAXxo($ON%eEYtC15&@1 A6#xJL diff --git a/data/images/ico_arrow_down.png b/data/images/ico_arrow_down.png index 5b55a18d8b05507837c63554fc842afa06327a58..488e3985fadc26152a927a8e9fbb67dd52f2d87b 100644 GIT binary patch delta 501 zcmV8%7A1@P(keu)lNdBv z*nB*>9&Bf>r9Sn@1JyM8+qfNafHotuRQP?zFnC;a>(^r zt41s%`k3k(c)1?K^gHxp72wy8yYszuz%Zic%?>#Fesfy(fIeSp-7=lw`(<&sa{KSC z$m8|iHyn;FN`IDE!QpU6`{R3&tKT>r!=Tp)NXQv1UvapTgUNG12Hf4{Xcvd0%mK@3 zYeZ_?1~vz@^VysnOrCr);x;LDkQ%6x$3GP=8?2FMhbor=CP)#L3qhJe%c@Vdavqo_ zt6AP&tnJh|1=QEF|8Ed1un7;|+Kx9dNqzOiBVV8*|851_L5=fwoB9rCg5QJLh9yaE z_5#yj^A;=mh z_U4?5rvk@x98eL8iXBf8IpG}ia89mO1`p>B90xh6a04Tb!X1bX;teS3yGfd)Z`=2J zqxXk1@6NQz^M2pw`|kUBpZCrFvnv)f-Cj{PvkU-G(b(W`MxQrnf29|p|Es>)5l0`> zt*NK8h-)ak(0AAl#jJC&Sxn|y#%y9NE`!<3 zS{$hUx0+GIrG(rDQu}cDY=P$--DH2Gql# zbSG3UWk@KqGA1KFeyH$CQC3AMq0@Z1u+*t~^m=We+?AbIT+R)YP_pb0MJC0`jM->n zCP)ed$Z7HTxS5JtzZBg`c4p%as06!Z$TUMm>P+&mekn|-v&Op#fzSEKoyl05kH9l9 z2IDA2K{sz6_ZH-+q)JLunqb~JdBWMNVkEyfqo$xK6Q;qGI6<1GWYW^5kXa!&sz273 zgq$iRgOU{UW~yw#$ldFFKHW{NVnUF*l$+fQ-aEh4c_ZlOROm&eXf>Fu28$zTcCxiD z)@HfYlzB)&=QftnW&S=n&#!1%0%;|6hj~$7ak> z4Wfcdr@Nq}P+_HynHKn~(XAswOiUjaGM7}KwhKM_k!_eeUvkHXmXqGiEXQjHjhEMI z6(Yc+TJyJ+%gm;UV;698lr#PX=@XC96@>{>!Dp<}y(TtMq=?$ZC1G7Vs)_%y4Ks$L zGjL}&qn*hy@&B*}3b*w8t-$2A(2sou^0muHxkNh@yv#`1jxe%XO_W$5WD_%`Q1IlH-rkv3 z^jwD?DVf|e<(QqHI~#wxYa9J_!PEyQpBQY~Wt#rh+ElOnc^aU(NA7Z{7J(-PPTf{A0WF*H7L4_jQkLoWGwRs=L9t&(-t@m&iJ7Hyk)w0LMv@2b~YkF0$e zy@KI9)mP;`!~D&p3ZY_@{@j>@D6kbK22{z2&ED# z!p5Dp@?W1@`$n6*=D8Ef<@FD*=WoB`Jv9k>oqb!^T;E-`OKwqm`WHT8tKMHzqyqI# zll$qt5nexVLOnmD{@sP%pB%k-Uir{Py-QBrcVpkNL$m)jLqG6&>g!E=PyIrjdf5fA zvTW$s;p4LN^{3zYM7nZM^A2m^;hp!MZtj=PO^KZtxZ;s}c2vSc6Rj)n!*@0K9Qcb0&2ZuMlaq{epsh@w_cm6tg_puJ}Mg2n+56%htw3mV#>zn*9 I&2L-w9Y+2eYybcN diff --git a/data/images/ico_arrow_up.png b/data/images/ico_arrow_up.png index 6286bcc020f26db0f884be2b841d839c9924829f..fcae670e0531e207d31cd74f6666c09462b92c99 100644 GIT binary patch delta 485 zcmV4pt^4c6O#x6*{yfC>%pdYR6~Csk(7q();+?=lIU4AZ%9T zhI#)H7z4s*=Zv2BNQi5pObZK+YoTmE3o2Q+a1mvHX*tvvBY#G^P3wuihc29{C)R^F zU=?bmBSuT*ltmD(a%;lQp+pN!d|{3sJ4sU`D325#+!ngarwpG+ox4c@Ick~50TFs= zI1?A<9`e%8al@0*L%#(;dXdGtg)w9?wxOV)h8Nk4X#CVaf`Y;>lETA`%(Hd^J35Xi z0LcPNxVy`2Mt?MYxj9eYS){QTH?V{|IEK19WswZfPME<#IgkOsgvT++K^Snr;P%jF zkx9rNDyYuk;?2M%h)m@3Eff^G)j*N2@cL}@Xy76p`FbDkGb;owYuP;U4eS^ve}eDg zR}($WmSSvH$zLs-WuD@r&}5h(1r=kV*-}iIHsI(skzUoXbV<-ain(3IAw}f(LB@rkP-xk00000NkvXXu0mjf);8fu literal 15473 zcmeI3ZEzdK8OP5KIM~F-0pmchK@pP>Aky9G#nxRV1tZz9n@DwR;g{5Ha=JTP7fW|n z-Pw}eq~p4tHnfHb&Onov451E?iJ=2@hK6{i&`?4eO36!STo}@1Iw=%FCn9E~zw3&?|LB!N zF>otZ8#^_Exc(;NS3vyW@mmOjd0Pr~=pBI#EU(0@oS=k7Yci&S+63WVn^ZZzSJX{m zu}6|U=8KcBm`#%4F}FJdR6zBK5vg%7F18K^L;PSb&j{wV-V%3`1p#8B&Y6<2sI0L` zk2w{W1&7rNONe?z7@V0p|DT~}F>Oe7N4gx#vddq|pL7?QG)Hk$?1 zuxJCa&Lu6fc4s=sbR55^@o`DjB}FzFak;S4r+dt1qoM4T8COirHY95qc7P(8|PckE$vq3F1po(ORs40DMUaapIW&O^%IwA1cIBH)!n&Kny zq!<-rz(oU{r|0Z~8c}pbizxGqJ1fsSdR^+yP0oxV7|OhEVp5vN%}~;AsZ>bMkQ?M5 z>x+w=uEax%67{CDta-ZkCZEr=x?Pe5C86EzCgIw-sm=uw{hTg(K`J^dl*3}H4bd*v z&agJ-UW#EUDlbU7CKMw8(q7_Hg48{*peVVTGh+k-Y?G|%oXm?&elHli zRgwgjsUeY#^DHCn6N-u?7ZL*!xY84gznTJXS&Y{?N|6dBZo4f1rS3!CAtLKwGHVT9@FW?VN*mO^42NpB4H`aS3cfTr{ta(fj|ji8;c| zYN}DvK3}mm;K**$*ps8u|6mR@uK&NAfrTxh|MwZloxD=Z zJ6#ISb>K)zX3vzfR(^JG{5&6WBlJ9aiRG@D#ir?L7NyCnh&I6To4en ziE*L%Kq|%s0YRG>7n%>GVq6dqw25({`9Lbh1pz^u7#Erkq+(nU5VVPLq4_{6#svXE zn-~|G52RvT5D>J9aiRG@D#ir?L7NyCnh&I6To4eniE*L%Kq|%s0YRG>7n%>GVq6dq zw25({`9Lbh1pz^u7#Erkq+(nU5VVPLq4_{6#svXEn-~|G52RvT5D>J9aiRG@D#ir? zL7NyCnh&I6To4eniE*L%Kq|%s0YRHcTqU`$G({PFnwbFKV6LmtR)X(0O?+cZfFK6J z^U${l;;&c1{X>H2qX^=oEd;^tCWvLq*yh(82%@m6$zK;rzWec>w}MCRD}UqaWciwJ zl;7n0k!Sag#djPT*>(G%^W@@lv2CT>3zEbQUB^#8Lv>ZGEvvsrbe}jn{3muYdM_=% zxU9eD{i!|g?3I@KNBVBRvDbU0;HrDe&BRFg)1P$JjqhsoYp)LP3)%Mn;pfBqTz@;( zQ1;!z)(!vIzxj%}>dl9{7P-c&Dk^U%lm2Kr?R)XK@4C_x%Fa_Ko?m_Gn{Ai(HJ{h2 zUo9Fc9-@bCy=(NKXL!e{NBy@Pi4{iH{Ijwkd2RXf^D9?A>fdy!tFnp+5g!*GxOL>q zzuj8-(kb<47oRAqQ!fmB)$`QZiccm?@e|O|KxVZ-ryY- zYH(ZK2ltnK=d}yJ+4Ne`zQ(UVKXqa6;yU%2p^5W#4>yeeux+C6*k4RLB2QLM$d{K7 zdFsz>E4uW^3ok8gAA5FbVX|dv=j)rEz31GDq3@4+HZECqwD-+VJ?pI3Tspdya7^wg z8Gq{dZNaJssmJ&}`{ALQ-#xHn@~(+9zb|P$sUGbAo@4ap7pC4_fBK7OzjElXP~6Zy z*xWhRGdgZszvPKW9y<8#!i}qT|8m8O^@%6jLcchCwe-&nQT>x$FYk}+{=oPsxT!wq K|MC4>hW`Z%$OZ)f diff --git a/data/images/ico_hyperlink_arrow.png b/data/images/ico_hyperlink_arrow.png index ff4fadf1d62cdf2977306412242579b1620224b3..e93f68f6b3efe9cdc4c27e40720423432af15c83 100644 GIT binary patch delta 202 zcmV;*05$)McH04v8Gi%-005CWW+?yw0HR4mK~y-)?bI<2f&O${3ooJ%@Rum@8|BE&h&eU&bc4spg@qMg*uz&m!dlXi4IuGnwvmjJPmAA-o zL}jXn=bm^cS#uLtR&7}>@8r0~hC3{|$AYK)uoeS=8(!(78bh;WNAkk;{I*A$&wnsU zH8xaXOJkfs<54~E#1&@@YKB?3dUt3vRX8D*xBwT8-&0h$U;pkHO#lD@07*qoM6N<$ Ef|V{-nE(I) literal 15115 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 diff --git a/data/images/ico_settings_channel.png b/data/images/ico_settings_channel.png index 1886f43dbd2da06c5fafe8cfd591e402962a9c21..2b52ef76a7a4b3ab1763673c24b7afff9a8115dc 100644 GIT binary patch delta 727 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 F{TI#t!A1Z8 diff --git a/data/images/ico_settings_device.png b/data/images/ico_settings_device.png index 6d942472d81cda73def9b650297454b054a69046..40f5112c1216e6cc5d93abb6b40e1c5b02aa8d53 100644 GIT binary patch delta 218 zcmV<0044viivj8ZkQsjj0000c_i*L_006N`L_t(Y$L*Fo5`Z8KL>Gs#^VoD&-q16s zg_Sls4umm$B2c)cVDdtik2)Z$PB`8lP(T_0kk@KefRN+~7OAcMrnDbWXZ}xGS&1;z z_^Rp}a>l=^s6-gCEsGP<{xY<=ga!+YmG8JY{F&_$I&Vjh6~j_9mPkh^Q`Ch{PC}V|~y;K?i06AM53s>+{d-5eI4!-Xnzv2&mNO5gEc>o}zH2D$%(vB?w0BI*Sne6QB z!{KvyJ{&I0mQ03mgE-!7KPCW#v}d@nC~kv`jYqrRn%l)k9=7ASE|P?~n(vETn5d|W_d5`F3?4n&`f-+SlN)9{nN56VZM zH;i9;NE$dhl2P0wQ7I{#Y@_dD5Gk8$zI^_Z=(?KPr+rA%C}~YDpeR|)Q0I+lhyWiV zh{RR!N{MTLNJy)UBv9#)UWr~7H=*#-{OCrJ$lW59{KVCEl93Am)35{PX8=l9dR+l$h}rfX^D>Y}2~EmH-tE zEcCXk!2^#F0NU2W+Xgs)8K`VjlqmuvWdXEHe2fkt77lE^rJ)f5>^=%Cw0h$~{A*RA z;(#tl>Sz(MR1xWi9sMN%h^g_NSLM9g^DZ)%iTZ`txO(iO*`S@ETjMQmXF4UY7-d2Q1R| zk6=&3_n05jxw)ccg7K_J?~^F0#{f9LjU*DDh{)MQ7kzKHQjyB9d^QRIZ^}4T_q8QO zBYmQuHU&?-HW{JhIyTio7vb;Ui5l zvr4->N=nS^mZTC*y**yUYcEyffTZ%#m=EezHew6*X~J&DFLZ(1B^uaZT=!C7?lx*~ zjDvo`$8EH_nz-f`fZg>uw%i(XII76S_`d8Va%qmy(%n`kWbQHen6!k&S?TwJE-p3R zZ+Lv*UcQe)djg4Ehpv3FL_)vD4~?w7VSZt?o>UUO{sR20Y<}(1^XtxvmhE{*Z@LgH zwjj!~Qp!*)*c?V%Ze~NZr#e2e$$>4?#LaJ)GLjPA?NYrGo|I#EQS0jbziXCwVKH%3 z8$FE&3lfx2isA9(8Y9gGd&t<8r3Zhpy>N=svY^GPCBRi2^EAw@3ni zSP!=9R!m<;-;F-~KGi<;Hyflgyi5a6eQ&t|QAGQ|@`R)DK#} zNO>XpHdt0Jc2RU)JWE?8eTl>pmP+uFbE)=cR9g3`)KSnzm{+L-M-`58+^M=Hy1y+- zyd!;N?Gddbs=6pjZr+)^?mQXy5%+pZLhfd_orPBJ`fk0sQumYd-SaY>U%9Eev2xes z#O1MaI24mp5uRgv#654=-*6(Ia>=@|rMJ8mCPP;#4$)KhmCKLa9%WFYb)n($Z##6$ zQpeQF_8I5p9>ejB@xYC-H&^Rw+!0oYHSGIKaVh3Zw zyFz51?`hTJWfsBL1G0xxGp}uq%(UlZcZXICd|b8@HAWfp|Cs>9ztaEUPKrA=|iw zc+((|LsUc6b^PT*-gLv1e42KImhyCWVret+WSiB$tQ7XMYd7|4_WIZQ*Phf8*HYKA zb9m`6oaX9KdPe8W8v8Z&bq#kLPBc6?YLIS>d59fIA4q?g-g9~D`jGW{B{?Nmn6^cI z>(6)&my`#@tjBwvrn;}+RBTm{QLy4cSwUI${OnT4B**;B2do?C|0=m%l6zU@eE%cy zj=~cElASb`mon?}&B7bQNfk*uukQTUn6ZRh+++ECwe@Ndyo*5#3F`>mX^qE*O?KXV zn>>hOQJWN-9_ja%DAnuKuru7!Tdi5jtWsX|Nc_G%cDw44DI{dNYHio8ioUh{cY&Lp zhPAxQNH0#W9?I!BH*7e}9**n$<1X$GolH-C-n|>Q$WL7Qn@wc?ID+==IUC_bc8X$M z8qh$|QHdS}56@pd9h^5xd#y}*PYU{@m()u%>c)0^Zn%?w6BpwVYjS`aPhHxKNihg+?j-YiEIwK! zTXd(hFi!Y$h_wc~q&(y{V!P2*+*OlWq_^kYHfjdd*3WJk9;sVs7~prU=kw4=+_Q{l zGQHu-si<347qi}vg-T-c$Uvgr3m+MOZ&s&Sk<*N=7{zL=X|Q_5)aZt)&`-i^rIAfKF< z@;pU8K<;t-MY*1J7l+=xx9mWrG-!8}MVF9EPhKZpDQ9NiZfsa%LODfwOZiAK9B%2l zM0@xlpm|s|y!<`x&$f;Y<)dSy+t)hWMcf_QyxW+cY(Eu`niTHI8~l*`$$wLUqkrH~ zooI{bn1qIW$-~n7ZE7vX6xW0Yt6o{l*Zq2JJmYmRLe5am{a?pwpJ{L{Li+|srFuq} z%Msdl><>TtRHF6Q9cnB!)Hd_9H)&SsZfT!3cx|}qbeGip;AMB%XX}n%6^`MEo}p_; zD7V?|gS%RjSZ|v4XB^4c8G-z}b8E+mlJEg~W6w4P&g-j+{HHCJ6Z;0%l&@*r_~r`# zO;Ja`lE)Q~v~z?l{xA72iQ`GFPIYC+%F+r;H~N+ihgDn(_Z}To%`|H4dRr0t*W!r> zZJBuEu8NT`&gjk2cRh={B7#9LoUuT;);)K=FnzjixBAG7)Gx=%w@!JWZsuTSWKmnh+CB9r;YxM|1!HL5WSF@~IB?1UknbNn>!ln8*-+ zE_e_H0HR31hEK&MfZr#JQE=E)6~3=A+-$Nz7}dcUM&<-DVFpM8 z1RagVz>M%ni~$ah!RW!TXpBAzgGOQT2n>dRGa_INVP7sdNgDh{3}Sc_TrI4=GzVJ7 za34OOOF*H5gM*R5`bbU?3x&bs@hCJFg~cMk8VFu!0G}3u2;gZ<2l*Pug2|%?vAKLU zCjd4Xm*&OU&Nqg`CmWi%zKqMCJJV1A?+ZJSA}WN&MPZO=)K5eX4uWO={y$Xm_?A1s zo_rbE4;$oBLb*(oE0f3B9zthiZ8qNr@8n@aDL1W;sG%OD9h0`~j8sxX~??PK}=-VfA=u2n@ z7+Rl+r+Z`2`iRvGCIf-SzPi+@mS`d#pxeATpUzg#`{xY+D zOlqc9Gl52*+-OMj$y{YJh^TK$XS+3{{32t2KY{;@@^t(;@}IX6?86KYl z2#@2<52gh%%~)Vg{5Q*RI^eeoXk;R4a!>YS{~yc&kGA7~Hv|7{3H^Vcf!W-p`_KYd zOa=+{HEq8Z{If}$p2~06)7Nd_`}Id;&x*=*8!Gh_ES>9yN@tbs0c<`A`=vEV z@f_9U&2}298+a~clE9%si=efg*&$3nss$UoC-5eBIvhBrDGk)|L!sx-gmWBUgwyFX z=kzwUMNF51XG8Eez$wf?63dHFS8^1Pez5r5;g(>BG?q-63hqU72<*b5o`)^ z3FZUw3UNVz2sVYd1oMG-g}5L<1e-!!g84waLR=6af=wYV!F(WIAub3I!KM(GU_KD9 z5Elf9U{i=oFdv9lhzkNluqnhPm=DAE&*c9Rt%m?BX;(`DXYzlD+<^%BxaY29x zHiftZ^MQDUxFA3Tn?hWI`9QovTo53FO(8D9d>~#SE(j38rVy84J`k@E7X*l4Q;172 zABb0o3j##2Da0k155z0P1py-16yg%h2jUgtf&dY03ULYM1Mv!RL4XK0g}4Osfp~?u zAV3700&z*tKIzE}03YuR2A|`+nq_?ed&1hBPqv?w&+y6e9HAzzT% diff --git a/data/images/ico_settings_network.png b/data/images/ico_settings_network.png index e56dee88adca1215ec296e60567804d5d49ca498..673584daac6daf050b1c840de7e30ce35990071c 100644 GIT binary patch delta 1010 zcmV}O|N5|J+w&ZE&W<4TzrWn)dam=o@9X8ht}7;Y7PEiuFkgm**_jijR-MH< zo@5o3EF=cB(ac%uImKvNMyFea?((v#!=Cpq^-r4}Qnl6H7E7u%ov_v`YPSb{!UC~Y ztrhcJ?+0F2JKUNnVSz_feaoWI0po<@YqmQbRzI_FI>KmB=JFj|7z8fRo5Dv4PLa(R z&(XmA^ieM0IIDj+%nv|w8n?GF%4Ojd>H%Nzn4M;Z4iEXfZ>VpFO^!Jpnu~uFaxcBWhiqpT{ghKd1;yl0 zMk&{bGeQUd5a%-2sHcJTKt30UQNeKZhL5QSgEQ*Y%A`b34ob`+&jZatNJOvyL zPACOhNe^jbaj-uc{6CV1)r@c^kd)9*f|+oYJc)kfq-z7 z7M3OxmT`Y&Qc@IhaB2(zIl;b_B67oodCa0eq}-bUVFH*P($AatkPQqVD>yW%yePB> zcmUYOx`?a_cr!@o)iCL>AP=vyAcI?_Mql7hCZ1jk^I6Uy06&q>iirAV4)7{pMP#2+ zMHSsZ7ER&WlpT<)p_J2sN9J)U(l^?HcK(hK79fA;7y?$3$Jwb5<54~dJUbb)EJ|lI zav>cI0Z;>+NG5FH3NHjviv#5|(B*SCaR74IN@tjG+~iT}*u!ova)wsmej3vf-UoED zo@L~+kavT-jw5)~b8HXF(ujJ}ZLYP_f~4Y5=5jarnqP;?Shpq9cfA+YL4Pz6sd_i< zvPXaIx684}msUUbhPor#0;VR1k9e9I{$L~B46v7S%2`Yyc|jw(K_~6RiF1jUS;j_c zso^+vN$v=-7u%@5ZRcAla2PO+UcHXqC{6L5&QH gZQ*|!+HV8@0lV}iFAS>`H2?qr07*qoM6N<$f?llT+yDRo literal 18793 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 KKTpr;=zjs9adv0` diff --git a/data/images/ico_settings_picture.png b/data/images/ico_settings_picture.png index b6c097b19ee8e780410fe8b18aad887c7883406d..d0d1b199aba2e53cbd977e569051d145498ae914 100644 GIT binary patch delta 409 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 N%FNER*kpU;e*ym^02%-Q diff --git a/data/images/ico_settings_sound.png b/data/images/ico_settings_sound.png index 79881550d005f73e219108533c66fae1a013ba7e..650b777e288f659518a52c5c47e5e2effae5ce07 100644 GIT binary patch delta 522 zcmV+l0`>jBjscehkQsjj0000c_i*L_00G`fL_t(Y$L*FqOB_)YhTmC1i%4Wcb{CNp z3LyclQrU>HFkldi6j7HHM$7yKiT@&18d<>wKS0#ND%gcUtn7raf&@`<^HJ?8`&jJR zWyjf>S)D0FytkNh?zudixgYPj4vM!WV&>f&;8W#WCKBE!IEH@~<_QrBOp>G8VgZhE z1irvIKHmiRn6HL9Z3^t849vF*9Hn5mbuvB~zT*;@4hKHs3l#v)`GAlIn6mFD;2*ug zz+rw_Zd-KQm>c+>A}`F&16y98xBcN`!!$Q=3HU)9LZm4ILt(%jp1HDi13NhcX3bjw zHktv0j?eY@6mWllW9wPsf^;-sf&wsX-X<_pi``BfD#}ZGYu=8e*HP8xo1{Ur_aybZ z#o?yEEP8}MyCnUO3LKDhVD@uKg{Z(0 zN#D(WC22nzFri6F+vdHIv|EowxO$0(tCtBDhb5kbio<_ggE(x4%hzuve1SROr^#2U zxqLPDEN2GIk@OMRzq~Yi8Q2b1Y>{ETp67VeHFTGNzA&H=(^l(Xkz`QOe>~SUb6w2b=RWWIobx*Oxj&zo>-t2mvA2|! zUMvj&fULEZnUmmMbNo+orr`gc(Mv4Bn-tf|jRycS^T+?hfRsZE0YKV;Ng%9Qaj3Kg7nmbiKvm_9sEYv~gK@YO zYGo2v0I`7kGLk@OGR0~=K;Gh=EAH)zyg5DE z0#eEOxFQXVdFXmcsIP>pD@;YR##(WOJeoX>oMH^S7MQ#U6{;uqWZ*6U9En{ZSna?_ zK+WvDni}-p!r7akFRsoUQ}guf811Uf<{AUQQ+{yWs1CefamcEfA*|73OZ%sLZIn5( zWhjQ8FK2uKIMUnXI=~%gV}5jhQDb9QXXoS96{hRSw_Uf7GOleZa~<&+4#s^M8hmo) znMNqeJ=Ajg$0yhBzPCNOq&7}!r)Nv|KFco`WyZcJ-&d=!_ADZ4%Xc`=^WAHfvS$Ew zQZ3pvPV2_f`Z4OWcAd}S_;!8Z>}I^!wpi$CcZ&E2o8@yz{IX|50PwDuQ~p3xQar>f z{AsQK*lVK^%OgvH5W01oF92*b(|{3g7Z_DZ0)W|(Q0=oOO7F`T>Xgk~Qa+=lT;_`h zdZ(#I#WmA8rqa}qC4L@SIbo)nk=19FwLRbujFt7u9K9mrxwB!{TrSNv_OQx4= zmV`=8H@PV}pRC#xCFZ%Cq`p^DF*)L+YPr?)c`+K0TT$|kYBsU@R!FDaM2L%(@;gJn zX_#FbEH1~cx(T4dzC@N-A`gV-I~qQib%9WH+FB0FLRK-cBH5DcA6uPCXqU7kB!vCtER+(oj| zQE!;HZ$5m^wkSe{fyTUO0&02D{%O|dP7v$o)mzlFoz#1EGE?=e7OThKYNC4QOJEM@ zKvvw0=uGRp-l^NE)T#Pzy>yzVvG0kG&d)TRZf{<_sB2D_Ue`=o63WEoc#2c&>7&HC z`uop>O!#CxvwcX}|d6azS`i6hm`S>OzTyj79zn&m`HNT68~VQ56wkfP9(MlPs6aaUp3JYX7|; z_O|rF)d!ayRMLhMGqX-*wPne;47l7O?#tZhygkptMc26_Q|duNwo6vpnwQQ>&Wy}e zr*~yBPIHJxCxYEZqG!5Yx4rH_IN^BY+@_9_N{9?)Q9*!?s<&)*vaF5Z_*^M>8XFAb5A1{A;aeT1uz%Y>SYz z4c=J^i3y}^t8B+?%a^6-yuOUIQ>Es`Zl6PEn^dh{zG1l~V_(gTv>xY1=hh7A3|h=&%lo9#(PA_ItL%*ar1UErL(*+I8Et{3J)f3rhmR0PSf4TmEoYHt7R=I^**vRe zA?}90F9)X#uWEklNN~SyOgKqCNKSmZGq$J>cl@EnKNfO(n3WqkG&)$7tjgodW-e1* zW@Golu0O@euIQB3sa3YCY^$p8Rv)WwNY+m^L_R|Gr1qpfN^QUBu`XbpPT}doOEl~J z&UL5U`U^|g5$iB+CrK{r+zTvn({h(K6z3La%*`mWkGIcGZ(v+M`?l~_Vdlj}XS*KH zY|blW6>cXpJQW!iZ{%I?k1vhietG*pBZd;PyBcR_E3Z=y=AHMG$F9Y;rPLhiH`;#V zeL^psL8_fo`&hT5aQ+>w3TB#f>U~RwBBO{GJ`fcXZ4-6}mWYR?Dpj`LEbUy)AM|y9 z8dN`+mRgW{t?zX6nSOLXvwv61;k$Z=wbI>mdH1g0Bs_8Ksxy)~d=TN?o)hdqa0q2w z=uwAL;IXc`kIr5^>7O-3eyxcAfcHDxf$zW>w4vJEHr+KSyLj{B9f#|j^i2`%gdOT* z)UlwkIv^utsTe~%I@Ba|{j|>?gZ@^%y4MKXO#6`E*k`imNRi0`lYL>iVO{09s$Mr= z?ax&m>Pf1JtzpiNSQGrb;hqG!n;dgJc-HcWT@kL4MtiwYq{Vf}M1B9d76Px`?2}o7 zSz9Ut>3}%{U9GQ;&w_2nH5pviyKGbmqr2UGNJ=AF``9eOz_jzwY@aLbU-|}iJxhBg z)3Hr434YU^8+f$l+WUwMg-qBy9c+TJZIu1W18+>`XrETtv-I73|D}7S1FtDxW2nLF z&~;Id2^+Lk?B7{w+XcnFiY?I()VQI0Qm3nE=km<`CAPA*t*O{_g_Nxj7RnG?iVTm7 z-S2CfrD_*n$aul%rf_+n9vx^cB^8cMEPe?>9K~`tVrayleBG#uc87v~h(hle$ZDHe>Q}zJbls9Sdfx zh+I1}2X|?Ap*HKGLw28QVqS3RvLHL}(2eD{!^$s+dB2o#k?xAv{<7s!pSuGI?$&;R z{3$X`3BMqEcb^=e5TGd3+(J2l4>7Pk;OJ` z-Loy{sl@%iwkk7};hRlU-lbTiI;VVI@45c6!(Dt`!;7|{FP6=J$sN+exdpBsAl_m& z^@iP#XS}Q3lXfs|doXOc#iRLH;kF)1P5Wj!&g;u__)qK2$6|U`m8`1S@a_`-U4C=d zeAi2^DQB>oSTFc5aHH|}9jb~C6{qACZSXGY4=TN|jXu%GwOB_lzy*KVNX(Y7ndT6wMwB_;ZmK~eR{ErOO zwO9_#j0mqCjUC)4N0_lMdEcE#*~pjaEAbf2Gb6u|-Y*%1T59dGbj8tQqj&NY72v@i zAHIB4Q zaRFFC02Yl;h6J#D*gR~2q1r@Ttl;x_Gh7Wa(S`4AsAe)gAcSPM214NY(IEOTeJBNi zLP88MFr>a728q;xpb$u1I1&LzVW3DPR?h&7L_@y5)bP@RPdGm+9qVLf@pU+XWvJ%G z=X0@exWB(Y%wHGA@ngV|7z_rEK*3QcsGtXw7s%$51E6f4`ecxAam;8uiXW59XL8t( z@wjA9&KAC*n%ek4-(O$X#o~S+h|T-TPCyYJK<2`cFa-P$B0D?bG8XH%N*>>Qt6(Ny zSN7WhdBi|24emtaakltTXy#jKY`*&MCPAfqkHg*K=QF{FN`cdSXe@z*Czw3)w^QJL z`v&q|{?jzRyZ^X)K9l}qbAHl}d;Tb+1u*|08~04gCQ@N?hj4=Y!xH>xWIo4_$l>_l zC$sFw_b0*ECrwu-o67O$Y2o1D-aoebM$mi~L#sOK39=Wy^RDeGN?& zgr*?$SJKfa11Oq~p+b>pJt`DKry`*=1X`DlFhJ9FQ7gZNo+AGxw1Xd0P=v@nQ~He0 z{(m~eZ^HaClogXFNS(kbDJ4j(i8A9%^ZmK?o5P1WQ7*V-KOSxT6dJ01JBHuu%lGmz zu9-N^STbe2(BLWKxk{tr;6JtgnAUgYR~hry4g7bMC*x0%|9K35FB)4|!cT^p==J9y zJPw`jPxhmkFa$aA-yFlqfIln1k#X?xn(V{;KiC5vdF%gf2maj=`v1NIKXRAiMP@T- zR6P7!+J0;Jcbhi3l|P@SZ)M=u^M|8Suyl?ei_FI}S!4zc&Sf)j@E?so#>9QU3SkKx zAC8|Lhf2fi;^4n){;f*zPzb?GaKj^beU(migQaf5rBmHt=?|p~o5{xu>ifh* zLCsTC;}_dWsLq1>LKwhHbI1-GT}@Asv@RFCiV^*{OH$BO=wQ9-dpgMfetH$}LF^8tB9xIjRJ zn<8Ao`GCA4Tp%FAO%X2Pd_Z0iE)WpmrU;jCJ|M3M7YK-OQ-n)6ACOms3j{>CDZ(Y3 z56COR1p*@66yXxi2jmsu0s#?jif{?%1M-S+fq)1%MYx3X0eMBZKtP0>B3#1xfV?7H zARxj`5ia3;Kwc3p5D?*}2$yg^Ag>4)2#9b~giAOdkXM8Y1Vp$g!X=y!$ScAH0wUZL z;S$aVpX^aZlSS+@ZAOf%Hs3yTHZ8@8z@vsWDmNKz*_K?2EayV+Set2NZu$agF4{g!ShZXwO&OUpRE;cA1GA&PR z2W!krCFFC+B99fo@a#Pj+nxd5{X?wgF`4JDr@vY9<`%6F!+qQrGp$4_M?4&cSKI(s zKtzuK%bGUmNOKz++NKqU1so0)Kh!JFm0CG3wpX)E#p7Ya^42Ez7`Vm^V&z=_;EIOC z(A~ub1|dcXb*!GP`3ki*>kjgX^^K6W1Mi*c+19SR^*wuC zeOPnxo8!YKikr~wf1RYSi_h7tackHx4z0mj-INMxb9vCVx%-j(myqFhbMbWk(1tsE zlQ(HCeiJrq01LitXchsiT`JrBcU`VKY7D#jY(F(KyHIP(pvK9)Xv*69@;!|&WBKjf zLpfRJUnP{%H(Gs4(Fk|^Fk|8E{pFFlr98jv1Pk^BB}!R}I14D%n(@-%$)y;hLfx3O z)uWdORq&~1q&Eu{1J*`_KDIbj*ZBxoK zHMquA?etF?)mE2Pv`?U-BRFwvQiNB6TlL-4IRQ=$wVYOXj(b_o2M!?N;4Z%>_r<#L P=a8+ilFF&Y7ltSMP0=f12YyBSV&kxeq^8|f+$8R zrLMwe&0iOL-QKzP-Hg2SIWRaM`#=BZea<=0aiIBKIrEIS062dSE7#JxN=LOrUKPu& z35}{#uk}Qq=Y+^?*-VH(q^}quHlu8ksupmM81RcQwfJx&-1w*^%r78@pMtpqdT0lJ zQ_o6^&=uSw3bf;y8{lgCfgXGr!hLiD{jAOoSV#xZ%Fd1dh*xhsk{>*?C#F$Ds?0$Zv+;Nz^gwM+qF)A_vhJYI;b1`GUPtH-v zStbCeGx=`-A$vd%F(z4IGG76p#?Vdx@Xq94&LK+d0nY$|6!UxF8;cSb0Wg|9sS(PN zv{TZvl=3N&^hq&8E0QEln*6&|uU#oaGEd zmnB>U)4*p+4Yn;n5QoJ%fP92NvQn%i3OGq#qxo0l1JU@A zht!|~ozMDOL^FEx&2LJ2w^4#gGNpQeGF$#Wpbz62ZPR__>9L#{IkZYTZ0kKJ>5UQ% z)&qPeCnLjsz_3l)I2Z!`MN=MrD|zynS*KrjgyFuvC` zZG>$mhnq%&Xi4++F=oW9a~KnBr%Lrw&()|eiqAGx@~T)aMKq!=HJN4`hxX{0cB@2F z8dNQ_f_fpeMn3uUX@=p}jMwoG;#iom|9kxfCA+_Umeoy)00000NkvXXu0mjfVMuWA literal 18628 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 literal 10237 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 Du!BY; literal 9239 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 RATSUaJYD@<);T3K0RR@}en0>K literal 18418 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 l_BBo{vnJU1pYH z;>m-jKynJfW6*>DKqX!_A&^7z4;1_Zg5n_%5?FIxP;ygb5!8z(59%R^pdbmEHCbW; zGt<*uRXKEhbob8gEa+R*%yjqE)9?G%`%!}BA~;O!(Uyn8Z*DGrvlBb9zt5k%xwZ4{N9&~SxqpqI=J8SwMT-tS`V1ItZO$ilpUfw}e9edf zeR_0gp^zjIRce3ZL2C>d-@Ry!T`p$lGGm6U1z2=~(KkCS!*5 z>Cq!pZ&4%#q>WG

O3xuZ!1CXp!A&*u&YLHF2=FHtC@ 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 literal 18282 zcmeI4dpOhY|Ht1_$RX!cQbRdqo6V`MnZq1&3X|z*wwc9@Swev@=Y8Lg`*q*%d%Lc;ee3Kj z#Dtd!0{|dqWohcjc~_Zw2?=oiW*PM5bKd6rTDtlJfQaY52SR0HRWuam zORSAnOn)rvP$6k%HdnqTEt>z(q0ob}4w|C-g&zraE1o*E=XCV`+Og-sr@bDOj=rp) zxcm^?n>&(H*eF;oBzoLZ+d(%}^qk2u$!B}2E32M&!;Hd&SNH-FLWN{S|8ZqL;8O?& zvr4I4@H)U3&>|uPl-nkkYb}kM6z?}l+{72Um#>@^yV_bPR0c2#I%IMdFf!*0O-WF3 z0@CIJZgnL0E?^xLa8up=vIPiD`IH#U2W&j5D9e`?3qYhP(WZds8X&iE{eClmpasZy zSXZKeM^He^%EiMHxNrq1Z;%iv0E9#VEr;j`bzp8V;8vro902T11Z2#IT`=!fTwu%88m#12$>3RcKMFv~n*dXvlOqNckNyO*%M& zJfpPF3ns8fv@-%qEKpu zT4~t)xyCg@(nQ6!Xg>G-1m#0Qa)}Y26e}#}N*!1Mxf3nppky7ZYl(2&kB2y0DhwMi z=b)lCnO}=tQv)Ewzebi?AdZF=I2ha)y^Jf)(qFRI{FKN&G7FIuvoJ0B9`n)?gM)hM zz4vlF#oJ=AxN5EPSBnI-E4{T~RkutouGX9%N2g@MA4rWC*>k1B z%*yBM&1IWFh|7#E2{r_~N0wQTr7LtK+ve-f=ilpaQ&lN0%leYaHObGFi`S(Ik;^akwi>Qm)i_Rz5oL$^O0xDAL#|8(S-U zZ0#|XWAYks{JHG2*-x`YoJXAN@G*y%~8aOOf=1N4V{ zShm+0`ScP~_6?uR!GzT7TS8N97@1E4%X+^o-31@VkJG&L(-z^mKeIp8+mGQyo99wWv--y2)pggM=6{*Sr%L0Z+Ot`%MMDtgsv6#*4R6>Hmm z+rcD9+v2n8XV=)Qv8k@VTYswlL85N50pcODH@P?YVRGjcw+#UsG>fu|u2QTDx;LD4 z9V{yKiP(U0JwtHbu({AYFC}l~gOa?GOv%h*yEwa?)CbgC7v2@!DLQv$@r9m80`2)l z^rBrvs=FNZ%I*AHgK=eXyRPl}XWT$gEb8%s9EA-EA^w+`GU)Z_r%4Sb1`T)Jet*0V zP9-!-G(OVqDw3{KucW0oCAU~m<*3E}dq$!U?6VH9gT-TE$?{cCYRbCTvOf52eje2P zAtkvm`Q|`Y`}sk=LE2zc$H}`oC)HD3wf*nis=+;T=xH((IeARWt1~ym9%mm$z1*t| zC&6P~@*ZBea)zBfN*t2Ie#A0Qc450P`cIKhUANxVFTYZArOy5qBXw&;CvLa$BzZDu zvI)oxUCBq~-xp>awsFqbr=XpRHx3!1+bJIl9uF8FOe;2)HI50-3-77OQ}nEPb2v|N zv^Sw4wt==FVqM6q2loVtFNp_kg@~#~L`Aqn8XoeECM;<}#Otz~I&l7-re92tn?6mZ zBJ5G;p=)(Du-UL}m^S@uI@b)VU>>e_TL~!yD{t$iD40gRo{#tS&aVR_Q7=+nh;#+Z zCBSPo`v#^r+cXTQ5IWKTU540mB=)eM zNw%VGToJXO`qE=ZT`nb}VB)sVfh+K3#{}cuwl7`hmNJwe5%XPYj)$9FV#x_54WDnMi9Fr~=_-S?)Ge0md(|UARkj-m1v; z0=by0`-?Q_t@b$sF7f#xWhz0oUSV4*YQrlo^Lf1%aTe~0*!8;O;lO5l0^GIpGVx1f ziab_!-~N1=cDZ=j-H+5d0(#`57_~PNJC0sDms43xZuDsO=zIATn!0hp@$C4Q@e6#! z9=BZ*>s)_n;KN6=c6fZfT6@W!B3$w58+P<-LbR2uvYe_wXrr{iPv&3SfozkzE0X8v(O z zocmm`W%&*TssenQNz!nVd9qW|*hcq_*X-|Nn;!H(4f<-)zFho-4#qWb?Fjx3t*tM- zC5}4WcrfKy%B~RD=MJ~_Q$@kOq=wFI;*6nd60GOVW|Iec*Oabl*fe~VHC)i%Bkgk4 zCFwkRE4`o9kC}*Tv9B&UQIeEjyveJ0FsSTuu*Ybhe5!uKllNtT?-ouzXiY^KJSiIq zVvOD%{m{AaNeEMQyrHh-FwBXCCpsPtb?n|&&Q2R?>aZ9U zh}hFO5&I!V95*i}F{Un3Eb?{gYAg!%!jL)M_casONN!X~m76#%yLUo%t4(@- zzWBlEUglWb;<&iUx%>$uUrE}~b^t(2)9?fq!PW*%V$fkkGQ*t$3!wXQ4x#{nF%0k} zlDsG^h&zQ!^D$5wD!HKqp^*)gTy$-Ag zQ&>bu0NvZiA01$zG_8x~e4Z+XD?z5Ku)GYEjHeoe5Ny{$a115|q6^c7lC+Qrh&~F2 z(A7a95SkFA7D5}2(1IgTPy_<4qmM@DLB3r|SYgg543q4Eb~H8r)*Qz&Q1WE4e9>?? zo6Ux?wP6e<6^=lmP;f0I9EpT-YC!!1eOSZ*sE@z$jL3H#Q;I){N%LjV7(S3GU7|Z< zJIg>xX{wI9keL&tYJ(|ei^nFObJQ|O!!e@^ESf9!(q_irFS z!hh+;5BFb3&!Tz!oSa``r#ycRqXf|Y5;onh%-5_E*Qi!L@%*^-m#+DUn6Na#B$Ts-*)(BJo-Xw5~2%OLvtP3azCz zOJt@dNW+$s_GBW9_-|BxsSDO&kZB%)|4QX&&0jTaZP8Xf{w$&oiDG4n<%}Ihqmj`h zqz*!h;_eRhAnB}z>LPSVP!x)Yf)a^jZ4VTQtWP1%4D#3T-=s|$r0r8V^i7(~k=Ak7 zrJz=mbfDU+QAj9JM+eD~Mz}+DDM+L~Szil<(AJ&i$B~{D{+qNtlg8PEh~Bg6O!fYM z+Qc7Zerw8-=Fdr;z*#B9Nv!E@#);zhYw34~H*I>m@Fg<+DO0P^Kqq3bFxu}E`0pss=+6rOdmC&|iVwGhpOKob^>-0} zh6jsHWKxW&oSgV?mf?)xuMuEn418)&_NM(G%z-~~$Nz2y{@oJ#|2_jhbC={v^r2G7 zSors}{a*0zCT(Uae_c=Cw}Ic+ABIdqdoY-EA`45S6R8xquMZUi|5^C6P0WwG5E{qu zW-x6TWC~Ur1OHR;AEP)wuC1H-Z4K-1Xkh}eGQ;U1P&pfI#c&CG-r?D za(o z;o{B*3MW z;coJ9apwc_@^FEGa5s6lxbp#ddALA8xSKp&-1&gKJX|0k+)W-X?tDOA9xf0N?j{cx zcRnC54;Kgscaw*UJ0FmjhYJLRyUD}Foe#*%!vzAu-Q?lo&Ijb>;Q|5SZt`$(=L7Qc zaDjkuH@V^x{`sUQ#fS5FC!6ye=MG^O=f6V$5R#>%EdT_q1c1;z0PuN|^WFyl+qD3o z-;MM5XaWGpF^+7#Z4Ll)c37Dj;{)2>B-naMJIF+yME9@tyku3_B6SIBvRP)+RcD)p z8r$STzV5AZER>yR9PZQN-g457C8<#rAvq>!8oNVUy|TX`@xIKpwPJn zO>lI|Jf#W=mX_Ka8|O#OXt))3#cfEw!o9%b&U=lxs*#%TH+j3$(Z`}I4z%0lnyA+= zOV%yklpJPyzqBn8p}IcZRqRp5ou1)KA?#J8Mq0VKEsSc={kk$i!&~QYh)p6rOn-my zS*!N#<8utRUkqMy0UB2qWF}rTv01k04BwbLGw{ZIL+{%yZ4u3p!f$c}a=n=-&x$VH ztOr5Wc(1ovuPQb050+X{(iU8O8CNDQGVdz3YpIpA>!@2%!%uoMHWt_Lt>J$K+g5P=+5oLaOw}9u@fxaF_R&M;fUxx{qx85#VKj!I>E_;66PT&Vi9#QUhcek8S)Zcpn^ zNM7RDSXBtDGdt6K I6SwgH0!iFsiU0rr diff --git a/data/images/round_rectangle_4X4.png b/data/images/round_rectangle_4X4.png index 5a1f51d38f87ccd9c29476b13310fb47e158e57c..bd4edfecdba9c0ea49fcd40e4f1c60c9f43f5ddb 100644 GIT binary patch delta 113 zcmV-%0FM8Ijsb!JkQr$N0000=n9iF3002ozL_t&t*ImuQ4S*mNz|i6VZb4xAzkqQk z0^wed>VL;xidYS&It{B}bNCuI4F94yIr-W}Ne)&j``}LL!k&&Du^BFP88&$U;2Bie TnJ2-t)fidDpxCYt5|1?BDZye&1(5pXaxK``NSB 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 diff --git a/data/images/round_rectangle_8X8_top.png b/data/images/round_rectangle_8X8_top.png index dc618e3e557c474f8d3650f87230b2b2c31e2df5..1403c5458c9ef857911b4097c103a2e3b6f3ac34 100644 GIT binary patch delta 133 zcmV;00DAxKiUF1ZkQsdh0001f;SYxZ003P{L_t&-(}l`04nRNvMA2Cn5Lt)YLev@u z(BOc$2npG!eT_{>EN{yBLf3LSCOqJo=&|7mLBYz?OnFZl-nAid9FgR}A(62Vw_p?1 nvWl~+#K5=FuqoA--GF|ak2tf!gU%5X00000NkvXXu0mjf5N|nx literal 17774 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 Mjf-`WmG92~0w%OV diff --git a/data/images/scrollbar_horizontal.png b/data/images/scrollbar_horizontal.png index 227ddc2d5833629be0a6bd9baa5919049baf7b7d..b060a3db2d91d1f971394b7faca3ea9451510fcb 100644 GIT binary patch delta 109 zcmV-z0FwX5iUEI+8D<0k004o+9X>U(EqW|5iLgx)V{C*h1Pdd&c?iiNzuh)| zf}#j0AcBg3;9voiQ9wiod;=mj;CCqkUNyh@t>1fpytQ)IO4(_f@&OZCzWUae@ zy_1cC>{3|(02J(OEnUG+8So`7EeXD_ZfLzY(ZIF!4b zy*UC7-F!fL_sd6~ zH;i3;Kv`S6S)eI*bQvIsihSJ>`MU_S`T^<{$5?E z+^YwYN+}|gYU8ZJH%Y?-q&z$j%XJ&=R97!FqW(ZlHA7Sfr!2vQ8z}ubbO!)3<5j@f z4vhviDi$_28pW0=|QKZ>#he^?e^o_%t&7 z=hbK0;g~JqHWKgttiJQc;qIRiA-cbo$MMSmxWknON(g&(^ zMwM=PxQvAPP3Z+xjkXvuuLBgVSZURi$afl5wi5FXYQt{DEOgPdk2kbMyB;9J+-=nd zO?W@xqBmP#iC=pY!0i1LRc?bm8eZgL@`wCIQfapF(tXw^OEnw8;=C%|Eiqk{eY}hhwgL!Q-#xmmjT&i_66SD0uth_Ssea&Jo3_6-( ztFLu`e%u12^6nT?jj{Ip{UnS|>ER#j&i_tsncrgF;_s@}r=OE%V7pW+;Z_^nr$`ES zR3EnbW@LAI_w{aUw_3Nx;3nC0FSCH(-?=^0b-le~-I5;V9)li9Ml#0S{Zy*!-7o2R-Ql`3>35gR^V_=0YhiMS8~9+;{qp{Ufryuq0j?Q7QSBfY?ay>1BX&H zW3x|gVp1X{&o<8`&*oKyQDJ{p`k4x=GS83Uisp6ebT;eQu;LnjOz(Aj?L?Vn;5GlOf#i&kNSPc8n%(ANEXX$OSa25 zE+*VC4B!ydk#+5VyO6eAHzS><9-}5b-4|clOgPnQ{j0UoA$INNF6}PATEE&;DR5Va)tR*pYaQwu?lhcixSwK}W`cfz=}qfRdyv+7Y5T^Yjrt|oC6^g? zMco_Ecn*}5`$ulXd7h@YZ`@LBU65X|;(l2{S=PL)Ql|u`yo~#->*xM1xmA*LY00^s zhm!4uC4MD)s4Op4)}Y@A#yoLA;_$R52#|KRJ z+<24Nhh$Njl$#!6yGj<+uc~3EyQST;VX3l8`4K}g2lw0Wtw$sg5ov0*k8f6VuM-Rh zYC)3|D)-wlluu`Vs58kq zoOQ8R3rR!9dlWo4cjn}=`u;p4lIpEa(a21 z`{rMV3p7T0lN;k3*@}_tLtos#D@A=yJ$OA-UMDg-(j&?=mK#G^+Kf&z3~cTo@jER) zSSDINNn@d%acAM{4E2b)h#iDB<0}SNOluKL&pWM@bc&s?{W2Uvuh7Wf_iE>-{-Nk+ z>Cfc4cB>{MZ*JiRpJ=Rp6PdLr2QgnCpJ?U~^

l;;)sJ8(sWfZ%r7 zE|niwM{SVICtN;IqUYD@oY(J>R2W*ZGQ`m*d~4P1y;T>*d|t`9%l1U>dDZcte~U8( z>DhUa`XMS^ji|E!K;go6)g+Z)9_n@k^{7R2ZeL63IC>!`ucnmV#B5>qJ%0kv*rb@4 zoAf+M(O=-dCEmK)?k?u;*vf2We6;&mJYrh7Kez8);zz$N1x|he z{dM9k;-gYpiX{(9|7cZjF(JFg-CzC6MzQXvt7GY}1K|or3huuiuYIP)wG8g=8fZ!Rt zZisw~-PX7FUIJ^d=}`Ky^gW@7_Z{2YPnPWNr8Rc$P~yD4qAYmYVl{rScWwFF#?6D5 z1%pNHJqtW8d!(MlZ}WR8cu5#bxaV9~cDyXLuynIe=|D)u#of%2KD7+v#>a0eg8yDL ze!n#XXY#mWD1Zd?INuDdC#m&!u4hK08S0Dc~uOc78V9q=@cAA(Bfcrg$` zeq8WI6aWaOL0l@$harG@F<5MW6V2CU*EC^lx{0QTp(DzXOJaDlZ9{krw-6^XEyRb0 zqidQHWeGueFn}LJK!pYQ`TFzmK_;4$aq-~yiDslGY_f~M$3)Y7Vn7(haXpO0;W1!_ z2tzmxg+arNaR{`b0S=AUhhb1?EE0`EVsLOY8gF2XM;pPW4^5&h_>I7$Gx4sL*3-j* zmWigfK)}T#k%57Mh(IiY!($=QI2;a%!XPmiIM@Tu5B3*OgW&#rt*IcN<5)8IG#;BP zU~~Lo6LG0toSgy_P0fjcW{&B3`Eh3k^5;*p11Tbds9Yo(fkJ*qYEF=;o{$)hVA|8E0_s1B@w4OCmUT z1e;CAGmNk(1_OhFW3Yzc{Jabd;9kbyj>AxKSS-efiNP7sCnx!({HxHG9NNx_9GVVI z2SXcqp_oj%0Tyn6Wzyi7H3n2T4r^=-ryF`1VbNHW;Tjb7bLctpuR=TX*kBQ&`p)Sy zarXb$A-)mjtD$V!d@yx_=cE*vSd(SOjS=u=>t}~Ad$L?`sXRVoVi%fde%^*N^<}1f zOlT%|GoDJDC^SUcM6NPGz+be^p4NV$cm4lX;Gb=w|MnG_&0U%|)t|+n z6Oo_O_H)BOTePXA{Bl2iE(2fhKLVYGXL5LcQ~{CgM`baPTz?h;IomipCSm3(geP%) zIXp)Wok0W(%(t4qsRI98TR-*R8joH4|q&V=enU%PvO$JZm4ut>F&=K5HZuEL7L~N zCN8#9P~E`$LIx3>8ng-8dp$dd;Y+b(gVzN9M5V(`OQ7xF)OpV8*38w-X`j|jCDWXH zx5)xA)e7Djf;XkenY+@jYR61<{dazuozTBCDkPR@5C{2$yg^5U&Uq1c-1`giAOdh*yLQ0z|ke z!X=y!#4ExD0V3QK;S$aV;uYb701Ai_-%F5!G2UJ)(`5aFf>mvBB1uLu_eh;UPcOE@2hSA+`!M7Sx!C7ch$E5Zc< zBHR>;OLq1-PliAEaAzR+6z79I*4x1+Kw&gnS4RK{SpfiH5diRh9Q^D9fSo7+cnSLP z$pE0rIkN4BHQ3kP&eEJ5)VA*~S~g-mU|H3=x?8fUwqvuj?%NPets|QK6p6LN&J{NX z_hwe9rCmdYT(JFDOpv`)75=vTb zLJv{kvNfvbY7h(GJjc27v=$Sf|lDWsJc*vF}{a^32{@{Yzl@R X|EX8TzkF|@00000NkvXXu0mjfG~q5) literal 17745 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 literal 17789 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 S+B&FHfW5V|Ri5S6-Twnc%6EqV diff --git a/data/images/search_searchbar_bg_nor.png b/data/images/search_searchbar_bg_nor.png index ad1a285d66c3bf941d9f0c7e8f16102e3846dc35..34add3a8d610ad608e19227a1d2d91262982eeaa 100644 GIT binary patch delta 116 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 Wk9+DCd6j@;01h@T*2Px7yZ;9iK2@Ut diff --git a/data/images/search_searchbar_small_bg_foc.png b/data/images/search_searchbar_small_bg_foc.png index 0a81cdcca66f15284f4c0bd3f55e479b49a7d261..8c1c0c9e92757732ee1921488b56f2ce3f398301 100644 GIT binary patch delta 73 zcmbQy#TYd~!ikZYfq~&x{FGoI#TMWb;_BM}9|*+%t8M^_@O!#AhHzX@PHFVdQ&MBb@06u0F@&Et; literal 17688 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 Q1wbO;XzOZIWbM22-?q3!>Hq)$ diff --git a/data/images/search_searchbar_small_bg_nor.png b/data/images/search_searchbar_small_bg_nor.png index 72121449cb0b7129bbaffb6329b3bec0723dc3cf..2065af4cd7012bb95d4f215d957ee59b0322bbc4 100644 GIT binary patch delta 57 zcmbQy#ppdj(ue^FR&Y4njBFA=ESVlxtnlPxN zbW~6j0R==*5fB_3po{_{I^Y}7!BK&CDFR+Kzxl1-`~C6O%3UjEpMCcC-19m6?0b{7 z?%vgI4$2A(6#xKGc5<}!gg$4EzT{+}_n*1?UC@U-&(T)^0E%-)Us6EI@%aFt;LakG zSFaA>3b}#+E)U^ECL?%!u0JaX1b~p1G%qH_t7o3Y;M2D@&an|koVlLratKeG{SkBH z^$oS<)mFu7pLne9Q8~-bZieQ~j9BS|2O|!sdl)J0Q+OoXseSU`?o+Y*Zhw5X{Z!zC zvcVVi!xtZty7LCoiW+4rY!d!#Ca@hhC=BIW{CVFzu_09N)= z5ot;KUO>hSU~?VauLD?(1U4_-`QjcBk@h}$yA-hQh_<>^Mm&I+1IF3{0V{#L#x?uw z04fHU>+f8R2Oc2-jFXSQBXI5#P|={KSO~}|0T_?isAa&6?ZD=ny1F62o@8LIeZLR! z&*cSb-G&gU94dMIxT~}C(W+{jb+p?)JBFE6n<{*Ug8mLC zej0rD`_<=qk;WS$9cH}$z3R?em(z z@;3uH>4<>c&l*J|Z!Cu#GL`@l{!WL30brx89*T0i$g)-r0BkcN4bNF?zO9^ZR3Wpd za%Nkl;-}4Kdu;Tot8CP46c`bU_?wsI?Xoe5u0N+`xEcMMl@_kTBOp3~r-G{TzN})w zQ~f}bORqF2iFej!gFi#q)Yd{ zqc@%x&6pi&S0QgULu7-XEw*-~x=`I7Ic6ai>EULz$eYVc@A0Tws*{lAd_n)ptiP-0 z`x#?nsE$Uu4`#>BL91<#C0Cp4&E88kURrYK2dDGDQkrKs+c$GOb$g7mQ*n+9brWv2 zFair@@kfjh%Wp+DP6m03@YE_O@2 z>(gA<MDx!kxtv*WZ~uZ?3dS7!I;lHZHJR&8 zH7qv#Nj?6y!qHVn^^a;AqAA%qXL6qAD0&Zg*HPlKH+td2P=?O3jNPTK0% zUYcIa?3GzDIm|3B#q!s1-=V!SzSmu@yOV$Q$T+{LqpSv@NMBGCVx%3YoEyD0(zIIt zeEs8}wi%Wt4QZ9`x5&vpfhU`+GVv+$95~`{Dcg}0{QkJmO}^V8GjSk%-_yBomOWpl zc?RcFf(6$H<{V2rM$L81^~iO2U2ay;o0)c|+^*F3W2B08?W(2gmpU-x8fK<-dp-7g zlBtk6&((tPt^k!2cv|yBsjcW5C$ldp{p!YubQf;s)6nwn4~ur7hbTkr51H>Al&CUA zN_sM_N)7XgH%x=ML@jh}>z^Lv4cD#6r)fuNiO=@LmoyPi-M9bQUiAR0W_^cV2fKz{ zb4p)EUt8bV^_6R1il=MInPq2Ix~z1mt-n)$vi?D`X{rVGp>cO=ck08`_Dh@BhO9Lz z&MLkPIu&-VJ>%O~T*ir7i}yWE^nI&!sZn^0XnAgw!S$wNF z`_h7QU5{j13yRsrJ7`Ql4d$gA1=sr$$`f{6+41v`g{*SSW0hR3wOZkV3;el+HH4=r z4afT|cieb;tOw1cHmWr~GU+IuQ@5;|mFAUt&w;7IED`J;h~2-}c~>1Ok%UUsta);? zymOWCUGRoyVa@N-Qj1cndb3*3_L=pu`eNFCxr6& z>6@b3$vbsN7$adLO+aSE5-Fzi-bm}nbw7N3ANG^>wS$&~R`9RF$Gz4EGD@t~t>bp( z@9L_|*ABS($Dw@f!S1An_y(3r)avk;5AMp+UeNYm4_8_m6%*wXZF!IvOI_H6O*9oX zwUGtwwjXSd**;BWV%_m)k*iD%Nja!3#1``_xGR=5D1YBO_o-=Ary%D=c$8s*87Js! z`={Q4nCEHF6+5hi#-!r>d7{g=>-kILQ(EIO1o(-)~wY;)!% zWv#(OL)k(m=;ME_e(!DkvE20K^}TnBZnqvXKmO*Ik>1%=v!5LZzR`gcrirVqI z?P2c*cPiSq{UYr{bebkfeeb@4xvd(B>N_79w1sqO#&B<6OKv-IAv?Fagwg2V?BDa^ zDKdSX%CVfp7l|qy<;N`-l-t)_=zaH>T`M}V-k`N~cQLu-)HUMeGBER2L;Xri%CD5S zln)fMzUC(vX%F9Xn))=im;HtN<9_S9vcVzJt*foxQr@oj{qKVxojw)~S{Cfh>3M(b zBYQ)>8#}nSR=QbwNLE*+_+iO!_qCcWD4uZ-mcMpTsr~WlaM~LYQrS$|`{&~|&vkjW zp`AU0^6i6*l?g4|4s6eRCVTJ4ZCXq%^cI_x{uKLEuauAL{MKD@ze8$z@ak#UCx_M_ zRgdF{zM-oID7RQGJ-hBDF#8)1q#aG$5sv!1ZFB3%;_cn^hW0J0+&5R$gwLAoM)r5F zEL+*IzW=hYzp%Ayj?ZPEl(U3Q>{r59#NmW{?zN@IOH&F;)(4jKg_U32?myV0nQq?j zeDwtsj%0#N4-B zH{ABLb(yeYk=gJ3Z%bbL%*F|Ir^7{GE2n4(OPbc`_;VU9;(O>uZE)(ByY!J4447_>1SiNz9d<^-%6V&c#tDL~(de1<>4 z)7E}sILNZl2@nc-1Tb3@AO)cuAuR;S5$KMKeAclA z1#~`(CuDIsh*4ddA9t(JLPuwGpvhxmUTogvKpepYJBT7WgvLW-Q5f`hf?Qq2hq2k; zj1&m%wn1kyF|%(DD4>M$K(r?);BMv9LAz}rN2vR)lVH#%b$DC(L1TOvbTk+QvY`+G zbn@75o&xXlFObRbFHU39{oUCMS^iUt^F{2a=euEG2=8n2*WO$jC@ z1QXnH44#0&OcNRJ3Da1Tp9LHaRFX{IYo80I+aim^$48UB^DEtkG^ zG>0an8IUyHgiiPO!{LxLEFOcz;YOv+Kn4<|(PvIJ1-gicE-D6z)Mj29UEW$R~05NoVl@MwGiIJyfhbUtsx$@(%` zK1O54b~AxSA1yQ_`e?3#3?llA)~VB)jGPE#eZ7GHjPkhtwD9kbAqoIF;u3ybYOL4y zMFd=bp@_x@t(j0x{14l3T=2^XxH1tvT9boV{|{>*pl$oVt-wFqLjUb6FqOOX02+r0 zGDzspY5Te1pDo(>QhvFgK9_;7_aBi#C-`&uY?_e7V$+x)n#W-h(Nm36V-hE?LIg55 zh|727GC-0E5&f;^Z$?3XuB{&bZ;d4Ibg)4<*^$k#cr!DkF$z0fW?H{#I-}Py0#sw5 ze5Z}=Z7AleHh6#PXsrm^I@aIZ7y}*94G(logid$ELw&`EPItpYry{*MEFsBwVl-Iu zw5ZXG?Ko5~=)MpnK~sY_!F#V}g@8d+TNZRp5R6tj(}@sx`#0l!zY{mDeIjl=nWo*l zjTMOTR_M+Ux+z6Z-j#k;J0`2^fAY)Jg#MGNFfGX-Fd*Vh2`=$`U|tC>7!dKM1ebU| zFs}p`42XDBf=fIfm{)=e21L9m!6lv#%qzhK10vp(;1bUV=9S=r0TFLXaEa#w^Ga~R zfQUCGxWw~;c_p}DK*XC8T;ln_yb@e6AmU94F7bR|UI{K35b>r2mv}xfuLKtihf(r&j zyeSr!!qjt~AP0K5Qv^N5sb#P34Lt#hpgVfH0zlXj0EpNP0Dq4_pFIGu6$1dTHbW1O zCINs3_wc40_E2AaCtGVuNQ+M}AS4V)d6 VS@c}d>qp20ob23e3v4#;`ZxG?NC*G` diff --git a/data/images/second_depth_bg.png b/data/images/second_depth_bg.png index 5b3c6243cce9d58310769c773fdbee3cb6b9b926..3c3251d3340aec00cb8226236bb86014d997e86f 100644 GIT binary patch literal 3099 zcmeAS@N?(olHy`uVBq!ia0y~yU@>7}VA{jM0uo0!daWNbKA-8b|2O>KsT(~+Cc8Y%;o)kkf9HskO2KTJ%=MN^me TFLMSq`WZZ3{an^LB{Ts5r>}c@ literal 22286 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 diff --git a/data/images/setting_highlight.png b/data/images/setting_highlight.png index a958308a9c8555d0deaee32a86cb66dff3678d74..3b60340c589ea26a6f621ce8d4b07085d680e9c0 100644 GIT binary patch literal 2660 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 diff --git a/data/images/setting_list_dot.png b/data/images/setting_list_dot.png index 35d2f0cdd686409fa891a6b2582f31abbab7f775..76082bf579e9d76ea0d9b2b96a6d0683d8f7ca1d 100644 GIT binary patch delta 122 zcmdlg*26eKvY3T|fgz8r3`jBrd%8G=a9j^PvzDvDK*H_e^-9TQ`kbrpZSjmS;@H$J z=+k5n8Ps=jzU{{rWtY<)YJvtTR!04@`bzZ+ABC(v|1f0NoM%cthbG@U+{T&6vqtBO a$qTj(KRtLaJk8JmneXZ9=d#Wzp$PzHdM>a4 literal 2869 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 TH%ZO200000NkvXXu0mjfeoa$b diff --git a/data/images/setting_list_dot_s.png b/data/images/setting_list_dot_s.png index 76f5e78b775a7b7faedad591fca0a17848ed8faf..81b6efdb3f0ed836681f257ec05660860e1852a4 100644 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^93afW3?x5a^xFxf>;rs4T>t<7|M#XK+35JXUH^eb ziIfES1v98`|Mq#KqVWf<1Alg{e!K4ZlNHjTuFkuF@|K=1jv*Y^lM@nBlF|}WfpoeU zBNLw=o1UOSLh6GygNOtkJ~lay=IM=-SzSIeZr%8in}dtfn1P|_H*>j}OPVRr5C%_I KKbLh*2~7ZNcUjf| literal 2899 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 diff --git a/data/images/settings_bg.png b/data/images/settings_bg.png index 72e6b0b45b9c752632c295ac446dce846c13fe0b..4de3ac9cf708935fe2ab35310c78ba23b09c8f6d 100644 GIT binary patch literal 77190 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 M%&wT$T=07Mf0jEqYybcN literal 117649 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 UFZbG)16472y85}Sb4q9e0Q#61RsaA1 literal 17691 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 c#>XXrk&80pjtv<6>QCwSDiu0V;q-)&Kwi diff --git a/data/images/slider_thumb.png b/data/images/slider_thumb.png index ae976f0c5c4f0b61656cbcb85c00979ba1ebad0d..93971c1477cb15be0a38bda72cc4e03840cbf454 100644 GIT binary patch literal 1395 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 diff --git a/data/images/tooltip_arrow.png b/data/images/tooltip_arrow.png index 78f85aa7a26bd4902a970376830a0e6dab3f4a83..2dd617c8a1d934808802b0bec4a73c4f11272f2d 100644 GIT binary patch delta 187 zcmV;s07U=1ivi04kQsjj0000gC3kTE005FnL_t&t*JaMJZ30mg1<|wqE0B>82?V4x zKt>t#K{HSdT@bhga<3r4AeqO11S=#gPdN7mgIs6iJCSQWx%o3}dfONpA9pW%+!-5c zC?*z`hka(|VQ*<+qO_{J(5|*$b5>iea910A7@3)VPPuhD->x%iK?)Bg#LZdfN2T;x p!b5d+a#8!H7p(z)g?}_}H&5kkRstAc8G--+002ovPDHLkV1kEhNKXI& literal 17852 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 o$`;9`ypiB<<>p_1|&h7!2kdN diff --git a/data/images/tooltip_bg.png b/data/images/tooltip_bg.png index f7c6412496fff064e40980b274317375fd3146e0..6f5ba6470769b33afc221e831e537ab9d016c239 100644 GIT binary patch delta 243 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 diff --git a/org.tizen.settings-tv-ref.png b/org.tizen.settings-tv-ref.png index 8b143f37dc9bea4b8827822d768feb5ebc6273d3..a29a76d5f1ec3e8fb42137202e64d8a17e10df3b 100644 GIT binary patch literal 4072 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 diff --git a/org.tizen.settings-tv-ref_4x2.png b/org.tizen.settings-tv-ref_4x2.png index a02e5e700c636f6446ff758b4182c9f539e95b31..f9c58877d4cc5a1935b939256a811f7df64c52fe 100644 GIT binary patch literal 91860 zcmV(*K;FNJP)YGFp ze=%wtBF>sPG08lr3}Fz&Aj%~3&<#yD^mO}K_4{Mh@U2>FpL3pjyBo~M-M61}&faUU zp;oQ>R@JJt7C+$e|D2ean2CvrnTe?1AtGk|LBzDfB_c#Z_P>yjh~Dr2X%Z2=*ZMuZ zV=3)}dXk=k#7cqx=hs-{-aPx}KYMHS4@Yz3x!%*)lrT;vOKoq&tDGyN6^AB>IL$gdrLB^|1 zM1;6^MNi+H!rrGiG!n_6eU!g0=}zz|wvLSdu#Kguz-`|9xk8>yaENw#G%+@fb`$cL zQUQo%W7?@ z?{(y}G*jdQ4Pb_RG(kRp%_%Z;eCC%jvJLfJn2HdyGz2pj*lf~8EQ`=Ou%OMV0#tVC zT`-{}!X7^84PSy??Dh=#K;}E$v8;lsooR>`;|^gq@Y1rnco6biJhG_-kcdnfM2Kl& zYC@f@Jip**CKhI*##$l^QR{VL?UaRC1;6P;)*XYk;2acp6!{h;*bc}?ARV#IDAifV zpct70=##Fg-LHKjG6~YZ>fo0yMoh%)X!#K_v&29X z$3J53iZT{!t|8qrF2h$n`CCDk>P-4do#qAG{nE9K*9v%L%pes^wXU z^WG26beVvb2WsgIvdK)0q&O$5gVmT$dh;d@3?a0Jd@yJW?9J}XV2{Ff9wm2r-+mec zTK>SHru3+uCL*2bh!?{wRNxBojqQ(=kVF}eNraY#!*RijP;(4rRX|KRjB0kH(Ei7g zt5<@-1THMA758dIy3_&FX6d*M-Kex)^3&i&g?wi%Hzh<#L^DcmxB-b1KqYFIEOtY( z$?)1m-mc+aO;#y8^@ULF%t>iV24Qzc@LC2r7Zoj`P;5s&7|(_HyO1wGW>blf1J@Pl zwIN2dL#KQiu6+?zqzz!Q>1Xur=ErUj$cA%N@Q;@6!?ZhHNSSpx;GbouQk{jn3D|2} z4e?wB|K#Cw)T0d*Q<6}!v(@O&Molg|JV)fq*4Qp)AFC^v2D6XdrA+pM_LG!?YN>@z zyCL5M%?9O`EuV6ik%*q>_%4u%^A~I5!dk`jqSx!mzoAd>kl`2sdhK z#F%;LN}210EZxRgh?_8TQ@#OfMrc$K{BXekwOng7rK_dO318&W}jK!;6+=NhEr_g9qw%D!d>60Js%p&A+wrvO1kTMJXrbLs+N%t zOlcYl8%%)J+FDn0_IwT+0|7kh_GbNQ{2qQ9*e+TT^*yr_ph+Rc!8j2v26NS5xa?qJ3;Kp#0xfWDzG zc~iOgA$C(sEEj~Vfe)$#^vQYl*>__%C_hah_IXev1(qZ5Dbi>ANX2f;h3AYY`ikQQqdO}2{DK94l1hMZe8N!3U;-;|f!@`t>T{iMKxv4n`}F-o*8vnl=MnbI5+WU9G$*&uAw z(B_q}s(Q-K-V3p~=EhlAnEg1oK7qPRp{9Wx55Ch47Zc5SffBG&#PASUdNxrJASwWf zWYI8!Bx~Cx?F=*Irm`Dqk{wW!xUd@5QBZiyC)Kh_IEWfgSte!Y5iS+^24t*1-RhsE z1H~5SY^MP)yIi>e;02-5t*2>;e_F16vB?Q;)U{PH9|%Ty8aC}3`I7LD(fOHzUtD5L z@XspJF;Fv&?$$SaCa}`mJ_eB50r}z&d08QZY9vDZ80b=ONd2*9_A&TA-RvWiq$L|B zpPos>VVhiGM~f_rBUl3>KPy18Io)_bL!>Lp5T-&>xF;im5)pADSzIBr1{bfV27ks} zpL96nWg(~mc;i;IXLK@kfbdxXk&mK(M?;XI^M|mP)NzMHrA>DFuFlWTtZSbX z?Nrf|q}iWI{-o!g3QyXKveV zB%RNle#TjV`@QYbBQCqr+N&!*T@r3&c5$>T1hPTuCj7Gw1^iR>ej$?Zdxi<<5J({k z$Fiqi7XYq=eAaUzl(#!PCuZMNcN;xWr(^cnTfkew?$0nmhRnAc@?m?t@H zHe!HAf=K;eYEsMwz%q${Z=nDe>cn%bZ!oi;-DmG!e0Y~VtD!fdXz_6#^1+;$N-?yw zl4fUG950KQGnCX*g6$C^lwEF?1#yANuqAG!Bgh2)Vb7XhQ-32aq2DwyBCJM;bm&O{ zs}btpIs(TUN0`|gOww(#?#RxMIUU&o$XMyT<`-H~Un*PLV4Jf%Xg* zT%mB|h!6Ev)!|{tkYhW22v+1MA zQhGGmM*N$B(gefSM8ME@HQh4I9j+F!$)p3KuHq7)dBwTGNgMB$)ef8`PNXe>H(O}2 z88L79Yv24hdX`TWMVJj#6x)!j)=9UFQ?Giv_ffLhL26Rq^deypY(mTU$2HJj5l|{E?Z{<~v+g z8P{w(Zxw9Uz!VW$v96CuhlG$YEo4(=Hu5{;`d|VNiVe6#vR*|1j;+EO*%XK+Ng>J{ zQKX*XT6kcLU17@`U*=em&&^<8iDNXA?4QW)im94|cXktvhcy9D%l=!Tb|g=qLuUDv zaja!MVO^@0dVzo$#`rMaw=8|Zw7?!Auwk_yxrUysxYcYAx7OvBzV>a`B@W|nCGy2d z%ctY~gy2t3KqiKN>N#@!BOw9&GxJenZ+#|`G77Hv74#Ft?G*W3GmojhZ4S?&%vG9f zG5g3x1{!uQi$Ehs|CB`|s8Ryf;uhp9ftNY50@ynvUo!ZBYSD5dp#(w6Z|PJnfQr2_ z_l;(nT5p^3qm#dlm~~MC7(;}!BVoQibW|DYE&u8kQ!#s!ItL_?nXXHbkWE%lu(0hw-dX)2m#8Z`d z3@y`a#`>b674#hJft{jJ+%h5{lB~ObKauE z;9nOz`rqP;=LmshqIg|v9E}phKs4$Q`Jm_EBdm{vAgL(04r%tG&q&D3zHI5aC;@cT z8O%W(C5cJqAxHx$;&4PbTm-2#Z6<4W0)6 zZB^PQc@9>%OMmw);qsh8f+(>kz~(%d#?ox;=B~kqj9HBdcB2=E(|btGu3W=}IO3mb ziqpQ^f`7E72XD4(-yBTp)v>h+u16E8f9WvJ&t33O5pafoWP3OY+7LFQ4iHEd<`2@J zr`549$oj!=ga(2G0qo&P1Z%h*3QA@xrT6P}%|5#mW?xLtn8Q=MC%Zi7$d@OO@cTF{ zXUMm~;7bXOyy3kZ%;SmH#3f0D%LmnB7?LwdAGeJ7*VmZG?m(ngi(*Y$E-|HB_Is*% zC)DweX|Hz}GX>0<&0}#c;$mVtRBYli;RFb>VF(q?p7YYb=ww{(DX3RbUuiC;7zN7# zU;$fsmBM5+gVAW)l32@uGXa4R1VgMCocIk@IbBGyyFlC~Ku^cOn2M3CG!spf$ilJV zHejWn?b!pWf=Z(BvF+kh8w@;u&+T-*AVfE`@xt2kmj_ckA3yyn%OrF(Ii7tLbL+6A)jjuB{|s0tbGWz zaOnYt>%`#8j1^oZFs)|J316tA2Az5=fw?I?~t ziVUeaHP%WfwjmH~&Q3-}aA}UbD-MXgQ8uWP^Rp)h<8Prj8xXk>u98oj|T-BdPlesL^9Ym$Dr*(d(f?zk)|W}nTg z*sKg{)9I`KG3297$VWQ55~_jS3yn%NT17riWC2P+1#0Lg1A)*q+`#=Yw)!st+ejH_ zVIYPb!;s!npwyNKY@v=7M1wyGbOS5)fwFjnsJUWUsF@atp3ZP$Oxl*#AEq`-Z8_ku zzo}GcL&lw*2DdSR)%v3a>hnJfeTt)!ggc({l4 zIk4ogAGbf}FL>p{2BWuptDFbTi>?nS|XDX*Vb< ztIgP2ubcSli`*&itZA-C0_Ue2f4ew8lVPz9{|xOqi#YySTAV$B9%UF^5u0w{z22=O z$AQsOESNggSFmpSk%+L#>?@cRzr?&kfP+a>2D6X-p&Jn!d3x-gst6=VOEd!bi$_@@ zD2l_xb}1mpd6c@-C*2rKKvmAd&b3WAQSL-d)QDLG=3LZt!->5d#N<|^y5*q-7L--j z1a^Ch**q9-szwW-f5gH|iO54%kvRSZmRRwoE{>6FfRzF+I~`apIP{)doQs%)-Rr1y zh91Fl9;_5gIv^isU>s{4gkDK78X{Xvz-{=q@v5fy}dB?vht!Ez=&@`-3^`A zdr6?fVxw)74ogShhboAF@UQO!Z_SVZ^<-9>z9K<;rJ7{&jUGVj?-0(l zs}m#SH_5;)@sIm(eSv#~eG=M}?&CBS%uPWzZwolBh_&pd$X$OphvwI zs%iC>g_yawi==8}p=`#>&Ea`M?)I(kSrZ$*79-W_!Y3UZi zCg|p;<34sY0sDufqS;Iu7a4KL#f!urEKS|-nz0CZ#^-h3d7%)5aPBHti zUZ!Itv#&qM!Fch4YvxHR5mB-Nv2rqwt!dSVSG@U*&-=+#AHAq@ho2Q13IW zjk7_v%@vrskD|Hgj-=@A!6b6uFcExeFPLVUS|FDO**cM#3&`fq+PXO`)@=S9Fegl)yn5|QE_iMELs7AVhJPdC` zReLZtcXI^3rHekFboj!sz@o=$Sh|V`~lC0tg%N zkKFB9cXv;!2@3I6*@Qn=BC$tioaZ*VQ5Ar-D!TMiQfpT%V5Ck_yAY0X|dcPGsHcEaE-0 z!a7lx5(-YW_0Y9FaE5)3kjyg(^fXK{ib)v|I00E|16*CKeqfsP0#o0*EU!~HYtGm% z1X2pZk}&(g;zrS$cyfk(V1y2=DTLiygu=Qc9G`6ofyv34va6kI-`1%+t{P#&l~VH% z8z~dW-Ih7<+Q2;h3&FSI-zqWj@rF6LA?zsS$6zqkK1E|B>r9nKb^36uxJFTzB$lNNsJ$v5ZJ0dIKlR-E}r7*EHOdqtiKs8Ok3CngP*i!WAI-nv^Tyd<5iy{q{SdTE5f$@JkZaqSzN_=)HidTD^yQIMM+RNVz5?5=Nm@7l@-S>cw=_(xy@_Lws^ zpR4MP83Ivjrg5ulD7O>~55kIBLB3gD+ch|sGO-bvw889Sq84VK$J|x3kAiS!_RSVH z$WRBbZc%1YH#Ovwjw}mMCk3mmBOha4GrGr7uJOz2oQ!rDFg1`T)bK%xMhWlkKTwM% zy(78DvAS-?v7hGvMrm;(mBmys_BoCDC<1Y%*mfiPn)uFUTK{3nzHyU))QOF!Q%!A8 zGK}zKB~~Dr0hNiqgsfn5+9Md%{U-!>Az$vcfc>V!KVJGCc;lO~{-g}=GTo2EMesSO zgPd{|7;EX>Y&7O^f-z4s6ZmvR| zEHl+iwP-<{F{* z5rq`qO+&B=>ZXi7qg*EEhC$caqorlsyLgwp6V@*|0U=F z#fA9FYAo9^r;4_?>SQ|e0c1*sZ0fdQt6~s3sr{L2q>9C`L7TZUJ8$}KNhy*l+GbFy zaYUloP|L{Ib4Z)K2%avN2e}+tc=h_XwP(BHpX8AO=Fx;Vi|Hy#%G#!CkF>t-M7 z#6++!uq*2RBhay$eQCA-(Bk3tvgA%k#!gJ0aT=CDpIwk|F!&M6DB=jVhhw4xQSx{a7>G8(-h=`^!UGPhnnJVy=;D`DMB&}K z)~m_1Y*z@SR>t{!T~wgkH2A)DteL>c;sYFl#T@1-Ri=VD;$TDpw@{HHsLZ6jrH$)7yTgOEkisFk=`F*fSdJk1?ZnS8O8WgJu`#D(`Ve0;FC`mM zbGHeo!Ns9DmllseWudAWc#0#b8TUJQZ9lJ-Uf2`|Ha@f@mwSEAnMJW=&egcoSA9s>E4&P?gw z!ul_|)_tK7ih`^_n=j^yj-v6Z0{xqiv!oLO|IK+4Ic8R@ z0EB?cDO>KrZosmX3AZp)z<7*ufDp!RbR`+hHvz%@mvq1eMH((~iS_SnK8u z4+_U@?7^g$)kmr8*tw5+@fDe5!^D5uXyN$di~()*Ot4~AuQC&821Ps-{b`{d2f=3s zTG8oNVP^B7TU{EM?1I#M9&1o!{}^|;$`L!N!rQNXp*XdHVw+$RJJ+6_Os*@1^Rupe zuq>ST+4SQ0$c>qsfVS-n>;N1lppSG1t)knm5@~R!V~-_7s5;*is(CWZLD^D~l~121 zsB3@jW*>)xC}PR=Cr}k3aSi#D|9TICWf%Aj(1ch+Oh zJ(RRWMtcsBkFt9+1@eM&K0zvU@u>*SgJSIQYF3p>uMn0YhY+wxsU6~9W;r|8uOx8l zs<@AZ5TnWGvVWCOH?6IguYDk(3Q3!@v&j=tK{RuI)|C&4Z4C9 z5J--VTK;Z+vZVAyOY>#<0d ziK}J4bR7k2_UNpQU@yQY)|dlza*z6<0lpEn6UN+|DpD~JGwnld^>GOEv|?UVdoMK3 zq^tEpa1PHh1+ZmQ-mL7|C6aoU>aSHE*!+xFHVYq3jSPjJA{Mre$}vQECVogGVtUhm z`+U(5_!NbAcSXuBI%0#}=BRVV*L*<*PX#^V3^C zcYYQx6KxO!`e)*fAQw;OkkAL+iIzPDyxTt${>tBsTt7j+6(fASP)MY^)feUd35gpn zfXa+u$X1HdaX|K4$C)@CGJS4cBz(g?T0YZW?-lJyhSP z=^e|}Bno7e)-p@Vpf2b)Ff-RC6EA`d0h$NMVxGgdT1&`iLx zo`)H08KeHDW|pk2F286P-~!8`4UMy}pDeOBHY?+!)Os;-_`fn)_Q zXl}@?zj(ud*-a2{yOxAaXh+%Hx$pN7Da4`8RmTbbktIsk7Lex&+bQ+3s|_H~9xu#G zk*gaDVV+1~#^c7r0NNI`F>6}r3w6~(weh;9VcZiB=iw2>GEQ_Wx+@HhLV%Gqt#Iz|7&wND-LHg6m%d4X*HB`rg*Q*&0rUhTkM6_F%1S zAa4ADEK)cq@IB=Mr&oQH@ox(R9`eC@A|8f0r$_jEP$8Gt-IL1bKpqS3wn##cO<-Dq zE>I08a%kpj=IQJ~b9&cO9g|Xq9ER7=ou9skQq968_uTop z^)lfjMGs-qF~AC>P@~{|H0;KIp=T#+4-G!5LuLIM8aeTKN_q^S&2c_K$ub&)1_D@O znA+={m8tku_kJ&Gt^Yp@>f}QqANQjVYKIyKXO|+V%~pSnE$J^T6hf+YbMA8)?nH$O zO~ZXS>B+g`8x&qf&4Vr;!5gDBfgF;3g<=1Lb@4=&J|{g)>m zR&zY9YjN`;M%SQrg7eeKgpSZ4^{y))h<3xkYU)oRa74iX!j*q)n71IsmHtca5t8IR^_@yf*6IVDaAtr8UR{bDMJi(A)@Wb2dh-p z`gDPw<+SY!4}t@6t|&8u^|vB5Dp*djO|upN-Slo%G$xnGSeQXO&zUEB9rUhAn$)zs z`#DTL*a`(AkKSxP0>#a08<&D=Zdn#$TY^U=XKs`lrOm_M(bblAyL_#wvp1K`De+h4 zmXdCC?(xXpwAv4x017i;c$2ZXfV}|Eq2?x%rUeo#kYJ>B%5A>(JoVIe;%&G>h4E!* z8@gngV6aRwHP$P0vpGK(8R(Ks6j%b(s4Ih=7K0Y)Ksic#{WuNdZ$`Fs!=_NUYE#?b zFRSt9zDTe)$!v2k;dBU@ZzPD?-%V=7j1;``z}P%Rlm*gHXj73d8(BCC!QpAq97%s3 zgIoal0>_-`N8f$WJ&7kjRd3iR~-fn28v%^{gw%Ci}e)FTP$ z!DL7z4YJe>llcY|Oa8vR8o@l9Heb|}#Du%Vu3|a{xhqzLmR-+?B`(uq1Kbc&RUt_8 zgs_Wt&^oa!2fij^MbkX-W}77A--M~MUNXftPf_DF(1#BhIEEoJ7i}?uo;K7Sm2{Z$ zjS6HG}rzo4i1%3Ye14TVmmPCDc)A>Q$rsh8o#a z&Xhyc(6WWJJ-9_0>4u!1s_aW<$Yq?w#3a&i&cQvE-1=l6IpkR?#>MQC05=v$P+)O5 z>#GMejR@MP6?^TElpuyA5!TfUHBZ_@?O zL#L@TbXC-F;UpIVIMbQPmUWTRB_nNebXBESohV!}J*@_HIpEmU%!Hd?-GbM?fe^M1 zdr&n(h~@U$R)e`gouqc!9UI4ZM^T%})xH!VwVg&zVNjMaBO0~(Av ziyp3yX_7<0stm1J?{<`T84ZUHWZ&VXOxmsc{cECOwyzf}-FsWfEQtQYx*yzTKT=}CF?(B zmUimP;ML9_oPuMc*|SiQuhW`g=hYc{a*qu8&~|*7_#9~s`D!iMEzg-FrK77mtkDz= za3Z3<9h75V_cSd5)T1evk#FLLWsWnIBv)vn{cu6fVW_Z&sc^`d+|`^&zv{t~=p{mx zyN@}ItByfge)`hBun0TJIv~bMz6e}%Q%~T1a80CXMW~U;Y%C`|Z#FUwc)6r5Dc3HZ zry7;N`P&PvU1S-yr- zcBWaEx^eAcGZRs(R9?VCU#}wukd$TEMz!Atq z=C>4ARoxUfho;R9?tI|iM&K*mA@jjeQfdGL}Xwp!U!~&)uB}@kdcO(nX-WqB%UDW^|K|OoH4&hpDWjgY7Cyd{5M!u|hH`Y6CNBYh&Zw(1=ie8ft z<%6}Lc20?75!D-qO}=}Yq8x@F0z=n`67tc2d>XZwjJ-o3ANV5IoE{6IDu7=){?%A| zv)cq&ka5}WES$QSyyjaqV&Y;fr5P@eD9)>iIqjSvG2&;=KYvBa6o8pX@G~25QnJi3 zFBI(4x`qI=avJU;LPX8Bx8{y?=)(*%Qpsvd0PRj|Q4X$XLU@CH)#n>O3Z@Pc%3%R) z?fxcP!{U!>vShoB4>(jsiQk5NpcjqFxNbo~YXgBR52UJ1ZktLBJNK^>YBRdd)U1`JNpPi0* zZ3D#y_Yxk^5(VjAUe%Ws%oN7JW)mW5f{~%Rk&C71ZqJyq_su=sC^YyZO2`*xAXshQ zJ+cwHLTr~Yk>u~qfPc=j#mdYs`u?#b)y>sME<*;#Qg%7$LK(%Jdy90iUv;3SuhqkUbf64D=xwJt7re2=JztEcTw=tsiX1pBy)TV=88|LRy3}~G8 zkc>Y?#Z}|4qAFxJCf{NYrm9amV4C1?+3lDwzi&Eu)_1X z{wVhI@SPwZfE2?W`{kfo4|oBuPK28W7CIoSTuE5MGTMS9tUg4uDK+@t-Jf+9ZBV1Y zC7Kj{P!8BbUJy17mdhBQ=s>w!-D2fIG`Nj4+>9SXXS(kb9q5YbO`|sj{%d7YEj(ec zu)+M8E67JgOwznvKm#*fnWlWYeq2LJh&L+!(VD0`H2#63qjni!8>9t{WRA7;7VVj0 zzyb&@5#>?VTao~>cZTV?Mf~w8x)lGfvZ%>kyV=})cPLCYI_;XXTBJ1hmAFp=m?$_>S=&JGO;85$eixT56gUokJ znaDBg_+=Hth(71 zOhmL8?)N{*8jGRj)^b+S3qC_iC{z!!mx$95nM_=IN7}mh{=*-Q%aM~J55u}TmqZ{& z(yh+CD8auIxGur|vITqL`Rq|LhI4|L2ca`LS0L%QMgzY^R&xd)BC`e)pjyKP4JQxQ z?pLpgl-qfYO?)7yFse#XM>qImZ-I<_0AVH>tN(+d9)$v7ON=r_1*NZn3$lC5q?Urp z(uzAwh&OpY*U3E9QMTEFbZGor>F#xzdnQ1c!EcHIgP|tgHG}czk8#86nyn+|q`br9 z-!%WNG(J6$JoIHM-^8`uKh>eccurxDr2t*RObYI51TODG-N74{Wqmc#aIDYf`3weC z58jG=7zRfMu>D%1Zs1YC9}6!=8*R0=!h=kF7kuL?%%m*ob8jfvdBRAU^iq*V0GD%B zCa14R7v?^;T6}?{ta$rGOAI6mLSU#1k+8@?xF}HoiZDrQ{!rsX!#;G~0j$a%KgDV3 zAQp#qpqHri#pQzohZpm3YC#Z&VDKc9)!ZldlWvvp5AP>F&GujL05BoDs{>u+s6DYK zbL7+RTTC#T76-nK%t)ZXEi!Iby*}3hJSm$~mToD*FDv46u8hp;!JAFMjDMSrfmLOG z>Ow!mYoAlctklOrO=Jx>Ou;L&dHtoS@i&cp*<6L4uA2ea<}?Q#inqPt_Ezl5K^`M$ z8=R1dP!9YPi*-RA(*{*!zf3BTW-GGg2f;896|#zamJQAe<}xbf0Rc-CiFz0N|G4)U z^Wr8B4Z;FwL^C^{S;5TD?RM z_h&k(=LC>$jYw;-tO0lQWHj*5cI3WGVTxo)Rn5rf!Z0ibuzg2o-P9c1fNU!^9PRKr zFMTVV)%0L^{yTmA$GL!>TG0k7$CpE&ozP= zNKB{P@=LS$Prru##a^b#lQX&2R|-w4wdKZPuKggyI%Xv73A+#elvHJQaLg@5zHE1X zPV<>wH-kmzT)dsoZnqI7g~$lx3a%Il*%yU4vY9i<^@s?x#T`yc_(rNk-~d=Nw3u1r z$mgC;hX;1Yr;7;Bv>JR=v|y}*I}MX^;67D}n`w-x@5p9cgoG?iv|E0ZU7vl711a3d z^&18GmcmNd$N~8{=iyBNYd+Rq7X7zaKdwSb>8yT}ImxPGT_NTON!(YT7^{mDoRMZ} zN{F~{WX9eudGgY2#S!@^BVTFS>{k_@y!zv?_*Xb>%_qkAwe~nu4!w)e74Q&XSvD4R zJ6g_7b=S!d%U4f1*l3^iv8ny*s*+g_>k?=NRMq5Kd(#CqdJ=eZ&O2VKHv4MDRtma# zR!8hpje^?+KQaJ%D`#OZz4vhDujmg`Tk#MmcGJKeuiYJ~K63A>4wdmwB|iHms7xe_ zaC05P)d9EgIP7DeVIdR2gVvpb8xs&Dt7qcsq>OyY!1EJ@lEJ4S8@`~hn-VJH6de)< zI~pA4d4Q@$mC&$Jf1$;1^?Du zI+FpJ-3CxW9(dk2IYPtDDw2^8wqeiRZx$hudhU@S+ zxc!Y?l+xiHkYb8t#vnqbG=^J7?|YPs;~%*PV=;9i^-lG>6m)_V$=R3UH{ttYYOjNW z4(e?18K#B+@Li-Me5TZ_#C|8!!E059F(VFzBcV*aO_48u@-j0Gle+@Qb13A?hyJ8w z$^_Mf8nQB+3x8wbrE#agyxhfnqi)#YeuEa_X|%JzO%bfQS%~2c)fUz`(oGV5^?21( z-D2nu_!qHq*zeoMU2*q8$;h`hp@(uVMgUU}t=9ZFmN10F#D50U>VA0)$YB^_dl*t5+y=E-~xX@+Q#Q0dVFR`jQ%7pq4Ug#*q7io>h< zzzD>8RS8#9>{`x zdPsva{lX>p8Yq=#k9n!gpItAR2{^cktb@R)^G)4RJ+j`Pn`=*0Y-EJ@y>yE3ixNc~W5orz~5ZN35~i`69K zizS2C?Fy{+zkdh@UcQ&iyAgZJ^|!2BM?l&Xk}V7KknfI4X9OK7k35E zc>2Pct7VfEo%k9mwj}>MB}0y3v|z+DlX+=vKEMY!fVaIp)`iP(EI}xhn~)!5Y%eoQ z69mHX#Y%-~*vojymWL}4$T2!^b`Ryva(TcDHtA4+N2~Z$!d~3?%PB4W3jPrl7wF{2 zuGb+%-L6T~P)&Tv&_KTyqNbu=x)EbEaVwa3;c)z_#ACG%JpOZIjb}?85=z1PC71|Q zPfFqo?oAZzNw>|rc()43?3UlW`6v9SgWptaf_Q|+Z&sB^x`>A$ycs>jAE&eUL5v^m>>bhW)H01%uje4Yw7a=IT0*u4< zFX5eJeo{t6^v1crou$HF#_`quL?JhwSyK0joB3v|+cm_~cMgXmjnu`ilyvOtO@s6Qs#gu_p)!71nd+Nb3p`79I{25J zoJs8xU~N{C#_7j7>I%bG0QoHPh13)3IpXLD{w&^p=1E!lY*_%{e7hFjszYeXg{jH7 zN-t4r_i5U7N7=?z5cvMkvDUbC^eSfSt{``l`#gzgKg%){F@>q{>v|~5+y=B?zI&qG zGt?XLk5+o7mOvpOw+gi#+@jmFVU)&_Qo9f{9Gk6&GIyS6IHNhV0QCFuF*b|f3PSSh zAq8RtR$FVFkb}9v6!N0^xc%3EGuerNY(t$0bzPqEBQdZ&Sxjr+*sb_FS?5MLZaH$KkW-cqg=N21TSqy6)ysvN;P_l@0 zX0jFY;D!au(r*gZ#4YR%F$ll_GY4HJOHu(hr`e2u=$s$B%~!}Wp^(AAPB@=dB#_Uz zGLX*-3APm&ILXS-N?fWD@_d=@^KZrfv1w;SBu?VM^kBs@UPHl+2;$W%KCSGr*$IR; z1q|okx1zEVY!PLOO#BoUl9SwXq8qMRi= zZ7TFq!^{DY-|v&a4UI4;10csGkZMp7-zmf_zQeU7;ibse671p><~X+$T<3({=#Y#@ zyfxJX|J1qyFsO8{c>t4@chb&5eK6_Nf_Xd2wq&f{n87=m3!L-JU>9cS;|YxDgEpRF z#00BWh}8I7A>TaUbJh6cL6nX}9ZW!3&1F*;@37)VWizylpg&y zkpiwj0>X97>r5B;mzs}@AL0N5uALOUz~hfii!7jOYZtHIA2qQlvpUMT${N#ky2{V+ zPsk!*dmk&p5s`G+?tU{EO&MX4j1xjJDacueCVe*$!$&_d09s~xOTq$NL%yhLnj^`2 zyBTeEE0#9e?b5ecgMyD~E*Ug;vy))2VXRzgT4Ag~U+$d}Ug#C%Ght_a!j_4{D}tXqVLqIf{5gFG;!hz7g+wjKrF3#~;+e+Ntikk)v_p7Tj{h=fab6Zd2LKBUBs9`*Ugxs@T z@lFQkk`jX8KuROUM1i=Y^85#uh+Cmo(4 z<>*buG@LLjt&H$Y*B+G;)E@5%7v&B76)g9kHYG*C(nxc&@(I2wV5L%vh21%AaNV1AB7mIIii z?nLg12b*}X5=R<=G@MhE(cKN$R+W%qJ|1Fe=9X*2gxn_3^fA7z=p7e1+W8%S<@yIigeY?lgt_RYh_hH zl#EOuiHFf^stlZ^Tp*ukq|?N}NSX^Ohk4WlD7q7(_%^2ep)TtFbrc|~=%qL=ZlDYi z%~;gCENHR~IEwU;S)PZzHmPY7ldzU{OPPH{v_D%19G@fdp&c=4_E=8^EDusbWD5K% z^M5@z>t`YIO~J@>++YG0+8!1H*RH8c!iFJL`AV*dor@+k&~eaH;EFygrllg@k(n`TZH6!lp&$ zTOq|lVJ4XKRnuKVI>1Ad5u7-h7nOfPKBdPI_`v8&Q{_`~JF8XeMdDN~Xte|qJnuzeO=r%k zw2>@pJr(Le(**-CDq!n49QkssL}(%=jF!cIF+la@`K^KBQK7WhbdpTc*_f5|+5~IS zPD1Q3M;e8$4VpO4?NR=O{qFLzuH3JKfk=T_^YQKnT;LgnAnyRL5!!CrD~@S66QtJ zp<&UFT=^`_&Qkq>JhN+)BXgE;C8sotT#R_y{aWpd;ac(6PTMqnepGy4F_~esFe1xu(XawJW7@{n3Iol$=TO(V-SF)nAXjJvulP{m~}bwH0QJI zNoyhWCw*cnL-vr(yPqlH+W^bSD(gTZVT4U`wmn&vW%-T&@b_+in+s^S>jNLT@~gk| zKedB{VlLXD_Hiy27`6+^!PqGErB^r|iX1}{DJkz$+D@vzaDI}J61uf!mioGQ1FUZc zZO@q*!;4ZuISh&;sw{Pt3O)2dXz&#P5Dc8jJkP-tClp*noN47L`d=q42*91 zvNiVZ*I`|qa}dsVWd-BXO4-rpd5bJ^hX{B;HdT<8gnTIMO!=&q!i=K1lZrQ~be+WF zUrZ*MRO0f<-yUq{>21q?da)diRnWo;qX&qUU`B_Oj)-ut*am}azZRy&zApCMhArD= zRvr@*FZO8h=e(Gb8yWb&Uh)DzJUdJ6wbgbkijl@J30ETn{l-ka0^uFNx(I-2A-z-f4H_ zBcj{g`uqof&ZW@;TBvh{_E2z?_LBxIS|1gR(XPgkQLph}qiF29y)xXG>cj&et-Ng& zPNtg;js!YfJ1ARX!S~KA3pw)j!D7FOXjvBYmpc!me2aJ)0!|Ovm=rr^UUcLd&fDVS7{y*R?t zP4^6eBQOEu7tf%{r}sGh!8ZD`2zZCc>*wctH{DH9DA!pV1s(}A3Sn>2Oj*s@N?GwO zXkrwj0_4EJWvdP~wcsSii_hCQ2}Pm-nj(s2+w`nx;a&M0r^?*3WZi|t9nG*HEko0o z!<7_@HuS8{@2m~mguSZxan~&p8i%A^Pgael8vIdcq^`{hBwu9aK0GYD^^5h=lucKCr;p zZedS0TVjEy^Nq8JTdsBgRrXL+m0~pcA~rImNp>UvO0_;m0OvU0GK?)m7$pspo;-rn z*seUpU}pn4_#UHNm=>RG^ElDIjSd8m#drxSWJA}dmf1PRe+`(Ce`WnVdmPe^py;CC zl;hZ^yI!)x-HF-f6&oi2ZxL$`ue1y+G;~zu(<0^m;qrSV+^*(R+D=ePM@eWZ*#yMN z82FW@F#!1pOh8GQj~$gOFO|{o1!1`1Mu%(3WdOS}$=!hRvB}jg0rL!3<)U>c+9gZ> zw{*L2(VX?)!nAbta|!z(3|U?5zcD5$?)>gmc;6srKG5vQ%cV?+Z=3bGWixb8C*6rFCW$k!Hu^DPPWX zXY(&G5z|E%oP5-S@43r}!0Ry&f8YgY9}QBnQ&Jmcn|epDWe)@qQKzv}9x!KpW7DYs z;)zjWxWKC>3&-2hp-jj?@M5y5z=0Bcohmf)ZumcNKq&zh_QB|01X$=0u9BW)4vWUedjf4?^n*|ly^FE^QD#$ht15&#&u0aAAD-k$T{5%ym~8GMtNvONwJbyai+C^?4t+%*k$}cL%pLTYWU+O)3-O*opF)~A zdH}47nvH>V?ki>96Iz585vGJ}pzo-^Z2?FxPAM|acyE3@6VvT+m~$d28(bJqiEi@- zxMA&4OHbL=HzkqqQ<95Oi)?ElS&hkW_}~ax1e`9jtxR3O3eIa zaWUR+e#Im2w=A0k#q`=+mM?$AXM+S*sl1@$&b!U4$3z|Qith`}3}C-PBKSFzf!PWN zzlU(mDvap?`8)&vDhczlriKkr%`X82DI^)2FNXF+9V?F~%mFPE&__rbNweO;q1TAOq1|Oqv(wB#-?juTkK%mw{3Mts=Pbcgc*h$eS?B`n zg`E;+W6WCg1WUvvYWTFytV;hPU6?EebzpoOz+~jm2{xEG+#^!MP^~lJ1a&BFd@O>@ zQJct`BQ~V$Uj|xXcNX@7T=EBBAxTl$Hvr=WdxXX=DMx3ab-`s`V~{wGg1V1gm$hOH+9ZjyX4XK4y~r(V_btooE{>(qns6+` z%oWmJ=dwL4D53=CE$8lzr0{sfx;oLx@okgW~4o;vFu$uqxo_9q0l)aFS*e0O-VvqiBU5|_jL zjNWASWmuu|8;M;qNn+qQ*tV*QIvyE+s=pRawlm$p-I`tD@`0QYPw~f9uhyuw(1i_b zA9UY4A1c%ZuiM}D;s@UQw!C;4QZN?GgH!nH%+LX+=3-{NPJgm)Axn9L@^HcvkAoms zH;khkhXOjW*O&u3Q_jr9?&cQ627td}{kyv}9OmvJ0C$O5e+%o2w&w#oPe%Nd;~Hvg z8X{xyetoG!|Gq4|#P)s`cPDw+ZMljJNeGHmH&bM=_ap?Q=jOhz1SeoTguq+(ebVrg zXt+CjEq>)%X?68W;V7j=xj*%k%H+j$NxU%)l(lc@<(>=-bs^W(?SV@xf!^{RxMZ#8 z!w&Gmg+d-HH?ITp0 zr7%pP9(2)1shC6#XIIWLb&6d}G6RR|feD|$F@X+qevFPOO~|z>NLkse%)XEf$f>VwhmNO+S-X&yCDYX^53E@p+wY7w*V8OEimYXTd^yCSNLR37c2IT_InsPxqKs=X zpisD9bZAN33)TsW=bZEhZit@k_n8%#wO^@U#@Wt7hzR5qU_2jU*%AyxZCMDX`Nbc{ zq=<2JKaCk5<4BIc4>reCUZI%qE8tO^YSTZxDm?}Hl$B2qA(F;FcM=YJsq z+`CD2v=U^J4Ltx8$e;abuDKMFVHt4O6_nC%k~$nUcZj42(wNn3Nd&_U5c#Zl^8u)? zqMj=Ev_U*e5jJqhE3J&)jSTd4U;3cS?sw@S-Wslj`C}jZ_@Djd2h})bwLde}Tm{M= zL;Ye6cB6vI(U4*$INVGL&{C^GmvuOe$cLO4+&TBbVE(A)0oX`HqWc4GWJDmTSWwiSF51x7S@_&K=6w$;r*4-fN_d~eohZJuC zSR|6{6=eid*GuOe_VTbasCsC!;n{-Cuk}zs6N_=Qce;4UF50xQwn_aRskpxB{FK~` zK1Igm?g>|el*tF_o*$v%ggpChTWE6bHhmw@ThPb0a;Y>6bRM2$RH>R;JtJtiZ#u9E z4GJ{&hlkMy|62yYfBmSPX7|BBRL0QX93r9h*C0f=j@%~g_|c=+U4Kg7j>9?T`%_rh zo{nwie)OFX(StwduD84O`EpG%y;y>5ei9D*FoT+Uo>xBZRF#cv*awnd`ZrCs1k=_Y^Mil zS!HU$&lW0en-JBiz&-;pQXpsG`%NoUM_D1(XEG$L8qC%GR5+)VDu{%2P_eT69~S`@ z5yZYDrSG@m9kK9Ukpa>O_QA${O6xd(#bg_9JpD1ZH< zy;G)4x@qSVnL@40U};hZh|R%Yc>dY{_4}W8{SBvn^Lej({wx3N`WsFKphg#ih;S~n zTX(q4t-kzG_j}-d@BF~~+=*_w>kWVY?$`hMyPxyYH@^1+SBN!DESg+e^BawPS(P+t z(&*UHy{~%AgP#7ik3N3v$Wy-S|NF=lSN2zY?ubaJB|q3k*T_r>=sXWH5_rgCk&4Y{ zo02n}#wKYg-Q8nZ*DcafjN=| z3_fqBlO@Iyws!-29cr%O@E70rasO!M@MP@s+T9>@M?_pVzKG{IGbEfEBv9JKn+JUc znYdNDlR-LHLN_-l!7r_QiNcI@M@qgnnW7x4e=X*Z% zl<)enk6eDG3R9FmLMCko(_wO<$p?&)RRaYfsVZ!AqVo3Yg$5tFchO4D*aia3Q4{Zj zbV3KM*Sz~RtCcg8X-=Xsg1z`8ol>#r4e&4bK!ja6`cZ;J)p^|PYw=b?V|9`?*keR;bSpwmR!+U!KqpVEFruC#>smFTNZLiTdW3Fn1%t>fLN(w zb_5JKWBPrX)rx6Sw=}!vodHh7*xy{J5;5m7s=iV^vFPrxrupn0&k~wuU}PgS;shd{ zy3Oe;5y+g!4n)nUjzdjdoeF-u^tg6z(nN%Lk=8D};GCZZvzSeUzTk83 z_KiPpI4Ro+yX;R3Tn}Z*sN;dmuM$CW*D{;#_OSFaPG|LFe%>@mX-`rx| z(fFHGWkkNgNE;Z$;;@qFQwi4w7i9q}EX^~k^r&pY`u|K?lnbjbwy{Cekm zKl1C(dG&K%`lr`kf2upn?smspf9n$;@nw&=AAS0+=e_(-f9|(l`j_weP+xFy{P@ww zf6)WK@$p}H*E`*2Q(NBip(lUmkACFxD+ztR$#wyk)aatm$T3klyZu*;!fY)8H(5uA zRgGFM9#+KK?L>iR_yXJd!Z@;$gR@;yzzJc?lGSmqDa<3LOBGLRcyf4-I}CGB65^(a zR8z5JzC=ra=0e?t5ju)*O=M;}iGgM6ujIjw`k_)5CJ%LfB5S%af{^A%&4h(70CkP4yK9?^`msS^^d-7*~@LTS5$wjoo^@*#m{oNP7?!~Wu>oeWq|Bd1Z!w=zXJvf6y5`m7Bn#uE@~D)rpz7 z*Esw!I_ngy$nF}|I$&&zsrlW#X@Im)-|sB^ENrS9FH1L*+#+P-ie8U?c61*^wuFWY z8xjf>MfxCICKp3Qiimg=ks$a{xamDA(&q4_ha-uHx#%_wt%oT$PaGYWLo2}oTg5)O zm7@+1Z!TmyB^S(R9P&{Dzg4qu)dl7^)?8)v#*THGzrG{*(X?|@;zN=MzE4qk@Icl% zwse0Z1t?j)oigYsqo|tZRExlnfT`IhbFx_aIclQjTb@eENAer)Wg_C{ z_8-o#B-kT$q99!A_Y2QEdw1mfKkQ2QC%SpAJ_GwN?#r&oH}&4&{DeKM@|XoUAp*xF z4ewYc$Qrhi)w{lpxCK?kcMF1*q@}Z$kXsN_9~^$piN2o2bdKpqk^-dpebhG`!yGYm zBA384R|jV|2%Es43>Myud}}vv?rQ|U(LyM4d6dC( z4?zhWf?4q`6kW46DS_YMY>7W3knpz5H(V2AYD0ZT#0OB?Bpl#{DN(Qq*+CNtGR(ka zobIN=HLIcYaa3f7rx>71vO8s^& zz|4b)h+KI7*+2V(-+Bum-<6;E)L*{y{eSt+54`p5?|bk2FaO9DpCF)}*++Bmv(IYwMac3%CRmnbeve3vEY%5sk48^q_(3MXo4~KG?PCnkf!e5t5&ENM z9}ar-OU{EzCNHKM+`Wv5a0AJ}Gdv1dXaAj7%p(SG$J|Q8;$V#Xl0XUR;EdQ>Bf98< zbAILrzxB>H8}fbXn(JQm`oH*-*Zsvy|M<_|`d9A@GIqBbhevJ@JX-a8-|Y^Me&}a^ z!ROuUA)j~8lP8YdO!a)ndp`7(Xa0z;e^|#q8o!P%37h1@C_eR5ntL&#F53BW(F(ds4_n7o7dGKlpcVCggj`AHDgvp8ZFE__8;A z>e}nc`fFMCdG84C9obus^4>lzdql*`9`imCNxM<#fQYCaNV~BeoRW4!J2*wH5!1=D zjy>)XpZlb*eAuHO_Bl64h2QblAA0h4{=1J}@dH^h0Q>C@QQ#66x) zAMq#{ilvq!HH;-DWn;21a&vDq2Lmy^ZbdsMT6-W<&|9r@7b~ve+At8~AE;##V|LwQkw;bGXaO#?N<8|%E>qy$g7oPWbzWy=a z`t@IY?%8MEw3UCyUw`n)&m8fubT165GE7Tcmd>{&q`^#j;sv)Z7y{_H#I~48=JR~X zIq9Ja28>=`+?33LEuc~cE)PFRa{OfVw_;2RG(6qfMt*=8#OO-@eTnH?VcOr_@7P1AL&fSOsdSw6Cf8x7tTIBoqCqDU8|NXf? z|Eqs^)hDm%v|WxI-#c=0@5o77^vt<9ZbOfjLoczDv^NtUc|+R4scQ~y_+-2B+H=o7 z{w+`W;%7YVOK;jq!FT-i2fy^`|LXedZzzUJtqjyy+^B-iL-h;iV)YjLMwcOC(#Wzm z+)0W1d3tzD`2QDM_8{UuRa~3+Dy8cY(w4h})QH zdWZC7CFsmE!-ItQQjvwR$4%N9K&@XQ@mgXoKqe!2mRMJLE_nbWox z1R{Z>3A~bP5ki=^&?x&iRgj5@_UBkD>vy<3mK39(8acDIHhVjh8?TZreQ^_y$1;Rw z@8>#iYO^s;vmbfEo?uOq@UFp`A*0L6SF}6BJCi1{?0XKjv<7nNc2C*LO<00 zOhJeNU3dKrr%v5SH_>%)(0<|9U+}~K={K*s`Wj+lUiOZivv>3y=6%;2I>nnG8>Sns zwdA!3?#B__;wkgq(UW^ePf9zu=7y_&;^&|J3%~xt@A#w{1 zdMlcB-ZgcxgNnGDL(F_~lnQltguOwtw$HRm-gRvBl~^iUj}W?FM^m)#d>Mn8cS_iR zKU1Tvyxvld^E4qEAt~aLMwYh?VmCvd*psr5P>kwFHAWS zKU3oP%NrA}mAB=cNfx}CdYiTG?Bb4wV3$PS;k?Hz!_`#*=V01jJ7pl}V*%bN@L4Gq zF9^KM=qCvs6U?0WW$WAe1MNJ4mQr08=#J<93-Q{4%Q8jkIfcbqnl!Wk0@VZ37+|Ze z>%O67i0G-G5@%8C2=8~SY<;UmjEhmp=w%St4%#CxyZ25^wefnxo8SJ_Xa2~q{?C_Q zfBg--EPF@J**|gNvVT10iESS?WfS%>0UkTIR3>`s5+XbN{L8X`*8b6Ru0M6~;+Oxg zKYZyM?sJbj-tIQHI`iiI$WK1&O>ch7-qEw7Vg$!%G5j-EBAYp8&PH1~x1fB`o9uF6 zVa%`pSvYb-7gP5`7?rGSGR?s@u;w^Qa?yQOG+T3GlBZ`q{x5`Bh$>u<(bGV^bOk-! zr|7UGjwj;Ym;hA@kQ~K8>kD!ktXOcjeL#il!Crn^-#+HN{n`-Fa)#GD9%k+LEp+W& zbeGF=7_hsrFgiY{o$cT!O%LM2iD=Q&lS32qr(4moEblAc(nDRLD4}7&c<_Ri z+Sisk7BL25pw%k4Hg;H*F;~?=1Qyo}AexsDAY$~Iu94?FIEAQgrN~$s%yXc5=)R(^ zHM2+y&%?;ol6u*Zw!awf!7>I*Ws-w^F)%0b;oqB&d=9zL%l%Sa2Q;F$zvshG z`SLF~e(dOJF$)pV!9n|X|M}OS`Mp2+k;^|pOnXPqK62KD%l>hdifVkAlr@o!vrX=_ z@Hj^6jnUw+xBsYLC&dXrMaX(jUi4%yJ9O}H5PMw9BmStg2 ztKlzBK+)|xdGV4ZYDz@xXXX-WaxLM_Y>LIE4JbL-o*-jrM&`@ zb2P{bD#)w~+iAB(XhgnA=>G)ycI&Gdjc9nlY7ojw5_a#y%xrMoFo};mmCU zBs-xQFeA+5Ooi=)AJvJ$-VUX)SEiAv$A<*+r6PTH z!|;sVDU<@pi9`?XktY4b_I`tyL=J8|IQQg{2Y&Wl56>?|L?8U{$G+hiKlEF_{|X{n z_KqAmap7|Gq^-oEaeH`w8a}WRlTG z0lD$N+m}m_5Rfm@dERC++Bb`#>1L)&5j!O_2n=Sf;bR!8@Ex>WupE38fK(|SIf?!> zrWQ%#%MWk>H%fC1gzSn2nPN(-TDtacr|YodRp$2wZyi|LbpP416UKI$;Y?5u58v{-c|qri;kQq!U5dqZvmb3hYv@bs`v2G`rO zmStJ9sK3vx0i;QJMJ9{zQX4S-&ECXNb&`lI#VEH?;SqJ}#0l)=ep=R-IjAhYy<3Xi zj41N#!m;hFO~ByUX8pZp707NP@D%q9Zg=qo&;RfL&uPq-z54ZUefmH6(aS$}6%p?r zJ9qEcxzIIB@UBaLw*{G)7P7zYLJ9m!k-~+rS$3wtLKbQya^rQMIQOiBpZ|~l@UjQo z^RSINXzj8u{ktFd(B((Zxj6D}I~)k$OF03Lt)D5NB!D5!U;8u3qq&$+$v?>*ca`~t zLKZE^{9#&h7BqH7Sfw(0Z?amSNseLzyo}DRFg2H!@lh;Sh)1z_0g^SC;S)P~O6-iP zYA;eQL`EhlE!lRRzV~1=r%Y~rI$^J0dl%p3^EnN?G^>{l)|w!^WoUz8`jl@fc$z;YpNXVCCQWR+r7x66|xB|fdQL)JdVP;xg(8WAJB*G?A z6Ou-0`v?ZxB`{4f*i zR1OaK;M=ByE_+L6myUf%C_MwyGxOS$jC`=Ynfh3=f(}#+zU;4Td%F^TqNaowQX(h1_Lm-^5V59aRYsC%lGhbpX408=m~IZU^W&oCJs5Z%Yjs1h4? z8;p`%apl!t{kY3^VU>RU_uqKIcYODcpE`B0>>WLF;v!o1Lp>4HyBIss9Dii)xy7A) znpQn&tn_0P4IDs7Dvog~8kV(?i14x}duRRLb6#=rg=gRYK9}y^wD0~m|KgA5>@(u5b+SpzB6o^vOs<<(OxN(XbU#++Y=y_iM} zbt8ML%=3|u*j19H3|MUe#X;>=6rx)K#>3!)L_vkdW7PufuFVLv$S+0%*qf5G@gY#N z%oW^>H#>>VT@r1Bwa*CH>(@R3{0mM$q4_kYY_>&4!mN-gDaMs5=Fsp%L%^vg_yUP-h4 z*f6TI*J6sZ7-H$7O|_jPE(kD;T=g`v_eZKp_@QN~>#eW$_D)>kEoN7JL7dl zLBlRxJr_SJWl^$NWR#!q&P=UEU>M=#qYVn?H1fPk5m@0ap>Rp``#v^>**Kg@j}39g zQ))WXCJhdMSrsgB8A1}0Qv?P}pJ*scsAfWY1Mn1UZhNA`U!Os+*DtmFlmTNP4Uxd< zN+zOXk_@Tr$?U4*1`>xFnQwU|OORX{S*Ezz<80T(hnN+mN1(c+Ax462cWAOb8A@QP z)3P>;q#BK>I#9rP!ZpsN6}pH}*-KNvB$XA;v);1~2xT{a3fLt_QcOE)JVli=?dhYKt4z_{pZz!}(b(`W%E7 z%1$1(Dr%OZk*90eyUJ;c@a#@Ro46%m4c19AoBtIuzTF8whGz&b!|C(WgG);m3|1q4n#JU;CD)e&-LJI(6f+e{%2Gd71n340WFj zWAdro5U#FK5z632_wdrxx@iC`18|$hSh~CKSW4WaDsU?8g@|Z5{=65z=JP)LPItWh ztv9sp>Q7$tkG}86oACZw=Y`-`BUZ>`bBNg&=?A!Z45Zhgjw5 zyI?-A=C+~4wQF;F!E9~L51bn18}o*YO7-Vy2Q@kU@Mn4IU^QWifaFQKv4-#&8k2vf z=q=S}Jt~XH;1H~c&4F+hUcz1m+DoRwaR_WC+fK~Uu-i^)wR{3gTQiVyXR9&{k7#io zosQ4~^@@SX879f*%+e$u5Dn~CbGd>S6lzL}re-4=FvDJjt&y$Y*Vg!9pJqz3Qoype z$^KX@)m;1b*iZBoi3puKb>lfFk3HyqcVFws4}SQHCp`UMUUk(qymxH>*!jrdp{0Sj zz<_aRQA9ewkzR|@Xabv{tWgA*h|z!!gG}*c{ixPsFMRoHpYXT`ox6U#?JxY=b6)yK zuRn79+`YXcwk!i|B1Z`_)5$Epu$4OCK_E(KpcotgW*9@>nwcHTzHq>v7PJ`BnH9Li zdiG@C1;v<_Oglu`=(`+^(=!ZKu1*wS^(1&QJRkrGf=v!1C}Ej-DUUQE+u1rliciR{ z4JFX(om9oszGU_fGylvr^~$w((WMWHU&Z<&n&TPz+bELGFpkU9NlyNpXDEqmjo%VJ zW-D@Z1C%@2WDCVhZvmf$8A1Uhl=|HSYeZuxxYz!XV{-MBSa6gMDjvp3PfhY44=L#rEii$M;|xu z3OnA~>jqfeBs!H!4%n$eMAu$->d9a6Fq&Nl2kj}}{)2z{j`#82(fzY-HDZt97M^!V zOytM$#Hl+V=2?3-P_G<}Kq1LpfaAZ?XG{d^EFFWHiRgwK_g?>}fBxjhKWuIN`w#qw zU-VxIKEMW5yK(Lb#y3ZR;68Zdc@^;jDIG5iOT?f$75O~JJd~|>?!W&v_q@wI=H-We{Fi_0_g+f8969U4ssXYG zh6tV{=LVPs$a~<1&j^Nt4t2|f7f@05pKJ{`*tOseF+~V_-<+?^AH3q4>ppqqBfj9i z(>9(s>-dZQqMqoB7eUG!g1|c~Fd!2Q<5hwK!WSH4pwP6ziR`x{_i=mF$ z%-nsg9rhdntyYfA-Apt+!6+*nl(kZlR%qsOB5bBV(mtWf+`e&4bQUz7#N8XD}7VgX}e_NX?84eLoydPvh%yyDDrFXqB}px9RY*8 z(O9PsIea;ZgDB1Uzt06)dsRQ3nSdb_2y0N0PoPMh_75enWb5$Je}p@TkUNvb;nLNS z50=olC5Ruc!$rJaz!F-4#hQ&ia+ zqO@T4MtksE5+Y)TWmt5EQqT|X`?ND6aA>zM%M|CyK~St%KWa5ZhGV67jYN$QLEZXn z&QSNf%OyYXkH3Lt*Q;OmzrXW)eu9Yi&$<;a`*jMLt$`gJ!Vc*-7qU5AUIIh_^O#ur zmR-8sENgeZct9Xun8+4|iDbQp!DgM`A$a*;Z+_>)9(d{PZ#y~2;$C;V(~JK2&p-Bw ztE~Ys5EWFz81?!`IEv5I5n{PTuxM0FY*31Go}|Pv*mEzW&;3PqP!LSzkuEH>b5NGW zXH$(9V6+;MY@^X7GDL{;Y0l_q-@;h>bu~**()=8{$RL~>1A3t*xIs-*h%p3-WwrLhlLbmi zp-!Ppn1sD4FpkjrYS6h1&FNOGmy;-CyHSgU%Z8@WEoz(jw~#6F zkuPN7qhvc@M-2sPYxI*40+M^y8zm6OOZ5H!=hC1>g;6-pH8@MgzKhk+TZNU;DFfkKq zhTM|LSOX4m=g1*Ky6IREyKEzrD6!dl%mM^FlWXqH(5WvIFDK%3J~u-#EXQ5`)g1 zis$^M{s0qjn-U}AZ+DUP-{NP+Np$*6ikKPOBaEjMVR%8%OSnHF%p|I+ zl{3KBRr8)q*Bzlh)C^m9NNWB~bOtUwGFHxD5)$FyC5tJYjx)*P1C$5_#Rv+OMjY8o zQfgbu(Iyxj$w|Z~0uiRMvM?jt1-d@G^p3awSO4hir;}m7_-oI5)^EL#_m1u#KhG`Q zxysCyp)uUWku1UvL-LwULqsGN-mmozZ+>DPo_&FO1RA2ICCq%~r%oN+J9XIu?lHFD zE_b@^AHM8$AHV8at)VI#qD`=K3T-f}6f3UG0tP3o7VKM0SKI z=7C+~-8+f{A^GRee9~v%e04v0UOb95?|zrcE?%w&y9f(2qS_z2+^PZ`Fp?N@t=R;MMOoU5EB4l8DKJX3Uh<^4+ux)dAu>gFFlv2ssHfgMp;^ zWeP8gQ-6qPfj(hlry%p(rz80RIz0gGeBg9`4;8zCqaGE|tQ<}X9+B^Fv2gX;yYS8r zA{s3+#5@2;aHa)QmWx;54Bs*vF5iJKOz9`oXdCo#Vmp+D*~=Ms^^R?)2flT1Z~`}@ zdyt`^;@%$xrq@nGSTbM6932>8oF77bies;8>`{|upp6Y|@V>1OCyw~coM+J*@Q0Ug zo0S35dA1xmD~d&MrW$_~1r>w}FUqL{Il3ngeb8jv>$_ii$*=z2%WgPzpm}MyjQIeqdYn+EnoR6PE7<8?nub9O ziWGE|+N7zimxyN`0^n};4+PCDV# zvudKp_z{s%Ya%Gf#ea*m{-uc=h#ZI>M%m51)~NLji<&h3N7BqzQg5Cf!2>l1>nbiV zyhKD=lO}S|q=__NFxUFzrEZhdJdYOEY3ogQ%r@KDy)<4olHMq4WGZSCIUo|D1EGUv z9#nm^wO*;FDYLJ#6EU^H9kjZJK{V*CMR#S7ucNy#gw8ez4zSc&851FT@>e|U$dUb# z|E{|FQ$O{KzfZjE9X-b}3P;W4Yt{i_PMb&h8CB4ecp<(42cY1FI9P=ADJYKS2{T!k zu9YaDR+^iUiGT5TUU$_euNkXzq^~;*sq^>Y(CVurN!H|75nH5l%pC2+u;i zh^XVTGZ_;v7UW_+VK$sHl|dvHwyU3lWwB_OzF&4PaS4S&vl2m9Y9}3pr@CU{(!|=7 zJuq2O2dN$KsM;_%Z;VB$j!z=$3?KaGs&+yzoOV#jW8P6$!hMq^7f2EnND>kFbE|Q< z<8>x4O3p+!CiRf6?*IUR07*naR6fHB$gWTKF1*tN2_ghhpN$Fkdc`e7z?FnNK1GW! z8-}xDRwU52=7Ajt?g^h%RtEDVE{7aG5fEKe*?f3mG!eJh{6RXR95v0{ly2;CNILbJ zI%8*lm*WM&U?HL80Fgj$zY~o+q7pMSgKS>|8m$^O*v&iw^!0X0NAe|5vD z8_zl_mpx#zsQ-dP3A-~HVVc{q)*6Y1F+u&*o;X7XI_1ysdQ*9 z38+3J*d$6sC4L-PwQjpyr;TI(M_t`51L_0*0;PNh+RDa%o+_*ve-GSzc8eoiv*xhV z6?10zI)*<`$ZCf|A@$ESY61slIr51HiG(GkMjufl4<9kZidyr4lBkl}WNsOCE2qEQ z%=k+gsZrUQ&%ky2DgKgoR_d~_-LyyURGf#LxXJHzmrL$`=i7}Ob8ygp z_F2y+TK4u&5V*p|jabXr5f#)6$W2Yxq1Qw<6UC~zV2Qx@>P!S}jDdwHoFLBD9?Ik! zQmbcLSK9XqJnMH~e=s|!@Ba6_+Z}Iv9sr!3mEf~)O9%=;z}UJp{`rd%@CLE33!-04 zr@=xHA`dv_g#mO~2+xZ5cvK*J$H}Ef)O2N|x%F%zWyziF<}&n~x-h&6pzDLA|HAR z&8&VU^~-G)GDhovs=bo$cs+xskYUuN7Smkjm~1``)>Iv9Ex1kGO&4B3L!c0}fN&Bo zDczvhLnc=NRRkAKXAU_K86PK24cdlYSH9`jy!J~3Pc0#j(w zL;b{{&V+@A&rm?)0--b>+zBfebStE=gEfb^CE)$kpX9*rVXTYgT7d>6mxyEjD99L% zb2QDXbVG-A7J6pjxwi#G6?L6B{NCZ%06TLcW?L#GRU6ZV=Yh6dqrD+R{u?Y&S;=j* zWL9jX$#J+g^O09c9l6&F=H*@S89 zT0_(6PB%4sHfB)jgBGn-&vbu_#7}P_Th}L&y`b9R8h#|L@bjZrPICB--+d{O>>W7) z`XBle3Fh9^cvxuRw0DEL;@sdP;s`t`I(~F0!6cuvuNCS0A5>Xv>6Se`-WJ&%;J6dR zKIwnHa1MSC`Mmpxv>s-%@S>rs%N{RFcemmkNQzIzDNaYR#n0SZ7&ZcMKd+mZ97doc zZ4ZNy4rsk27mW&CY(wyfgdrl|^3${pbQ*OQ^0*WsN_HQSXhaSi=i=gmgA)jH@Zk~) z82YmGi$}n@_$X3|T+0*4I&`DBlWYvc%+V%^tTU_Ny>&^O*bn_@H01BxJHjCb%N~=_lW>=*2gA@4#bzwX?E;o3lXkfm@Z{V}` z?z5jb>qD!r9jRaz8nmnAK@4}X*>erQ3OuuMLxffxhYg{-AUZ)A`nJ?qEP&hwlE7(s zF<0khVf)y^ZDKvT-4{E#tY7_XIXL}2PuLR?6St9pl{==cHqA;(dnmWns~th&N!&*- z0Zm=0P2CtK5k3kMF|nH74B+7nl*v7;=wrX|0n`1=K6TA?FM7r6dH*cpJ(#JM$$Xy> z(?Vh=*!oPJ_poyLJv+CJae-)-cW6pmQBUScth$V8-0IW#`8ADK*KO+@UZHY7lX#Ls-WY`_K z<{Mve>TJz_bDA9=$&J*h>Y2TeigDq z^fTQDJ8C$+OTCTEBy zGYry*sI>!_YHvao1?}%a4koi^Mq9@3dhy!BT`=u%3IE1jdl%mE0sUKEN0V2#7r@I` zMy`|xVb(R1!J@MYEG6lh=%#@cl5`a!U)~0)m(P#&87JUjb?u7bq~eQ7#9-s$$;9h~^B-7xYibLV;yuavoa;xIZCzG+x4Alq@-y z64*GCEQWERUk~bMEIUK+rJ!9mkRbfx3m<%+@BWS_{_yvH^TQu}-}BZF_xW$X^4!96*WpAQJ*i}8qUtF4%y;t_j7r(tuA_6K`=%XdHHEC2KNKkd>xTud9UJKz4oZ+!gc z@9!_K{nK}u(opt?2rIL)2Hw$Eiq5IeF1+C6BQLw>v;yazec}rqaF1_(;-l_<>Fuui zxN`l{U^2-BUn+Q z%CXEM*bMY~S9+7y2Y=Q763!3QsBN6|$rMW_1WqVVV>wLBufbt5UaKy*Lti&V9-o=l z{!DWSZ{BF0%xF>EOk8D?ImHOrc*sfY<@EY!Te)AJ=3NgQ7ABlN2~Do=rl$#Fx1q2d z3)phBUH--$ zdD%b8*{I5U7FXv(9vhB%l;kzh$&<%^=7<08W`nO>-}UrIf6hHGdFH?Tm20lOF}!M( z&PMDojCD4Y;oK>$9w+wxlQ+C`a|M=VdECSA|G0zI2{i!l>z`|09lTL>4Mf<7Klr|1|M*9I@gp9vw@fy0nO-0N#MO7d?3;N1oaM;L zmDVpHR*OoQ)~}^Enf8|D7yrZGd(6Y`ONYN+@~Xf1d;k1bY-K_TFInxd;7h_UKsOO0 zdgF7x@BDLD?cj2?)?W0-Z~pD){>iJ}@V3ZAjHklqxb&daBmn}AY+S=EVuH$WIU%=+ zgnrX&!$?0ODZWAd@CUDFoT&Hn@2HW?uUidy(}fqtakgh-x$HW9r&E zOs;34ogzEzB~#nD!p6kKIlAI-*_8)zRaMUQ+&a(XoMe7Zq6~})`N;J%obYoR$mB@( zVv~_+m1HLhcnrD+V1sHb0`nu}?ByQ7plkC}`bfhYiZINkmilo$e7lJj&)xVET^}XQ z(KTCZx`~<;1Bgp9{5r^<8jy{Sr7lTxiAl4Hax|JUNFA2(AO6x0Ob=?umxQBo4;~xIG?|9FLzWUpL$Te6M84=K8JM95E z%x|plvgq;*(*gTp1QA$p>J<}4_AB|I z1w%b+$fF3AGwMPaE%W9r7{Zyr45keiNLJ8utE#Id>N-7GJrjzV$K;EK+>5U|BVXkX z`=Z$`Kl{ORf@hMeqlH>5e>gr9LLjO0izO<|cZZKqzJmThZ6fg?2%B!l@39gT zW!Yz5x^VS{+C+O+?ZpD^RSi%^b%Tb<_ulFghWEVmw%_rz$DBre{QCB9eE2=@axpKi zCgr#ekC=7(q#+=Y(q8fj!?(TjBd1ZHTVHry?0mNP@H4goIkbob)^23+PELg|Tum!?=$q^B7Te7;80mDO126X{h#!ezsB)j-hZf~Fn*(R6?Pn{=2 zo@ZP^WCLevJV<%9%=wv!vY9)RDJsaCCI{6_3!o`kt@NFfoac`n7*o%*AZG;H(@Og~ zQJba6BYT`}HY3lJ?7q_nNs_!mr#&*?`JNB){xMp*2wsRG0>h3VS1ZIVd>@g~@V9uejogUIUC`Vz|C19fpi%!A{0eNeJVx{O>lezhE%woT?8O^40wj!Y8F z#sM&ajL+QUuiacfHzkQ*upqtz|N;()`*dDv{w`Scb<^x?jS-PlWiQ zGwn$Yk#NQ#9A{B}WFKZS&C)!d5LJJU*1>#AoYM>i=+9;Xv2=m^3umQ}g&5&HOPXbc z>ACRjq$njA%O*-FSCL@jbo&u*TynP;myU#*=9L$mK=iQJU%&6eyc{XCfbYJcNT1dM zS1j@Z8F`tA_^x-p^=Ugi@p{a|KKr&8o&4Yx*MdjOort*xGU_XXG_>WS@BQG%Pp>}G z4q#Re*v&#*2e*IdyG!gRWu8xiIA)S&(Jo00z*LFKi$-xqgy_n^JL5 z4_{@=iYW+g9dqH^w?gso^dtg`95At_3lYWRUp&CeC6nOzaMovs-gKqXlQU8*_tfvJ zXqee#I%~29#hY%Yr&Ih}`@RAHHhxZFgf$w5@PHSw*vdQv%XUxV>uqp%6xjH5)BNmm6K zMyhlDnHxUKDdtpAqe2pS&CmcXbra~QC=Nl%UcH^h58+TFaCLR#!}h#l0{h|c*A*Z8#Io#}4s0Gw_J6k3SBQ5=7>bL{PB9bH zmp$r!r(2zRJ@UbKB00!?;L~Uv11IaHS|z`q;;i_iAG`YWD&uCK|8iHVigz@#JgMaM zORT2=vOiYDa^_&^Dz{3g=xN{HIaD)XQ5>(eqmmO1K^_V@-1X6qeu9@H89kGv&cq%?5!Y9U9`b;@onB?e>x&+C-(P$7 zn|W{Fq9A}`U=B`*5aDJ(E)gR7_?6e}R(QR-yEmCC!&VCp&_q4{(_I!EU$ri<%>w6A zh6hP$7B4CG42_l|1t!fyh0x z?9vQtAROl7me%p)_wFMl$phIi%;Ypj->31~Pb=xx5e`x%IaUN_NKtU@p$axQm~D*@ zVGj@e6-%K9A}9OCtEs`9V35Y*cCZIc$zn4U-5HVB{T23?S`Qn~x#Bh>1G+F0OR_pX zl0KYEROEi1D-~c&Q(vUKKJV6zJ`E#1S-;6zWpUOb+q;8L#sy>Lxe_k7$&lki-rsV4 z>e_3WagoE~xpA4Zt386U92?Dd-nO27_v;>ax#ZyBy8XSgt>}yrWIli(GVq&Fhaczb z-X)*9=7uw=5{%)QFzo9J^Qu2v;DWqOmpjb#e^3?uhNN7L53~1y$oFlb_!H4B z0t_skzbS!Ivx3@ zd(v6cP64G(F`^}IK#zG@ocngLomM;w-q}1O@hr2$Uu@e$6BWT;$`HyiCf=;5X0PXk z=bwFMRf_BU^G+VzaLxXalQBAk`c48-h3LoPxnWI7*6C*|q2f#;U-AmyZQ_5TzPfJ| z=sA*^#{pv6UeY#&h!(bW01GGgjT%%SzEa8PkVt@)tY$%rGL`MPXz!Xi?$NmZ-oo5M zJr6=zhX~Zgo-W)M3!1_S$*Q7{*JMkGp!4)sQr9-*FnwieKA*1h<f7? zX(llYaqNe(#_pWStK3D?826+-Z=>)`!L%&AevwpvQ_SrD2(^r1pC<(UrUzt7)Sy3V zJ^`>|+k@Nz>I~imMo>v)n`^Rxi>qpG&k<-i2p)(dNpB?x8Z6TpW52SzNFotZH%C&ydrJXGQ$NR z;7k!(7>`dnjk?TORbo9tK#L-?<3tR2F(rc4W=cdgS5aQPnpI5mN7&$R`hwz+GqU6t zHMel@5H9UgLO}%ex^KjCH40mWeJQLaP(75zPFU=>1K=X$PkQt>hyPPUUR-Dp%%2Yf zi2-vHRlRbxA;}d-iM`i=FvIm}G0!ezoinzCngmZ$L})P~-s zvcHuXBJ1@T&G_00I35JFZgiWDY%wdsOIqfNG@~Ar&EqsN1!*F1!1WQ~ke^7xAk%4G z8g-2B*i?@q?lJffJ#k2sE3W+HIcFcIo8r3i6Q7Ftr!vV`DqCD)Q9ZXfChmko(u&>J z%F7btiw7d59tw&vdgYDje2`eZ=PDa=W|(#M>O`p;Ade8M`gaWl?JKW>W`l>Zd>__f zVX9(Dw8+%AoY0v*Qe0HCkaUwA_9+-WJIZ^&m}jF=$N z)5F;pVw)kDbw+|*&6SkOpZM&uf3nPdU^5t`S(RkTDKr`xyI;KWrk!_BduNt+ z=pQ`E$Xhr1vO}B+DD2Uzg&`1eQnwg$p6;5ulV_c{{!*}nsHOWRD3sD{d* z)*Y3J8ICau9LPMhq&jTXgRe(ICN);S;)V--y~U{P5*0h!;#z@GWB&m%drdJ-1SFiU zg0%*DyaBQMZ4Ky{Inx1vd zwv=~$VYA*?7*;$}U)<~~pJ`T>9`vnwVm*23L4~q(!t^~uNJy8T6D`Cn`j=r{!s(5H zTVH&E&SZtM5lzgr!41RkKqyL-q2<+Ye8=fkX1reTvNswLmsmQ0%z!I@xbNX0$nDkp zCv>axPo7p?ti8)ZWXnJ5WyiY*aTXXZW>p!jI|t1wSq8Rruq{|3*I&kSM zg1QiipZvUv1zw?e6GVYvFZi%8VGsR>Hdl9T(etsGZJ_pd7TgBJi4Yo(r9G1#ObwYf zI|Rsv_g9{tQQdB_%Lo0aPxrrO!i|f@wCUmiGqtkrn#{itcaJ%SM=ZJ#6)ge*2mmU8U)R)DDz2U%~sQ~haFMrGFS14aE zdgU8w**CuhDmJ;Ec_RbGp@WH)Wp%8mX$v}~ZrTBIK24@!Qd{;JUIkdmAi!toax2o6ylS!boh!|z({gnOho;+D z+buoFR+>$yNGXIQ+F2L68a|4|bTw2IW}dm~K_0gjoW+6dxpSlXQx>qxL)+iH@@$K zm+u`pQI#){rwlwvB;HFV62UiPa{l(Wz18W}hq>D#vM@1=tycH0V3jDnCN5rKqhBzh ztrHjaMd=Rcz_Z9X;*J3yq^^vnxmW?p_!wk%jhQG?xdaG#r&@5!TpK!vJHH2}8x1Ko zCyldCOlcVLmW6y>ydt4#gMs?6Aw(%T1ag+N!IdKME zf}aI|3ouV#DXo}hRdIbI>WeHAJ5A|U$I(pOx!MvKQ!9&P9u*srQCYJK(^6~+zqhTC zVAQQ#jRFJ80lC>7+uzx+8xE)KUdm{0vm`AogZJ9Fj}#3=^2UaAfp$?0Cri+^VVM8Y zMXw;QP^Ckiii9Ng5UG4*dsqkv8sf#Ahf6h10^3xPRL5lZWP%3H-Ra69^i75)#~-t% zq`tYcK>i#Rvz(0v4A{iXw8S=;ny?#6xCLe)ARx3_gbO^wt&ao9Pv^Syj<@a11g3>; z?-!KON*gODu=Xy+k@F)z^;|oU=rpf`)_&+GeuIem`SM|)u*&z|aKRD9e&|Y?&LRr+ zl%(DHlG6o0GmcFZG!5S9kmNFgh-k@-=%f+IOVw>_j_y>Rs%-<`tx1B!(_=BN3!A|;XqPX; zu1u4f5s39Hy;B;@1;SUe2MZJOmYim!8i9(|Um0<6%&KHN-pqxjQyok?gJtV@PHqCB z`Y}$KilLd&YD8npx$L2tYn-g>Qt5(JL`1C-QNzuwedey0({u)pq>&z_)zC>V{f_BP zV$%Tb^`Jfn=x;$KdlNKNP`vqud`K=r{tcCUl-(%weTZkNTbUqOQdM0QBpsS`#|TGj zhhGjmPO->qX`;(aJo3b3lYzbZvIH`rJqAFLYHA)vMPjn4JH4knMuUThn7VxJB9eF! z6}JvfM0EMbuA;+V_qoR%Ne&FCOUc-mJzYcPGBqVF_@E{$paZ&swU9+h`41ZoP|}l0o@$g=r(svHDKFk9fe2HNope zuYBVV{lu>m@sZ=_GqF%(UPKzFs8+)~rnJ*|SSm)n-ixNVe)c^s*}WzQt-a)xum6qT zd(kUj^QOhwA~9-g!KdZKsBvtTzL}ZT-?!9s9ar~Panayj3sEsUtUc(O7=`>|z3jC~jB7p8Zy`kPmkkDu&Jmv5I~;8NdrkBODqn2xjQP z(DqJ_zE`#u1x1<&z@Y@)V7JmS0o$$^=3t~iCzKro@`X$EHyDN+?(g_>!jj#;tOx}lqWpq8@}dox4X^u^#&K5clN#R`dM#(|FzK)aAAhMvMG=GNN&9M z%>Vbl{nsD>bG(Qqas@J$>gBTvgTWr&E#(W`l z#1*wfOldXaq9!Hi^gF9JB=px7?&3;hwJZginFRsZE7|tz`iQiqeI%rMKdUt3*oBEq zRb3WoEuc>~fwF)MUk1SnISQx-w1O2Qki`Bo4gf#IG=VF`VTy$NA;dQJwsC=Ky({P_ z!>}&`ckStztRx;Z=t-Kr3-3_3pXWra!9)Qy7p-v6fGwb7T)#cc%Zwec8YOG}n%Fs} z0-H0R2RujACkcG^(bvMDbUAK5Ri#?n7_;OJ7TanH@F+sRoHp$D!P#SOjYU5_JTfMk z^uGA4T97gFD!VePAH`<)U|PY_Q~Hd|BzlokcB<}T!=ZSnHq2bwie^2VRHqo37t!j2lc$#_XcbE&;3bM@s*NjvPN{Z~w?OpSt$dZ+P?1|LPyS=`DYG)>+3dz2of` z-q4ry_IJJS&2Re%GcT+zJ0|FlGA5Kz%dqt)xr^GrAJEa?dG^cp_vo?*-ivm-{`1fO z{y+KGKXd&JH!k}pj-0q)GHkG4WQ|K*9M;E=f6V7T^0IqwsK7yMFMh@Ae)vEC(hvOm zUwqx0-g?co*AdbF(X)=7yx{oB^NX*KX<-)YVhm6eXI?c+K|)%@N_h11ut;_8a69a7 zfJ$g^65&)<ZZ2F4}?1>Lm;8CzQ2%s-kuh3&xZ7P zNAeGk_jKJO3^v2N?yG>AL624@&5BzIkvNWorY`&im5`fcnfrs{*Cdn?xmy0laDRpXk;jr8GNT)nas_zpeo?uGZVmNFDP0@HhWC{W6ke2} z$tc^17HJ1JUjL~ZZ}^lPw2Lo1|H)5y%-63Qf-ije>;KL_`vu-RlC#W3m*#*27H-Zc zD{|_ZEAD^qOTO)9{)=oMG?hA+$Bk>e+i96Pxz`%t151TBYxd;&71_T8%s z-N4bb;!7A}zpMAHg)U{9Z85~sPED=^!+d{`D_oa$x0TAKYCz>;BYlXrNSRs1LJ<$y z)a%k5}Sa;8zOYq}{hY%RCgza7`q$onakpI!g^0C#}*To{sLyF>bmU zYw3dpk^r%dOh9e{J7Jr60<1DRzW?vC7lwK5WSks-_@ zgmZ5|@f8lSdmeNWs6z|$ji;`=@%m34oVs2}9`~rre(FcRd(7ghPhRtYFZrjZe@Kk>-u|)kGM|n9VX&k|-+S%=zm6X}@|xfM7w4R;Tdy6o_MPAJV=w)a zH&{-*fAsi~<7e+5IX0;R2`^Xi#gEg5$!c*nl(M6Zn?aDS^KS z*HF38@E`qZUiXY&pk$XOC*u%sR{&s9K{q)>$v4#$9(z!Fg2n!~^_o#&rDf&C0xZq1 zMBqXEu3LdK^p~8ZCaO)`Bzp*mXaJmN z95Ubqv1!J|8=M=Tdt{CmFm)$g9QcZMrj1(8Z}Hw~jl_s=?i z@92pSee}wo{-x*q^e;VUjnd2B@x9~cFWm<9$xIJ1s}`_#`Ld&AdE{mH9FdQR-u%Dc z{?b2rBMB{g`$vwSJaX)8UiP4?fe=`wge5^G8=$c%eP0MjP@jWrxjd~E6B zL?ekgjLmmyTLVG_`o?QU_R!WQsZ^uICdN@1vzFTZ-EV)IuKmrAt0snFnik4o64@Nn z{)&)?2^#sb3W>Xr^OQ91mMk~337CRa#8J?+Bzq;PNuuE|?8C%UPDrq+%Y3|Z73-aK z833Tm1EosGGj!JF-JBA=Q;8h0xap-?v?x@wsvj6v5L}$a=)~lbc-zlEN(G6eSEJjQ zlgzXxFb*x0sKvjER@mIPD)6_EY}q?{);UMdI_H(Ied`E*MD(Pue8`Jl{Z8~ho7tDd zD>wldNI|f*sB1;`iZ^FDdi2DtrJXuBbzQshS|Vu&r-*3TJHosy`)BPPIg8D^*jdHH z!8~&#nl}|?uA9{50OTOkS3m9nQ}%ex>;IgH&N}C!{iA24KI{3Exoa}xE;u3gWoDVs z3j5F4Q(j0#7n)sK%-}8yXY+6_1P~_u zj@;j_`KIol)FmnX<xS-jqbaloK!Ed5=v zRZuHI(20+irBktlpP<_q?++q@uqYd-eVg5xPa*RRii#hbqE z8@_aG;g>w>K^L9(+gDt5D(9D*#_s$;9>~qDBOA%UM8tdh`+H{-o#TYX7I{>po-EGj zpRTfe=%5BImZGi`(Z#nq`>|g*pLBfo3;t+-|H%H)M!l5C6OQy<^Sz!WMW>I5eK3ZB8b@03t{9~V%WP+25 zx)~|JA!5Ji|d^vQHvofiFI*i#KE0x-VHE62Vn{ z=0g{_-{+Qn7_`1Qx_FK{99l5CNUl(xAehrM$|p+t9l4i-C|GOh^s3Vp%)}8yEo8eq zdviVIurak4$kX}_|Hfsqnz#2|RovNH5DS&rvf!@cKuD&SqPsLQ5sSn&pj|)qJx1*( z#ny~{C6sijU>k{QL7pJxLuJ=drWuXAu)liu2j2DG4~^v7+grZrYaUuin(ND6sZ1T< z9pA?bgI1$_@rs07!ZvClBb2cPWtK?Hu!$#8Wy@1sPyOnLOqW0Y`P<(4SMPq`a^yIy zSG6NQpbpu`m>A7BH&US&roHVT7&bEBi*&@1-VN+Y1;1}#6s~$nQc?7xq z5JK$4{;>H8Be=6!O#D{u+viz&g(Ni5LBvsRn!ewm&FClu!^mz1*m^*r5o)sh2X^nB z^i-|TD*Iq%D%ux1w=A zOTLUAeZ9FX%$emXGkTmP05VX?vjtt-#F8~MPRflBYad$@iVn#sqtngaWuTs+SPUl) z2KBwImDl@@*WHZ-9g#tj@|ca5PEl+yJ1GA`(?#&9)i&G#plSg5X|-%w`9~|?cS%Vr zuMZ8(DHo&-RA!Nd%15eNMiTop z>kq9ukCN)&s%0r;p`j$AQN>dd>ZZ4%V%U}1s}xDp>?I8?t;Ve2QPlzbl1&u&pz?=ueq!Oc^oC7`PZS9tcs{m*`GGp*H>L; z+0}PAH8p`C2SR1r`k+A#ONTm_;7xk^6CXAWbvbD5*)RB`z5OH0{?X7^!c7>8yy;-f zs%<#00*6K0!B}fys}1@I5YuQYF}R9EW7CAiib}MNk!Y<3G<9;<9X=uU7;=-;xwy%p z9)T3yhl3GDO;65oe8ph&1eQc?vWDu`gszA8^rl}XlepwN%KUUU9=k}bq7IcgZ3cKd za(M%k07W4fv2y-|jaT*8m6WpbdbwGpc#OBC`medtG#6W4t0GZ=3yOQv*#ZcyTCqp$ zW_cEVL2x@pX1=f?f;N3luSo+{5f;n!bAO{3VYds%2%!XWH_;Uqz*Cn%~#N4)%FSO5MCUNvRzZ~KPF zo;-fkG05PHbN9Px?ivP|p(N=Gw33+hqc(EX%$ttUipa{ySYpluifYUtLUlKDz0f{nU0$6PamBsEzc{EdRHvFWON9F0x z|HAEw`qEfdC0M7Yp@_p&2%GG3$(pflBSg59Q0P^y_&H5=5Xh+i-}j-mc{|k9U@UYk z5?mY*BZCa;mPHyn9Z9++*b)V*(oy^{y|6~)A<5Qi3W1@1FyJtWLe*RAn8Y*oRp=D* zX*r51GOsFgY)hRZ?|5>Wdq#ca^xj_!06@Tyg`gqcXih#e2V+B@a*X-@lX*~&4aybP zUG)!zvS)0^;);k(zX*w)4`)h9fBl#K=gX$X--Q>P`@PTnGH5^&x2Ps+rwrmHATQO= ze1KZXPJ8Zr+Vu~ckXn)#Ufa*;Y_Bwe*{qq`%S7~DPk+qx0NaDse)d_v$Fv+hdbV+? z+Y;nM38H#zlPl@rIBb+*^C~MVFj3zK9{49Ojc_`42XF3Tqd=N+$RiHrd5(Z#ys48L zK@lC}agZ5wl#qF}U_cw$^MYT{#luea-f#}!R3+cG1r@}GeZ^}3<~=PWO;Cwzhgz|~ zPx4R$C#7p(s5kk%Pc;$|nWX*$XGVZeM5 zNMaZSGLGtrRS%{Gvi9N>ffGYeCPJjP>c*z~hYv7MRvS;VVoeNJ9!Q@=1lHGR6&hJK z8tbtpqZ=SWp+v>NQmi#j^Y*-S+*O}r;$IPJ!sJzlpP7|NBVj-w#ZK84>7)m4FfS&N zZFVK>!q&gM>%AX&(JNj*9THFd+DG2!Znp(RLeCIDm0Jm~T1MZ|Z86W5hrfbKEFfh< zIa2_T=*NyOjI^XY%joABB@K)Lo~k5}J6&?&-+l5Urj32k%U}EUcfaq*u@khg77hF_ zF)htH%Cd8x@?Fk0K0HjOf1%4Fo8ir@* zQC{Afv@F>;VPTp&XQnsgyCuBk(|O@xp?INJD*KL{Ie-VaSj5n5a~L)EW2SKlzoZUm zgnA!PSq*g2mwcr8*oQi~U3{UEyho{7^9fx4fEdz4=P?qb~D(up@S0$5scPO6Fq~OzvMO--f;a5uY2>mh9NMF0ft^da#ZfllYfc%jAGbm zP*_A-4}wh&m+(Oi0)fdlA|d8yJoQmu_Z1JO+4bBP|H-p{`*}x>o;Z5eIsT&Ytl+?Q z%hj|EH@;KDGO6Oe_LkdnK7x=j6!+b_RkelYMhHw^kjn-}E6_m9QZd6T;ti~0ERH6u z1=2(pRs|NfKpadREz}6%=|TbTbaDhSWzEGYOgayU#-z?9Zz^Eqv?kD9;9JG@q?wtV zNi(T1xsB`!oGXPFPBAx_*D8OR{zTg~$tOr$$y9%q_}QH7)y4A9TMv z|C4W@tmyC8FaG*-i0H^!XT#hNw2qA*NWi3vj$vLC9DU$P%1xY3U^byJqCKbJ}|ls&FOFbrc!oykP(`}9PAdScLepk4x!BHSY$RlU+@66+EGQptyt zg>tqA=oZm2x$ziJpaAJ}!SJcI6#&YW-j!e|bAd4vB8|A*fQ=F)&AK7?%rqr;s#$_8 zdqT0)KJ4ffSX{8mB#gbOF30YnNey*SmE8V>$}#T!GmtAbk?9W>pI%au`HBL;>R||| znOW%Nbe!pmzu56cT-28de-SN*ay-AUOt=}4gO(Ai7eM~?3VwPX-CP-%BZ}(GBSMYi;)zEvGkMkCxdeuK#D13=~ zg-GNeEHlaNkC{B8Jb{TaBSMT4C9zF8JFMH^QqA$74t^UgoKK0Avtnn?D@TyWk3%nzFF`^)c7ZmsMWn^aMOBi^#UyK8wA7doaY@0)4J@EBN zqj2^ipG*D;*=uUpA0MU;Q$8hIW^fwLnSACD=`Bi232p8=IEC;t%f=zzY7?SFL%?pu zywx{_gS1qFLk|!vmj^>|!!`HSPHSH1Ic?gQe)7eRoy%MJ48<_ToJ3@vbwKaQ2`sDb z6;99@VvBPY+84rh{JMyqa)rtd8gNRCw1+(KZktv3?1$2_De3W6Sw@SHhs8qE&30!r zUPBiMfr}c$c#RUjatk~RUP^m7_z(uhOLqXV;DFp@9TuNo|J<=`-KgMQ<~;vHb)a{0t)#XdK>5h!?2_*#^S2!Qr%*iZBAxg-kp#>QwY6E zLNSSFgvzdQ@LhTTrP8gjD(GylVIs27c5;=+JKu!68Cz@{M4@Y<`=@)14oLZm+x#N&ssJRH_sF@f8cr1(S{TRHFC<}Bj-HW5u zOr*=%BQPh0f8D z4KrLMwJt0n?=lPO5DRNH45B%R>`_+$I_2}Yt z``cdlKc4q0BrKFxn7oW-@m2l~4$_gHB)S;2J=#M^ zQfzHhngX2aYF$AU5h`H6OaG!|4`p%7Wv5i8Vrm+P`0OwQVI)D8(fY}MH=9}5B9$p7 z$C1luhqggHl*4v(E=7?PMZ5L}|I3KvWKj{W(fg84glOq;X6f=%zCE7BIam5D(F4EDGCArKRM`O}X1P^A5 z@RjK36w9d(9FH?;a!qJ4|2%_mHFM3Tj6Uyvcm0+pJ(hO6?sxAy-ul9GU-qiMuqa`* zB%$4c3W_cGuW*t{81bpWebD!_p_Jq@XR39)*;|$${HIU)#wR>v$EMxt{BvLPhPQn9 zV^=E&7iMVC#rR>b;%9igbt9qq~UK$uSgN))ueOiLLay-y(gk>T#4IE z?rBM?e7$<+4M$pWa*c0HqNL{?7xho#4v|ZI8xS{+(hiQZ+7@GOt*!;mBSzEvJ=!qs zH=f=}+gG{3NLDT5mw8UN@MYi^K*uZpsP?e6(5dEjM~F5#jV6XhXJ6L*7}(#{kvI4{ zy1U;M$qcZ#%L+6uomhmz2JK@JgE$b(xDdguw+wz1yChg>`6hX1#^NAX(|QY#sn9)O zs$0Eq+v0dT#g?Erl5hYRCompH$Yq^%GKw>!=%JwAW7RY)osb``N|nvx22DXGV)~x% zc+#D3|5>#2^*Q&t!@cf$+ZVp_&khb6<`3$D2yC=g86SsFRHmeI3&vTvHbQNq#Z30- zUM8aB$Bz7`?|<4?Kkk9Mw~L6*IeGlWfBY5`SPPM@lTpW{n8IZOA|NaEAUZ;XFpP`h z_Uv+vfnui^S8zEeB)|u_>9J|aKM7*QeKJ-CLK(EL!PoqU?=0~iF4^xtXiI7_}XRdEFe1AdpKH!*2eiQbuAEgvf-cka)39= zstPK;f_cMiv+iOX>*v5sP-nGFnr1w-&-*t;u6b?5EN7@=*Ed<` zbFuj{)Iq!r#1soEpm3-s+~nDJe1(#vNqw|pb=>yW7d+zg?@NcgzT}bj`=$T*jPuSt zG3IK+qXrE`eU#lihQ;H(`~~kt=M7b&RV*!5hE3BaGK-vl?ulRc|Gw=@9`V_SZPz0n z^0^nCf0m7MWyQs}re6A7VC>53B}TYCj6{K-GY&AQN>m{H(&97*lCoc~mJA}sgiaqD zCLBDd21sn93x3=2FW5)rU)(S8nG}9KTM2jEOmF_Hu$DUhZ4lsU}%^3ddkzm zAK@Mz7dc*d*BeB@cSjTi^464}S~^ zl{XwfT1}1BG)|IHsM^1|5W1U|)e^zUEzCFEaNX|NE-<$hz^LMVGdS6OCgZ`zDBSp(r($giNM2Q};zK7+^->LY+nm{vlh5Y=Rm>7aJg z=!B*jpP7Os!&576Mh-{x(oEFI4G;B6!vvNNS8HJSQLf&MuH+*Jy%Tw}HLCJuTSr5W zPJ9}=gDvIZUIBG}i5$ZEEN@NU%{TWhyyNGPn;I!tZe_{8dN@(}3=FU0YsZ=c9}32>A`cBn8mWsHSCS zBGgETrfgEBB=(#1CKPbsaGw?jBo7}90>G9K3U;l%bH{XLAddF%ZgEEU)F<7E2 z_g1dC?9L(_X21X^Lcz5`9{$fj$!va2>NvJ*_E0t?o@C3O02-9Fco#w;?hweZ$&T&* zU$RVrB%7(8aL&f+Q1h80J^3wgPaw;Dw7bU|tk8B|*KKCWnO}Ps-QjbL+b5we9>i4* zzYP?bD!XIT=Jf&I815)Z5Xubi3M|%;T*r~*6ove;eii&u3t}%a2L}cl&kZ_GujakZ z(k)Q6k`d?WfQGndSDNax|D_5e1k>CHgF*u)dy(Apu5{ZA0B>l4q(?ks4Puw8X$;yM zcovQTC27M|nKbNOk+1&Jhd%BRhnp2E*TVeJ&%4JXF1z=e|KhzL{n*v3gv?_du|k4K zZpzdV6a!$M^{AYt@3YgZ7aG3ntA$>46+f`z^+TS zz1v&%QeKLH0W`T>$RrzxwI+#Hb5lK*Rm|GDS&11x=KZO)lbk2JQ5rPoF@r;mG9E`2 zJQ|!bQtel!ANVIvyYT#TwwJW+y6vsc|Ar?#*iW!{7cP z(xQ!9YbnzQ)zLW5&wtD02Uu)jv@xYAy*hy${eY8&plI7Yo>fk)i17Xi8hdF9w@=b6 zmRPcLj|7=LmhU79EIJr)D$c+4tQ z#)%+sYvw6~KI$riuvrf?g@voI68LGOn}|e?9XoPle}2BfX*)Lq2=R1 zF9NF~Y`cm+bti?tgeaNP$`D8g@e@{k2@(6jYO!dd*t??V@b%8-W$AUe=z??p+mHOi zOYd~M!?Wt9>*`Nl`-{K*ivRvUUh&b(uc`*_Olu4xjTcZUTnHi;Uv%!%pZM@^e&WN= zIs5ocTlsgr=L1jwu7CCMPkidcdA9~1v{ZQzx|x56?srLwW2(0$a!Q6>vX2_|=;#>I z-R(yZHAw=)n4~qfq+NwlY?!Re<{PK(l*7eYX$|KblofYJ|fm!PAlLy11H7 zb$fH{U5Uo4G_upS?WyPiaAf-e_RX!DA$e1PZxK)m8ONZ$OIl*9)h|(f<3c55 zMh7__7=pMux+c$^whPq;J;}tOe$sXU?!u4G}5W3kjV(a_X1= z%lF^qPM6TlaJ}S@-}1XJc-`Au4*Ob@7 zmx;sD7d3z*ur<5WVWg3ro2yvpI4K8~nWb^|AgeEVgGhX>ZEWJyh1ep|3$!XF+-9RJ zaPbozR2-Yn1}5P5M%|+e+u^n@*j%)Ue`&7&w`31TFM*&f69AzfOFZ=ZAd3d@!wYEx zrW`;RAfT%WMO(EoKuieBK-~Ay^DR_wDt!UvzXccFO3u{5K7X+NQ05gd_jo@T< zht=j2&Ju8F8y^@Cg=VN{`o(ApR>brCu%6gH6`*MJ5daMsad6um-ENApnPAHjSOGR* zFP8BU>M2kIkP)wK!9RY zQSr1IB!pqSn3sErYIyglT@L-_9HqjI`|7T{;PL=xU0jqcc!dO!D7$e{nFb!@(b?$1)qDj%N}sobIu@=bMuABch)%<@t*sH zeTdu7d}gwd)jzSwuWg3f_ zJLdl2U`W&8BXJB9^EQTb3Dwd(a?xR$k0Sp7f(6l9-I(B#yas=r+ zXsC&m>9>TbWZ8H7MhwSTH&XE%IjY~bnUUChi@Pl)l7p{PYrCzTJbL4=+?@F5 z*A-WO^6l^X&^!M6!*6@%2jBhPkACdRtBLu_tFC$P`!6S=J6v+n`RAS>;#-}6_MLBk z(LL{aySv`;)_1@3HaG2*-t@{g-^JPuMg4HD2`k6UCfF+4q-ir3x87;3Raa4q!%UI~ z#%J%vbW@2Pt8J7YbbbmSpxHp0qnbu;1=-|AvVa7{x(*!Q)sTex#)Z|^V>oRV{ab>5 z-emQ9)4;`q6E==;CeoT6H6NW8Vyrbkth;%~fFqSche#I_VF;L8DA~P}bo*f! zq771^crd4bLi`e;=pQO<39>imro9mSh=LdZLg3}{`^i0*dAlTCsW~Y1(O5Kx6Vs}< zq-$U34M>y4dc3<~Bg_-voOc32!#^o4O+C%#vteEYM7&Go7%^!3k=rMWzfjpr5?+Gq z5xL6Q4V(<-mtX~%C2OwafS|_}Ynr;G$2YHL>h+X(5*5uhUm=uuS9hERJIy9=lCuTe z43qFwUQFb9OP2IvD65`1C4}46RnoHvzS;84$eMy^V)x($=AEy^MR*-*T1~{ zicc(idneAln3p|~L8K7~J4ck{{E_Ggb^732upLEQ5vM_E+^cP8K{74IZ-3klq}M_Z z?DXwf!slbwQn=V~f?uRXNVe)wLcFlcJjOi=2?n?k0~{GusD+_P;c!jrd(7C`!$ysS z9pZc?L(CLP6L5sOKr^zoAf}Sa=hdn_CPR5|2JCkMey(vbQP2zdVK5zXVMZXyH*qq` zbf7}AM6Ds;YH*HEY1aBdr6Z=j3-55>n#ftQSVgA$aJX*9sDv4-b72!`8aw+lq{qq> zE)%O>xMn*Sq!QJMXb0;64m;$=B67C5q*Rat9;Z7tFA(klFTtMzdLX;FwMfOE>dDZI z?crXs($} zBmZCkw>u)tC-@|#&!#s{9BO-SxRIaz{1-p^3m!;7P$WKC9nF|Kl;-j|HLQndgn`aT)eNyclnijd;2HPy?EK%r-FPwY~6SV znGH0L8RmoPCjt z^J{(YvMDG}jqus4x$huYI4pbPA2;nvuu}`KvII|2&WP}L3R^0@o1llhAA?2A1SI4i zd@MvuG5YMiA!~ppD2z+LKzu}=EXzpguap_49P33h^DE#mqYr_w|P_dDYK8>v#VAZSN!^5jlC{tS5ZgBcJ-jFT3ldx8LyAyWaDGr+?@7 zU4F$Umc9Lx=UvRp9;GosgW?;H2mejED+C%oLQprOxj zIzikZcJUX;m#n2h3mFt_c$$@4(B;>LThWG78nkw+KMxn8fF2NBl3t!%H(l^c0l$@= z-KFEVU9$ag9ZTX<)uwoc?Tm;RGs&dh(Ll&PQ!bb#Xt6S@$0%*xRDcIM$LILLq%KAx z0Jfq=VaQe4W)l(?JZX({+-H%gkEeQb69?*%V=^)LPAb6)+w-fVPT zjvPC&fAsjN>ppqo4cA?Ir%RskEl+&Hmp|GLyuBr^gVuikc`yH&U;3Z#dd~-XN9-Rx z>*!hM+<3#ar>?t3qoHB{rO<_FH zd}U9+iPOgtxKXcuzUMDI zcAs_eQ=jx@Px`9IoOiCq&b;eAA9(sRzwh!Zu3U~BIdSeq3HgFhvq3ts{7l>EaUZIf zM63rZ}7Z+Ga2z<{V@b%=1}W)LPVl)fUjN=;_*gSeHRl$zrs2;w&zFI{!j0o*=>@ zp25)NDsXC%UPHNkrT zm<-qjhe1)7Y?3-Lb$nExArT&93le|yYGzDBZ(tdMm~gl|>LZ9_qh10_6H?MJryTRw zEc($kGB`iVDVQU~Vma7G!K}0Ec8$j-#_YW2{m-bf6*R&V(Mia_ z7GUmZ4$&@_JZ5q5v?C~b9^x6-%u>roBKL2D+@d1QsBj#r27`CU`nno{;k*mMPN_w8 zda5uNo$#x&n>TIuDXavA`+UM zc1sFL);eJJct{)oSEee7NVm^UX7kXdcF^d?tFO7{8cVPoId;~O<7e}--}4$;2Vzg! zjW=9-Tb|Q4f32&;G}MK{v(q_y5Tcz3h))@8#?tIdbIK$s@;3FfUVziCgc? z?Zz8VUH8dT*Iy&jjvqUE{q;AD$cLs8Pe;St>?@ywLNCTzl5T!A8^7lN^zSWjQO91;No*UUm}2a0uOB>n%Jdz+qZlHELvyyuyjqa(|*tiVp>57;q~INKNqyv!=QZ1NMb z&oA=Qn`B|hKxDwMBO5T_IEIA4aR4u}3 zySutRSS(&7i&eF-_;7512@&Y9wGty>Oso4Q!>HB}Sr%cAZ?taNErHa^lGBryp*w-o zGE_i@<(6sQAIAg&^0b2=y18U{TfIyZ|J1b@C6FT>wg81iXv#J_;4gduKd zaawl%xnyc7-7k}+9G!df`nF~-I}dhN4}A4VP}KE&(Sb4_rx1#^LqLz;_*y;@0SI51 zmVpgH87oB1P?u-OPz9b&4~1W!NotT>A|ECm6~q`bLA_Hn`=SgN$g%vhv){yk%!Z%3 zzWKGk^q=ipJ$klEA3v|tT+!+??rP@Q!Twt7Gm{kbq~53tT(weE$c~{hIx<2`;H_oj zm|xj?h18(tAYhYfbotE-`(((6tFCjujXj9syD#qw(+ORZWsp=RPbE=hdeII_6kjLP zs4u2gzWeT* zzx|(o>4s!~=kNag-}_hp=9hlu&wu~(Kl}0R&y>Sz!ZYW3&rX$-Z$7^L?q|RJ-S>v|mj1 z`GlF9m#%7_MJoPu7ZbL~o2j5XYt&ZInIZ0!3I#oykJB=VSYFM9?rI-O#=i*sZy_HL z5Ucv+s@u7+i$~bcl9Gr=R<#Zlxu%a$4Zm2?=25Po^N1ZuU3`C?>q9!-Qnw)udQael zA4q1pN!n7*SLl;X7?~=N1Gi!ka73b?jcYrMj4OcVc!TiRhKM zSRt9#ph(j{d_-0Q0~m8SWnxVXLWz9 zb;857K?jMmn_bYb2h(f^pAgU?uFlK;(jes6sPeUy#fxt4|Mvg%yZ_yP``>&?6zC7f z@tgnPcV4e=KE9i`H#>RTmRX%KzutRu%lKV5O{NbrBrLUdlI>HSvTkm(L~byWA?|vG zcUnM#NB+Zg`0mdOEMg*%tiW6c0EN!Y(zW8#R?Jf@Ksz^W30?cN2v3Qz2rQ>h34Al$ z@Jha1aS<>t5RB(gcX)f!)D!%~P2{7LXRU46*Sj9l@d@gfC?(34eCF;GRr;+%K{-lY zEcqhz)ZwmNzO@tFZqNZhg`MXA`zxaNWKcX7hoTkZ^uv;a*t3Bq~y zhX~>uo(XD_TOTW0k)m4atfY~D0&UiU4yA=@T$C1>3?G$b_@kaFh_AT2PaQr(wmlI$P2k65Ka?{U|bs<&; z2Ou$c?j*h4PWj~*UI43GDQ2lrgqapIcof?yK>>>j13tPnnxTDZlkfnk3QTtml|?Mo zRdxQ!fQB*|3W?UE6s+;T^>+L}{5QFKBG}e{7j)m-f1hRJkI79@rje={Wc0RFV|9TR zj8^Ef_He!|v|4H+#WX1nyew6TVZ&Gy@GaMZGfPcHzpHi7TdoT&n(f+&sYgsdiU-?C0(onf~TK{Gb1; z|MI_(&tCt--~UG<`tA2W&vJ0qiJTljbRQ8JU<(p*df2<-Wb8wT)+}998IS0XoNCL? zg3RrJz|dHa8#8o=9dh^~v;l7?N*!VUE!>D;81NzHUSBxnw^)DenYX}1{hzaXr%h+a zI#Eea>+cj;uTylJ9WfcW01(XK$&d=Z~$+R|l9Q)vOSY5c5)IJ{Xd-L9u6Q2J+9?}$ zktkS0!X!0+Vu2Oqk~@c`7fAs;EcWG#t(hz9fp9T#igQe&cM!gX+|pzUzg-}jn1qYlz5SuELt7#4;Edrj zIeg`&a`U~;227RBikbSveU0>5^0D9jSO3TV`TPIZU;WGfp}c?n{vZ6||MGkP`s2HE zp6{#!ELK@EBv>N&J?B#W-*gG2+tD{?u-q>9B%C_&LkV;0^G;{kJArU^03xTvmaujt z9xsXR|Iv({;ASoh=1$Z*z-EdhN5YC{D2_2$9aN_M04A5Z-mEi9z#RQl)Z|cLsHNhV zoI3@k?Ko&z$>YI;@OpLt~c(S-G>!QiYo!{IR}?NSy$kIMpI|0*K6)j6o% zp-`qC*8L(i^OP~C)ba@am!2xtscG7Baq$+8Sq(g&{4MadV zvHIqA9sq;pnEL^=pjUAjM357)j8d)ht2xX+Ta6C!VTT5{)Eb^g&D>s5SAnlbRql<+ zMy?3jJz%Lx$Qk$uy0ajqc@ZZ&n;!(+>W*JUBL|J35-xkml@G@WT)f4I@=|A-$iciT z!A3`ASQpKI_T9(d{#&03d-*$m_qTrUU;Ue({rp!~c;~r)5Dd))Kwgkm+0-fErnmZ@ z63v{0RU$amg4VM_SDH(M^#qhvi|=xkf~=XXbAUJ+m@jv;73Z=}^>G&{x;h;a4>t$H zaKbQ>tU>rP{jZ|*@H(ykfkJ%hIgW=Sr{1ha^V}5qi~8lV+tO_FT+gNj`U%fc`g4)o zsxAKUoXJAqtLkr)nZ}MMa#s0Q`PU~xizxD8ltZp87F6H;YTd6Z#!hCRmIUrVB~c^y zGS@~ljMKD8o?p1|*^(zh84BiEHy(MlwiC<1$JdIt@ zjUsVq{lN+B;|q$((rV*VbWc0G>SBOXeC9r6Er$2B6wVJ{@Ohd-0^3~LQj#^rya`m> zC#+L{BU-Z!BeG~1dp%HEAy*Q!Mrw>!1p#!YxK#3;BLqh)D8-?;nj8jV&RUrw=FY1_ zIz#$Q4>h)U8NAgow`!G_BDZ6)nVEE*37H2(Q0hoTn2_w|gEc+ds1n3fQQ-Co(dO)< zZcwVo|M)xq@`vMc-;L?|;W&QtAN-To>*JemzYC^4+~vI7(-3H*Cn-u@iDA5^3u_611)1uUuwgwX z)M&Cz)h;Q_4yxDuL8(yszE=R50{duzU}XFQ%(CJA?e)#C{l?#X>jP}&Kzuix^rBO) zFRR^DiVQ*mVPKfDj+2UfEN}+nMBV8XY6t&cb8|-xSfik#)KNvKu73Oit>XrZiM}#}F>a8z+fpI|vfQ_Hgs4U{Ik7|%Xk@MA zlUUDi!e0bL3L%-e`FQ5M3XQ*6A?TaQ4-zl{q92+X5*^oz zG+-o8XQ$Ua?{8%4)quK1I}n_80ag6B#=}c-SkehlzF|O&AhQ3`OBQOE%q5nQ z-_6=jUmuMPo?l}xoC8nf3-aA(4s7IHP)rL9lvsgMkOHvCt18xn{NysK=Q~ZyJ_i#W zB?~*GAh$Jv*{T7`mcgTvGs-on)#ygm0Qw&`7?fVhMCZ;yR-tQA(Tap(qZ zC;7Di$5NV+edmowJ(`M6=}?eLAwdugbpY21P6-(ORPfC*gc!bc?t-q3IW<-J-T&>q zu$SNegFpP2zxS^{zWtfJG$I${ICUkZXy`;X?a}y%?eq(;2&R!~7$Cn|wMfdRiA!F= zn3-GqmbqtAR+xu7Lc#nqF#lp!rNqTJ$_4hhAF;KFo3DN9IK4Zp=%P4##K!8jDjO@nz5(Wz!XY|7Z8W)ZGY*F%=;qE{186%%A&nV=OaT0r zv`;HfOiT_xp~u!fEotZZcAakR#ax`Mu$S{QIOizLyxclD@PisM3Mym-K@}z!t$9d> zLxB&Q4BOb6A2^-A$dMaT10MQ2*Ao2ugC*CUD6h!J>UCpec&bvzC~nlxGAh4`nQbr^ zMd@oD8mC~ms z0F#v4Oa7Tq@?BF<9H}6jJrga{8Ei=ID#&)o2sX`3qt{79OdlDR_KCRd*r*6f+#+4{ zi}sYG>c}c0#1XMU2bc+NA@Xn(Tk~20Ybt}AokpdB1^7b6Q*14?5KRX!gtuxE*mKD3 zZ^T_+9=4nA6`+c*N=m~Nx-P4avWcQ)qX)kE_Iv&2&W~qdc}@uvjHK`HWV)rCeOIA$a5{9JmQij_uYMM4p6&R{~PPAhZ=-;)&thhKvAN zQZx-gSvze8;!ySLh@yQ)Xm1gBa>}wiRw>|+({oaEc|o*|eVi^O;9AD66Ue(Mlm<_A z#3;5hrXF3m_%NM4ZBbtWTO?=IP^x%HtH;(%cjZnPCWb>-P@*n%4Flud732Q-lX#(! zh!Q4*=g&Cfi4=RfePCDVoD}m;DG?1D_PFwnr~CD3@mld>c-3^ZabB3vDnA>tSHPan zZvmX7KvW6-?vBWUuB|da)=sFvFunMg%R@ujI>CvB$mDl{9}Q1>MY`x9Hf^=Gh`+L7x?Y%P0mO4PI(sH0kxzn}l=Uu>zFdoc1_BxQ3f=QvwrxYa5$UOcq= z1ln|J42B4r+#Zt6Aiclx6Jpm-(0>5$VrgL>(R03Xm^u>aWJNX}#}9%F_w0vdY{m|s z=kLR(#s``@ubJeh#nl9aIMMSF7sifq- zM3D2}?ElP;sutf{SNCMZq8@hhC=L5&;LTE<_oFfy>_RbdPimVmMB_t!394#TVF6<7 zbOv3h_=$^n;BYP47^94|;UXd;A42mQBeh2cLOlgA9E@FXF$qLo7(P!QQi~2k~sxCm(W3GE&n)= zJNJoBm=;RULosbk#CN)|LIJT$T{8O<=?mIxWEy=JlWU95R9|i*YS2w$=8e6azzaZa58<|uDUB)MdC`tx zX}SVOr8gz*(&l0b7<;)~J&Ln$4TtUv^~pLf?uc>LMo^>=1vls9B#;l58Jr6MmL(Uv zl=-GDrvZ7$;h`b!0u{+<&$FX714O{!vsK}UdaWjmbE zXd)zh(JZowi=AE};xso;uxV{Xlyj+3$;b6wME%dLZx!klm`Fda^@Z z`naCCSf@{4YoTcIuAE;qNU%}EBpflfzBC4hj;iTo zcGWJ>z%B6z2PS?bTLw2N5S60gOY${YZ-s28B$x@ zZuwz|)#F&v4isCQeiL6mi>{dC@Ix~OCuiW_xibrZpdCM;8&o3AI@YfQxdd`#JZFM; z$imCW9n?^9nYMxZzKi}~DKXFh*5|HU7x`5KRf+@DZ^J0Wn&YJDgNw#g8D3pZ#C#pH zrZcAoYfY;l)SV!?QsIS}=Txaefh%v#f2Z0zW@8v=8kZ#FL!H&A^keM6>qD-;vUVdA zPwD%h7=b41*Mr(SD}{(b-+HUt=_#doCsGb1m9|~GuHbS1*hmqps3kkJyDUl4QaMwF z5fz*erp7S%>F~EsX$yJA)unYC;X?FBWLUU|^e~eQV z953&dO0BmfD6YOzJAIoQ$r~mQL0=W$7_jI+$@oL`6A$@}Ro=L7+4*Dbh#jZflI4^| zRpgto4_}+_(V7{!6HXSI`Ch80H_mtjq1OYe(t0900ELzT*#?3?5s9?DFch=7d88V#;L`qt|L(;<12Fj`l7wC^1|dhU7c%_6gZ6!fG}6A9|y<#QD9^uT>1N^2LfyhT(;*XAHQgvltqqbL$k64af|93EHHZ|vI@|-ro$xqHcj}JE zOr!OJvzVFL4;kZP z6aXrTd=7|f*F$Wv3H>wvm?+K`n!#~JB$v9!* z*5P#E*-KC5it#V>)Yjo)!8-MMHMf3T=ty7jqQO@?`Lh)mzJq0}=5&eP0o#K;0Ms#6 zjF(yIZPC0SdIMV#HV6~f3&3tHNhyMnaXa4|4af2=Ix>f5vC?QB83;nT42bZ7u;8X0 zYp`94aUVm;rxyGgXbiJ57zUJfjHM2&xthQ1I!~REiwmMv9Qote7d!+lP0axXjR{bn z7z+knT_ulpwcDhgh5xjWJuKjbIRI7V*$-qr4R#%aBzVIKFxu3bhn2Z-w^*|UKF)Ki z%Uq>LGlOe!`{A}w%onbNx$G_G&QKkZR=w#m>6~!Vo{TC(%RQP)jLICdEj-3poXUqO z3b~P-vbzSq1M!%!QMh7BUJO6yM=(SuXXW7JfW))C5NE8waVG&}yz?%xvBJEJ$~rMD zjvMh#0E?WCrE{60f&^uG4fvPZ(MMwjD;50e7e%Ypo~+96qlwI#2=FghPKG2>3KN%v zGW@ol-kQ~q>;M}581aHrxqGvb>QY88=$j#v3u#j^bN60KRt>Klm#*YD1KsVWo?Tac ziJWI5rF`)qIT}604CrDGWzAykMsd^Ps6KM@j`C>kXA(MhjSP^g)-1|uDosoImX z5kjj<*Cz`keS=V%ej5UH%p-zQgKkZ0Kte8C+bk%{O>)3C93hc5W?t4{yJ8-?wdZ(#4@HL%>7 z)6fp$7SnxJV8B@YS{rZo@Az%6NwMBg3)kUseV|wXnYqp8$dOwY{&^k1YOJNva&o80 zm5CX|1rq3*h@*MO4bjcl&n#m|2bu5P|6bQ3+?Mk-~_nAeDXz{ya zE)Q2;;^a4ud?#{&_fpJ*StO1)FcS~@JYzdWaLzC6KQF?Mz0Hnku`Q`V@N*C)gJNos zX8q3Yb3>uJLlO$ee-I^1aY9kOLc+>x(>3D|{07Y=qKfn0N*;-b>$y)uW;py9`i(Cz zh+Yb)oqM3CR|Uvf!}QZq%lfC%hO3uNG6sgAFD${cD_#+JG?1=Q+g{kf(6lr-VJDz! zcBMP*!6(xTANw0<+rXyPhaqFg{|26(`dNIS?f)y~F;#mVWut4Zh(ZZUH|shhcU5m? zZ?0upmhU-ty^@a`Ck?5C@0qn_2Ssz@1_-U;xtcQ!!dDz8zt3_=tO4c?P{WpKG?un4 zFl5_RLs*xWqOhyO*`77@Vm)UF9_p1OBf$6B8%OE9+K;vlw*umui;UNbipiCEv5wHW zF?{lCAvm&}Cig=QY;su=#YFgQEbLOn5#d0XHuS26h7G6gT%>qL1lC2#?4#~%%<|VZ zD`~P>w&g@Wh>JN+P;}%3&!?QhpX)et^BIDeJ|wbCmKAgOu2Y9+3y0^qeJ;W)bcD}0 z3F4-$^RB^o8KqzwcC;RhYs0cEXY9~6lU(k@i@P9ibWtju$r~;X&&HuF$DBFZ0iRHN z3wf>lTU$ip#XTY3(sNk@EN=jrf=XQ-w8~}V&yUg>2LEn5iM&+W20+|nV3fr(ND2E- z(*%}b9$d->I9t6_t*Ck~sDqkx+e3WeG5}yzZ^F2^lI;{~xZhOW~cCD=n^n%=i>nvFlqN%6;els1jWZLZ)EOAJug{?=5dLLFAn-(fK zY`oQn=Mcxr^%k9{G3UH1HiXYUa&6zCLR^OD@+R+>5SNCo@*K=G+vXC-EANr1=Z#|| zThZ|~s0g6hq;+8)5h}J?niJuxx$4+CI(NEiSqv|i6*Toi;FwO!WzwCqed*CW{7j++ zW_aMOBu^K>k51z=n&u6Dn_4De;Mk;A#re!z{!dfCuBpj(_;qyHPV~?%iF= zd`jBPYTD~|W^xB5?_PTOlgTqGC?TsHAku&nDehnESu;R+)TJXpDpUmk0A_Bg8toC;RjXtZSn(ulMzQ!TfyQGAOY7jW1*HcMk+ex6Bn<&+ z>>To!HTq5(WKcP>^B{SRok=0T6189g+bCnd7=PRO2GwVb^DKgW-K{w~hut*n((Xwk zcb#z!GkRwvOD=8*Lot^(L`M^#Y%HhE)vUi{5^ynK*C7kV-c@f6!0Jk z1c`X52GTz54lp!D@8c>SXNKHj0@iA*&F%K-dF?OeaG9a`T}v0*MqtI+E)?`LkHlqy z_q;Fs=xQI68YTn z%Vx1hQSP{Od`rr%yAIN60{AlcW70|Zq}-~qN1+r)_UMWcAmUpD!I&+GB?>q;fTb|g zQWk|%MqESbv;)!jIJc!9jOE@rax8b9BcI5T;aBR0oy#<$XP9sZ7d~x>gPOqR19oai zlHPO=j$*<4DubQ`YlcKCnsB_0+U#!n=dHde3JpwMumEE3088c%LB^5L58L(jwd8q0 zK1(mzM7yGnvc-d72v7Z`dlgnsMW9h}Ij*i0@xYRD#A70?T5%{Y&*y7u zn7H?^O;lh*1=A6`e!RLG}geyOH*s#%pe4Q^%9?1n2r&-e-4WvusFBN)9JeP_s@ zvQ%M2sL1srDhlBfJ5y%o(8U+V&pS)>bVHivGGNbLO=ecRyma(vsW@HFxI0wUlj7@h zn!h!a5kg?Fp&JF1v5nJFKl4q~ZR<_z8N(}Q&z%nj$_5oDahQQb0lbHm8QGCLVB$sVIr?Qnf)bxI=R9kq%$5Qx^~d|o44y6bxPK_ zMKB5+4&Yvmx**eA3FQ{T(?)67F?OuLDI9R2SXf5#dL`)8KU%jRJ0-9#?DY&CG z2x}6$VrJ_Zt_J4tck|HyzbrghALxIAkIc2BW;R?Xms4Gw(5AAsVX?N*vUVOrC0-O`(maB?N zkjUsEnv4YYq({@>hy02^>Zojy@7e(i%w-b7qE0wT3^YPkZAWL+HV+%JjPuyuSW+7p zk6eO7?n?7;rHvN*;s#|sSqSg+PZZT?wz%v(;i%9IVy^ejTJJz#{0E}hg-^IRqJQ8B z>8Ml6_$=N?l_ZMfG!@ynnY7qm(B^!Kt@5*U@&Pv)Os>KUeB&KtDr(0MkQPG}O*W&G zR6HP@X25+uJ8OOU2cqS$1skP-eG zf5t%*Drh^;lmwPxiKLu_-j!N802HeaKGFEMA!s$~;v*`kYfY^>`Dd_)7WNxueMOQa zZiXP_*B0-T0B!AMk$Zs3a-F~^N==fysvmQWh8Eq_`stf)zG1stC-;nQy&l7-wtIn( z?#2~V;Q0kpU$)OKz0=ouPrfC!XZd#lv%YWB=p;sU*1-a^TUZE++sH-E&W96GwzK*XW|c6f$^G_;fg z>yKkQCsPUG!L2|@E67c)XGz~2$)(}}O8Kzjn}5;A*rpZx0i8aEVXKhYPlT;)-!*u> zidV3b+gQc0%)l%z-*9@XH%LbdVkZ2#Pt4-EB=-4t#W_z@KNq=2%y&+Dd1HKQ?R^hz zki|GfNoV*^LSBUNY;qCMs|rvuM&P#xOqIpDb5A^rA2){XeGrlk#&ktX+0^DEV{6cv2%#w0OT*g*$d6*e#qkY1u zO9GKdN%LnXCAD@93wL{|uTos?lI&j)$EPux3$t(>r&dV8dlHpBdsfj!ndFJyq#iLp z-NKK03$6$?6kMHHq9i*d;a)iaA$gJ18N=q8c;5s;NXu=0cGuGDK&Hh=M1Qx&M9yGs z5(2K7hj;SK8_i+k^Z{iSubnb{cy;1uWEGN>huMWP*+`M}467cJA|yC;C-d{^RGG0z z9R!lpfb{I`g$QbC0pE>H`h zou_S4%|Ln@4`PvU&jKg+Q;wOr$xEZ#*M><}S*!e%NhVFzJbZ`v+NZ^41)U%)OGW8l zf!T=>8JnG3{f0JR3eBN&_0aT6orK6_&MevLruVHES~*aq8I-3c!3Y7o;rdc}Z%pyC zMn|(ba`~y1=jJ-W65aXUN*+K@pEzH#D*|8k@?)gT>XfI39#E=e%U_3rQsE9hHW*oL zRa<q5ehfxqq;&TgNvscS>3cbNJM zFB^Z`Ti-POD8+q6kg&j4!a>!!Dh@3P=G_R@i-mSM0<>jTRR8>}waDvPU%)E1^4YK{ zwH>0bWe-GYsO@2maXkQ*cM*?f-9>pm4(vzUy^JD-DpiX6$xDa6>Zwdt>!YQoQs056 z;NJyvu(XQgBy^c^Xw}sPXk?dZUd7 z;8MlF^7Gmvy)I2Xqnd!yJ&@3=%Ap)x860HWMd{f(ep^f$_Bjs@PPoq_SrhZe$n2c0%op0TMf zeQ_8|>@OEm8~mZrnZz&m*D!zz>w?eE25+Z#S>ty&*b)x6LjMzSA^;>TcSwUV800YE zLD-kg`x${Sa8!`>FRtW4<)(F0B<&)9snM0tIslPqMD3tz9d+_%A1%JoI#$kN=DFck z&f?nc8VEB?7ZQve4#QAomIb-2ON;VT9T@aYZ#guaQ1HSDfT`#P$hr1{kJU_f>H9tY`(Sx` zUta+^Y(B3tc}^En*`@8Ez9MYk=EK|pG<~IhEVZa?il)a}|7{0nQis@i8j)2Cb=N?P z^;5Rf1H{1?>P5$C0JC8BMCE&DKeHt^dNb(1lXA-6`)2pz} zK>p3rlmrQ$l&rN*pShvy5G!ve%sgC~MF1o*+Qp1#M^djAAL2#X3i$>5b}Tgn<^%lS zrDSnvX}f96WX?sjtD)`&oy+0tdLHdAZo)^gghT z;nVmZ51`Jrk0#q^z$tr>V|hpFu}-hc{R6sw>80)0u0-oY?~Ut9JeGthB`34B_!11{ z5YdhHxmb&%OXYFQtBAA^a*;Z$mz70?P-n=Z+J+ubmtLrd9Co}g;AM&&<0gcePj+Rt z!WR$W61Rl+1D#^IvRh~)7?vzV?8uo;W4K_{VT#<2?lHrDpO~TiXtbg*95V{_GMff2 z_N%{0dPF_IyNSJOF?S8RuO+2Q-9&Qr{$vV`1`>c78RY|pfd5&04wODlu05Zj={0y6 zdQ~O0KM-VN#G_qihP(^)foPfvbBONkR<7hxDiBmRl5<7qUCBVqhHU4{l;xvExLqPx zM~UH{>3X%89bCqOVZh`^E4^rl(j6?(l6g)VRqs}3Ep3_9M27z}#Ub*NVcP!%j+$#M zd|+=wCX*M`rc5^DA-^9>nR>FdA{TK_<+|WXT|T2f2o@9!bOqWTr=g~k+b}EPp${l} z>R2;Q3Q$IU+{`<*@Cy#QA)Id_CK=tDMe~?kBmj&H94f9zSz(%yMGWF_w5S{=I1A{# znzdAsh#DBL8c2-rb1w?|jCtc6rGGJI#jY~7T85E&o`gUP!P>XJcW4>Uxn0?suTfPs zHBqr2B7e<_o}aMi6YjKXL|%1i=c~m+=h^9vXRgnxphl=@lWEaz)X~ zkgmQ8<1eM;#f|fAe6)Pi*veHnU-^v{FNxXMbeSTbx(23YFG$e^2T#UD##QDuMOc3)C>WO>!2g&*G3_L*H+GU?8zP~vDx ze4E?s2pQI)kCp5zUM}9oDo-8KK?GMFt!l$KATh0(OMF#PVIWZeVhlLMMDjvT?iG-R z)0CK&zrMZ5`3$Ykn9~zMe=J3}CJkuM=<^`Jy#QGI!_~DA4noR2Py#Bqd5RgDXtlqZ zWHGPmUOmgwarPrgnq)EVG#}<6RyMIQE|EjU(U+datH}XqVdSk65zWodysvrwk7(Dg zrV>U``KTdZ+u_+#hAMsq=94Q();`WUIt>7gBdsk)^7fPcvRKqgj=LJ4Acp(1U<|9D zg;`~}vQ8}1J=u|;1iqUtiYGH4-Ng7h-}dEjJ`4rCHK%qTD;=_rP7M5*O4y>^_(bQI zl&;YE4v6gX=Pg;E7XT2LhVFYGeq4 zj>>}<_0};*uBxx!iF}gw)XDZs z>#Lq5vMS6c0W-5TZ&6IAfV=u6*Y|=UPvLVA&aN>mv$b>)@wEefb4BSM(Xm~q>j#wa$C@(_|}od zCJPG4gQj_U9LounD3i6dq2I^0Qcz6v3cxC^9?I|QR+ti%!fuVwd^iT9#{OBXt+x_y z?cyEQ7b;0vB6K#zO6;d)dta+jfdLdy`|>Ixr9uKmBuq7(sd$w1P9GJKvfG@#mPqBG zQC;LXGjY>x)o@MKB)ls!6=_0+t#fG{sXPYUN0wG+M>0LhV`SB*JL-BC`+H_%%ZM@& zI6=@v6=OV0i$G70soF)gbV~c_wSv;XjE2V%lIN(al|_#k~Lq7?o?8W1xuqj3&0*PPR^aKuJa&-S}b{9F|GOj%N-V4X2xp(c5P+d z)>sOAUtmG^@7ze{p?JPi@88gfCAvGLGq^fWPsHn7@MCMZ|nIxaC^U|IfKGs{}RSHjFwrq_b@9mT@GI(~jxR_3a=BDC zx~HypmaS1v<{bX&2SMnRU(dpa49m$#Y*J~X@Lw(Qs)HUnj7C!593$7kerT0jA(^Ch=)jd>H6`og9XKvjyNMO9 zUN7y`{_pywR73MCJz0E>KlKC2C%S8ny_N=R;h8IaiyQ2EiScSEiXNznUNH96CjQra zo7xfIKlyg7NR$4#(mmU{HuO&I#thr`aaFQT;AS<6$i%c;J>XeGpG=SxD^#u|1GMNm zN3CCK%Ym|0`qY{jqO4oyXAbqiTv`%-MWSkVZQHVxX!PNz?!R5nQoSZiu~?KqqudB$ zG8;iJTVIjyCgoi_MT`<3cAP^xHPCt(fskCJbNQC~>RktZY;O;Q`k|@As(tL`HK`KU z@_{(0c3SgdkLyyYp;QfP@0lpTwRW@W0{5rJH%C6FSGmKrEb^>vHcDTd=hp)JTa=}J z%tfH+cHCmzlGRsPL%=osz2ct~vq^YyRxksB8uF6MscBWfol6NX=ca;jN0`UX?A{lW6&{zJ0vG0x#?sIM2Ng zy4lC^1}WTg<>8JE=jQo*5PTBe7$+d$QgJxBr4XZHlpAW_htc0J;ApQ49}gtz3kZ)VPb0e`udvtp{on2ZW(*uCpB_VRWiS-({rAXa3Knc8_4f~#nEN;^6x0r>_~g)4LU z!pNc$lQZaAn*>;^74v8Z^Zl|ds$rNF){KH?XWN=Yd-xSFJdzjyJ%;`VFa=D*WQHYe z0aThMFl4()bLp0c}WAMRF3ZBLnLHK3&#PXuUNdCHTU0U|e-rSIYTCufL1{x~LsEtdO z3>y;08Fd$uU0o$JPYoTB(>d-HQt?wPxJWxR=Kt_>OVQ|d{v4)dQTSGyqHvy3cKeGok+XJZy)X+lLPbUFbw*mL@8IK$piNEen?Ls# z{<=K52t2Dl@qq?Wk?*z?ZqXanyGux?)?L(nNkLf9mr6f1TbbaE`7Rt{y8V$)U538k zWKLw+$$_Cax%R+)1%B_!WsWPo%(o}Y25c-a)sux^_(rcXq+EC-T^$FJ%MY%AmIl`9 zttbayVllVZK;B$(c2jwARqgxsspkK=5D#$~ zJP4XxtMp)gG{@YiP}B?4rNplcH9-3bOPuVrV)&tplU_|m-a~Gi#7Y%bL!zeF`193! z#Tm1x{&9`X-WcZlQnp(#!VAk)=%~uMYmUX7F9v-p zw5gK?im_)Ku`(L@yS9VkMXglK(G!J=Hb}bI(1#}usm*i>Lg>LUM=EJ#y3H-Fgt|(F z2g60ORROTqMT#nrODE3&cv_s5RqR%N-vIlyonbR}E%H&SMsl1x$|f9NZS+ zEp5=yF_Y>P5TAg<c?gj@WW` zd%@o5(M=cuE9E0Y^H~_CTeB##VX$^j{vypBm|-fOGD4-Kasa0&lDPX5kUsSyVZ^c= zNEbAhWtelD3kEmRZkY}pY>H ztdf6QLnO#KuHt;&UX!&C3%Z#V%UuG>r7~_ZtiC*08~=oM)VeYjm9MpQb{z9Gf`Ldd zcto$6T-umsT-WJ6SjLO`xfEFDI09BCRq{01`dxbBCtO6&3YDhNT9b zR8)Qric-&K?&Yg=Gwk6@dzkO$)fs#p@wzzW7S7)Fv%pFs9t-&dLlyZbAi%ZgPrG~y zR-GC^AEwq*bYbqdoiMmORMr;bvZ^fZlu2H}4fQs8i1nrf=1pH|4vW#IA{v{WxeOw=Lu8TW zWGfDClpkqs@&K&CzJ^t7Dic9zx71IDL@DZ<;qj^oN8{qZ$J`2fNXpKiI!r*&1aYd)wD;jf&z2ueM@oOgu9Y=gl6Tl~tc}%{c%rcVJE)kGUp4pA zJHP$Fv`>()Ro`~6T2}q!osu;!kSHmIx0uOSpAGo5C(l_t4%~NPa!n6&kl>dR&=PuL zfJ^y)#eJ~23F%dokXc}9f8=?%%&R*@I2hK$m}`d0)j7MZB6KF+_$;CVTW`-mnkAf0 z5f+{-KD`~Q=$JcoP)G~_5cifIfP7(VdQXOqQuYZ0G?9XNqxL*d<*e8`2QN38ba$PH zc9YbO-8e%F5N&;Cm@^ONNjKaLoH91qmFYLfq2Y!P2WQ~$E)Bea<-Z2L2?)$2Nk zRHqedM!~&lwxu43<;{GkyB}CtZD|bhCrd0iPq#%_&5Yzz`(n-q`lz+*DvEI3PRNJ* z>b8C=3LZZ!9Ik~v8Pr@wg>Soc&cXO12BCnMN{-$%TIB9p>d4=vQ&A@cnX7H6%(_9S zMyq{fyG$eO7qhAXI$?IMhK{c}LFQ%zB%^hvCU|04m{f^;ebWtV=2WRr@%Dj;W9=~a zwE}4XA58+%*uM}BFC0t~fPx+UNq*LrVTS#&v>+ujd&wuDF9QUK5Abk$seA%v2?rG% zCO8xpd)jh<`Js0?(zSH!Vua`->IXAbJx+}2L*HUUWI)pkh9~E-3TW%zP<7uLYs-#@ zFnUkd1+r>!?xDyV$!=ga`6pI)oM)PtfVS>J?m(3)#}Q|fwQgHsf&e9}FYP-G2Zo8f z!cGKs!6^=+bW};PIg0$ezc$)U&o-YBk=s_MeS{L`b79a~R049rP_5c+)l$jOEIv^r zKPYHtQ?{-9N>Iq)`XYi7C6sJocH1NBuMGQ@!C;(H>(ia2)A|P3g@+GT_sT+ER zOCwe@&_~>YQaRvIPmBjC+1j9-+BC}X_b3k;+|csV*c3)#w;gMXD$wV=-A4<&6VPa< zPMZAwDpDfyt*X@Nz-A2LDx(cV4O9LXSDBc^_51@QHV$C9BtcdM&vVWX!m2Rzh!}k zFWSOJ@WirLXN`aJC5S^zYh{qI)pb?zvga61~ z%FOijLNFr+s7owUN7Ec&p3^D|W}y_QC;72+cpPh!-IDH<{A=N=JZ-OH8x=KDRmBeT zO~1WOuV5t&SCFXhA+3TBi}EWK&7rs+nck7mRC*L^{LG+DN50r^-|?{-M3x3DOCfXK zDdJc~a?4`zUbfht9Ne2GeyBGf+RD=jRYna|5>zi9!HDMS~aMODYfog|>9n7SqB=(fT z93rA{Ag!UaGAdad0<9$|Rg&an6L}HJVSHpdh0ZZi zwoqAN_v-r4DgF=i`b9`2i6m<*QOD`t7qjO-S09c8QQ=Sx{4+eB(|w2M=@O@`f@%PC zRn{w`6*^DB+nL@4u=Nx=AG9g0Sq5teX6NmX4QMW4r_?&f@o2xvn9-)8`DQ0(9$dF_ z#7au*ZwBO><$cS7a{~QLs9#R5U8;C!KIdyvvMqNMqWp(8;*myP#6wCXOGzl0A(pSm z8m&)@#rOS#j8}zY77#o?c-RR|QKTwhV1~4%HW(5q;R0*Nn^CMdtzv`EeIQK?nNcLl zb6P0OdM9zD8UKWfos=ZTsSn@)6tc!<{N{}XGnS_GtWPy}6(v*!m1JYdd5nq{cyT8FlLJ`4BGB?RhQ1FfOstDtews<#zSGqP$5 z=B#{%|MDV2!cqwH1BL|k0GKyI?*N=)eoG;9wrx6b#)aR>!pa|?uK+Q83sVuc3L6TB zXsOfdq~7hc;wzi%+QG&8^b&a2g<-y39ZzXFme9)eUpZG@<{)it*;7JbFduTS_llv2 z&~wM4=zdgkJh;W@ipDd|ZV)Wre)Fq;;jeXq-P!LQyvx4&8+&F_8KwfRJN4!&Y?g+> zoGp3|I)|38M$?fWy<2yj=bJn)JoAvnvhVMrO67ZP33dJ$y+67yrcXV32-c1wn6I$c zWu4K|)(k>mrg2u#9Ls@{#L>*TmCQI$HHXRdXR*(-xjcYa6Y-fn56fhb;F&)O6m%cb zkr?7-nfbj$uuPkYLF;%K%UY-)0`nlK))fZ@Huh44*wu3|dV?@25^JCYJ&dZ31=Qtw z^w2lzJh3TP{vmtk|BzR5_k|hxvdF?;^{#()VKxt0j2*G+b7t>sycN>>QuV=;O?4UR z>dUaWJgMPlv`2~!xw6#X5dI_rbwBn)+VU!wl)-2-Kgm4?z9KMVCaD;E2;7+AU^^N( z%S@__QPw>%84$yqqe<=RDid08BEGmuSJ&jvRV{hBgwo~qJSPj*@+>R`|BbO(^sg`+ zA{ZU)hU`lSj`BT4TC@dZzIIC~hscZ9wj3N$X#&~h@;7kgme5DABGdd*-2Q}BXfU5* zhA^!~-vPvHI9Q#zqJC8}RcR`P<6Uz>1DK>8`NHl#g)CU!;7x$NdZbP5AZG`AAMgka zRCa-ifkKm^aWG|KkTlvJnFVb!pr!P(`g|3vbO<`BtA)g0fS_3Xj1;0EMmz??Har$J(_8a(4wA zyVE13N}rwKu%_z^L|_&4MY3JwQ0^@P6eyON;(q;Uw+h{9Q5|C1bClS<0hc(yDpoBP z{Hh)0y>k5K&$8v$7_~RNh=tt;WeKl^gn%cvR33?5zO{VvhSh}_meLZ3BY16023^pm zJVlxx<^emF461gyxxId~8~OOFn@yAyg}^4W)XFAp8BuJsl9lxKLa{1&{o%MHXC(wT zhO|WVjVyGaa$3hySZ0s}O&c?lBTo7WE6=C)j`LshpJwsz`NR!9wD=qm>1TLJV}el# zEwgQH+s3dEbz1*^AAv?W`mZbvBnHUKbcGhS(O@<_ zvq(8*zHL4-@^X~N6>STnNqHD9Xn!^Q-!{)XxeW>%M#}!l?e)lTWMxI_;9#S#e#b1D zPlvK*EGQ!uKj}(tC&Z+=(fZqu{(h`SX}gU-;oJJghCHtwE7^v*nk!rgLm#|-pLCXnzQY@9FDYK$Qjs&US zZ-g(}HO9uDwM;7%kA!YvdrM99RN+;CM8v3m0wO-Om~RM6aQ&0pn!vD!D=3dA7nt_$^%9ZZ1E!$}^SU5elEOQ@~H@r^d+kAz&-rinZ-ZR5seO}*T z++3;5)qE)1#ch#qDDYF)8%lH5FU9Vc75>FnbDJ~r)xXdT90jbW=2Bq@xX?`LJ8`UK z)JDT!f?wO2Rl^27rk((%kG*L<6Oc46##do$t)$(0~hNk3@TNO@T#>}dgPPV ziVUyFLX26+SAR3y3EE$w)LA|!6V1X5gyg*Nf#T%mQ6qWe;fZ1=1p3a)s|~&z+;V_w z?Btyub6cnXl=Bn!f!H#69<%ASu4Fl)k$Qv;hswZ|vkebtC6}(s1QYKnaQkc`lojsR zM36Rc9*yJ+V|p-g-nzaL{wY$x(ipJY^t%=VuONrZ$XcFf0->KUb+U|WCAi(0L*S}t z`ar9yvEo8Zh~LTCGWOuKtRVAh-Rn#ja`~>6GrS{|)79$z%qz{YIT3xUUwe z@2YT{%4R?bNBb@)6f1}#Z>#SXpXas^6>04>KbmM-JXu_)VOeViFplplHWuKl)4-Bd z%jH=v@X&^giNHarLogHIUt=IkyYOs6!#uwi_~n?#nLrY$tyvbR>RQjcLN3?im%PfV zD~-;M?HXYxT*SXi*qfe^mH<=&a)C{o$;|)%0LY>j<~Q|0j@!y#bxG)u(Pld1W&k(* zyc@&7pl?FbF1g)2{hF4af+2^4NcGB^VKb=V-8BM49A~0nOku;R?2?(V&0wMm8h;%Yw;FcxRG;gjwKwCKtST;kj5m9;Z}@tz57W2T z(w_6W>x+%|7hPF;^YPfa`Y?>YwVi;kM4_bW8{yv6nx@hP%t5I#cR2(C%MlN znt*#Mp4|5F9Qn%qE%NpG`0;10luDs2&_J+D3Y(0=5o&c|Lqa*TwRe9N4jMVH@7V;d z=<20mQ^hB%ii^*+oZI@&NW~dm9;JdcJZoiqc3yKGapB#lQ}_$WXWX~tGvn-FV>lw8 z-i&>qIzXBDD!@9MhkIJYdWA4EtV@^7Qkk3$%-?Gl>LGAmnH15D}~cp*oP&dL%1BHwuh@-c_;R0bP)< ztS}inJnyedT~~6%J;_i%VG!b{`$j(|8m^X}vPQ+6>^)pgUF){93)#EBt&`Jsi9lF! ziV)~t&=t(=Gy2%SI^=9}@AkA?(iY^a24Bbe>0}i|QXOBM&0;JpiYu?r?wXW&m$Y7z zki*YRw42`Aq` zPH7owfBeMkyF|VVmk51uC0XqCB-EIEdFRLj421n`3|#cVg8*{%~t^) z(0Y@B#Hk*yUmFNaFQ}%D2~cu)t<^Rt|OcU%vLi=VHE)&&F&w$AJ{(D3!VR>IA2fNQUjXeLd`9HZruLwpCQ+l|oBI)ebwuLp8%*%y31f;L(y$bcMa7 z4^%ioE{$TNw`mKkF&gzmTfbx#FNyuIW?T%RC1P-!(7+B@90^T-_eOxP}O7AKMCiDf033 z#Wvitm#*--t<*YS6%>Ts6e0*HvdR%ocTxxb-i(4Oj6k3*x7w8Hg|!4W4xjd9uBuP@ zx^cPenPIo?tE<^@)L?LU-eusX*obrSOEr4ggyS~zeuZp=Rl;!z`%b<5-F%Jio)bqd z@Y|&^qXCC$?PLm`RT{|r z)s@5Z9{IK>j>+3`Mq`g$NS7OWO;4*kClxO!!_g+gTNLrn!->&0xvZW&tvf=yZuZ^_kJmn#9#PwE`m*G^(>Wkc9dJB_}u%m;ptUXd#l%-78%!Y_RzG_@%%?se`wR03BD{uzHWRW3JKTfiH$ zc+2)klZ$q~kern^%AaZyZCIT%IH+tUjR4c#JsBi(Uuq}$1SC4LYQxBW@{Py`H$I)njXreo`cBoFFS!1WaPpUfWr!Lb#(@z zfFuq1jxYw3L>UniK2IwpZ?89OLL414)IUVN=|dfJ!8&eq(0v2O7@RP7u%eGqq-8$) zqTql4Fq=}NU94j=;h!`gs5>U_>a;V2@-;Z>!330WCxxM^6accJPXoUVyJOWXj>o=1 zKA7wyg|WBOygAV*mb&TYj{V%yMO6&Ja1jFpma__Gx?dPcTZM0g1LDqGyc`m%j*KuK z)q!@PDLv()%P+fBsC(PdZ@?;Yx;>|&c)7wETR|gXbsKZ6IDG9d%f}q#I?v_ z(u`6JnJ<17wLN*q@~MNKq&XaaEAqJ#K*27He9>&Hh0@Qm?XYTjR+(IavJ=Y?KvU!D0gzrY+Ina}vUTq(~fM za-4IkXfdO~M`qukJ~!g%a9`Oeo{yu_TDtQ53i;;!lJ>vn(%)Qe3ppdt+~VIo@^#M( zyvhL?e-Qr`(>LP}1?s+jcF{K@1a3{hm0R#VKw!Jd-kvi!734#ds>sLctYH$!c7*=9 z$5e160~stWzP{uk!fg{B(oRfersLlh`F8aiAK7%zpHwwpF+27`3LdmOhYSt)C(L!* z$-gA&JmuD?()?pEESM@bHK^==KhAP$$!RHkj(s9&5m@; zCGv&I*W`O7ku>sXJfNu;NQreSMj(^YTq6n;?D!XqBF7o&d5FB0CM-Ybd2BM0*Ec^b ztN%vsD6m(oSV=>VT%7@q9r?oH=|*2Vh>;YR$R{^5*&uWqJK-iqiJmw?%<2;p zSQ9jwJg}&`;nnVmG0{x?6!N`o<8|MD$+D~0`!ep3?_y;kvJ@)a0TP zi=2m;y9YW{hvoTj9WXr-Ad=7%%UDQKhlSWiO;`Vj06}(aWqha9~}SdoXUWz?V8w3WyB_?IP*~4WQ;YJ<9fP zo#B)8ex|YjAb0?M(7bL8Zr8#h1_~Y2H$2~csEU%}J>+|&8W&dFBzkMwFSfJ9tcU%{ zIDHJF`uNU)OpS5%DcDaO|I``J1dT#h%AN`Qo~%u>AhLN9#=m0k?So!EN|D5PwMsZo z5`SZWV|_>D8(?o5aj2O=*5tf}6@D8Cq?44FYQ$&tbo`kB$=+cOYy)cx+iCbG*Tx~{ z#K~axIZai547_H`HiIPaMIwv_(=Ey^@errVuhn?&I+bew1y@D|EWQs?jBJWumu?xz zo*O@d@1?^zDQy1N5UfH>n~BK5$QQo8!z~pHRUHkZG-bxF?CN?S`(&*75MuhoMzU$%cfu#h;l z@-HJFnJ)+o`QpOho0xHWls$2w`#yn+(cpWsZoO9NxnMG&$tS$ijRemxvupg@x$eMM zI+XfRk+15gAj7Ty%`q;OS0lhp%8(c4@EwT_`42t<2Lf0fQGJh(Uy_1O^-I{>d(XT? zE2H41b4tR}GJW>d<9EeRU^o#ys+!9xA@7B_xrP0jgv=Z?1896vx=%X#lCqPw5_>U# zQ+JsvfPD)^kvpez;7uw&OYJsz;GPx*1giP1QJcmY)G``;q3Dh>u5prH|I1wfCH4}KUIuw5?eI-6pZqHFbn z!)ID60)m^7FQt6qU52>;>{%UE6DbD;J`*_w1;V*37w4JeO1)+EnV6{Axzz7$yNdeC zcaKau7wNM+AM^#^1_5e+B<#5*mmc6F@Qn<^bvv65S|K zbEc)N=FGWD7t02%e@W2+WXynTz~ZfO(qPH8OXW)9@huV(+cwB&$=F?pbN3XhX5U+w zeEBfoD0X*Mhx0R8X2m188#XqaiV2w2&Cc9A2Nuj&ti}wmCt(PZpEHcSLLr|;Me}hV z@s z_r+YEK~=54`}D;C@o4?Sh=wK-;1>wCZ3?`<219y>1ALhDpCmYl_)>lv*s~SbUBH(9 zPq1SkSZOINLCXuO-!Sp08k&s8+csym<4MkQ-~qG|C`#h=VkR(3MiGI%qcu@X5gNu* z=yEK}nr~g50i(wvVb1dvpjx0SK2Ml~ug-N(aD8%wZ!3tsVb?u|=EuT1@yM4IqY?b# z#+?gvVdO(?FU*?Adg$(*c7mNQ&B^0J+LmKep${ZT@80LN_DUq^pBua7%z*Q#Ztyv+ zHdI~F3u-f(nZ2TkS8Lj&dNcd1z2Rt=5G-|e;1c=9-Izok zTY5jrb&Gs$)7>rdakG;@y9RJ)_I(NHZF8J=?r4cfu=w@SD>ayXtj6XWc6f>ijG+Pf zI_!1z356QGsLov8uQKh4$^Qx1R`mg^u$kKBBxiS*<7_Ul#8&9VH`krU_(>9Dfb7>ja@a%I}aLt#-!fdWfL2p+(MFv>n^XuJdw+^dZ#zE++fzm4 zW0sti1KF=50C+oxC&A^==1~xs3rg;pY;ZE9HT(+*YWO#Jf_EF3SeZkr6)6|)V~35} zvk>{;Y6a5RLrgo|JhG}ofOwkt;J}`R@+Y{r5@B?Vo8x)$zA4tS#aFla%-=dx*3JW! zQX)f0XwrHKW`i*aiAJOROsmoUrt?=qP?s#6GB-Jyn8D>3(Q#(NoD0Y&5GK>b(=^JT zkNki@bNo}{^@uq@^#=Ac5&;-QU41Qc$Y2_lXvHGyu$K-_ocV+)&>&*WvsP@(5{7v! z>dti8)>MjJo_(wuA39aY;aQQ7U7eL@SQVayud2@D@bUFzUNDE)n?+sa9hUVw$Zf>w zEcM+54sYPQ>))Tb?#+|&s}FAo)}vT&2frBLYjAj`s6e=EpU$37|EXY>Rd4UgTq|xd z{$bij?#*n`lbDx8J~t+ZbrBXi6&xyaQ+&*GTK*<^q=mHQkL!?`rA}#~2XZI4bZed|S9)%L{*MNv% zuRs)sTZ+~(0*O59B%ipfvV1pofz5N#v6@AHo`T+gt(EVp(A~X$=$f2i&((tm2A@1c zKA!uRtUIJQ*({9~zfo109G=gRZ!j>c+BNK1p^)F>>(fXX)?xI|gTl7p|C$@nMfxU{^z zYdshl)ghs`v-Gpi6(`Hl*PMd-)?yw-9;_ zT0k0nMAn_nm%SFh$~!Ppz-ZYyJdM74f_zzS2LwXCH`gsxIR8}t&vd#FrF-Ptko$9H z6pRiVbj$ov%$@rN{Akz3sSX9piea1g5g`W}L~aKm)~;LR-13pz$!F& z*e~3(;q<5DGWocw&2_X|6#@C$@6a&Z67f+rcd$|4Kv2aq%Xr1SSaovFJ2dxew)J*W zI~uMV32DRchJ4;RtW4vVlk))!27e$=W&next;d=SY{)6OJ&0#!P|PyAPXA|kM?G&{ z#UT!x$ZIOJXx&b`4Ge`e&nh!4~{MgXS*dK}Tf;Rz=x3%tZHg^=$F z>`4xvty70SDjw;t*5PvNFTKFLVPRhxN0$vV`p?-uIvo9<{55NnUxO$^0Muu$V)-Ge ztp`Oa)JOb}Z0~3Ue9=|pA=!fCT=a~AwhkXJn&TQ(MJiu_=R2McYd5==8K-WF1WA^G z%{rMOA(lhwXgi!!KhEhTFy1ugmCR!H&KE%_loB%&8cxpTw$-#pLpxSc--Pulq|4c` zI-LLlV=YUu;K6QlDPr4h$@$hvO54QsRWbe%E@;t}|KB5-(flB^lf_gKbB43%d17=9mR=2Ls-8L?^g*{0AR1n-V#^n^^ zL%#a-oMN=MsBycZd3Y>5jG;3^#hn~{`_e}*T4$FXUe24n21{+ZtGU&$A6y%o>7s!f z3$3y)uU(a#3>qh!9?d|p&-7VCwgNrbLV=Sc6)l(Au;5|o@iK9mNzU$CmJQ~@RV_l) zfEWV_fCAWDl%B#?*QAr7Ln(cn*fWOF`%rUZNitJyD{FREVClIzOqRkuPn!k^h-0={ zI3xn($GHFxNavHV|3oZ6Al3Tl@`#&?FlBUO-+y@Nr;EA;$*!hD$dCUMlS2 zKNRr-$mh1)yU5o>1448=H=Ap_VMQ%NQo3Zi?B!|l0{ZA#CUXPd|Gt=g=KsZO4Ecyu z@Z~hxJ~vJ-l?=U0fZ`f0KjYU!Ak6%WoN;%}ns)^N)%5N5O0(O>x0{@=W|cNYM3q8| z{^E-)20*7ozW4=GFUyJoPaFjuRsE_fFgtQ?f;@9r`hi~SN4T23cOk+8mQpC}Noi|k z#1M-V1?lGJ6M`-X42ND}?l3zS0N5sn+BryMW3>CR5N~YW4K-2&I4k+`4UojAa6?T= zE1%kkNLFX~5E)^HFH#Q3_jc3j9xYm5oDnYPje9%gA@ZS5bmQWWkraoWeJLGGQ z0=QG|YZDRWIX@fjCMsMcx~zOi#HSzcO#ex2Zazy_$Xvh`?!HyEMl8Zq<)<@cSg@Y3 zaTrO614Hb^MH5(u2Jn{-tjxk%$x-F4a))gSkDDtsc`(GXD=cJ{hk{0B)@pbo|7nQm z!C5_2M)mcui#Sf1-yF96NUVQjh5c>#Y`7h+r(Q2lj*8>mw;6itECA=2q`%W+q9Np^ zlwW)d1qYuZUu!rw#D9%zRhqYRH29*0N?-D-hKhW8>U3I)ulL-DyEW_+uYNi5$qhF> zgupAGr?G5mZ?BDaH~SFfgr(268SlZzmmr_a-TF}E4$Y?c64@b&I!4Pf7S%%NlIWEop3yrdhbEN7%+pO^@)5>8r6avW%H`rHjhrz2_BV zO5^bq`tNTy^=A6V`BTI)614agklqM4%p&CB&B;AsUzEj`Ih@Ty%#nhUtg$hSj^Zu@D*MARDR^^vsNJCp8rShoA)VqrW4Y^-PA+x)LiEK zl+lS%o*-ZO6(SkI4{&cwrVXYIH4T>n>y_z)6N$N`EkA8mU3Q13j)~@Y6|nJcCrvMY z8`Yz~v2yP_oA4|W**F`ME6y%WbhBLIkjTfgS~b#YuiHOqylcwgKlBfeQ_@8J71vY4 z*}^&d7M6&?I_wa@XX9RSJ2P)?!N}b;?Y&z_lKy4uwqSJG6~Q>iA9HQPTNjwqaUU*F zi4a~98T6!zd|&|(DY{lL)a16G2B}4m6YmS`#V6Z6TtY_^H7&?=|JJunV(`?$mz*XCZFfFZR6CK?nLnx`S^Xag3zaKywstP z4}C_|MO&$QaZ%pEo00n+7*T7cc$91$td|a-r;cNgNO=Q!4__9`Pegn*ardKDP&K$? z{Tg@)mSgo4>9O)cF1!v-H?Eo0=0VI$+7ofK>hd6&3xq`b)%H26cABdq7wA6OS!)K) z%j*>NDC5Ank#qwNH~6o(J11I>w7s9_{@Rya#wfe1AU77s^ay)G=JEl2O5G6 zia)^C(~I+>uY3S6 zRnHM14(qh>@EA_&t+U$K2WA+;X(BlLw>~^+0V^WFnF*dzjL47$Z&|@hKDmKF^O{5V z=wfxxot4>yMIQZ4!@a81kBWTF8DX-efbE&s=sep3`kcL8OEMARRi4GyBl9`QGU)6} z2IE#PTi6Rp=OHeJ55eFI1{e%J37xG`c~pz9uV1j~UtFMfW*;~RhW&8|U@qJ1r_b{p zb8xvw3&sr(q$SPj&0(o7zEl*{E^w)P;QX zdLC|jcuOMH1b1V>UCZZwSFlRFXFXYFBswslVEsvG%kaC*%*@m_ISXecR$6b|bJ!dQ z5dSYe4g3qU&y|KiyTr^;e+uGx(rWZ&RoDd72@zq%1gV!r7mhhkwDf@3VZHKK(zteD z;UwTsZuUv%%biY;y9_MruQoHyz9~Z)36%R~FZ+EXtj_QIXyDCP0{D3IvNEC-yptY} zG8%kBv&uT)unu)`)*DIi@b|MTf$D256@7PA-(3IOI#^+fxPMyvYy5ixds4WAntnk9 zm00R<+ftj7%vGmNt^~R^ew4%Vwzcf7s9TaN-NUcqKuK;M_V^h~x_vz>)G-8IJV$K7 z1%1Kax$whC-a^nze1QSz-Z=)(Gh6C9`pYI4)(252Xka4i(5Z8dC6*-S1}+Qfc$x5O zzDn#W;(BJ?Yy41qF^Ns&<+Q0CTOlxAbXA}iP93`&UBKS-$hI7>A2I56X!54g=-!BB z%{8nG>~2jvxz%IS!uDeTEpGFKd^&LCPMs)^He%(*-`PbiPu;fy^LXSw2>5R})%{$Z zc(-6uePzvxJAq6uopffMM6A@OS$B5jI?GR$&Q26xHKry8n|^wX!D#RaZ|GuT+?~w5 zDZBO%D450-kU=!wBneo+F8J8YY<9bgTSp86#3Elo}@r#6Sdwld+)=G?Ub zUQMFqmg7EGOLPN!f=Qh-x+Xq)W;Q?4iTeIEoRPFG`7LhzO4q)?ts~$`qXRGor^q8C zb%s5E(eD`odU<9!=hrs8f8MIiGKPi#d9d_dyUBMsRlYXx68W^|>A!RfaayDAZz^0a zvke(HT1XvbG$O(q4es?QC(+SPhbJsS2C08mz4F}F7BZ=}`Kq}2iF^j6I{}$jEm*8X zFt9f)?8kJwi6<)C&l!BeA`2>f3xVXITk9**GH#T#0|ZXBzJt`ifD72^nLo?>Vwb$L z_hq{xcw3hXJMYAI?76CZt9di>2!m>8@=%6B?ls{p%XU5>!$ zZN&7E|I{Dz1`yfs3iynC)f>7aw~L1EAvL1&{wl&{UgdxeN(LM3lw$TtY_V{@g{`I} zCY~jc5yf}4?zsmDTZ*Vv>ZAo&YmX3W5V$hy?m6yyLnXYN=rmN53wltp~ek{{;1uy0L0)^3_8YYJ`8mXOC8%$j-i9AcNX7|FSEwg9k-R@bEJ5=$&Q~<^T~KMmto=T z4B@sP6GpR)&By~SIV&8)c9nkKR}Ei5U%Q9BlvJDz6F4b)qu6#u<6bU2We|NU^;f-Y zFC6wC=rq9c0l8g-BOha6!zY){HiQmRm-zm=FA}8n10PMvN;|so=K}-qPXg&PM1CYF zkA}ILh+x$bf~{7{>T27v;cS9il065$V(=jf=8|cU%e+s*?Ee5vbJH(VN2U<*ai%^y z!CF?8onpTjXGfidS_t03eY>`dM7s{|{J*TJl37yypST|F$<@sobDtb1>G!)I-6^~` z_lBo$Id>j4@!@t^L<*q!JK`BDZ!EwfdRN!WEe@xW@0lw7!Fr}dqc0lf!EJSgmM{GG zS(OVzZ!7P&F!ZK{)bVs+BxUXH7X^X#UeVwZSiu13LjwKCH80EqJ3E%!G^^+?An+UJ=hS$YBzwusBTG$tL_Ah zDZ`yVWSKmL>?%b9*-;H1Fzyzbre%`I2Zo9n*0ZP}Ia{OQgp~a8-dTka}M0{E73Tw;9YYM5jxX2r~6lyZ!Vv?^Ji7`cm z77Hzqzyh}Q9B8)D$O>V0!Si5v0PQ@mGi|*?L@Fv@Tf4Ywu=km{*b}yjd1eOubW5 zm1*E9xMr>r8DvH8bW*-=<#md`^KPo|FUAG>sAj-GKGR^*jlVRw6bH5451Uj<6Ii!4 zUu}Z_BF8^1_~-ttm`6z_SX!+SIE3++VZwx%lgD8r=$inlus5jeoi}{VLEs-odtT8z z_iyY=*kj$Z+kw7+tfAmdh0z4QpBsJQt>FAPnGVD6t-b#pOJ7ED;^%D>xEFrG3*&FF zNf58X!dw5CkHnZEM31Jghey|4-G&S9Z%C0_`ilZ_??T0QhKN?&st$FXqbpk zSCQOmMvK+#pU03?CL6??G_H#cIj06srxxKBFR)(TkKB%~+nSZwx(L_VU{xX(7=7!3 zdE6}a4#}#Waz0_>k8zYm^W11INQAgbVJy$(3^8)^874dO}TozCFjg~>v+f!n8X!a-Dp}X5w zbJPmMt=T^0nU(Vkwlp4HgD1&`H(}4sQWqfbEFH|gu_Sb{+#p+}rWHs-v0^>|?#=6` zs&qnh7{)YXTXdx%14e)KTv8;(o;dL;e*4}zWQ)%f&365?Lg~u0xm4|RK{_=pcOmdL zFX!j5CTG*6wue(IKH!l?rN?2zRBpIrLK+eW>JIa8TTVXN!ylT;_~pLR{Q9wWxbO8x zYxU~JATo*5KSdW>KIHk#I-iD*y7$i#{{kLSy=g?8v5Sc|sXTh|MI)|wCCyaR?U~J+ z174U-+5SVB^Xpo4z-CZ`>#ja<3G&`}LD`&Wl}8a61G_TVL znGD@_)Jp1hVdE{Iaey44V+PrVKN)R8qnls6s2cSe?{eU1^DW60*>+f>zHicI0vi@N zWl{k!%l*`rA+M25rr*It@4=iO1@@c9n9-dbt)BweK_8f$oFUi=wtxUgM7B4H>Wqz3?wT7_rBp&f zvWUV9g>74%dDq^(hZ*j5P57=tawTXGwqr4s0sJ~?*CWwOOS zVUx6*+gh;)lOxaZwXz-$ek=TDEp3bpDsAo6XJ^b!f((L&xxbXi1oa|yey^MNa?rjc zVaJ94Q+@qN%=j%dJjxUw(De(JeLes3YHjG$k&AHV;RUhXcz@=A5^HM8P5^g%ZQv{G zyk$${@~4Q@OygIZBI1v3x7-{e$jlW@P`S&WdgcSZ%!8;X7&k z$$iwm{&mKzfu#57s&sxP{>4+I;KnGK-JSC%@(FT%!v`;Rmd|?Yueg+He zK!nyk?YC6ECHng+G~(av9;MV#yVt_hDs(RKWHbRctyNlKEh$|I#cX)cd?phF4gf@j zC&;@e%7VUbwym_9sjAfn2Ko@c4ir(DD5>q);m$FCGZ`g2!;5zWPsJgLoBP3;qv5jr za<^3QIQNNw5~I#U{Tj0AX%4tMS=Y_n)-wtGa~FY1989&C9gb&wP>sRKX%bHW`C!PW z1^5j4{2QWf1(jauc#S1bm)`uYEiOr>?d~pCN6!_QeVp4DV;MjF6+B+d9rbN391;~L znk`Lnbn)#-Bikf9!0Y(Pr>K`r*-zO{8(ZIcc@@sQX8)&%l(n!6*L`7|HhY{33K7~CRuoVtHH-!-(%5P&+#Ajhv)_fi>CODzZvxU zvAS2iwV$_ed64h~BMJU8{-N_!FwCsy&)JSute!bSud@sebqU)89>T8+Y~xZV-H8`o z73Av%9~*@140T|1)pAKTu?7-!N%-hTLvJuyb7A6n z_>k{pw)6>D^N=>SLFdevgu~`1HU3h0Q+kp>r%De3|04Biy}NkG9EO{1`1yc6=vueb1TxatC!wThJRPjYBWu&6vU{F-vL z{iqD6wvr_GX>oY_fTWBxS3R4f-9vnc8oee1w=8wx%C;M&yHPV5DcOp?Z@P6A85Qg~Y6^`CR$xFFjc@c&h++LukbaU*yJ}|DW z-CPnDl+d0t&JNCB(_Qya3}zp`EjMHuz*JG8ZQ8-P@<_l4sjg57|71+pg0Qn;JYJJd z&5o>j7$I;69cLvW1;E&o;<#QMfZhR2#P`Z7!05r39ErgGP}s}B*E{Hqp!8KTs$zDC zs(NH}bb(T66rds#B;DBpWc4&=n7G<`x!l3sp*bBW?(htg@yC#H&rxuIp7dBC{&~+7 zybBVpP(4^oVgZ3k_V9^DHB**lAE9*fImK{sWv6(E=zj6b(9F2oOS@k<^6hGM>(XS` z7(B4)=_fhw+B<|kyf^Z^l)Q0P27-`#kUzbp>K9n3)Ab<_8D{IoHXR<0G`q^P zz1eT2HkopTZ_rRnNzITJQr^Kk#P$GziIX^dc`i^|2U;DJfZ0Vv=Qjq6&O&sA@a-Ny zEdH4@O<7`8luKlz_)W!+wPeB{HainYnQ<984pvlWsExr?=0;&@Fq(Bq&sZUmS^^uz z0dx!00_x?hF;XA3fCWUb7z!uL1vn&PQ;%tvF9bl1G=KlPH3>VP65-I|bMf zmPsg%5QuUR(lnvsyp%R9*I~23Y!!~ErrVAb`^0sDe0GuCh9|a5+c&SlB~#|E;@8)n zL$0qS^5i84cGntdYlGD!~$*bU|Z7C4q9xiVn)zz9yy67Q}u?JqIRs z>b$sRzk+!i_I+rmI6fzUIkazV5@!gdLGGJ9LLH}9qZP;(SNbXVOfJ> zklU(~PJ|v6+b_Q^jQAPbcB#>sk^2$tArG~rpW zT76QrEa=S z19!lgiCNqzmS$gu*@xvv*5BY8xzMI+t7x@<&euh-$}$0qhf^S&1=ck9^xzrP;@dW= z&-Nv_!j>@TB!xPFm~Bz+RW6`W90Uwn6u+?BbN;Txb7sJ&BVJ$s02R1kM143S-ng!H z;q6Brm)3KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z00B`PNkl)WS(ZnxCiA}`5Z|J0NR2l&RQAFvaZwe@?pt@UUjrYf1&75=1wV&sld#gY{ zkJsYf=RD1R_Fj9xk1zjM zo2@~il4Dj+D|{GDZD$#`l=aJ(mP-(vNgehuWEH6|m$k^J_WX9<^=G-L zx-1%zR96Rq8obJ9E!zX7J%n+YvIi0}Tp$!kf@CiDLVv%$q9Gt4l2JYp6v@jmpzBxvOscRs@`>6Vqn)dLiSkWKq?a-BmD^I7Gwq7(-^C}MHTSX$ zPas0{pr|9CKI`fo+y&w40}|X-*lvf#_%a6D2F`G^Mi4jS$Y<}HVLvqqB__{h95~P7 z_c`QA_{@uVCiqF)LDY7$gdIWKVz#XOL;$egXl(IMfF)7Jl6#A={9^e$jPXzU6HqoK zf!Wuw@!Xp<8@dEEzf_UW?906v0c;wlLMp;6uYMvYC9;i66jOQVEFEfZswIX=oK4k% zQcRn?ncFPTY2;HktqXh6BT?8>wez@hhdV}Hfc5>=3av>`$DfW!YMIfXJurXW4-EY&cgaX`l|JSWBd5x7cT7*(V~qWJ#oJfU%`tJ>N_Dv0Vs6 zjdSASpQHuDtdA_4RIM(D_}6pGSvDC0{p zi+ntA*@prJ%TV@#Dt|A3LEEDS9E4{W`GRORB)6#VBLUtF|DKqZ>(q6iIa>+k5Y2BE z)B**(D4Q0+v@t(|L%qsNQt(Og zfvZNo4he@BhrVF?bT2%_|pTyJAg&d)Ts@@|g&GQhHHUGVTmX zrueHF_6(d}{kG~`FBm3rg)ke26~w=KJZu>VOUUdYP)rnzF$Yt_?bDA@^p+PgkA+$Y$G4e@_@pI$dFADIm z>%r~VI?1*L`!*-_Ga32ZEqNQz0!;^*%7&p!z5^A1x>~LUTWu^hlt|~%D*mxmp?wo< zO#<}&2MkXyY)2`Ie5!jlv;s97K>?m20Eh_Y$8hz1W0*tFSeJc0$5v%u#hnUCDEBP} zVzJPzAO{=y=1}Ka!H14%2IZa<1XOkWH4YT5B@C4eL@z(zbZmVi);xxF0dL0Z870lV zK~^&NWp5yA8@i$r^-$Y0m*t%VY?&MEW>M?M0s2&DH@UM}gB%9zbVERxmHaBOOXu*2 zs`P53q6bl`kl5HT)TbdQ^0lUy=}TEexjhF#*nZ`l2g`O?B292`og{ zsrPqu{;G>S^r50uJ2d~LNuW5XfNi%;qdYAkl^QMT;;a}nUd(yWcFvmd|7M$p;dNk z@eh#PtHge50u;ZSz|hF19YB#ykS<+SYgZ_mR}}cY{SuiMnD)*G#n#etDTmn8Y;1*pP5>_Xn@^xtQ+yNkzOpd zi#CG*TOjVaa*b%JmSiWEE}xi%NGVZ73d+~h@4DAam=FW15J2-lz^8AKuYSQvY*Fkm zjX{{%23HFADo>8zn7it@$)Hzx^=Gmj;h>J^s}T zs^VXz)`_s=p1lNYAy93FYmmD7Ycf42I3Ulr`ZfTbLD?7PZagbxU!#Un1NL<%W8>5d zDF=ysVPgqx4{!)CFh)c50t`r=MUZ^tQ^69^9pA!LE$3PYqbmE+Fng+sl{U2NK|VE& zqwdZ+X46WylA4t>rYkLz+0`r#DY1f~h2IAUt?Iq2m1SeRbKj&D=^XaKc-!t+2^qy4 zQ!wahg#J86S(rHns(mfD@-NRI&5gyuS%E;$5(U)LCgXw(;|yOA`7k^?2ud-ejqpRK zSw&lWtNdGuHVADqD(813(^HekNgMy#xfUZVZ^99o=!L3VA3o0ekrCKU;QUtPf2G# z>K-Os*(XA{@n`m-f03#%p_izgj%bnC{P`#wAQSpCd>+jI*2g7oAxb@S;JB^@#atsr+g%sT2~GMR(>) zi+_g&Kf^DMW%!{6C5?YBH-9GEKFiLTsSUvZ@#ZwJk7JWam1)q9ZGRw+g zJ2c7$eVH!R7Ic-j)Pv|u&}DnB*kQsNNMX7-O0EH-=lG~dFNN_*Na{L7<<4IgZo8Qj zg3{(zJz@+UII!K|wck~HC(rLc6u;{=o(uZ?Oso1@!;{nx^c4sj4JqxM(c%*$V{jEo zcbDzS(hMQH7m!@vU)JDvz^wWL34eA@VumrDayAE*ka*&eEB$QTTgPHnG11(v1R=4=WP z6iAYD$5<<7VRtxMVJnc?41vLs3~S>6edke?`<0w85-9p&k; zb5ZR+9|?a;!I!|y-m631^XmymN@e(=PsF?J%eORv6b@V%T)`F!l}PK+MzQLoswr28 zVRG-~>5^8!cz+}cok9iBS_Nhk$TSqe;Lz%-lno`|fq8?6h=1EiLva&C3PtOLf6BOn z=p=jKBaG9q6Z-lz@@-!}ucD_UIf-#KxmFEv9sghzk`5C8K5Zr7u9_Jx5v`V0olbdR z@N=8^=Z61u{A(JH)HOs_yg5{2T1|!5iNq3>euH?6miTlUo@R!7E5P$?m3Y-_M%T?P`mpNVDkpmkKCJ z1x_v)Lh7#{w+Xs&KZU1P4K*+mva?*UBKOtR_*BEOsar}6lGMhhi4$rgn=lq&?x*M? z(_sb*T?3g5z0E8+6|mH@>N9~_d1 z?usekY2g2fyg)D!-?4dxw5fDd6vnmP>&V2C*&X?qAEX}*_k>>{F9Zk{?k(e z?zT;};W=jte$w=Krt!}W{|O{5CIuCdLQ6gy1gc2Y9X%iv=OsjhhMj%XJd=^+f}kJl z^<1{7QYL$t^$=Ju`)UBprVHI(1h}b)q3nxBj-n}cHGjQTa4z}#9gAo<6=;ud$DYZS(V@n+IL-a`5N8gnKPm{0)JDHOPS!WET(ba~& z&lfY_vFgyFw$%PP*#ZnL$@fr1$I;t3sU}zD8n%Q3bP zE?48+S_u3!#J^o3yI3LBJca{5+m3J`<|np}f8ypJ2=l*&#ZFD1GYAzi9eAJM>I(7% zMjUS#X}9&wyxwD6_Ax5^7?pkOWuK-G(CIJQ*{xm*uZLu~&L3>#vq5n^@_9+{Q6~)p z^%Hu#gx;A-B{ha|ro@&`BNFZwhlh$PN69 z&DFy};@`&Kt0jqm3MoN(H{3XOz*OdMv^wguazZ?yya3xYJ&wav$~FXs9PI87qQm!g zWAD?iadShUyCS2qW+O%`@UsO`@Oj><0#EHX|ecVv?iH?INQ&wdklsZ2*2argkE}A)q_uO;g&&mS$38(EC;l{$x z2xZVcz)>-k4brUBsc7i@07;i3CK1}gq3i3}80~oD7226ih`#k8WQwMm~ zU6FFYk%Wzf$c7RSn?G;ki&v;Hu|NZYlx5J4Ks>U(P8cl51t3Ov=8ZrEIz~Ra)7OH^2#4#}eNw_mh?c8^m5L9|#!BM2`kVG#~^- zgMO`p12uQ-#NR=kRwQ&4yiRMO7Y&6+6IW3WN{bf#x%u=mCVb9D8bG0M5!pOy~{`4ylWe-K_glz2;)z!u3EgU zah4HcD+x|H8}V-%ZA~LJB$J3tg!()aKsMTcJNzVM4aV}HaUksFONevvK&9kdH`|dv zRs0k88<)+7^}3dj|1`zFq~U8acFWuw3=EGrOjB>F|2zezL!esjTCA&D6Ft+dSFR!#Hudu01@z3ZMfR|%)hA(n zVnl&G5M|0flc3v4VNFmsyHYKgxzZ%_t8lKF1jKzleZrJ`k#^>>I^x}&+)LzJg?rC^ zSEKqImQye=P_@no0rN86Ub$x(4eKnGVnAY(%R-lTw31o8ZMw~(G5q1KAp1bc= z);M7(rUA)tP5I-TBQHfwkZw+$W{^fR(+vrWz3fvJx87RKnv5c!Dndh=%hX$74XX3M z+f1MrOH0IBgU`3_FsO7o!stLDMKlel$qU`y=&Y7CFl&;st!}kqXij@@D{g-V0v)gE zzypo1SI|D(4u(A&JwHdb?V`bAxh9Rojo#}M>f3m1{&BMJ1wI>I|FiAtdJ3YeH`)*= zeagyUiIK&gn|OzpoE#!w(CQnuPKPvkP-?5PPYzu6#ep_F#o_JkaGU}In<002h{P6r z9vDUx@GwqsckT^Drk0GJ8dV9Dw&e5;%=~Iy+mVWo@bb zahMWNtD$dMSPUa~z>JPLCc>TsW85RWcvEtz_K?pQ@9GFr* zF+;Uss+dXSo1|Nt0192gmGha0vTxDFr%unKvd@RsKCrx+>v1;Z;rZGXt4X4VlpI-Y z9{FZIFGh<{mwKu(#!(I#nj+$3DWhpX4)aDWHeiNJn=9_pf KL=HmIuOYXQz?Bo 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 Nc)I$ztaD0e0sy7jT801s literal 17864 zcmeI3cT`i^x5qDv^rli�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 diff --git a/ug/channel/edje/images/list_highlight.png b/ug/channel/edje/images/list_highlight.png index 2dbf2466d4bd9d6481f53acf6ebbbbd26d7be70a..bf105b814d8e36ed52663b4a00b3eb97af86effc 100644 GIT binary patch literal 9249 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 Du!BY; literal 9239 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 C)e-jq diff --git a/ug/channel/edje/images/radiobtn_on_br.png b/ug/channel/edje/images/radiobtn_on_br.png index f14d5bb17f56ec3102268cfa2e2a814c333b90c5..f74c505e74639855fd063f717a6c17768efc08e4 100644 GIT binary patch literal 750 zcmeAS@N?(olHy`uVBq!ia0vp^Y9P$P3?%12mYf5mE(Q36xc>kD-?e{Op;@KvVv7F7lY#x_qE#}JFtTc_MCYH|>86;#a- z2oUM`&DZ5^c2q^``|tnzMVQa=%$~;Yx!=TePST6&-LoJ6vk21pQQ}r1aFktf@-uz+ zLY>*p3UZq}<0pS=ShJ#a(K1o)RZ7g2ntfAGUErNO*G|&v)KZNw##Ki@=pNMy;7k_1 z^6KNGS6dm%mr1QKo$Qiv?Ltz-?&iEr5w<0_L|!Ks_+DZB#d6wdyOLFKs;;c~-ylng zJElFx6FwWtE%G$1wkVo&@xrnhnoZy3js;|#eB1f{$`aqVAs0S;5;1PdJb&b(cyB`N zo~oa`?^%Lpe%3npOkmHR22X?OiFyZpboS^RR-19gpgqCtiN>=#2PWyqy6KA=_-iCe z=qhTQU|(pL+@x|!JFs%U-lutIqYO7+d0MqM#5t|@cfNUfWc}ueKG!_9-`eD5_sqQV zebnUXs$EN?%6rf3Wq#4WS+s4<4~yTY6L%*qU!8lY$YTAhfA3e#e7olFy<2BR1YfAH znN=)fcJSy{%a;F&JJ^l~f3L8Tz58;;^MCqv4DQ?f*&-Hd^8=%p!PC{xWt~$(695Pw Bb&dc4 literal 18488 zcmeI3c{G&o-^XtevR9T0HFn9Ywq|0)*!N|GR%47YS!S3iTgj5rD#^Y?WnU6SvV?X* z6j>unl4wy;!ZXsM`PMw&=RCjXkLR4Z&za?OeXh^@y06#uxjy$jbIyIt%EFMJXB`g! z0Q|;AdN%Y=`GprZC;dHJYqXI5v4UdcNCg1i)eA2+ATfCj0Pt9nFc>QNc@O}=uPeoth_xLR)tY+tLDw`Q_?#)(MuZz=qkAG)I7(hgYK4$Vgj9N` zh;{8seSHq``)LvEr%wl;6tPz3JI>R=H6(T6blAm+<3^*wqdhr+tPMJ;!WCM1blM-P|ivmEa2@!gL+ZG_ddE0S)zySsbyPDoc0v%ug zW^C_j1QeA4HBCai#Q--S0JDw=-w1F70#5g3Wc+}`34pM{dwb1yn+kZ0U#|(gg)EJS-&QM!lowm z)1?A?z^`s{&PzKx56%rY=TWu-z;jwq%bYT_WL@wU&S1~E3vv@2Zo7HY_D!8|Ef(B* z4M-d9vY(_Zu+dLHQ{LG*JT%l{a$9!?uHOFO9IvV;5 zd0c`ee4IAshw3UGX)Kada)LhDDydpy?RF%ZA^@qgyDp$b5&VMVPOVj}3|YaUbDw)P zPO2+{&H1>4%xP}1gz#ypS|g5CCuBhnB807_O{3I|;5NsxAUh+;_gX&7kVkhK+=$w8 zA3%hDJyK~1KNnJLt@VWO8m2s3W8Gnc3%rk9Xz;{H(X^yTK3CUiom5XBd6efS*cFM! z+=JD;T*IYu+XDuVl|6%%cR{@PwIzPaQtteDNA`uN-Il-7*m+>TQbqi%WW@=s+?;eI zM#V(MzQktooU1n1V7&KqGRG118Rc2$ z8IDz{7mjD8WLD`{IL?F!=-e|=*r{MhjBHw-GGg0l+ndFcC2FpP`dA3bb6JARpIW^;IMs}t^~}F& zF}rSU#bn@OaB|W!;#tV(@32I4N@TZ88q>-ejNquEb+x@mHmu8n>RUcv0Hq^7krsN6jgLgi}jzWnJ%|gu`Dubn~ z8#dl1rPwAtHYAD>%c)_L5hsqBhBiRr(2ykYyS?|ThD>N5y>~qiX#JRyRFYITp51+U zLVbcXakS_BL)G&eQyo>Pk8a(^^jifAa?w2)K-Xf>&3Gc%kl9_jz514NOvV!HZm8bSz6)`6eAwoY;$ZAyDuIM36{>rARQG)ypFBE{GQc|+C>9UBzl-9Z-cq9^6vulAKY&EsDuSx1zHwy3v6bYONWt+#k@q+}j& z_H|UHn!oHFl?>(K^1})_XDZG3&3cnisiKMdL7oULR24kzY}6TV-CQa2=u+Y<;tSXP z4f%xd;<-CsC(5AfW4Io;mz>F8?g-{7)y;f~-LCjliL01Muy?)Lc&r{7o0qz&ar|LP zefJrS8k_qVuN}{D_`$KBr{lXU9iWbV*Kl8sq==(MjvX%)?iPy^ zIn<%p<2NjRlw5x^q37JyoV?rRF3qm3uA?uWfm3$~#OB7mh!gPQ@9etD-?#1R_{UHB z-O#v3#qNr*QcU^9o0``v30V)C8n{O4ScH|&=rN<#PQ zCcaNJNU}|w+2Oq7hUG(aOZ%&50bdQfHwY%HYC8IxOky99x<*4EM-$&SpG=8KIT!@_ z+~d@Jp)_y=-_*BPko@L`5bb%Z{``rNEtOlEcD}z(dtcl=yxRV{ed1-*9?w^_SDJIt zk1g+2Bv&LBmhW^gp9rYB7U()PDxRv*)cc{z|DEW3ds`|}tG8-0fIM|)>SLd1Z;+3| zY*Rx;r?0|9L8WEoo)25cbviMsT% z{ifokG>GJ)C2g-}4l}1<2yP^!03U*FfCUyG;EqSSNNb~cH2qL?0Z#%A2lDgu@S>vp zw4}f3qUhfjnxWF5Z(V5aTGBcT1A-jPtw0#E4*{eGQ3K;)2slUs34yDrBH?gl5CR5Q zfx=->1QHB~qf|9eaCOl4LmJIP|EB5V;)=4-Gx$Cn-O`eFqtPfRDAd>27vie|A^Q-a za3m55g(08_1eo3fO!fDo;rzf}RGCGQA3AyjD&B`gp^?a5paor=GkG6POImtipr6P0 zd3jQP4&+7s&W=tI>W8C1;Sd<~FG1$!%)>lA{}@T7>F=kX$@iK4aX>28pF)7z5UAvR zK6rxueu5WG=1(W#g8!*Q+2`Z&jgJc+O7I|f(nF~9lZXHD6evG_f&2{r?KFP6|2lgb z$@SOb{1&_5`D+-#kMx(Y15syN09AN&X)G4{1Fze&0e4eV2AwkcPRaI1@IjfZ-~e zoxw0y)y?3|E*kVfG*k&LbX`0Gr}9I3N%%jcEqzGzB82l;(r4l9|EELzLFOMr8Ih>; z)bU@EQuM_7R%UDo-oLm0aCnful?w{ahe}x3g<8@-w&BnE^0Ry_#C+S$C>(yF(4g@P zxk_-+g#On0>$HAGeh(x4VFCXY5$>?}qat5?s*GA8Gre;omLV z;!^&;pMI2qf9^j`7d*<9?Bj`}p-G-NA^}SAB5Fc^HU1h?^XF9vg&}*8eay)&1T?+C z{HghmQS?98tQP-ULsM-GbwS4Z7oz?aG_>9<5@;W~z**BE-f2)4}+J5ivb98lZA^p9|kWA7XuLHCJPsHJ`7$KE(RdXO%^WZd>FheTns>%n=D++ z`7n4{xEO#iH(9ut^I`C^a4`U3ZnAJO=fmJ-;bH*7++^Wm&WFLv!o>iDxyi!CoDYMS zg^K|QbCZROIUfcu3l{?r<|Ydlb3P1S7A^)L%uN<9=6o2uEL;pgn42tI%=s{QS-2R0 zFgKav;`#NYC&7#Uc&9J@InDupe_8r7pdh@FjX3}W$N@lb7yx{pr+VLqtj$EmZh@as>aoR6fCT1ViUbyFx6L+eDw-P{^6@OysE&{OKto6BZ2}s*Yv$b z@;dd_2vKyCb~xSE$iI=?Q z*~?o5JlW7+OnM3r0W`2Hgk)9YvTX#OXz;OHUbC;h6vqEK$D+5ocFjx&G+vRvK7|$# zD~{6^YjZg7IwoFihkETMDBc+;R~;QA@;iR_j2`_nht@XxWVS+dx)AA3yAd09 z0GTn-!BT6#SIvGlm#0R`fHy#=SmA=Y8)=s}!?A zTr4=0Vk?)`z0NClIz7{*Kg{BAqEf2CnR!dou>@7Sx+j^B`%FH|5i^EAKRLC zW;h-Ui_W)u=bLBF%$e^egl0GH&5))0K65c;wW=3-teB)L{nCGDHS|eW6IWoj3{@tL z4`l4CY+{-N09@)6SRqN2C`nc*P{#$}fOHVpCM}>%k+^mLhZJc8EjDk1l>jJ{oN)Y} zB`E_?@`IItF5AAKzHQST#|=-f16|evp@dkY3vAe6DK3Gxfl)%_flE>*tOD#$g%V;P zsEorhK%2zWumpc?=)b$ZSOtnxql72|)nQl+aIEht!Y)m&xu(f35sOD02Z#+|Z-BbR zF~!+PAe{{^d&ug*I>O5utCEh4u#M`YmPV8%9V%-09eM;0_Ds^L;k2cvhW12ThIZ-^ zyklN~<;IS!Ipf%JYjA;32uX4kR#fiTj;_L%oYm2TF(rQ@M}HOZ&$O@2ZW@;zmPrsMOoC;0sN(=o z3D&suEK6--OI0IlUlsCcLu1NmRWJ2O^OD;7t)?0}n%wM#{@b4RAGqjo$@M-)TL1t6 M07*qoM6N<$f>^aAKL7v# literal 18330 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 D0{nGT diff --git a/ug/channel/edje/images/round_rectangle_4X4.png b/ug/channel/edje/images/round_rectangle_4X4.png index 5a1f51d38f87ccd9c29476b13310fb47e158e57c..bd4edfecdba9c0ea49fcd40e4f1c60c9f43f5ddb 100644 GIT binary patch delta 113 zcmV-%0FM8Ijsb!JkQr$N0000=n9iF3002ozL_t&t*ImuQ4S*mNz|i6VZb4xAzkqQk z0^wed>VL;xidYS&It{B}bNCuI4F94yIr-W}Ne)&j``}LL!k&&Du^BFP88&$U;2Bie TnJ2-t)fidDpxCYt5|1?BDZye&1(5pXaxK``NSB zKCsTtLRM<26aWCSR+grY(D$6NKS^=u|MM7exiN!h>Ba{D>4jr|VnE`_#Q-2>&!JM+ zt@GdtxO@*T4`D^6B6z-B7RL(&0RN}SPHdV}_acMA)&Udi$dF^!Tt@{-grmu!5cwDl zEtNTPYa>-oJyCEdpKoS1Tj^$MWFHt5bbHWnupc^8SX|jC&^RSw#>K7d-qfjYz9v~-Kz*ON6tBCttCU`0i(bule2)4xmZYY zyoM8yIvdz_hvD81tV06ZR{s3zJ`j>Tln^8aY&@o-AeI^fAQpm=rhvy9Ag6x)K{LP= z1IV+itBAm3B!IDUVOav_F9T(Da?<&Lqzr&@hzwr^%nky!-BeTa2lgcZ^5%UmG zNT==`JjBYMXLJcj?SAUg&l_W7cIrsclP8@W9go*mnQWxrcG)w+uGm`UGVJwNF!|Hq z`{&nQs)yn>hg!@YdR}pNz$R^3{n0u5+*@8nTYS1KJ^D%czG{_~dy%V_e7nPf9Z{x< zhx>79ss~JtuDY?Jag_P8P5a|4N}Dclemg}hCy>h@g0h!`0MJ*=Eq|aX zIV;2?>_xrb=sUw;ptkz(!#UDcu_6%)dTRLU)9FF2%*xD_eyplThXYl(F{NJBVV zD)$-q{y^Nn$^2@}nwtP_@27|o3+%Dbd&zV(x;60=M zg5T@~p=M=s2($f65cK87maaCgc8@JH5X;nc=0BaIH)qy9hl-V|u^HAEHLlM8t7@@3 z4!hsgQd{leg6M^4xu8gDm7e;71616~q9Z?8UHFaGxS-Lz(Z^A(TRSsJ$8xD!?5(Fv z&wL5uF>S=^o8cYF9hDvU4y6v2zKv4J?nXO)8*+N7>3Dnl+9jQGojRT3U_8#)`AnkY zvy4-;`MS{?Oma^ZI-YabpRrJ9XCkpSY>}09TJGuN_m_GodJJ;Ty%t=Z|Lpj3ySRHU zjd!{&UdO$jHQ*;B8=(+Z6Uo+GlC)T2F?)&M;&bsfXP4YRw4{cH(Zjxt?@E}Lz;$-j zD%9Go5OZ7V_}b$d$Cb3uw9KrtS*=;p&i&4JXwjKloc83IJL8?&Gv_=wk?ow7yzZ@& zk`p^~O~(E#b_SPb_*<~s@BwkRN}Ec1>TeFI7q+&SR3oGrOA7q8RXk<0BX)-BR%u+Q zeX@I(R&o5Wa`7R9tjtqHDt;~ArNFWO7|T$iJ$}c~NrBy*F3t3~{@{bH^6yr?T%~kY z$EFAiZt~1J5qH8h+cMiB+v060A+IMr`E03KvD?ScxyChXS8iHq!H%x`F}cg>iPN)m zsq{s*2Bi0Ss4UMkrBlVGe%F1{d*f5CZ3#)S;ik6+ly-eswg){-8}|N?{@y~yRlGn( zUA$SQZZY|W?hYq_cMdX&_5dD{m64cdhn zg;zkU{EiK0-Fgd4e8M*n-O^m0H*792&rQx<@vu0zIDLM4kzK4^cFIF`<@rAfZxv=< zUUI(kv3PS{p?BdPI@?{5efdUSWp8Y0?4GN8ei=59klp`eZnp9UU@NkV_+kB#hYncpy@QIQppulTpWQ6& zSSxtHWAlr^#`nod1xXb>8O`T<3B8=&{Vl)V)%kT*iW{DPukt4KxkG1zq4clEF`jKX z!S+=9Q1+!RH8cYqxaMarKP-(TA)?PR@HT&vsGyLx4pZ(hD*U&&3` z8s0|zS#6X#8aUbjq=&2!W6wGeY8<-phmS*nyH&178Iqd8Kl7jT7#~h8GFC8--kZC( zvpiSDqO>^JOJtX+3w4{h+r$&uDXVLH?iSo`KB9N>-LIoP3n~`8I9iw%VeNucc70Wvvz?ev z-Vx9&)voa4>WKB?Ipiw`3$?tP?6Z4Z;_`w^H3DrtL${RQ-dlc2%=4|Zvs7pJp0_QJ zdN$j;qTSjq(LY2aD^U~<9L$q%R*X~l`LSk;f2Y!Z?(ORdEypfqW>*z4>sgJg?pLkI zl#O#wWW~LTo9iR{iiR3kD7I4rFx?o%raz zIoHm6M^DYH##zG>YI6%86+LKDZZx1dMn7Er)?#kWPuE70-}xbB39`<=oUDGS#xo7* z=pLNYHn?1t^mNzZpqv*H_kY@@%vMHkH%aVEG*5C${J7D5<5l~+l!k|IS_3~>H2*a3 zqz>6FU~NC`7UyaA-utoazWT$-$CLL2qyB2y)_l4!sEbk8wtXJ=-Bmfki$=52LtSf1 z*3@n4yCUezZ|+>^a>XU_9BHff8^Ig$NbG(4n&OkiiFrkvJd1h*OD_en2D_C~^y;1s zlm`5I5Z`brt}ib3y7%t1;WuS(mz-;^uBcvq?Up|tyJcYg$DVS( z7C+^8XWHi3ckD*|tU2oO*M;{^_tHPcE{TmDojohQ{}Tg`YzBZe)f}3uz}41<#Nc|P z=uECVi1PR5K^sv3ARGGg=nPL#fN%%d93KPKcg5FL5gew0s*A2I#+F9~Jvf$uzMxZ} z9gPv_$sjUS4JlG&e-b3%4GQQ8e{U}zKFQxebzGMO9gj7mRT1M|1fB+}#$y8_Ty57O zs9awVp^MT*GB7wSLXU{T>go`&SZxFjgTLC#DNNBX5pC8H(kK+2W(O4pph{oX1I2;n{f#e7H2ha(f)KE8jHf9zY}C@D?H5G z`-66gq^VLw696ppf0n<_nO04lR;{@)Q+4{xd#ThRbJi0F* z9J>k)RKHw?ll5h?e2m46U(F;sW313n7-P8#LKJ4SPMy|dJ#%w4j{)@|SLU3jTT$zj>tI1xR|ARH)(|7&vRzMfT z5r|{i&Cti_Bi)(M5uJe5Lt>#ueGres6ZG}Jtnh#C3QXlL!-MX_2ALG}mq~qT_)l82 zzgPGE$Cu6575@L_viZjrZQ}ZySp>h-?yrj`naLorxW3+W0fpmDXM<>-51WjhYMe?G z^5oWmMCE#MeQmi+kb)mvBBXuLu_m zh;UPcOE@2xSA+`&M7Sx!C7ch;E5Zc>BHR?=63z$a72$#b5pIfb3Fiazig3Yz2scHz zg!6%UMYv!g8O}2YMsd4|?@>T}H!c=(Sx0!_v_f00LJ4Ku8z>{51-FcLTsq z3;?{@1^}dZ08r!}-Fm|u>buFx)R^Y~bl<%TvSCK@Vf0GCD>SOp4RPDrFWoBoZXR>YYzX58y;w}IH diff --git a/ug/channel/edje/images/second_depth_bg.png b/ug/channel/edje/images/second_depth_bg.png index 5b3c6243cce9d58310769c773fdbee3cb6b9b926..3c3251d3340aec00cb8226236bb86014d997e86f 100644 GIT binary patch literal 3099 zcmeAS@N?(olHy`uVBq!ia0y~yU@>7}VA{jM0uo0!daWNbKA-8b|2O>KsT(~+Cc8Y%;o)kkf9HskO2KTJ%=MN^me TFLMSq`WZZ3{an^LB{Ts5r>}c@ literal 22286 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 diff --git a/ug/channel/edje/images/thumbnail_highlight_glowrect.png b/ug/channel/edje/images/thumbnail_highlight_glowrect.png index b7c9dbe4376830a8eefa406d2c2937552df4fd32..1fb8748e07a956af64da3b09c40907790a0b8a5a 100644 GIT binary patch literal 8909 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 dt9D=)BfCN}ba3?@;_mlT$oDV%+ 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 diff --git a/ug/channel/edje/images/wi_progress_bar.png b/ug/channel/edje/images/wi_progress_bar.png index 01f58d135b8eccf2b678c67b72e9993b85ccd2c4..d178ffeb4e7990e2ea03e48c371fb119f71c48eb 100644 GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy-T^)#uK$7Hi7!tNrG!`uG-sn(o#VT(oh UhK0wCflg)cboFyt=akR{0PX~*!2kdN literal 3171 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 JPDHLkV1i4U*8Bhf diff --git a/ug/channel/edje/images/wi_progress_bg.png b/ug/channel/edje/images/wi_progress_bg.png index 4eb107e414a32a228b99d5c7e59a3af5d9968d98..088ef49b35cbb2c311159f0f0ad8a7ccde7100c5 100644 GIT binary patch delta 598 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 LNkvXXu0mjfRk@-W diff --git a/ug/network/edje/images/btn_down.png b/ug/network/edje/images/btn_down.png index 91946d8bec021761021295553480dc7962fa50d0..7d853496a44ef16bcf2f399557e23ed99eb13d31 100644 GIT binary patch delta 217 zcmV;~04D#vivj5YkQsjj0001-Jrw=`006K_L_t&-({0efO#)FAh2c9fvSJCd)&`K! zfYx9%wg6FUAeO+A&;qdq6G8(tU?y%^iW?^3b1`p_89Z-y{{QCYzA&~2rC0IKdsc$I zNeH*Lsw{LGV#hp@tvgYbS2n3!%a3YqmD-JKQOlugnZTEk5Qb5T)V%9f*5As^)B*f> z@@NMR-ek4YJm%haQmV0?hg06Zec)4_!cCK&e^t*1Sn0P}CeCshv$%+tDBIu{Dvb1D TwR&h^00000NkvXXu0mjfjj?2= literal 17853 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 diff --git a/ug/network/edje/images/btn_focused.png b/ug/network/edje/images/btn_focused.png index 23bf3110e10797618b2b3ec49c3678405a8c9bd9..bbd24e6a64886aab2988cd7a610632456ab3110d 100644 GIT binary patch delta 138 zcmV;50CoS90-FJl8Gi%-004{mzuy1=0Afi*K~yNuV_={a_}}y&0$TqwKp;$_=Ktsa zF$@g`!SRCZ;#IWw1%u67LEy>&6h2cL4F4((#GEjuGz$3Dl zfq`2Xgc%uT&5-~KvX^-Jy0YKk5aQ%9o5Ieh3lx$pag8W(&d<$F%`0JWE=o--Nlj5G z&n(GMaQE~L2yf&Q2P(?*ba4!^IQ_JGk|Eat1pyY*T&ei6rt&NPzxS_2e?FUX^@P{4yL{=`W zfxxqv)P3+AZXRe$nEg{0It0Rk9v%`!TU=a(lmE3fL{fZwg7~CFU*DoLG}r1ImxPee zu&Q%9xl$u6tq=&y@&zJGOG|#SP<6JtNOUTXFBBA)ESYif-@qCy#^vs<;en3i^hu5A&AjRFoJ0U6A&D}FDA<4y+%#Banv9@Kh zIcRGFlO2Y}5}3guXsiu0I22`O2pWTDFxhA<%wU*wW-tn4CY=EnI5W|>AQ}^iw*D^} zNHjJuh=xS{OR5zL6G$*_dt z-|NpRq>_bRtwPf0tcF0D1RQpIs*_9g&$lR{vr=fLT_I6)-1}&dNo5Ux>ZN+U%-nS{ zgTkPwR~Sw=oUT_kDw|YIs%CYQx)p5EoUc5uZPRvCx7QfY8EZRrUAk_=#fF~7o+eXE z@3(FJZI_J$omaZ9UcA~fWE$=r=^O1I9k@I&`sU&F!GXcCo6r?#>iPA-!CRw4SEm*x z#)pTdC&sQp(2J>w$;m0-hrMUu@8Qg%21dn<%+3INqLvZI=B6EFCt^Jf&B{xm;L%W( zGv>x4=NsVIO4VW2CXCV4>KXyQWZ&}6y1Br=y!$=-{@;E>i-nK;`qmRkv&GmSu0^S! zyVNL$+atR?BY;#MknrhohpXG9roPIcmm6!Zh#S;BIF7>RU2dTn*&$h?56^1)8uMQJ3!jX4&xJKk#op$(&+nd-zx~8m zk8a!C(wz9^bfo&&vf2+>xv$pnQr~$yY%djlEE{d|zv$++ZE`CPA2_kKJ^6*bM@N^j z)75^h=xyY^KYo07E0&bo+vkN3+b=2#d8p}WV%>S=Kfc4M;Zq#psXM3pVKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000E+Nkl^qzEw~wY2_9NMe)vW|GvrbTaeqxyOZ7N>}s3 zyW+h24!qsW;(p%u-1Fn!cLXydv#p!V5M%%|fEmCHU}hP>3}6P(N%OY)MKhv?I%vXeJczfgzI70 z)LN6))K)d2=PBWNp6V_ZbH!q3aqRNf`^LvE*8rRYa3yhoLWn`7)Xh)Me0qIn->&)U zO6@_T(a>qw$MX5Sx1)D^=O4k+p3l#I_9hYS1@KGK0KfQP^z=(F9(ei3pjvxCqzzJJ zN_n!cZ+qv>smc8pFJ71i@KGylycXddD3>em96J2U#KOX2z1eIs0FfquL`|+$YxToN zUi>I5IMF8^CCiY0StA zdxvJ$?uSjoCe;nZFbtc|4GskWMgV-A6u^OEvHQl-a@80jk!FB(uA3+OcGLkplcWN3 z%wVmf)VHrqWZ2Jn1fVC;O2iO>Qm(##14=~6mvY81NRtcvU}9|ZF#sBnaRs1B9v~TF zR}@I5^|G{OfNV$-X(!rWY)IO1Vai;1%K$YQp&fByO-3ZIKw{R8q%nq=Ex53jhO{Ft ztS#(;Y*-sd6d0r4Z+#EcTDp?PXl+4(Y>d!Rt?VJ1ZpDHi}Tx4zDn0Y;iQPLbWt7HJF31VbcAyU|QAWTTnD3`5$HMA||_ zm579Pq#G0G=ps%_Us4Qdw|6bf7F<|scI8mXXq|iz395m-`}2%wcp#GN1lwsXM}?1loZT(Hdczyw^F;Y>5ZN+Ru!0@;EBg%Hw}a_-?; z69w2*N0>8OPR-5E z>G_3)Xk#Nx#pI5zuAgXXm2TwKcO5 zh7_m#`CoJkq(oP-sJ4|#a$um}|8qSoe1GG+Mc5j=^9aNa0B1|vdfy)&9$xg6ugQ>z zqGp?=D>*2sSX1OpPEMBBR#(1+?a@z9aqT00000NkvXXu0mjfr2mJ| diff --git a/ug/network/edje/images/btn_up.png b/ug/network/edje/images/btn_up.png index 4609691a1fc2707bbb3f36278900da023b8e57a3..d13c7df5bd147b564a3df5f6bf6ff4b55002a69d 100644 GIT binary patch delta 213 zcmV;`04o2xivi^UkQsjj0001-Jrw=`0068>L_t&-(|yoENxgor-Qz<{)4+#U}pzb9?rv=Q9?F)9<9^bv#d=DH@v3uA9q4%`%cc( z)iGRHq~Kliud8XE+z-V8zW1BV7x~Ezxk*ZvIwJIKL1|cfV+c=5ur=5N2Tt@&)2F=` P00000NkvXXu0mjf!CYd9 literal 17851 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 diff --git a/ug/network/edje/images/check_foc.png b/ug/network/edje/images/check_foc.png index 95b02f083fecb74be384e9e7b71e5425a36498a9..92456ad3351499154316124609ebc0d5942d291b 100644 GIT binary patch literal 647 zcmeAS@N?(olHy`uVBq!ia0vp^1t8493?x6=u~Y)7IRQQ)uK)l4ckLgfNS@=$aiBYm zOM?7@85md$?W7s=UhmOhp7&mN{yFocIF(ITMUU_%)WtB9}P@yk5-kWBUE?J=@8OCf(KR z!gihfnP0O!-zM36^+5*376B&?5Fr`OxjrH`dcLi3pwr6((M* zue#!^P*YVue_UMe`ux0RTQiG2vvrIA3%n{kczk)3oW?uAFd9 z=KApIjB?+3<8>EZecY6vBJx&Fyym|_Ctv?x`MSE7uG5d-&s2*F{J6|kKS}>;XP$oA z=Xc$5aaS@IcD1&Pm)mGQ+TJc+DW|olUA&q>+I6yc?IUTI#p3o!8Lpev4K8Q6bgLV> ze07gTe~DWM4fECD#H literal 18316 zcmeI3dpy(a|HnUzoRuPn#65J7>}aFS%wdF_!eml1+sty;1m2>v_Ge>vL_7$7jnj zS9@iJ*$MyvC_6gXdWhaRV=p-w(f|5~Z=6JL@*D>r9sodV#$J$9k+fm}P;g_BNXwQ5 zvH5IX5Ss&aB$1#TE<2DF!T&G{>U<+T zd6lI}dVBB9az8)A&Q4nUQht)u_U$p-X1N}=9V|h3gwj29ZcM@F-nJQbZ0!=bg{1fQ5W1QR$(p&P?0OA>+yySAi(=* z0%4K9Q1&bU5!_Ie1B5O)Lgbvp(do}@vQ|Q3HbaE`)WuG6F=~KS)OMQ#fYlO6Om60U zPat0!@Nb|6bOOs@fd7JxPi_D)x$m>qLjd1hdb1$;sQ^@!kz@-5nFEKLmv6NLC`dpp z(5Vgw+=T&1NAExf;OI#}*rcLZ2FNJ^NcW`pg@E*W!2gngfdJT?1*k0<@Fu)oRI1Wr zBqEhnMyQ;Nvy1hWgN4g_d&6}Nn;bP3shLuzP_wPzHIZ3b=vd73hl5uEAU}1MXtaaF zf~IMuO--iTE2gc6Jv%2esvi*0Inv!+%&`K1NBroP5o1L8>=<*In9z}Z^ZKNN{1o%o z4kZVcO}9D$dGB6#SJ&O8bvC}#E8ZJMm^G_~-oqguq6wde-ab70 zcy26uRjj@A`-e4G-#8b{Y2GQnIiUSXiv8!4ild)(Zs^xJ22@gv)H>Z~hHtmc-ZqFX z(BERSbK!+~*GK7(JB&X`5j(KJ(KSTK`c&A#RWzx0P772heBt9E02ruZpTB7+ClwR4 z=}~jUXusvKef~TkCeU$bH~{$B&V`e&lv`eu0|49nSfiuX+HcNl8VhCSoS)i$Uh%WP z>1La`bu~6BHVX8ZIb8pRhvRGv6B>`|82KY^TIpbf?m-D@oN4eHuT#@3IMY8;#UqTVIk>rRudNK?1f?47ST@WW~SNJMSPpGkGrba*~?6zEdjJ0p+ok4E1u*8L;3^ z!6mL-ayr%g5`d2ToKS6#+7(;oZgErT1gY|%+3d|r_9iId>xW{K(Y%|^4 zbFDaNdTR=ibP*|hswrzy7lMS>*V-IgY%HHfYdEHVSgE*v_R-~srK+~Pr8OUmke(T9 zCzLmpjG=H9Gd|R52B1-i6bEC2 z+cQ&C5i0AGNOfj&XKo>(7gX+;;&|*I^7Wb5ms}6?Fz7Wtl!I}YZIE`kl^$Fsi`!)k zU34kFE4Qn*%cM)YOK-qeAveG({Ga!pj}1MptXZnnt`5ystO(+CR;B zD)lBpNjYKGri)2TL#-T5Sxu%^gyxY<=L1?dlC>_9k!GmpnLSz4v)En~qY9%xXQf_I z*u8Z3{N36{2=bw#14R#t6ukz$8ptV!{5&_5F7Yz)>^vlYGricWD0kUΠ@;A@hTY zMa+Y2vgJR~KEqpNd}^I*-AMnq=O0_$SzQlRq-m84jP-(*ixbwyV(aD~YrOa8I-{!0 zVV$aEi=sn&aU_$aCf?;9gS!GPWjiy&-|ykO%J&!+W(-DeeW2FA@bNFJCnBI^oGBNEo7Aw?@cS#S)minJI+a*QB#TwP9f$E7vpUhCNe*S;^Zpn3TN5DXsyYL4@aM*WbT%rfVtxZTPB3 zQPX@ zcCOdRL|j_MiQL;%^CrGf{SbVnF+SbOImvbLu2GH z-4Sk6r00@W!FHmB5<;%qvf6hYKU7>-NpB9k9@zWj0W8mVT6$5& zlZJ#jQ5q>Y-uc<+E*G5HFWofwvf+96yy0S(a`o>V2R7DRfndYiRh( zi&EF6hGh+=Rotn(c}wTI1=%Cz_M+$Z(=PsTb|kky0;X)L?Df~4`o{(w+sLloA^DCW zU1fahx^3$ZKa#!i$2uLR4q}Z>_CWTM9M9}ez5%|c-L4W_Za;ev_1V7dkLi0b1fR&I zgXGJs*50@qY0QDY*+=lJL!a@V5k}H(xLvH;QxiYx2FY3&R^?^gZ+IeP8_urg}e62ou z`&J&#;{KVzDE82Wp|>6C_oKNBhMO9y?nNxwzS(1$;5AJ9!Y(hGMzLvB`c*NK{?@h-eMvS_t=s<-21tZ)J$)lpQkahZ=|7A zLmd(Q{?_w5O)Z%%douEGWm z-L30S=tjfQpby91dR{C1l%|!IHYzQZIry1o0&4>RyatO*;Zt0k@icZQoJwa0FyMmF zu~R7k5G(~8DlM47hXyd1tS}4x{;G5OP!`=n-y7?Kbm5Q~K`e(TF2gg*l}w8Yrs3%N zmP7@D051v<%HUI>g3ypK9$sLfKOPq^`aD*Q(1(s!;RjpjTaPserMN7ElGt1Z6br|~ zXh<{)YKDWOuoxT)Wei0lQ6>l!5`o6SP$)dc439E}e!29C3ZhR0EdBXp{jxzGIg-ObcrbYEwOks*ZXF|xZ}6*5&}rY|aMp4|#`(}`2u27aROG@FbsqK0 zE^xkn1Nr9uLpQ$3za2fF75IH}e()Vre(S~%uzuq*H@hI#f zBo2>6P6{$n6BNTml=gHgpZag2{7@GhhfQY%M*gcP-)sID!^H*f7{=pM!)OdgTcT*} za2AV>$1O(UP&676M#Gu~z;HCoVi*-|hJ;a3i>ZM)Is=WR;>HL0qx(;xZP~Q7V>$FC zG+h)r5W~QlU}!X$DHdl6!=f=L7%mWrg<%(Ca5Pf}HV}mg_!@eW`%j_WxGd2oL=Bl# zXRP=C-6nn!=BK6{SUgecL{3U6QDTj6GoFm_A4|UqA*}K3fWzY$TA4

>zn5nH`dP+`0prB#GmB;`!*ti7-8ZPej?O( zt=|XXu><)LR4&7sDawieunZ>x{^$XYOhAn7$sw%&gE`<)*Zt3C;NLBw|L-&KJ$GqA z)G#K4PDFf7+ph)xZqg>E^2hb`bsPA3{SoLid?1?}O63z-p;RUV!3kp$5Z?>Gw@LVR z7s8X+A#AP-o6aDb5D>pA{-u}b$F*e>zpW8@9`-g+M>~=!3TJ8xL&H&%!%V6-DbCn^ z3@_SaMEOn~U)v&|pUS}XDPwy@$lCGxXp{+3bcs$pqU($AWF745^B;UC>tNsSu3lj* zJ`w$;IZ*K=ud&$-jv`H&j+MRaDjk`Hzl~l^8u+6Tp%FgO$jdXd_bxM7YK-WQ-Vu8 zACM}+1p*@8l;9H22c$}Hfq;lNCAh@%0jUyPARyvR2`=$`K&k{62#9!7f=fIfkSf6i z0wUg&;1bUVq)KpsfQUCGxWw}TsS;cuAmU94F7bRosstAZh#g#O#tv=RP^2p z0Bex|@XTNI2x%q&Xs~y#zOV!UrtEUGwI&N%U$j{ytGa7iJxap{>BZ&ermJsFx|@`n zpMUTKrHHb1=O0kY2lo%LA$q6cPpn&4234$5P)}dpniN1?C>MuTcl7s3$6mhL-frHH zbAj>}?1&U3W-0Z0dByK;i%Yb!QoSavc1;=saj_Epi7}Rqi5SS#v6?yiqI3R;e&XJ< z{niYBjaORlE22A}$Es!qTRfcqO6NUr7+4+4c$i;!t-4Ld7?KiuM!O^*T9Gz1+FXfg*04PKlRU+H;wFhJhVQSd%%@kSo33~Oe7$6x2y?w!aHQH~D@W71P&PJ)D3+v7bYM;Ed ziU@!6k)Gfi58@_76Gnb>@$keKZ4LODohad6sM) Qd#Ksb&egWm#y{@A0MFV|1poj5 diff --git a/ug/network/edje/images/check_nor.png b/ug/network/edje/images/check_nor.png index 2a3e5d9e284741d04dd7a24fccd75c7d70f997e0..2f2753b82c90f1bc291b745eb11059032ea7a3c9 100644 GIT binary patch delta 610 zcmdnp&-k8Yf@D1l0|P_OOPd1>3`}O8E{-7;x8B}a?Z@mWa_r;g9ATD~N_!ZaTCOy? zOtxbXl4)W&8y)g+N2N%HjJT)4f&&GC94w9#Ok`Yy6;8i<^X|^MIcLAG&oP=Cf4ZzZ zP1TFez5PgcF7!d z?lV6%>P`HGBwE$kdyXWZetJoSH?uYE#k{_k7hmn!?*Dq~`M673d#&gGmO0=2x#sid zxcX0iyXMckJO71_z34I%uj%Q`GE;q4TN)ajXZsOjwKeU?i#^{Cygc=?H%ojOlg(`Z z4~Hjd9NNq{Phwf5ugIgD4AU#_%+ffvdH1B7Pu7RIIL>>!wEk8Y_oA8Qa?{f5b#G14 zI8(gyMxK+%^POweUUk@3&U;;S(r3@)=R4Q4pLHpm*Uy??o#ZlazG$s=QpmjZy4}x? zoUo~{HagpJvC__b?yF8FoBg}9(vluzpObJ94(xbdAHQXe#xd@VAAir+D00uBt; j(kKyz5?|0*+?yX+k(4`={an^LB{Ts5Q%e|k literal 18363 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 Yy=rbEByQ(SJ_BuIX=jmR?!M>00N)aK8UO$Q diff --git a/ug/network/edje/images/ico_dropdown_menu_check.png b/ug/network/edje/images/ico_dropdown_menu_check.png index 9e7d114640bde4abbaac4165a1829ca15854f039..b89660001ee49b9993cf7b439b46f55f5722fb1c 100644 GIT binary patch delta 212 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 diff --git a/ug/network/edje/images/ico_spincontrol_check.png b/ug/network/edje/images/ico_spincontrol_check.png index 3b57522f783466425759203110f54effb8fe7690..92d943a562b37e0584403b56a921d93d2aa3ba80 100644 GIT binary patch delta 190 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 Z?A^PZanHR#792U?V6)mf-)i&je*=kyrUd{1 diff --git a/ug/network/edje/images/ico_spincontrol_up.png b/ug/network/edje/images/ico_spincontrol_up.png index f5b25873540507e3accfe8b0a377d73872511cb0..729f54ca93c6f5e0bfae1cf65f9dc831b7159013 100644 GIT binary patch delta 225 zcmV<703QF(ivjTgkQsjj0002}V%>BA006j2L_t(I%jMHS3ITBx$MN@9GaHu7dM+Sx z0L~!E5h%HW9KwPeL9U?40XTrjlI5_OsrlMGqV%63E8c(id+&YfE&c}iMrFRD{43+g zP)6b;Oksa{<^U`x*yij=kuA5{QTmLj695ns0}#-7mofBp`9fKXCT9f)nDk7Rsh)D6 zf*_RHYceC3j`3OR$_nqEdMq{F;3qRxjygWUed@T3wR56oXWE1SMD$*s+a&@Zr1O}Y bU;N=$;)Yx}-M$SS00000NkvXXu0mjf?(Jzm literal 17871 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 L&8EoOZ|na6=+B!9o#5)W${xD;04-5JU@K_!^b@ zwwRkcNhT8&1}o1g63*kxy}y&(7)T~8kP*r|#>cXJGG$UI1tNcPBbO4D``2L%X_9tn zmQND2MdPwB>#`v867%F>_b@*=#Lvzdr5tg4@;1mfE*&i~qHM9rK39(TBY!FM#x$_2 z%Wj#apK457VJV%AbE0d`=uO28a<9@y3=vLUwDN4a*wUy8f=P_QFBQIHgpi{xk1{G; zSc5)}RmTeX7RG-h0>B>iy0n-9=5#S!u*NX8I$y*h0GoVBZptLWsuiG$DIU_yX_+so zD!}g~#L~tjM_s>j>u7v(O)1W_-ekxval#8&(&al0(?|&cgd9FHz#4ItJFsof1M^dr z?a_|mF{jV^F^hhfgxF)`rX9F2NX)K@7e+8?)%T5zv(0}gcSM<`i!2pyN`<&FmY3U9 zvTT>;^sDp=)^O%I?k754gGp!<=O5kFQArCE#OyEIOE+cmhc?#=XVOCu<1PMEJ+dMj z^3~_4^*sHYZZN4nz%b(P{%MnlpRh02#*~m;Kd;T3Nc@h;fc*!(t3_o}gwq`W0000< LMNUMnLSO-cawPW9 literal 18239 zcmeI3c{r5c-^XteB1;jK_>CnYvoUC{PuZH5_H`X(w%%a^3GMYPz{ zqLfgULJ3h?s8mSlOV5|2#qt|ebXW6ypX>QOe>~SU_jS$kIiK@+pL1U4bIyHcuIt{r z-riC|Y`GW!020<#W=`Bs)v1@LF!x>QafuuEV*$&`jST?eGE*-BAnn*v01$Iv5Q*#8 zdowvqwl|XnvnCQ@tRSWr!w&?2(2fjeI?4HsoZ;xR_og;+k%w)VPD?~#PNw@KWfRr4 zlov>^i&M^iyu`73k-52$LPJ)ZV0?V!fhCUG3-^gV66sMs5x@In+`ijiUTi<<`=Da< zRnx?!hlIYO;f#_Nkt)%JN3C=n^&%JMn<_1OzPtWL-HRTCag>-E3y>Bqp((S+RRw^L z5qSJ+l`4^IfI#RyaZ#YkF1-r1B6d=$-!yfzK;#~QDo)}W8_`Hvz&JeKGzT!Y5Qxl3 zQFjKigaD65s%JN_9u9b{+WG1p5Sj5Yb-Mtt>9Fz=fviLTCIiNq0p4qYqLvN&%mFeA zkoB^;fdwAH0hG0?mlbgCGEmhlEq(zIT?n8Yer7qKn!bm+Iz5@VRiA%Vn z9Uc#DmMm^=){ifh+zRi%EDfKe+fv9f27niwh}H>hWXbZ#wZf796DL*<3VCl4 z&k7#h?{z`S_!5xyro(lZHO0m}`(WAQ$Gts0kJjBV-9)+Vx?_S~v$e`~-0xEaer$B) z`L&m7Q9ABXmO>w&*W7t;dwNC7p#^(9pS()29J?$&Ii`3|<%YFq8CgrV+i`JVyjj|T zVV%<|drc2%-dx!>NqgC){Y8+_r3akzAqZ?wgy*?a1wYuVk|uMiUXB95P&u>uzJ{n^ zr1$O@Eg_TdjK(dqRsxY;)`tQCV2ha=f^@sYs9qER%(9}i&Y38@uU@KMCA^|~{*!9) zF%SJcrfN58Or=f5Xpt*|JT!}TnQFu|om15EK;Ac2#8f$Y$0V^N5j8GXBn??opDCi5 z)fyF13xrG>L}e(-9dQDl`^c*CqVlQHAC;@Egck2tgWZagbyTrQ)U!f6?IXcltQ3a~ zgXUplH(OjyT-yNX>>7)yutXn@y5MMdf8ix!S)Rf2Jr*a#@6tHvv;?`V^t(Y9mm40? z&+fZh=q=TeKp@tms$MS@(Y@h^Le$loo?oNAAc@*|UZrSZVcqg`8;S(W_l{6o&W8vs zjxw)Wpf40+3Zp2QSdneX_K&RcU@O!xi#iq^QTB{i`y*P0-RLeXy>P6td^@L-RhwEUJ$_^ z)`qQai0;YgsqNA2QRq<~+9a0YX&iX!qw`A*r`ta3mi0>aVtR$a6deX=ERYE%f02jM;T{dbFMCWdPK=S`L1hQ;~UG@ z$*%?9hb)wcS+cu6j;^sReW}P&`m&IvXH#r*mfhRGte%82K)+4tOO;Axx{$R>wf;xv5N%SfaNa<)b^F)(*PT=sR##TH zvFo=ROmng;%hAkPYrEFAzUfZWiKYjsdg+GfhdO=fed!O=yDocd4Be<*npb)Sw7$@@ zF~@DNv?3sSBi8LS*=3`9iN%?WGblv`$>WM7#1fL?p<@6ubP`IncS>wP5L zSzPL0x`RUZl&4?5SzJ4qRGGBn>W)9h4MikkA4?W0Zd8n5UksAPZNNQCYd$t;wBzRc zqi>LOa*K4!Bi-&&nMTbUj11@WdzN&0dKr87aNPdAHoF=T$pl2YLfzAb%AR$ckwEts z;cX)s=_Tnk19_ci2lWRTgRxJJ-@zQ$%yiRb->q#RK6mVGH4;C51m)XR6yZR0h@xNW zQ$m7rt%MF(s9cr1GTcf*(J5?uX zli`!CKyKtp0lMJcD3hp7^S*ox|3mqDyb-Pw{BYs%fXRWZGLt1H3A@hh>a9Mb?A`F! z!86LEeJRa}%?!!t^%1Wh+!dj`qU^7YShy-WHrh4DD4rEZUfzmM)(dHULS%QDeKtF4 z_AH%_cEFy6uhY{a6d-)?9R^o1SB>frUT$~V$r)s8KbsX;gjTVBfZw&Qv4P>(ml-d` zySK}yARF9SVcE?!@1t|&@)3)*aYv19q5k)hO1`RgkUv zt#OZto3)hehpe>h!VmqGSfLlDc2oDXc5m69Rrv=iY$a@;rsFc@(ze0;bqsNp=-r1B z4+feRDBC5K();PJytXwKfzcNxZU*eXj8r-za?7{mV9|UxxLB!a&TG;}jfYwy7wDj? z*Y&2ox3NbHGgmha+$p);dC=h4yW^7si)$9YI8=H%#>N${NPbmWs~T{ zb<76gBK(zorCR>&4uu1*$;Afv_2QCq5S@2b8e;QLnGMXWb^$J-|l2izUVNVl#_ zl+Q643WOzl_Z7=_$|o<``AFkQXs<#n^Y-=BCx2LqAU-|u=sZ!ny^q@5cU7A6qRo7Af8W}QwauG{u5gAf zboR=)UU5x3i`(ko&*{fcB;9kUFF#hER$R8(w`?%H^3ry%(Kia22F*|3SBCv9H~FAF z6KnXiayXnhdUJH7OYUhz(5ms~#`4D@s|L?hI8}+RUO`X!UTcNt>E$=sc8K@3<5~BF-WS5jf z&mXXz8k63i&W||X&Ha+JEGcPHNHAr1jH(Oo1OS{2gGA<#?QC&Wrayv0V|s#!P=6Np zAPN9@qfi!w>I-sUo*=D+0E9UVBg2Amxhz@db~1K6rFBHwh(KsGgq!QwEO z0kA1uiYGIeW2mAs)zJ6r>$v<`-x~^Ge`Uv|hzzB$kZ1%7`I{g+JKkab{=bZ5bIiAK zd-8Q;zig0A3S)stCy>ny4x)nQ+rR*h>aRLMqkh+61qb;}^Py3ZpdaYZ4PkRTkN#yB zSl@nud=LMj8{gf(9X*HPH9I*!#7=pB8wQ3leiJt3nF*Utg_#+`bMp^J3<4<}W)O+V z^drn<+3fEp?$0L;S4IGh8N$}YBcZitr+QWhG^21p0yh;ga1;ivqenvN<8&}M40<&R zi$kI2h|JW4XxMSno<`wN{)x&Db)h;;8pA8>AF0gN{87Ws4rd*}=1>BtptTu+J9Y$v zLBpXzFMUuSs}I+uVRYaqeGCZ48lZLIpuQf4dk)4>L7Lw5Ab$-1N!pA_4W7!OuhKNG zG)-3@r0T8lf@3{(scV(ZnDQ;p-Z!^wd;E$!>9Da=H?Se%KVuMqw&`{;uGW@>3eBVB% zVy0I!jzXQ-QpT zrWYrK5(JvixjFIQEW;VWA0wd3c;wWc?8o>&m;*Lt+y8C`{@D`x|2_k=xl8q?1kgbm z0r@R$zZLwmNt>CUqtr6HxmZmUkbD};PtFI5&L7?Z#%&9j=XX-wNvKfPWPhd~&bh_NT$aDKzN&cT)g=}ynI{`AiPaJF5Y|~UOp}e z5Z)#q7jHfgFCP~K2yc^*i#H#LmyZhqgty7Z#hVYr%f|%)!rSEI;>`!*<>P_?;cfD9 z@#X{Z@^L|c@HY9lc=LgH`M4lJc$<7&y!k-9d|VJ9yiGnX-h3clJ}w9l-X8j_ z@4=LPIqtvxIyUX&r81e?fy&fT z3-P^JR!UehyJdXPurD)YiwT%-C1_*Sj|xtyXd`zY+mLg#6_8c(J!*4^CBkjU2|gP!g8~JMGAc zFOca^7W-h-{?=!cQi@_fc~{B1e#McvtB&xTHJi^Wk;*)9RC72&Iu55V2d>iZOaMpb`ml#U4qc7LQvk#Sc(pek@;^OoE_ z2$?%&4UeyM$R9#C+I3`}OU>R$xt$cg-hE4LJL1Ux)Qc-_i8;^fNJc$V+}9yKLevmU z%GUT$_-En{2f2ejsPo%S^*Cx%eVFi7sqHLhjb1m<-teHjx-WY~?8>I_*4RnGD!D9~ zM}nILy>>UTJ=TN}lXh3+ZE+fP#a4H^vDF^bOb$K8NSppGyT*+wUjAI^%Kd$V^S4F! zse7Q_S5L06c<%jiVBR*QtPq*iEE^^F{HBvWiVWb09I;i3&kbK}8aq6rMH~dYnWAA!rdz z(0DmDKa1O}Z#Vlk7d>pedBrmGW`6tT&Fruas;tyhm{$e<7r=koGCVrfre;ZBHLEEV z{uJnFuhQD5ovJgei^}V%9_YRnEOA7wR?hQ|IQhgCQc z&NbRr0`BIuA282Nj^2h1=^M^wr#BaGAP zX`30PXsK};v5vf9c}pVd4qfWK=Q-vBh#y9U7fB!nfN{1UHu4y_WNRDI%p*Ve75(&( zqy|w>H+@X-5g}dz-Co2FAZG_&@L)O8IMzxRz$hpb?ZAIhd9H>VBD64oh8FcL|I~5a z(LGP=(NXPDQtLIXXS$`^k}}?2CJ>jAbV9MGNEx@eBunRsme}#trAZ}LI}hUq>>G_q zLSyRHcBQmm!zzY+E~-hVR~}!#%QM7*fTb&xayz2IOgSDHSK*QjAqH0u?BxlQoS}9Z zkg!$`&fz>d09k+D{3Wo|>REqm#I}u7=HHjAMtw0VX%nYhU`6_{3akSE74R44<+Coi S4nLg$0000G~+igb`;Diw(e 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 diff --git a/ug/network/edje/images/modal_dialogs_bg.png b/ug/network/edje/images/modal_dialogs_bg.png index 0ae9c5875e9e2e4afddd42325caa8d72a01a0e46..f772b061ee57d58ff8efd4d5fe70b6e2603e3082 100644 GIT binary patch delta 848 zcmV-W1F!tykpbHVkQsjj0001Qm*|K900SaPL_t(Y$E}u4ixfu~fS>BBo{vnJU1pYH z;>m-jKynJfW6*>DKqX!_A&^7z4;1_Zg5n_%5?FIxP;ygb5!8z(59%R^pdbmEHCbW; zGt<*uRXKEhbob8gEa+R*%yjqE)9?G%`%!}BA~;O!(Uyn8Z*DGrvlBb9zt5k%xwZ4{N9&~SxqpqI=J8SwMT-tS`V1ItZO$ilpUfw}e9edf zeR_0gp^zjIRce3ZL2C>d-@Ry!T`p$lGGm6U1z2=~(KkCS!*5 z>Cq!pZ&4%#q>WG

O3xuZ!1CXp!A&*u&YLHF2=FHtC@ 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 B5M%%V diff --git a/ug/network/edje/images/radiobtn_off_nor.png b/ug/network/edje/images/radiobtn_off_nor.png index f6c3522d9cfe6eaef506f127b95ecb786abf1174..6bd4c7e4f58953acb06313278acf48204935a46c 100644 GIT binary patch delta 564 zcmV-40?YmPjsd|0kQsjj00002G$ADb00Ia}L_t(Y$L-cVPg7AC0N@AXpyDR{0zc~J zVCy1HbP#hQx>!fbB8$vQq8+R8W7a`kD5KTH1U>O1k)$|C>*6FtegUxgG3tOyX>aMh z34??0baQUrC+EE9-20w^pLQ;G?V$A!W4r%6grv7)icUJ}0M>skS#$qNSP?hUQsDaUtS;=Fyk=}>v0_tGK8$r^ zMLf$iFL>HMx2;$sGq!+{ZtMt_Gh<80bz?)s)vQ)r!+~yW2VxUjBMfIv4?|e*#+Gf= zEnDPl)U5;CvM;G)t z$s zDp7|gk zlU^bX0Dzp0wYdZTU32m!DbD|U*0?X9|0czaWFf`n;)&Its*sh zZG_6n<^}dQ=U7;XDc((s5RHuF9a>U_RBh z90fdq0=hQNRBNE%GEi1KTjl~FDGTV@M}(~a#C8F0ch%JVfxX9o`Ic{;F>hAp&+gUc zlR9<*Q>>1%2-z$N^^tIPhAq{qwNY3(-;g+in6w6VE8y5-WQhK(XG8Y^AT4?Uf3!nm z{sJgp%jrY{$u+{*;b8c|`xDLE<32(JH&wKoo#(@9%4W)h7b#HwUW%c>8%*1EqhpOc^?!_+J^SkWl`b3&19U4NW ztL`^Dy5f#T!vwjrLuXVJ+hG6{?7)ibiiV!uN)mlA7sPZ&I#QlJaTBM}Hv9J#+H?76y9#n_iiVtSF~jRJ5t?wKe4$X z7G+X~Vt!^2;!;ykuc`9WjCA!!C)^gRDv$hvCug>{czQ`Sk2zRm8 zQF}Z$Y94&{t_WPYk^0>IIOOu;BQtEypCL5NZLn-$IH>jMWF_lcFHwuR_mu2;K>`)4 z16g@DtUIOqcDG))VzL@=g{xoU;!Exnaq`iAV zbd_}6+BnTPMQu1CD?1~*JzK_U$f=qTm9@<=DBsda&#@~@>QQ`-Q+CRR*N%#gw5-)< z!?S5;nFNzF!LDQb#a(Z&yKRR%W1n_@dsk@%M257u&|gQzQ!Z!U&Jcrg&GR+QyM47w z633KF4jN}?okZdE*6KMIIt;~9O(eP!eLfuLu9xc7%1jsvKF~gYa7E_|#SHy*#R$q4 z&+Pbwc$XaO9Qz!r*Vhd5`!iEAu3410j)usaR<2#XWw{kCs&-~duVb@gTc&j8LcB5h zT|O+^GhOjyiMihmM&>|b>h*2B)OF0v_JC`>pOk{&V}vp9PnqwmWL?AyW!1%7WNQ~; z?ilzmG0O1DmN)jet+&_U(ur}zgy(ysi|a9`8!Zo8&N@V|*wUrmy)jU3CkZg=-LiQ&2CO0K_Tz1>!ze%U)Y|#~p&4unw z8Lk6GrHrsmDA#lsr%hW6E%Q?HG#;1am1NGzEM6b8J}31t?RLSNqI*SImlqfGJP~in zFY+!5BGTLyXqWHg-yVp$787(e=Px0R6Sw~9O$*pTkMyD=J@`ZRKjnUT-p+}>S z_?Ts@;A4ttuV^o*zSX&uunXgN7zZ!Im&Qrl^DI1)JJS^^U1XN=lCVjuNn7Fqjp9tb zQM11a6`zy3vZnujVO7f!qvL}oCi>^zn*01{QTjexXQ;Bvi)*<%P!}*h0WH#93udm| zw^2M7bLBvhws)glPQPc+9w*o#>?<;CPWY6G?JMLRTgvwVDZ!ixlX zhFtU0i*g+sFZRECZ_xrzsL^UE2`$1EpT2>)QcB6ZS6j2%gm8v1O!!1F9B62}L~Q!N zs2@<=Rr+54@5YwRr6Xh5d)Hf>M4a%A)JDpv&1m6>N&f!qz7O%E-dpq5d;9cPiZ+Oj zNvO#eH5ETDi zcI7^oc(}}0nWhZiVV3kZ$uik7X>_yu=Bsx1vGtE%wFiE-YFRexxIV@;VC@j$9{p+G zo`*5Cw{?e7;!=WwVIN!FT22-1>Lt~7?3l$IygHlvyuo7PVDIYE)wNsRUg5sI(9$!{ z`HFMWIrMh#SKL>a@tB8pl_keZlJbkUcoq)?Uc0o5I?|_@YE;`cd@bP3!imR?sVL*N zYeRv|kvk*rIu^DCvzL$6R+lvUEg#4$wJY5|yr$o@8P^uxXtH^{^~qrCUpvbD(uV3= ztwzMdLhHt(-$l*B&5Sx0RlQGc-|N&>SQM($ggw^xITKe$uG36a7(X>$ov*ME9{i#4 zbyID9V*Sa4w+S&fymzOMy()XX_*_fHt%{}B@A>N?wheC_?Z4^Q>Zd$-x?`4I_io5v zS`!{0&%bkgkU1K&I3{L7Of+%mGf5BH0s!cFbb<@l1-}kWVtT`fWTra>=I_noA4CBF zW8%*uk~}F~h&zQwXBevvmfTQ<(8LxSqzUrjrdqT<{wpI3}9{F@PCBNxDb` z#0UjL80e!A2ptGg7oi77=)#dGC<1}jH$o!}Azv?5tTg`A{$68XSQ_q2RhmI1&lv*MM>Y7+j)1l)+J(68WZMPT`Q)bQYJ+WI!f$ ziSEpuTw_($$%ejPU&rOm`rZ(O^OYT+BHW+If+JwM@IM6M@q)v=y?-0Y;ad3ed-8Q; zzip612w+j*4ipY^C!0jE@TD-gYQO6Qne<(UwUh1jg%6nor+87k`5_#B=Mlf{0_)p1 zkniC?b>qAHkE7?(sXr#?r`So)AHyjA^go16dZxm@q{7q;Vfgun#<3|xE|X1QGQF@< zS@z@m6aVXzmNT6}X8LhfVBp}|Kc@PJ5XGFxrC|A~s1McEha!y#NIiZYq74jJ>Y~uP zy3<6aYJxQI{In+%xx{~?@>5-~4wFo$2K+0PA2om0z~j+23=WsbAW>}0vHY>a=yWm~ zX^7B8ko8GW>MC~x)ZI`Y1x1ml?obrffJ#CV5&B3f>B}I04*x~koJra_nL}Tt$$V)d zmADFtBJ&sas#R1dilVQ_*GK3=^(gK}`V<6JPhXe(O?q1RFVc2wI)4))dQGb{+57)# z6Tgx9r73GVho3qD(^86`SYNgoM~ctSrQaN0^e@{5i^%3sCRd@c>bGV1eSi7BeN4uD zSy~%k|uMN!l&?4>5p!GkNg@&|8)ZY9px$gY2klv!_R}l5R~v!QeSHQS%kx+ za{Y*GiYbks6aURJoD%#w0<4UIPwvTH^#6l7;1GTPcQf$smeBwA8TgUABo88kMj>P2 z-_rJ5!M~fdsj2*VJ$>5-eqDbUG6_v(vb~91EZv((qrh1V8V3HO@JE}N?{^_Ij_Ji@ zs-3<=?5$VLBbFs*;t$~WC zMNQspr=U9W&xI5$e`w$$aP19re~OojIh}t`;7smxdaJ(1fE~XLbp2D{G{@J#sdSol zdi%0POqKG_hWukG{QJ4|m)+z0{`#N%@MA>(NmY=Run`at!KM(GU_KzP5ElrDU{i=o zFdvXthzkTnuqnhPm=DM+#03H(*c9Rt%m?HZ;sOB?YzlD+<^%Eyae;scHiftZ^8tB< zxIjPzn?hWI`GCAaTp%EVO(8D9d_Z0yE)WpGrVy84J|M3U7YK-8Q;172ACOmw3j{>4 zDa0k156COT1p*@26yg%h2jmsv0s#?h3ULYM1M&)Sfq)1$g}4Os0eOYEKtKeWLR^CR zfV@InARvNGAuhpuKwcp(5D>wp5SL&+Ag>S?2#8=)h)XaZkXMKc1VpeY#3h&y$ScGJ z0wUNHh)ep%lb#d?|M5;g{&Sq$agvGrXFwq&YX>|41Zn^PFBAYiPVnFR0AQys0K9VJ zKR(K@qrg16{f;F7%m}qHHzoK#{X6l7oumEyN)rS5Q;f3h&!VoP9$a;qt5kmT)r`nk z3nlfB^6KKJm2>PXV_v4gpr;$l#qhJ|*;Jjn6DBuzdrq z?RxuYKyT`<0o3xs8#n6gW9KQ^qr?wtFAo)^E_{E(!cFOl^p+X>f<7x0%*+*)v#Ite zLz;FCiW-U$l(d$y4{JUEs*a9loR8y_X%;-&pjd_rSBi^`juo*C*)vh}d=LgCQ+?s| z!;QSfgXcaqO-L5O;<;lpmx;49t`BBh+U9mxgqOE#v!tkReM`Rx&pRMlPSmi|uprqm?u_xE{6teo zXKIJ{X*!%iRZ~W6*5rY5!Lb4e7eUO44-)=hf z&M}ej-E4%Vfy4k0TkD-?g7s$aB*FX$St_ zeDVMLum6#=|KEKDwC%swr2ltc|9|l2|J42euRs6)`|tl7&;Q>8ioE^*@JpQYyq|uszfsw(}#WBR< z^w}x5`I-!P+NN^yv52zC1+W(diG2Ng|6E3l`WodU+WSx2$8TEu)=KKHWpbmV+A`C* zQO{Z=1jYP$aN{18l|?WcU9_Msj`g4a=YB-O<3hWfpsV6>pqbs+xJA@ToYloI!~^DncHmB z4PR}WpImTEez~pv&T-xU+x3kgTe~DWM4ftp5DT literal 18282 zcmeI4dpOhY|Ht1_$RX!cQbRdqo6V`MnZq1&3X|z*wwc9@Swev@=Y8Lg`*q*%d%Lc;ee3Kj z#Dtd!0{|dqWohcjc~_Zw2?=oiW*PM5bKd6rTDtlJfQaY52SR0HRWuam zORSAnOn)rvP$6k%HdnqTEt>z(q0ob}4w|C-g&zraE1o*E=XCV`+Og-sr@bDOj=rp) zxcm^?n>&(H*eF;oBzoLZ+d(%}^qk2u$!B}2E32M&!;Hd&SNH-FLWN{S|8ZqL;8O?& zvr4I4@H)U3&>|uPl-nkkYb}kM6z?}l+{72Um#>@^yV_bPR0c2#I%IMdFf!*0O-WF3 z0@CIJZgnL0E?^xLa8up=vIPiD`IH#U2W&j5D9e`?3qYhP(WZds8X&iE{eClmpasZy zSXZKeM^He^%EiMHxNrq1Z;%iv0E9#VEr;j`bzp8V;8vro902T11Z2#IT`=!fTwu%88m#12$>3RcKMFv~n*dXvlOqNckNyO*%M& zJfpPF3ns8fv@-%qEKpu zT4~t)xyCg@(nQ6!Xg>G-1m#0Qa)}Y26e}#}N*!1Mxf3nppky7ZYl(2&kB2y0DhwMi z=b)lCnO}=tQv)Ewzebi?AdZF=I2ha)y^Jf)(qFRI{FKN&G7FIuvoJ0B9`n)?gM)hM zz4vlF#oJ=AxN5EPSBnI-E4{T~RkutouGX9%N2g@MA4rWC*>k1B z%*yBM&1IWFh|7#E2{r_~N0wQTr7LtK+ve-f=ilpaQ&lN0%leYaHObGFi`S(Ik;^akwi>Qm)i_Rz5oL$^O0xDAL#|8(S-U zZ0#|XWAYks{JHG2*-x`YoJXAN@G*y%~8aOOf=1N4V{ zShm+0`ScP~_6?uR!GzT7TS8N97@1E4%X+^o-31@VkJG&L(-z^mKeIp8+mGQyo99wWv--y2)pggM=6{*Sr%L0Z+Ot`%MMDtgsv6#*4R6>Hmm z+rcD9+v2n8XV=)Qv8k@VTYswlL85N50pcODH@P?YVRGjcw+#UsG>fu|u2QTDx;LD4 z9V{yKiP(U0JwtHbu({AYFC}l~gOa?GOv%h*yEwa?)CbgC7v2@!DLQv$@r9m80`2)l z^rBrvs=FNZ%I*AHgK=eXyRPl}XWT$gEb8%s9EA-EA^w+`GU)Z_r%4Sb1`T)Jet*0V zP9-!-G(OVqDw3{KucW0oCAU~m<*3E}dq$!U?6VH9gT-TE$?{cCYRbCTvOf52eje2P zAtkvm`Q|`Y`}sk=LE2zc$H}`oC)HD3wf*nis=+;T=xH((IeARWt1~ym9%mm$z1*t| zC&6P~@*ZBea)zBfN*t2Ie#A0Qc450P`cIKhUANxVFTYZArOy5qBXw&;CvLa$BzZDu zvI)oxUCBq~-xp>awsFqbr=XpRHx3!1+bJIl9uF8FOe;2)HI50-3-77OQ}nEPb2v|N zv^Sw4wt==FVqM6q2loVtFNp_kg@~#~L`Aqn8XoeECM;<}#Otz~I&l7-re92tn?6mZ zBJ5G;p=)(Du-UL}m^S@uI@b)VU>>e_TL~!yD{t$iD40gRo{#tS&aVR_Q7=+nh;#+Z zCBSPo`v#^r+cXTQ5IWKTU540mB=)eM zNw%VGToJXO`qE=ZT`nb}VB)sVfh+K3#{}cuwl7`hmNJwe5%XPYj)$9FV#x_54WDnMi9Fr~=_-S?)Ge0md(|UARkj-m1v; z0=by0`-?Q_t@b$sF7f#xWhz0oUSV4*YQrlo^Lf1%aTe~0*!8;O;lO5l0^GIpGVx1f ziab_!-~N1=cDZ=j-H+5d0(#`57_~PNJC0sDms43xZuDsO=zIATn!0hp@$C4Q@e6#! z9=BZ*>s)_n;KN6=c6fZfT6@W!B3$w58+P<-LbR2uvYe_wXrr{iPv&3SfozkzE0X8v(O z zocmm`W%&*TssenQNz!nVd9qW|*hcq_*X-|Nn;!H(4f<-)zFho-4#qWb?Fjx3t*tM- zC5}4WcrfKy%B~RD=MJ~_Q$@kOq=wFI;*6nd60GOVW|Iec*Oabl*fe~VHC)i%Bkgk4 zCFwkRE4`o9kC}*Tv9B&UQIeEjyveJ0FsSTuu*Ybhe5!uKllNtT?-ouzXiY^KJSiIq zVvOD%{m{AaNeEMQyrHh-FwBXCCpsPtb?n|&&Q2R?>aZ9U zh}hFO5&I!V95*i}F{Un3Eb?{gYAg!%!jL)M_casONN!X~m76#%yLUo%t4(@- zzWBlEUglWb;<&iUx%>$uUrE}~b^t(2)9?fq!PW*%V$fkkGQ*t$3!wXQ4x#{nF%0k} zlDsG^h&zQ!^D$5wD!HKqp^*)gTy$-Ag zQ&>bu0NvZiA01$zG_8x~e4Z+XD?z5Ku)GYEjHeoe5Ny{$a115|q6^c7lC+Qrh&~F2 z(A7a95SkFA7D5}2(1IgTPy_<4qmM@DLB3r|SYgg543q4Eb~H8r)*Qz&Q1WE4e9>?? zo6Ux?wP6e<6^=lmP;f0I9EpT-YC!!1eOSZ*sE@z$jL3H#Q;I){N%LjV7(S3GU7|Z< zJIg>xX{wI9keL&tYJ(|ei^nFObJQ|O!!e@^ESf9!(q_irFS z!hh+;5BFb3&!Tz!oSa``r#ycRqXf|Y5;onh%-5_E*Qi!L@%*^-m#+DUn6Na#B$Ts-*)(BJo-Xw5~2%OLvtP3azCz zOJt@dNW+$s_GBW9_-|BxsSDO&kZB%)|4QX&&0jTaZP8Xf{w$&oiDG4n<%}Ihqmj`h zqz*!h;_eRhAnB}z>LPSVP!x)Yf)a^jZ4VTQtWP1%4D#3T-=s|$r0r8V^i7(~k=Ak7 zrJz=mbfDU+QAj9JM+eD~Mz}+DDM+L~Szil<(AJ&i$B~{D{+qNtlg8PEh~Bg6O!fYM z+Qc7Zerw8-=Fdr;z*#B9Nv!E@#);zhYw34~H*I>m@Fg<+DO0P^Kqq3bFxu}E`0pss=+6rOdmC&|iVwGhpOKob^>-0} zh6jsHWKxW&oSgV?mf?)xuMuEn418)&_NM(G%z-~~$Nz2y{@oJ#|2_jhbC={v^r2G7 zSors}{a*0zCT(Uae_c=Cw}Ic+ABIdqdoY-EA`45S6R8xquMZUi|5^C6P0WwG5E{qu zW-x6TWC~Ur1OHR;AEP)wuC1H-Z4K-1Xkh}eGQ;U1P&pfI#c&CG-r?D za(o z;o{B*3MW z;coJ9apwc_@^FEGa5s6lxbp#ddALA8xSKp&-1&gKJX|0k+)W-X?tDOA9xf0N?j{cx zcRnC54;Kgscaw*UJ0FmjhYJLRyUD}Foe#*%!vzAu-Q?lo&Ijb>;Q|5SZt`$(=L7Qc zaDjkuH@V^x{`sUQ#fS5FC!6ye=MG^O=f6V$5R#>%EdT_q1c1;z0PuN|^WFyl+qD3o z-;MM5XaWGpF^+7#Z4Ll)c37Dj;{)2>B-naMJIF+yME9@tyku3_B6SIBvRP)+RcD)p z8r$STzV5AZER>yR9PZQN-g457C8<#rAvq>!8oNVUy|TX`@xIKpwPJn zO>lI|Jf#W=mX_Ka8|O#OXt))3#cfEw!o9%b&U=lxs*#%TH+j3$(Z`}I4z%0lnyA+= zOV%yklpJPyzqBn8p}IcZRqRp5ou1)KA?#J8Mq0VKEsSc={kk$i!&~QYh)p6rOn-my zS*!N#<8utRUkqMy0UB2qWF}rTv01k04BwbLGw{ZIL+{%yZ4u3p!f$c}a=n=-&x$VH ztOr5Wc(1ovuPQb050+X{(iU8O8CNDQGVdz3YpIpA>!@2%!%uoMHWt_Lt>J$K+g5P=+5oLaOw}9u@fxaF_R&M;fUxx{qx85#VKj!I>E_;66PT&Vi9#QUhcek8S)Zcpn^ zNM7RDSXBtDGdt6K I6SwgH0!iFsiU0rr diff --git a/ug/network/edje/images/radiobtn_on_nor.png b/ug/network/edje/images/radiobtn_on_nor.png index c6e9dffb7556cac41bb15d120d4ae7a82b0ba7e7..6d185e38500ad48074667387d77b40ea8f9c7d96 100644 GIT binary patch literal 502 zcmeAS@N?(olHy`uVBq!ia0vp^Y9P$P3?%12mYf5mdINkyT>sMy{QmQQ-MRnS%l`XL z`TzR!|MVsQUHkw4`tv`1@&A-X|JR@YpS%3O=fwXx%m1eVMHc?|nf!mpnU-jv!(>Z> z{DK)+eI_1z@k5~D)$0i6X=^7>34h5p>B!NazHb_j|N3=e@@t^N-<~dxAr_~vPKo4i zG7xClSafPBEB}Qe4y~?F|Lf-+ys`Fz?!&8$2f2(TvWrL4H-oOM{_7LQSos9XK#TRxi60TXA0PZLj# zd?G2~$0EV_Ip(T-X!-_@1jFrm*MF_P-CC`f5S?dgy5iwIK7$>%ViU@D$Rt$f*|LNc z<;BGFYtNiv`c^9UbV0=2-+NZhkoOKc`h3CHc;A{O%Y|)^sa*Q!ntx(@(85;Z Sw<*A2VDNPHb6Mw<&;$S;BOWXO literal 18195 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 TnJ2-t)fidDpxCYt5|1?BDZye&1(5pXaxK``NSB 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 diff --git a/ug/network/edje/images/round_rectangle_4X4_bottom.png b/ug/network/edje/images/round_rectangle_4X4_bottom.png index 8037cb805363d16151f034fb8867d1ac82c62062..50646a5d5a636759693bd80c422aaebc2539f1e7 100644 GIT binary patch delta 89 zcmZ4A#h5)oGKhtNfx$M4?*Wi9@^on5J tRw*CbXS2?&&~198?Zly;xxiD#_N;+2)5;CJyMVeGJYD@<);T3K0RSvF9%=vp literal 17711 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 diff --git a/ug/network/edje/images/round_rectangle_4X4_top.png b/ug/network/edje/images/round_rectangle_4X4_top.png index de8b5caa07c8a4112478e6ba80cda060a446dc4a..59d03cd2340feba95b4b63339869f000347dd9cf 100644 GIT binary patch delta 88 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 literal 17774 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 Mjf-`WmG92~0w%OV diff --git a/ug/network/edje/images/second_depth_bg.png b/ug/network/edje/images/second_depth_bg.png index 5b3c6243cce9d58310769c773fdbee3cb6b9b926..3c3251d3340aec00cb8226236bb86014d997e86f 100644 GIT binary patch literal 3099 zcmeAS@N?(olHy`uVBq!ia0y~yU@>7}VA{jM0uo0!daWNbKA-8b|2O>KsT(~+Cc8Y%;o)kkf9HskO2KTJ%=MN^me TFLMSq`WZZ3{an^LB{Ts5r>}c@ literal 22286 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 diff --git a/ug/network/edje/images/setting_ico_no_network.png b/ug/network/edje/images/setting_ico_no_network.png index a0de3732842238489e781794c1bd6c3c5762fce0..acc62fe1f4a7b6ad4f594e3865b91196f3fee81a 100644 GIT binary patch literal 1930 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 diff --git a/ug/network/edje/images/setting_ico_no_network.png.png b/ug/network/edje/images/setting_ico_no_network.png.png index a0de3732842238489e781794c1bd6c3c5762fce0..acc62fe1f4a7b6ad4f594e3865b91196f3fee81a 100644 GIT binary patch literal 1930 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 diff --git a/ug/network/edje/images/setting_ico_plug_network_Cable.png b/ug/network/edje/images/setting_ico_plug_network_Cable.png index 5b4081474bc06fc8018d2732bd02552eb3101767..e9de81c87d2227162dddd47f59d47499ae4139cf 100644 GIT binary patch literal 1048 zcmeAS@N?(olHy`uVBq!ia0vp^CxCb+2Mdrq(7e~3fr0tHr;B4q#jUq@qVsQ;FtmMC zZ`Yf!_3o{WS&NoRDTEZB{r;aXrokf9qoHkEpXrvRcPGgma!oWTo@430U+Vn(bsLla zuU@`Q_2at&^hDm{*eBq%3*c7HfEz2voANbj#2@3rL_BHJhYFXnr3W$*cd z>7vIJ5^pUHjw_7#{vhmy^1ExcEz(aN+5Q9qxf#l;9lO^UuyH0&pc3)+r})QvRcC&! zoga63@$s*l!m}nU66?>rBy*Bc_T9$g#eCDHk1Dv9?}#^AdR8y`%Z`|PcT?GBhE3PI z@Vvyb+x$e1+(z54)p|d=FPGa+JD{-n=A4hU&;R(;U*ch#c~;-}&8Ay9n-4#)G0)UC zJdyKj^8a(*_lnuxY&huo)2GgG&b91$=eE?|dGWDt`Nr{6^1l36 zWd8T$gn#7Mm!A@zJm-^s^RX#CMyGfyo8)rVHNBO45AyNvd{iE%lYNy<^VY-3oWast zZl>>lw5jb&rRCXrN#3B6gQ~o0b00|*gcU~WzT0$K%|5i&X0u~g)t81+zGHs259i1| zpE~_o%6xX4HNSeoo2N(`)D)||J~lyko`3DU@3Z1>CY@IJEcGGfNpk-D$CCE(v6r9w zU7g7r^lrxEtLv}ize?m00>&>%#HsaGFF&k!cW~_m_EP=_@x6yc`{J+KE}2zp`%Le) zDc`eQ39CFGpACwR>5mEf)g_;I{#9vYXvvE+dwc$`6Ops^>9J!umFzJqX+l?cW;Wm9 zPu)S?yVu-Tv;UR&aF_74@-2VdU+rCLf4x|0)y^l?zj8jm+|hYd!F#v)iX-n@6#OOE zRG6$TaFMro^tjMntzU6<`DgYWX5W@s+NWMkn5%D*T>a-*!UU_FY4#J(#fAYRBJz#i zYrAT0*@Fjp?sx5re38GUsGIjv%mK}|+gkT$e*Xtf;h`})AA1f)`hp~f|*RScNp89ZJ6T-G@yGywpInb{`* literal 19103 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 literal 3615 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 diff --git a/ug/proxy/edje/images/ico_dropdown_menu_check.png b/ug/proxy/edje/images/ico_dropdown_menu_check.png index 9e7d114640bde4abbaac4165a1829ca15854f039..b89660001ee49b9993cf7b439b46f55f5722fb1c 100644 GIT binary patch delta 212 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 diff --git a/ug/proxy/edje/images/ico_spincontrol_down.png b/ug/proxy/edje/images/ico_spincontrol_down.png index fbeb94b1ec136d4734be1fcae979b1f27d822deb..ef5d112650efcaec4464fd47a420cb8ae9c99635 100644 GIT binary patch delta 243 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 Z?A^PZanHR#792U?V6)mf-)i&je*=kyrUd{1 diff --git a/ug/proxy/edje/images/ico_spincontrol_up.png b/ug/proxy/edje/images/ico_spincontrol_up.png index f5b25873540507e3accfe8b0a377d73872511cb0..729f54ca93c6f5e0bfae1cf65f9dc831b7159013 100644 GIT binary patch delta 225 zcmV<703QF(ivjTgkQsjj0002}V%>BA006j2L_t(I%jMHS3ITBx$MN@9GaHu7dM+Sx z0L~!E5h%HW9KwPeL9U?40XTrjlI5_OsrlMGqV%63E8c(id+&YfE&c}iMrFRD{43+g zP)6b;Oksa{<^U`x*yij=kuA5{QTmLj695ns0}#-7mofBp`9fKXCT9f)nDk7Rsh)D6 zf*_RHYceC3j`3OR$_nqEdMq{F;3qRxjygWUed@T3wR56oXWE1SMD$*s+a&@Zr1O}Y bU;N=$;)Yx}-M$SS00000NkvXXu0mjf?(Jzm literal 17871 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 L&8EoOZ|na6=+BBBo{vnJU1pYH z;>m-jKynJfW6*>DKqX!_A&^7z4;1_Zg5n_%5?FIxP;ygb5!8z(59%R^pdbmEHCbW; zGt<*uRXKEhbob8gEa+R*%yjqE)9?G%`%!}BA~;O!(Uyn8Z*DGrvlBb9zt5k%xwZ4{N9&~SxqpqI=J8SwMT-tS`V1ItZO$ilpUfw}e9edf zeR_0gp^zjIRce3ZL2C>d-@Ry!T`p$lGGm6U1z2=~(KkCS!*5 z>Cq!pZ&4%#q>WG

uS12DDi@LizSbN$V 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 KMNUMnLSTa8#X05x diff --git a/ug/wifi-direct/edje/images/loading_96_13.png b/ug/wifi-direct/edje/images/loading_96_13.png index 2e38a950a6f2c7332b71c9c946a7f49af6865163..d8784198b73b014ed73b3c9e54c5f8e7371d5788 100644 GIT binary patch literal 12447 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 Zv3>&#P^vtFe}@MEIVokyYH^d${{iJKIxheK literal 15052 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 sm?*5k3v^@4;mUad#0(NJ`k! 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�> z{tWi=3>lr1CSxc*jZh3xfe4iDaYoKakwPFdVOmbz)lYv`i{m%!(7ITfEkoa(bX~hN zBREkne)z?dijIFw8rAMW&!@M3}5s;w)Jz^bb_oOpweM3 zV&+MrB zm?5=8re!XA?HT7k`#E=QtCW*B-<&n=`t|wj{LW-DosLI-M@7}dP&HCY);3LZ@aVyv zJ9pps($VqZ>&fXES<%oe%*qS(U6dJ4tm2R5hV~(M%M(| zxv(00&Q5yn?FOEyJo_q?3;|$z>^!+hpb@9!wQ*%H=VM)B84^u0`k3f65zVj;XycHW z$xx;aB8UsbJV%MxG9$VkT!)E+-3}WmgdEldtQKI)foGKEL%(}EfvXj66p<>ZOp0B9 zF&s_k}89h3LyvrU-27SUzNZv3XhR`+` z$tsK-ktHTA=5p`}iwRa9i!BrhvMC}NWP;QgQUh6!8ws*kiodxtDzeFq`mD4(BL<9< z2XEc|^5Nm5rfJrXioCqxoS%Tn`Ptc9ciw#cw_kqwcfW9cHhT@t&M31r+dDn}52Yb) z|KKRReLkSa)_ceoe*@9`*zRYsI3kTB5{ANBG6t5u*}1{Q}6Z%iCla$!<9 zb^$L##q%-{W;R$t;h0W^=gjC4f+@+hST;16#S6N=DAEP`-iRhd63H53mQZsT*$^$o z2wGqghnXc6Bv+_2C>@$5bS%i#3f&j{zL0NwSLM@jRp<@xoJ*>HRgWi!kM7-R504M- zt(*18iIxg(KA#^SJUVzYVh_iY?bBBMV(#;f7hj4z`V)|9o~AZ30Pr)HR8$V_cZZ3?SlBJ=J^fmx4xg#x=>9*&# z2&y_D<_+YaiUbbAEby;@Wm??Q$Ju)hx-&lX9{>E4F00 zcB6JRy%yrX{s)aO|Af&OA5is|0r>Gt&m=7T8R-5zq!HvxtZqS+wDzQ!NH}6tLYHV) ziEJKN)IBFB9rvdhcPnMD8XESxIZfh;FM1M`AdnTF-JPMmDc*3Ipt(aw8E(+vYLTp3O3ZhLpTy>jEmdVYRp>%}TA=8N{h!;__Z>tMO)+jTpty2X{-A>H^B#-H4R zH^;&fdzwQ)2LRrFY^B84;guHTCcFT)oRd-mvP}|CijkO%UO`uh^?AVM9lrEDs2b|R zF;*qZU{{{x1@D~ivQ6sfa>v$|@SH2jYR_csc*VU4=kIEW*u2C1Dz!TLLVJb z+>js&m?q2%6b=!^a)B+6o94JlPB!(FQ%5y&jC3djVn!4Q2%349yc>los~C?aY5&T8 z->lluw_SfWU#)hJmaBReo5LvKH2Ltwk6$zU?dRc)p-(a6sZL=X0C;=GZ5Xr)55EX| z_mRnqSeRl}BE>jNn+RwZ=y13kRx>55d-5aUUhSCX!e~1ucQCQ9n{Iq!5S!plGhu6z zk(G|EddL;7oVDCL?KoH_=Ig*}8Cb`m5!6Q^sFKVGDUvp4RY;XV=Adx6X-2k{QH>n+ z$WawSajA(q^fHE1R)UBGL6T*vMd4Ffl__k+&_r9im{#dITgRn_>{L>FDojp2$DhWy z1sr0WFl0ba1;9H*6zrd3^AbJ$7&g8N;}zDOl6oPDAl?xY&>7u2;4)=-)}guJ^M+Ro zrOK76_S|}BZm=QF*ifi=Tt`<2wJJW#8BH>-PCYkwbKY7fj+TM5dEl%wR>=s-=n#S# zAtiznCId|&@=R?-vEA&4dMN10eENhlz|*T`vXq`iR zk9x&BLA>I;;;sr-JD%Bqpmw2fd%PE2G`Wt0M29W=##u82{;or?095z9$M;zW*J!=v@9OAw2Pj!2ym20vj%Hs z10f@Pis3k?moL4*Qv-1C8+_M*F=<}F-3Q42HZr}6)k`d%qm~VagNY}a(uV}gfj=~G zR|ZEDlF|0YYOi2D@;sXh+rr=;(s1GL+Rz?!^0s4&C4rOSh#CWQ({T%8^zSG~UNqy_ z;I_F7o&dQ$vRybK(heBdVb$m*|ZHqMIpf zVoEfvF`orakJii&dzuFw@wg$)*TmyQies2W?5i~vJ^_4*VRU%`kBjh64Zt@VuTTa) z&I4F?aA%I?32s&(6Rchn%YqBrP7;RUx;A0-q!dWKk%AC{5t_iNNt||xvx(m6CovHOtf8OvFe%a6x`p3cxngqgr5G5rDWjb>?5 zEDt1&C>gB`t9N00e&tT9dW6?$CZQ^v5n9Y06&I9vBPd{7HowxL- zk$8SioUgE0V+BYVv6B|QbOfvCf!|=*e0PB>Pp|wZ0K8ujNE7Vgry)OrKRktp0i(kd zQZj@Nv5X)E8e~|>DU$k@*g5*n=vIO5JhGezW`}`Cd!D@=&(%rBmD+KoPdM)}d6oK_NLlaO)gENFw)jMj{GghdxQ>l5ee#C*|ndKOup^{mc2+EqvFTH>rH z%^K4E6?T%5D#gYEwnu8&kd?m({1t}7FxMYQd*1>8iNQH+F+@y%6ArhqFYF@E7npid zDiE(oSAZ#&$)=rn;U*%hM`e^}+c8S6A;%S|*^U1HWH&eoChWn{7FSuT2-S)yAcy0ZmgmI#d_ zb&j;?h}{~p2;+#!6#KmrzA9iVjQ<_@`#e?I;aj%=7&hDnTm2UDd;c-^$|vDdU%{Sv z9kB}SDiRBfgt-b+9V`Thri9oLk|%2;eHZD+k#-KtMMinvbAIAE9A(s{kk^jM$T2A# zg;xp(nG6FW*=DuJO)aBOMsJBez&ygLAC$jn2l~u%8Cb1bx_M8xHu_m4tUJPTNt|`0 zWDPuYz%2sn%8`v6S?wt@hsy*%^5nIr%!SMip`qVej_q1(KJZlN7mOe)8#1Vocsgn9Nwu%@dEWeFi ztFe1;!mk&|yv6t(V0*Lue~9v}9o{`~itYRk{L*j2kA4!K`9bXXMVO7y@^D~ww2-oX zbJ&NYvxLSDZ4#~*f_G>Z(9(t;K;iItHk?hAgD(`HDe8wK6Yy>r5)mc&Ap=M;4ddiy z^nFk465VPTiwcbrmPY6Tan=#%Ys?SC^VE0}TbKsS0=9DpYZ823;cg900DcMhe;DQv zrr#|9MBsOTm%&cp@Q=bjejRTAU+{fD4AU1#vu&_LC{M94go`N^n{n5G#-7wCqVvcq zqH{y@7A+LbYSatr!f;T?C_{5aVgym7P)xId-Y$_8AjL2g)RJKV!rF*^M_LtPZz^GGNVKOPu*-5ezV9t#zCPjX>!K~Xj% z5d#O$$|cku!(+j)u7Ea&e4w+CGLlUpu7|PV{0b>fFujA=IlTID?Dz!Q*ARYSQ{es* z1IhRHzi0peM9f+^I%S}ce+)T$5j+1C$lk!NWXR4j(k!ri8><~OYjg!{ZGlvXiht+qWcmuKt_QrMWEr;0* z4#&`c9(Y9Jg$=M5$8UTKWrmLq0003kfdfc)NXs8XzP63|7CGI=Zk=In8?Fe_eH_xO zn2m=Ou1hEs(Gjc~2n}Q%Y7;C3SgnS4=n%!?0&EV;5<&r82Y!jAHO3C?+{Ee$a#CUs z*I0iC(ksY=F+5rWyBI6rA2J+`_8op-sc-Mg+2$249@iiU>Chw15#m1y=dTTP!d*`) zOGIXnt)bjQl0b|gBfw)#91iwMBcvQb7O`NkjIc_>zL3_#PuQYf!Nya9U;Vf!IzxsQYemMYk*AZ!nX zpx3{MoX)XOKp$b*yu*7d@D<>{9A2-1q165n%SZiIhQlEr%8+6H`$+qzF>W$6f&Nuk z?*LzcKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z001ujNklecHj3~Ywt7N;oUdY$Rb%yvel!amLkWJ1v^k6M?yR#N*p^u zWCw68EBTash>!sZf*1&3KtKlhOW+tm5ZHhX*f3(ikZr`aVhL(XhFem1OKLWoQx$7^ z^Sk32_TDQW&UsajY<4$U?9t|7of_W2ckcf0HT~Cr?JH)+hu3%R(hry5LjXPm;KS=f z06qlZ!|Ou;J_O*y>q7uO1mMH#LjXPm;KS?NcXNn$g=X2kd>%DSp z{(E%e$k+J0eNS4zce#s{ON%V;_&D!ae0vul(xuPYhX8!zT`iYxz4WJwh>D1$ltfjX z^Ik-R7^1`&qKFtGSV|X*9f#WnAinFs@ZUv?e{s8h!Nm=0r~KKE_C0Z)|>k);dwki$Y@R;(EOaO;dN4Qg;c6%Xj)37V|F^0B_srf_R^KmuI;z zN28*u#`$P8Dn{c;RhFYso)=Y?Z zesXYna&&lj@bGA}SucQgxVr(6`0Y$zzx4p54z_QCUW21Yk6n(cWRvO4UD>}j+TFV{ z+nVjn#^cFOp66T6`H5kpl&nZ86+j`7VPuA7W;ldQAXjw`!HZ}nBAJM&syJ1rA~+GJ zMOjjnqg&fMyDzOa>%;T2(+39+@4az!bnxKh_~6lcy;`M|Hb66g5r)N=Z#4+tTmTF# zM;Kr1_YCUN@LR%oS2H&z0;Qd`{0R}7)Y;X*UGzI2gM&jq7+J)Wj4Qs#u zSM_Z1vUbP0vNMxuzLP(D1+A|ir; z$dHl(YGw*J>A&8Y;Yc_HA1pW(Rm@zns7{@Fmlau_ZEa1r_o{0A%w%i!?9T4q%aglz zUb*+y8?P@{^HWQ<0@lMTjo(Tu@b5Wfw!`0-2mzyn>L-CYTD=D2gp9zlH^Hr8d>ru8 z2YR&gW$CJ8ZL^V|K7TX6HrW~9*xlQnj7B>GlMuQpcEMYUY9vc3Ap)2f{dyZF*025J z2Qm=>!9>JFPFOKFcOMyL<6++M$J4-Q{m?cQ5Urb3r5=e+7K_cJ;i3p;iqUwSu zBIsZl=A{2V8#axJ=tVTWa9IEvV^lK)@tJq78jmN_JTG>t(P(!vneE=a^V;t|xPSM} z^?G#-tcF$imVofy09b>59P~#aYv9Jq$mAZ}eh#*`kj2Mgy+Xp=G&MD=)sb}T*CiZ0 z5LpGcy*Cq$(on zL}gfB5mONlID>?lSu#V#2E!2%L1jq3L_kc;l7$ce$-MVhx3{+o@BLPu7ZVZ9-@5y{ z*7fG{N_5}s?C2W<5P%$s6-+z0c^i4D>t90k5atJ{T!V1|Z8B}bMvx#9Q6XwR%JT7e zXR>87^&yPAxXFS=g7lRUkPuCSyGdXPB#J7|dsGz_Nvf_>RWGV4$Oii0YeNJQ(MrAB zQqf8Pv*ePIlEq}vl8P#Vih!u}fQw*eDTE+qsP}$*dwaL?J|C${j+x%M^BQg2T&|eE zsfF9u2cQEgs6L8pzX&&8hpWGhtgj$dfy50m*+Nr`bkRf!qCSe`NmX#8vdqW3+oLKr zQ>!;sm!ft-Nb0a;n8qX^+UM;pVmQN`Xj1P|=Ci1(ZA>AA&~+&#>p~aWrim#fajL4$ zWy#E|NRj2mc2!l|d0uSidA5_gY--rlqIt}S7PUv959s}^h)8cTrs|wdCX?w4H*Y56&)vagZljFIg7;S(Rjz7J$sA&e1ga1{_rG*qayNHSB& zTXBVHYSsD7WqDbS3LTH=C_{`chNz?@(GW95q%(vlNl-9Rl}t5izcpjmb)jwQ&1$t= z*PC@$H+8dGE}GS95krbr$wjYj$OOXYbb5Z2P&QEU#LO zRZOwZk}yFo5-SzeA;U6DF{bFfFJ`lykBF#tT^B+K?frXqLI|B*vV!={1K_Q9S^Ql@ z{s7GW8C-bil5m1$P7^9AG)=o+E!K<0+4A({csV~i*)(l!?WT^KrVeSStflu`4h#`> zS?0Zp=BmD$&SulA*REf`vVZOQ+4k=3>DJcsWjVg4A``Qe_d!`17JtA(1o=0^|e^Rtr>W9%+frjPxvVfL7^Hj}n(FWA(4y;;srjt`IDtX{jfv%B}| zty|B(bmN(4KRumpJ(uUjRaG}0cD-FJ{sk5(VXBsjqL}RL?7h^rp>7{D`m z$7N=Qs8plLZ2zjgwAnm=e0Fwn@aAi;u9L-ZiPDZA9DvLJi*uy-&*8-%!S?59Tfs<> z(HhybX!JPocogrzkGvI?q--oQnmIonYdI=S$8^4I+tRn~nDx32=kswhpO@`wF^}Ck z520B{vL+GQ5SqGKH)%0%S)Ng@is_`QG7Zbh6335>`GfQg%ssuMp%X7Logt;zo}M0W z*6U@xT%NCA`sgQ@*RMYlM&rq?qA0gSP&2c>QcxYD11Y8CoO6@$WdGXrTc12XKRcM8 zogN(@A6}*^K2S!~1MuIxJ?+$e*xN%!JIHE|`WkH;GNqb}=Xsu*O%Xyy+ z;dy!YL0KGTc_Er-%$MtKvDq|D(X7`qU4_x6Ei~`4a+=g8Ry5n3eflM8{iVb|`Dx&< z0{`DT0@gPKBVGa_0;y?gd+^|`zUs4ts%GkTU&`~mG_#}^!C2sNqADtRS&Vo0ue^Bk zx#vE0a(ejI!w2`4Kyj%;whxwu3UGwbAo>cjw}9R2$f|;r5Fc<(a1p#0vP>u@8KaqF zYcFH(R^@I#H{yqObNgiJ^qN;jfP`q9y(&H2DzcZyW%jbqGBNMkSS-_e)wR;mmEvr4 z#hGNKHQ5w5omu&CY-3;8`K_OV7bE)wF%@OLYz6Aq7Y4Ahz z_umBm#QS-z7p!ItW^Gd+9UeUJlgV^@G#c*~MKzvo$4uCHX!RxmWt|HS3k`Jwk%%cu887c`!#QBW8REn`@ zGRGj%9<(F5t%KOJbA1!k`S$OkJmNfZ7Omnf)i;F6? zgUJM{17Hrk0DQWy%AZ{S9;CkxpZgiG@SfX4gEa`SsOwF3|K6Qfs;b(m%4#>ui*Z#| z6IB&qAeyW<0!wD9>c->g?#|x+^Rw-pXAX}ZJ&Yk-G;*HG3VHzkU7*I?vvBngb_~fK zh(lWGnHnc(lAdSxkdGYWY0mZ}qiGZ{Iywlem|o@<#h=Id)sor)CRY2Hg3lFKr2K8V&h zk%(vu>Jd%QDdIC^6tT?^=tXde-WDQ{bWZGXhhi5oAv4G$??7U`T5cI_TJUeC>yCd zNjB66s)z{5%v7A4PPcaVcCSA3U~+eMdV2f_GxszusNYk6YY4a_$SP!3L0Lg^PZVn^ zIIpM|Tn2eAloQ9!$g}5o54+z8o5=Y|%i%n-*+fZw%WLQW4C|&jjA9>rt1(Ox!m9|! zJrM7De;)XuzW~qwJY-kjZ)ZE1(X2P?`T5!D!})xE)HF?P0_t?=zNxD8zr-*RbwyE5 zMx)Wrcr>1EJEFsAd)85%uV=Rqew}QGMz4{dhe;3&L21~i~KSBOk z=nmd*JZM7b7W4D7qw}+qgUx2Wnx)-6=e@&-z5jn)97vYs`DirW8jZ$#qB<3k;)4P3 z43_=Lo`N2ausor}e&I311TpIav3F#ZryOOBD$m3TUVHy1#uG-&hKCvc9_z?_(Q&d4 zG^;vBj5woo}EW$RQqmANJaBTx#WhV+**T zD(YslS}o7dy0&RmM7{GaV3txcd5i$&)VVCn3zy}SEX%547C@dJfS-lQk3*@LJ4EwS zr0c*+&CT2H|Xm30)PR@sjpRB8$!1ZUE5(**)v08Pm0Q3 z50htQHXe;C=Y8pYmUmt2c#4rPy(q*Eeg`@F4dkSSwgRt6E=XpG3~@jOaiA)A5uB63 z3I@}BwPH1!LNYK>qGZ@gp?Dsq_Yr<=*jblF?7~-% zZj6Uy@BsL;e-VE2=ljmZdlP?HvLqpN$zn=<%ynM-viR|A!UbJwpk|OlG}Wi_K9>Oa zG_*INjqq%Qn*w9O9Q40=%=B@BYnHGO>2#0{GK@sMWA)9f|F{?uA#4(xWIcC(L3Ck= zB}j&CGKdKojS-o_joWbh-^ch#`k%D_HSV3EnB2Nl3LOLg@&5ony8!pUz9;rHgb8yZ(l_NU!+7L0!awbXw68;2A9*{7Kg|6c~9v$1wDYWgYzq} zo>={{p@|5X2V`;2Z=8Fa0?f=kU2d{|#M{^wO6C5jVU5RT1kS z_kxr_MSD%gYPE{X#k{tZ;!|6I{AKv)P3*=;pxJ>sgH40fEd;^R#Ud%-9Ru z)V<>;zP~IeeID8~2>TFgEP^?QX&iP1efuH`DME@y2u7ETVD=b*^e&RIH003Yg)A3x zr#-jS3vB7>y@-Z{CWlCeSU{=_DKkh4=_;@QUVg$ra0B>5m)wqh1JYq!!mStJrRU(e ze-3}+6!?kD0JzL&Sy`4vk>$PX7o-Pa&@}c-0euXxWEO+PPDR|)$|L$1@WxnTMM{1pFJY|Fe+gN-t~75glcDu~m&H)1s&f zb^fwwMLD zMWbsYb!RlmdH^n^puJw?Nm^kjGOK%W01 za^vM8(Ec#+UjhHtr54E3Ts1%t+z$vlSCyi4;BrJqc~MNO@nn+aMc!-SWuPL4EJ(r3 ztZUk~>q28@&CrlYPxC}Q09P=%g)JK_wTP7vGc0PalqEq*q+rC>2wfs{(6)(9fI9UC z^EKyoMNqHgrBYRnymI7)l4&odb!Mo77KVC|#$a7SP-N##L`RUHi-nH3md*-~C^rW2Wd7$1eDPS>%)OAf$Z#L@` zQ#07))Aa-7^?rw~?!ZyTI_X!TMNk{;)#*hPai zQ?ij`GVxTUBP*25J6s2vB5DjeTt&ME?F3UtEU&@rIdnY5<|V?HFdiVx--Ak7huwZM zeEqoZX1eEv=v(1oC(^0IBsXkSjH=zM*KR&LozAu{s0R_fRD8-sk*{5B!^4O7AD*2a zpQM!Prbf_fE=U6s_Sx)@E8tzZv;4=_@dPp}{ zm+Wi^#zqLLECV1y>pZX)Yt zV6hII&a%htIC)1veq0ZDrL2_gsb^>67>_(<6)0-h1o|Kyji?SsB4vuj9IF@LSEOe) zFu4!Y=i%Tdu(R7>zlty#I%PjF1nNEDdfzISB^00N0T|EVV=dgyk-US|w(*sjNSC|J zio6(Y&t|u8zx3SJ*3M)|a^$Ozq3HkJH1+26ZBX@u@9l*RB*?n+MLC#Jb6;V@taXga|<+Nj=Gf zdBdECCgPjWZSThdW3UqbRRzT8RR!Tw)h>$?js`))i$_kKP8q`eNo(Y$Xvjy zF_|X4`Qom)lV@1m?`$-k;xpIA7}{hBQP*=M7s?0`FbE-r#p3+vf1$DL2YyzvZj)P^#!?EM~$WaYt(mMsTVtvKz zD#y-l!OioI<2tcu6RSE=2cxSa!GuIdat_F`L?6gYgHZsNlVk*wCE_;N;u-AaIWj&c zO(#%%5~1j`0udij&Vw87#BvjG2>hJlz4+xj_dHbpiMP-!t2G4mu*lC=;s zVk>lYVzWuC7m@RM$H8{aap9P{Ct7QJ$H<~d-!mC)d9GhAIj$4)5ZSbeE-Arv#5$1T zP|wcQB$wt+h6Yc1fYB4u`-&oM{x6cAGA2?3$oThXP6|S1VYMa>p-&*))UX!Nyok2 zz%!L+Uxji=0MldV`M7{aoRW`>D|PaezQZ5CC@fC83j%Y zds=;T9|J!5gjxJb3Hg_>7dKduVXK~uOCuviC5ra^ejVx7%4Qi^oU|Oy1CO>Mw=&OE z`XupfZpenw69My%a$;QBFL>?(fY#{HKIL6?STg7mW=X)u?A zPgqQ__E>D7NRZ7C$siMClp!M^>u_U1_Db)>@@%t* zeEv5Oy^rmF8jEAnBqE_F){;T6gsY8al~}I>diV?KHB=$2)DoCy{ z%Aj;;me7eHS1WX1@cTl(?Om16CRL#~ymKz8`t@isJ$!WUPIGvCaBov@#!j?UaEry_ z_~6mOn-P0BnQosp>X!?jx4igL^2 zM)XQZLTDo0DzIJ#=BFKp$1SgoJ-fLuaY~kY9?9NGO$?Txr83+0+!jGqd&ImU-q5+A zxuT6BwZjo<&3g6O(2cSfNhFfe17XreRvR~N*0XCN{+qww z_~K6(UGV{2(2u{3HMH<2q5U(E#*nYDQ3Il+jVHxK!V#kq+C;NXWQ)LZ)Nyjsa(|X_ zw^H`1zG1J!X%d%HqKl*ifvoWC?)2?V@rKI;%^f<geatx zNXhqoWhanJpSC)MQjwXUTNzRn=-83%JF?-QL}9 zuH3k>S)8BQX1R{b#j<(u@MPuQI#?~cX48zTc6sG?NH_kN@yEB|&55wWp5_qH9)PzW zTPg8%c%=ck2`_-H7Nk^zY?H*3Vk9P`Q_yu{a~^Pci!VJ7s+v*Zn5dFvuq#jMf_Kh$ z*-$#V+_AMKJm*TXk!Lz_ymr!Zf9^P21XguMy@_mAfz}cMp^J_vt}hS;OcUk>3Wtbd zxxkjk&2ro{C!2Z7nWGvz#@Z8sm=Og6f@a<&@5Z6ZDkkG;+P|{j)$1m7P1~I<*6ZD) z)p|6K^^Z>lQ;x-H#g@>Pqz5B@YMJ&v)Dv@IBr%eR3 z4YW914(qv+jXLrp;oitG%Z2fFPVQi8Up3u$DLD84&`j8xW@M#fYt+{YSI!#lowgjT z5{pe>y$Wn%-w5iW5L8KKgcM1`Srt-ckU1zEZkCa4WmIFwXzZv8p}5pU?Ry#hDJwxl zf*{E<)uQmJtjZL&VyL5STukfqoNeMtLv|{uITfa-p5sqq+yV|UPKFBTsQ`E<-=tvw z6kC+&;YYB^RhX=?_LS5KNd)nZkb1>iy9u~VS)H|LF8I9W)k3Lqr5br|y|Xru3!1{- zHp`_BMymKMXFScgI`iDz&3S8+I9dhH7J;+YSSKSSqeTd2gp>$Qpb%V@;R}Z=9ofkB zBI2x9Z}=e<>kv8v9nO8Zbf!n2r74&=)riI#+S5RLW~7b6GQnX9p&NSCZva1cA$WgU z0N$BBWgrL8{C@24CD^~;tCZ`8G*&`B8Opv6u|(JyjdO_aP_K9=h*z9f+*QFwj%NlC z)Gij>9>;<-7~w?<;T5V}@LL&W<=730^Ts%-6K5f^=!{h|T7$-h@go&%5R7>*XeM~4 zc#+3Cr3iEvgI{L-c^5nuy!BZgPcpsObhM{6?dgVeyoQG!PRCgN2G(q0+!%DVzw$2K zfIt6!0J!mvPRaw22J8WL`X%(>Hk8+~yn@jJs{@e=wAXfaoxsKrji~QXH#mMTcqce1 zNL3HQMBg3=-li$FC#mWM3tNb?mnoA1b|=Q#jCE%$lTjOVSU)r^JyjB=x2)l)8`9&i z5rWBuv;kyDi4l@mZ`C3w22G@0238N&tnaO87lCw^u;YewqVV8(2y28f#^->){q#qh z`NvJ}%hwnC*$2*%?x*0b{}##}c(Ephhz77M5XJTEA_|=#8w1z$Di#FMn!AIvzTGWo zMvhxvnDlbsCjwG?dypOuQ9%b~zV`i`UcHV`sWP=5fIy-dc&6BUL^|tTQ)@jqk5@;Z z)Fny4nJ}p1k>NbF)C%<~vOH*5K5A%|9cdZhD3RthR?mAuM)(B%aZWGuflij|0l4>d zlrj_2qJX;(ko|3Bb`=|~uy~GI)*lWgo@h!J60CatP_JF-9Zg6^(;4f%g3Z|TY%XjI zy?aRZxQX^|s=5mR9*dq5IO&h5F+hioTM(mr2OW9QjAN)r5<=3UjzCehUfl)|6S0H! zdF1@4W%;P3og1miutg*-Gt5nqW{t&{flpz47PwD;oFE?rfUgz31IBDSdKdM{@_%lJqx?5a}s6L4=^{Kw}G%ag++ zFLZP&*6-LM>GO~4_(7?meUCZuM7a^wP?JmY#-T|xpcGT0Zj8k|aC)?1aoABmXo<%) zX|W+5CsLfiG-6*KVc}!I7wAWqmqV*lJ_rE$*XgM)dJ)v7g*yu@PjIsWnPQ_2u`C|j zc9PH!*EI>FBc(vg&5oJ~EqD$jKI#qP(rIHB|J;s3WY_k<;_Q>G6ieNlSem31>^<;W6=ai7gbSo4#ec ziNHR_KOV$khCN+7{xSgDU*{|SKJYhyk3#!j!0SJTO$(ULFcB<_A+_LJ#N|lx5aQ5L zQ>=s7B|=KXm}uI_a@{fCDY(Cz@!TZi`COQ(Qoaocdver(*`@QIg@nERAnwNjl_w$q zc{~4caR!~GzK&Q&W7R~?){*nGz}ZQ|`gBFJ=m^V5TAY(Yz^uaZHRNCqUcesuA%FV{ zFd96BeNX_t9*0y8nw-6Uc%u1d$er8p@vM*2ZNl^!hoc69SK?Ri6Y8j0uU#KjtmBdh=^BX-ij7mi^4Jn$Ps z@ZANj@PV%PcW$Uanqm(>3HcHH!5KUZ7%irdk|DH+WdteEApK5Gk<>NB*3q>_yAHJH zk<}tFKMXwD^X%<-u1+(qj2u@AW!F1K^a0n>lWvm?iy!UDX(dsHf{aUNK^rt?G-hlf zEZfLgmpI=f7R!#)v&ibKV}0JztXpE+5a%6fUX$*xv6GBcDK-(XJyJ8IOMD*qOTA*8 z4IlV=ZvdnrPHYVs(_e?fE$nl<$nyoJo|Fp2E7BHVie)mi6EECEBpJjIur+j5B5xC$ zQDU`JmZzS>t&HimXM3EnTPd?b+3`ZfFf6S`HjJ>_P>6-W|98VK@66bwzFMxMv2GLd zHgUFzoUbCwWyfmSQO^_YGSQwb3G+m#9jSGsWlL-~kVTk8OlH{cmGET&TVwp6z~6m3 z+Tnv+zz~?N#@4@u{N8_xz4CGR#FwyVUPr7#+ls^zBVn$>RC@~nqA4M^gyhMZNY_TX zNu*i8YMD`DVzX9EDd32buH(BH4ut8n}!u8J#7%0E-Cgu3!9R z)5~X8tH65G&@MXKjnT~`Vbc;;E8@H*)l=eTjCB*NSwYcZ+c&U-0(-Otb_4i3L-xbd zF`wTY04|YsCeSV6PDDQQ87$u-J+gkJbbN%RRZr^q2zl1i4qXeaVGcqa={ANhz%2ut z%8`v7*~n954wngj?8!%-G8Zz}r;_Fr&9!g%h+)y_3_7n!7avO|+q$RAH_Je~>1djc zc-9cs4PA`bi6aC@QYCd8Y#lMiSbiJ3Hp1?`3BO(-iw5I&fbAjte-khNfxkP)&hNl4 z{U-eA$KjbD#ExHt`4}w^du2xhDeH#AJ{+wjG`47+aGemmL$iRE*7pDkhtISAY@!@| zq4-Qu-yfNPcm0rvD9QH~K#Hj!CpV+(I%1n>*Zo*jsFkoXLK}$lmblnpz89XS+LPGA zG+-96ojX{a;Ij&MM^Fdgmw3)FqQeKY<}b`2wllB2aC=UF%zXb=!@YZ!$U%~9Nz_0eh zi`?Q{dVTZXLBnCqE^_A~tiFhq*D(7ya{U0FU6Qzp_y-7UXc|N|{Um1Qkx(Fh(kt}Z z1xo1i?NEXDBo}%Y6lEBR=rwp&u3+RbJQfUV3uto4dpQd!BiRh%rXL&5uaM#t(>sWr z!>b>~j!&R@4dDj{g8K`D$oKa58UO=}V+|ag4ifT@AZIUP=f48k8`zZ$**Qk)C6;ev zBM0>cT?1QNAQj>w=2xH{X%l-%T`@G0qlc~lbAu?bg>mTB+^*|gOi^N4g4)4yf~7rd zbO(wzAe&-uT*uyWn9bpE0^MhUML*4lv zl3gL`Rjky$!S{u$u>KV2Ayz2H7lGf$+o$aL7YTrO!V&t0zXa^;W#Cyjn)j(}(ZH-C z?JUr81nDNW^(DyX(0&HGGg9_Nv>8G6aZ+{z#x=AV*fyNJ4DkWfE6`_P?}tgJ+t|ZC zleE(W>o!^G0sc7jTbxrWG_59Q-bvJ508q?x0dAuR^>5dkQC8+ikbwR}`EW*}Q@U2`D5{WMSZoQBV*Hf_#ez zLO?)B4hRtevgF_dge9clkYF4j4vulR+wHFIuIlP~-dp#1-skM+T5HZZ_^|dq_f)yM z>sIw`S2d|At#j^Ld*8j+n*TAz9OFO6m`BWvkH?2M^uxY^f858%0DQ>fV*ozn@i71& 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 KMNUMnLSTZSDcFtx literal 14991 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 Z1^~pm;{}N@rK|t|002ovPDHLkV1iHHQ~3Y@ diff --git a/ug/wifi-direct/edje/images/loading_96_17.png b/ug/wifi-direct/edje/images/loading_96_17.png index 5f93920d3f35654b3287a2e778fa0567f7a8098e..260f1e7b47eb2c41be715c65321ab7aad48bac05 100644 GIT binary patch literal 12510 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 literal 15135 zcmV+)JK)5LP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z001ybNklH(cHi||&-3iP-}%hL9cu2X>h{pxZl}Qx0SDv|J3veXN)#mG z0RF(B5JIwqEfXmQrDdn>wqv{P?yj!k*1dIyGoN=J z_TJC479aL|?mbmq-CbQnciUZCdh0!P&$;j2XZ_c+#{XJd%#4q(@7?7-7Qx2={6Jsf z>I?b#_xLwFa0&b>`2QKw4d4Li0~_o2zY6>=@NaQ#`e*pP!LH~b*i~kzuK?XU@cS=(q=J2~ragQgD1jgt6+#VWzy#sbSp6K*--O~X zf=-b70kA@fEiC;E#2JDCV?eP#(kI}%dKpk6MBvYZW=QcFC|^UmJ+MB~-+;b@g9F(3 zJd9pP;uxv#H5%RjS@`-8Mg>&=K4zN;^Yy2ffP4(VbsdKqSRh!Vsq(`}=ZAqVR#dRv zMdA*!GlsH_?Cv3bfjCDjL3;zU0ay)18`%h`4{*GM$xpzgA5`C*Phn3f!jHl2U6@_sp5BGi3JFWZw-9Y3 zg@6aC0=NY21>}N=V98^v0xUq?fv~_fB5XS}eHOXVf|CFjZA{${DgYHQ0s2VjLHj;z zz6qbWiR_;sRS)Srg~Ws`&yfHwbf8dN6%dL>+nwMg~;Le(ehJOa0{j>0=e*^|4?ra~a`^cm~$|d5LI1{8OaVRbYoH$&_a46zHP{b1A z04I(AaEgfmj)X%)Kr_%fqP|9HW3)-D64@ERv&ZnYSCR4%{o@UQ0WHXW4fG6lCddn) zfRVt%fE0q?h_I6(qa3d_uJVWzTr#{@JP9X;PYF?)?};Iz2o7ApyvK;Bc~V)Uu0ky% z21iPUC}=1#qETg{hnrBI!W+Mjt8QcX?>}P{J}m8LhT!4FgxuakLJp$^E^pyNfm^k4 zl5n};EZ{Za#N(VNXu_}c+B?CS;XL@@aGA$t9t2Fle2!KSGb6^5R3)uyh#^U;VoW+W z$;yQScQoMKgl<=lx0lX7@o{@PWh{F{^RtP@#xWeN?lk+Apt&MsiR?bbUS&Sl8@@7&K zD_1S+nC2^Nxnz-M^xIqdd~Z`0XG0#{ZyWxG5J&dM1^@vm{t@yL$i~yi6A#w zaGAqfg^w*f9xq048Nrmy3En%3%#&qCXnXQbX#T$?_sV)f8P$ajP-Y$s_4>Rd&z*Af0|OlX(22z+e7j0f3O;@DGuf zx=6P`mfJ{o18F5(=5R&C2gS#XfDu%hcOc6gxreOCX!ShpjwA0l+P#c!C!?La282$a z-E!n!3^7v&^*qXC?qxm+HabN|tm3p>Eu>skOIeH(BMcm(j=YJZW`<=!GEEYIlA;lC4LI^ZAJ{cJh zyb#nVypU&*w>_=4r`5~o_5;m|@Fh&FQG* z_}uZpCkGlJItri>oKyTpL-YGcf2X;Dv-L_++?dfHXj+5rJ2sn^ftPB!uC z=30g-E=y-s6k=+5sf!|1omQvnZFcJmnb*VfDz36rrNng*^jbXkJpw?#jrLdTuWumX ztFU*5#2lAe&~r!~5J~tJ1abJ72%5+dGVjS-j&|469%S^kGB*33K_}2ZXmM*RXKy3p zWK5g=)hQ>f-tzp>{c<)RrIb>-cD}#sAcXhoX-U8(67C>3-+*mHtc7%HL=(;w zFG5fVVt62PkOxQ6_Ovzw{f&%4KVxGrXMd+)e~_`im-EaZHb+^vv zj(#_Dw>Jto?&jfsw+NF~2vu+v%a|nAwYga1V?<0P_nB>Wd#RUa_1?zDYIk#UdUW*G zaxxi~CPFBhM5-3NS8{ zL0ka5SyIzvsjel}B@#;!jUs9iyr<~*`@ME|quc9Er{m%L{)4--i}TY(UDxrNH~g-E z@C1O3Z&6r#8TeT!UP5kEP*gB4ka>lZ9A_C4Jl>3ek%^IKLaUq6+0Gd3=4|g3>>m`| z+$(r)H|P0&&W(;^-#Y@}1)N>=3go?o1_ItY*Xd-gmwU;)7w?_(BBG|4si7$eDT>ot zBqeW%Hy>PZPPVsq`n_I%-fFj}o15Fi)6 zj+O{c2?*YVJd;NF+c|^%oZW+hgBvZLz1iYZ+Xc^eJ%^dlU3)tk5XLnG-W_nnJ|9nRyWnA!IG@L$}xK_wqdNw_C+oO!2H* zt)?;7@4)+`1mHKm$xnP1IzNFNo+JGQERT^Ocs$Mw9|fOzf@?|$S=-Ux%;@drY#kIF z-Y9tHR*O&W6};T`?0ZM+%G4N7gnt!&$UAC$-^>mrqpDPg(=t7pmTA0j@8DL)xD`$5*wuIk9^XVf9Y#oCrvBa=kz>v!I&1nK=ZP1!?Db-a5Q-yH&K?Mc!)phxhLem&?T!2=Svk0srnh zBA*5DJl5Ss4yH)^O&kTzdz@ytl<--=yVR5ya-rx6oefWaJ7?#x;P%ZHFYOh))bSh& zWcGILv1`&58jY2AIAAr1$wB=GGyo8J3J_pwTE-iP1bVtc*#mj2F?)OJy{#?eutI4=+nU9FmVF zv?nvysTNrgqss}=WuZ&2*P_gZq9VxE2{5o|RI9{vnV8HI7vq}aVa3Tp87E`D zN-~bgCW~nE(Mm4IwahL`H=od2Eb~ECw^nJH&6CA*$9xssYLc~G>UFa$X5N$gA|$Px zqM~YosW&9U@Q8UuomzC>qzED7=FO)PV6VUawFj5yXLgO}kv?1iI&U)$!UAa@Kt~Xr zAoBvr3S2ITIUFS}cwF0)^*qH@iDAFs_HMxoUC)i+=s?rUeHVXv1%?=CGU`fMOe2@$ z$jPwecvx{ZO$_IW$ucpG%A!onYm?b3y2T{QY*pEEqP`+@%P^3-&|1s!JgwRnwlv3T zIPqCIUiFK-+#U>4x6>A%Wx)%1ib+z6(&Qi(Kr&Tzn$)Qzb3q2Jc1QO257T5aTFfVt zRauqk+6mAP4}d@Sj^yh$+`5FPK~@2&GNcYTsqmWc&JjF>!jla$I)gxOJ7a6Rsp;Iz z96hdS_H}1#YkQA?L5fPbOpGQqr$;O9T~wT0)SQiLE?0@=A~9bkX31D3Sk=m68Kta} zRJCSh?R@PDsdMiVdlK8pt0B557q+^5B*TkgeRMjl_KI%x>{CzMU}MW?d0vP}3rtkC zsW%BuM7*lHn34N@bZP-3XfM zpxG!|XXBK`#l18=xgS?2M=7r6dh6-us=eJkD~fg&LI^1)mn?;~Jc40PH91X=|KJp0^p<t@XJGT|NcRY-9nxx?rmG`PLeoyn9X@Z& zPpcnjZ|7`p=iF?2_C;u2IV*dTQ*%AiQ6tvIVqP;mDY^4##hufVLrJ7oVh)|0sdQVg(Re@N0Nwo#5HhVf~wY59P-Z~xH^710_@XXh%v7DSd znkG{dQ@^`=5Q=s?2Qf)v$&$nHh6OVunc_5M-uqDGt#UBf-0u%Ihr{7T8Lwr0ALJA~ z0pLGco1V|W;HQzz9Jf!i(5mVjSpxwbyq z#`R3sAVE2+IeoO^jYliqJS{moskj)e7*A_v^TfP1%4Ae(RMxOdqdIDzNCLGNQte60 zh*kkD6I>)V@8b-MW}&VA(9g@QVJwdw5n0fUBQA_!)ThDg$Jnxv9ODP6b&4GZ3ml=0?Yic(uCO_Sv`h?7OJ0Ap;`P%NM;8_6mldON#khxm`3%N0NEr~h zfL206)g(;GBi1BNE(ktzgpQ-t^>hard!4|(7ux!y)WEgOSJou}jmmr)IXYQ!=V-;l zvx>9xipx>ObX7AqVdWZgQ_K222`PDE$VeWHiqutfo?$D+(mkxxLC@}D_bTk-7U&m% z|7~4#c(4Ush2i5g6F{n}s?IM?C;g4hqi(mmlMgnxy$@d1oQk@&e8if{pW*2j?c&DP z&fZh~)1&k0WHehFZufpccmlvF4Vm@?@iQnAgr?jqp#@@y8qNtWbA-Z^7oMW)>2*EZ zxnn?M`|TY~jmL@BW7AV{_pFKYFNQUvNn*NC=4vcO8hf9NS`*PbY6+y|&M$qz;6OwplCHQ+1qn{0jl|Ix;T3D*2U(=)=8_~J?MrOTD5vt066gB z8|h>a&8!+;Ue3?YPtRtv$(flhz4tipy~BAyG9WXvOf_ZVT&LaY?)Ljz+upkZ$kuX{ z4`zaXs^NF;16v1BJE#}n7Z6ipew;!8$(mm$%Nrt9zi{;B8*SnBn=&=3m2x?*IU1In z%p#L%WIn4{)UeV>iKB8#9gSKY(HSvIq@qI0h?VOeOFf3KjnUc5(0&&C>IuYijAg@B zdVAv%n2zD}{M{I>3Z#@`b#n4>w6VE$-s|-jtyagGSuoXLO@CVqFeQmeCokH&gZ^Nz z-R`tktL5~A0Py4l{0qPUd<}L0t4*X%hY+u4c|T^WFy$@gm~INsva< zGoakmXEe2|L*sAXE*nB(D9tv91|=B&;2A?rCL?u9wH==cs#oa0~QmQ{{FWj)~jI}Q>w?~(QGsvj`#L&q@rkhaWRNlXd*ZfGlH67 zLMzL&P47d;d!NM^-TMXLZ8Q+6V0RO;tZBF>yY_uuCt)6!(~!J9I4|TP1e)38xAAK1 z$*ZiD@ggytMy3m8X-eflJtR?*7osvVd(EGvrjDR3Xm z1f4=LMHX}L2~rNxV^Sh6BB`n0G?7q&WCEEZ^Fl_Gbv5z7y{)rmA~;p*l`@_x0 zp)3=%Dp4ScpmoHOC%G2pn!bQ#Gps(trsu$aPc!NMbJ*LON8gUkSDw8WIoM-!%N46nu(KMw|9O}_i`WvQvj+G(`4#Ow_s|=Y zX{O`x^d30Qh6| zA%$V&7=qR7=tl}jhD9)QsC(jPwJC7o)+J{!-oCCvP;D~Y7?p^SlAEu-*yG?@ zL>f;3;It_a(e!3MXgT_?1OF0owgX!$$ckoHLt&V#Kx*)UCBbSXR*9-KR_@C7OEX(7 z*ISScNGjlhBM%Pm4Dk*ThsCm~-jT4FgU_)|g;c<*0{?ZI3g+{C`@IioO|Sg>e+_>9 zm);Km9tb}8BFpox_pUAAMcn$JH>(mv#5wOpOma1o*=$;+l&*Ki8F zK7q(<&3=Y(3nVq25bWnYjK(y*(+!T{W+hZ*1`4$#IwJ{~hglI-pYXd-& z@Ln@PPm;3aAZt1Lg(vfZG`zs3qF1E`TqlT6kSXFpwinoiz~m=EZ#H2vUwnrzxE^wL z*Y>~ee5d*7mG=8~x7X=!ZtrGU(MKdWCt~K@bz03j0@9S~x{l?ts>;$nz~;lZ&j-8$ z)yvp&8(L#bMx1;}LUU1v+bH&GsK4-mo{G!OjxG1bFaG#45nnT8x!7{vo|*;a_=_yeNvn#$fZX z)oyQl=YncuaYUYIcEjc~tLu7ImSw4CDk6Ffg!gHJ#tq5hY=qq2MEZxQFAQ?p&O-I}v`6`ooUvW}zE3FKW*-tqWSakW5FB-P+c91e3i z_-%NmjV$)DvvaOy)ZSgU^YtsxoW<`j^j!b#R=eFE^t!$McB{SZeJCKNCem(fyMeie z(uk_A%GGk7>hyuw5l^D%Uju#>;}TnJL)~wjBUNMi%r*VjxWz=9p zwC0uUNvStkW6fIKz+jNk?gV@%Ylg3#(eN=#B#+=Ts6kc(q~3yjv=-5i(=;nS3GA#x z(>>tl8ZOiOI49zqljgrpqyeO^%Gq=>9xfKM zg{sDDckmri*q@w$Us}_Q{v2GkvEd5WYhj{jJ4ehTDWY{kSB|(cs(H<9QZd}l7#GIM zt{m`_BA!}fo{|%M$Fs4Su{q2+pC$6H;!2OJ6Nus}k0y{hA~u2XITR0YPdW7dKi@Qr z`085VS9kx{)-@vK{YE~8LA&4I+}qhXc&^{yxEZq0er)i?ITTEEodbBOs=8jxXQSDC zHjc3_ueBsUKqA%#rVU|xK7y)?`W+k<7Fw7skxH=8B2|I3H0oudoF&Gq#986l%Z0FR zKl-&UJfUzb74PZ8h?7X?VDA=-U_VT2JmMhY-BCaC!Dlwlc=e03R!fI`W z%k_EEwOL9uA!w(Uv9%Ex^aDlLk#z&1o#AmvW=Kdl5hNJWX(RbQvUz|!Ge?Rg!oLOF zMkv?+3h!I^0cbhzHnz5QZr!+b`-ir+cAhO-t?re{5$8liXpE3^-Z{~j>g94ioJ@wN z^VxW!svpt`_{7;kH*L2 z;qa`g>cs~U{@VdKUcWD~+QHq=!1fY$&oG-~g~OJqDVn7~iV<UL{uJlFN<2qr$P} z9JxWZ-pb>yg`*L}ywK`;c6M?umyvm;ENdkiX0Ddlr5Mv_)j2-Ra!CapS3%o_^-}AKlwOe74=`b_5Z#Mt2YqTThXA z@4c#~)oOJ)ygYwvG8vx57?}QUygRWg`R2!%^$&3m3+_Slnv%idtSCJ(`w2D+aQu63(iMrT0=hX^n zXK1Gl8bZ5WKLZA*6DM6iT zVy2|ICsi4&3|ktuDj^f3XhGV8&t#C_gICVr!E;#k3&8)1FvH$O5#^f0ZHvfeyW2b5 z-r9ZcnP;B=?CqzX`OMzl!R;b1@|ZLk&5ATJx2`2N181sgtHu0cI6Qyz?Cj`%S(bA% zt9d&I>H`39J&KK3^$gtkah#iDpMKbEW-dV79IHHLjjpo!wW6n zoG54Sq<}O{8VeBGp3UuoU3HY^sN53m2)6VvgE+A!4O$3PHP#i-F6abq-GRMNVqbiS zy!Ml&>7xRE_dkX=zqICJKQ@7W9k}*@ehAtA*4Fk*FTV7t&)vTL%;$D@4{mol{mx@< z{#DrxGuQZDr>0g_)%0?B@!-+Jw_dwEJ2{Rq&evhU2b!jT0>CG(0q_d&H`ipXPeFAK zeglhbR20#G)Ul~vwS;#R_3R1M-Vp=n zg+~j;Lc&~)nzoMo5~>*`Vm=oYQk_U7jH?cKeDm!Es?<P2dmeEUc)5*j9-`R^EPIGwU}Yc`0a-ykuPJB7V&)ljJ;%Aw>omGp*wrZz zY+bawO3<#l`$fyK=`+X$*NM~c;og9hljU6(dqVE?RKjr2wGRQ zGzACKW;uiyLeu+2mdoYh^8D=n@uLT?T%MoakFg#BSJBUhIHY&^j_*X^|3vr{l>Z#& zKL?u?xT@Lju*@2eRwXhCh=)}RTsIMV%4MtOfzPm_nHMV_gSz$wA|y2wMRAxYdG6?K zgk~sb!;x)z@|iN9Mamh-3YDc_=<)IEwtW3dp+5dvwz_=Ssb-@hE=L6twu-#yn}+u0 z_Rit$+fP5WzjyfT_Rjt@yL$(F+uJ)koldW3V5XXq#?(Zc?y7Aqn27gIy!U>!T9w1$ z#iNH0?*74}hi`p#I-Q=ZwZGy++NAOXfQRoAJG_B$0`-p}l4Dy2;{ZHDGX?K(S&nK> zTp2Q|DKpQka5&dggpw01cWkeH!PV?QvZmCRtZ~X$@u~|#O9Gp@;X4_{MxvN`W~+?l zqKfrfr>9yyc*V_+-Yi&+yRF>q_x2C>b!T^{)ovf`Z0{bliq_`l=Jw&i!HxaFU~8-0 zZug5;E6=hb0BDM;DXm8tM8q}KMrR^;Bnu(L6yt0@xja64@bx!df90P(czEwMQyZ?e zzv4q$-th#0|NNVfH42!&2(JM*GVGv>JX%6;j`g;&A~gbB2+>!~&gfQ?4!htQ8lyn+ zLa!NyZt{YwGKDk^9<}D{t64HHLXkPtJEZVt-SEWFh1sWDaRkTWzjnwk8-}+Z7@LPMkxKm|_|YFD@QE zy8pHN5AOZm`T5D6x~eWft~*~oTmXLNTQde8fc$oXpO|9K(7K1jZsUsT1(Xf50R+jL zy3f@6HJ=D#$FU!T-kLIM1}2VZSEY(3cr-K28mvV})rm-&U6y%dL#%AaEFrX^q& zV{PN{@bdW4!&lyTN8;^$f)O1L*zNF?OTUYb#8+TS2awmuS1U}tvn&owb zZh@QU;5%qp!6boG5WynEMPgMqa{zTOu$@60BU?}L*^_A%YLh2ToU1~c0x>2jR~7T= zEX=2~j`x0lu(|#0#>Uo82w6iTQCoM9c>KF!N7R}JEG)H& zEtA7yg{DLjL&ZpS&aCU$C>%ZKC`9m0SCT|Cpb;CAEUHZjLk+d0iK?!osw!`$MXP9S zbUNKZp5rWov;7)>Cw@vi^c53%tqHj&hNs` zxbNg7cx?6~@LRy2*@bPz&d-su>HQj0q*7QZHY~AKLKii0rPK?hT0*&zSnOs@yGAef zwB33ZYdz(a&~*=CO@r~yr#vqtEactU!(7ed&n9}k2<;g2W(HeAny{&cW2DN5-WW5+cXu?m6RUMbB<$ST6&PJD) zqoYUnzjAtd^v3DQqc?`bi+i)#>?EZ)x+eViQELAC1K@gLcO9f0gZzeJL7-G*h3mF(RU|GG_0Tih$|<@^(Q#y%CwSN73{Ft*NGbTL)o!z~ zu|a=pdwO|(elZ!3-e?!y11A!SR=exHcfmV}F`8;JGt;^*%jJBroJ}Xw;ppPw@zH}f zAKbrt_u~BY^~GZLXfhd}ipb2&rfZW^^AWGAd~dZNz6tI7x#o49hV-TT(7uUn9m9{F zf`1kkU96lS647=WEj@1GvA9I%D_jp;1zKjLT#!XU*)8yGkM9+P!r}9#c@so2RTtZ> z9(%ioacAcsJ-U0>9UnjV(tI|rmh<^)duR9QEH64C%ksJ^%jtADSuU2#)p9wyyf{6+ zI6FI<%_k2}Pfy-FIeGL@Q$1C+2{1LY@>+52ySBFY{h1(pmp}P$kmbJy%LVL#r5jiW z@I&0Ng(ZjhCFTr^0jdfuK`b_G2=9b&hj(JM`g zIG!xZi;Lm(=;6bot?linJDu*vbTT#(Y&^QWytp_YrdThQ%lX-KGCr;AdKy!lrWnU- zftTy}UimI;$^Gzrz&A3}j9)&C3NOc z9_2;p9 zgkp^JZeuULfyndNvo}cR4{@o%z$VM)*^#RiHm|VdW-~BUFR{5bl!oIAq@ryPwtq-p z`Dri8)4FiKf{yM8I)S4Ss#9AF|D9^`$MiX3?{*cy*DxM|E@81i7B{hJ3FR#auQgh~ za}!MqnBIcHeWaYi&SBHd_Z2$chv5V+kKm#Yi({8l{0M^+x|J_WrCm?h-J7M3=k+{UsQ z;*R0b6wWT2O8jIO^aYID>o9njVPDz+`P1-OZ@8x+{U0Eaj{$gll+-ZqeiP&02ELBj zzl>e}GIE)L`x($yGa>1>VRi@(Oh&MpLu%8^h#jmy=k6NRr-3hHoB_{NAakCqs`A0pgYgLJZv)?cStrM6t(=_8sY<1YaJEcQp`x$)n>09-#AU5wuP>mA_N z5YB*G7{fJ4UmsG`{_*uO03QSJ@%1qPKbY75KLF5Gyn1CH(E0!X N002ovPDHLkV1iMOfO7x< diff --git a/ug/wifi-direct/edje/images/round_rectangle_4X4.png b/ug/wifi-direct/edje/images/round_rectangle_4X4.png index 5a1f51d38f87ccd9c29476b13310fb47e158e57c..bd4edfecdba9c0ea49fcd40e4f1c60c9f43f5ddb 100644 GIT binary patch delta 113 zcmV-%0FM8Ijsb!JkQr$N0000=n9iF3002ozL_t&t*ImuQ4S*mNz|i6VZb4xAzkqQk z0^wed>VL;xidYS&It{B}bNCuI4F94yIr-W}Ne)&j``}LL!k&&Du^BFP88&$U;2Bie TnJ2-t)fidDpxCYt5|1?BDZye&1(5pXaxK``NSB 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 diff --git a/ug/wifi-direct/edje/images/second_depth_bg.png b/ug/wifi-direct/edje/images/second_depth_bg.png index 5b3c6243cce9d58310769c773fdbee3cb6b9b926..3c3251d3340aec00cb8226236bb86014d997e86f 100644 GIT binary patch literal 3099 zcmeAS@N?(olHy`uVBq!ia0y~yU@>7}VA{jM0uo0!daWNbKA-8b|2O>KsT(~+Cc8Y%;o)kkf9HskO2KTJ%=MN^me TFLMSq`WZZ3{an^LB{Ts5r>}c@ literal 22286 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 -- 2.7.4 From ab7e432e5f3363ecebc7449f065b13922fbc0fb8 Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Tue, 26 May 2015 16:46:25 +0900 Subject: [PATCH 11/16] Fix "group has a non-fixed part" error Change-Id: I467ba5cf6e390e271b8dc1b8b4a14cbb0f131668 --- data/viewer/change_passcode.edc | 5 ++++- data/viewer/maincatalog.edc | 1 + data/widget/ctxpopup.edc | 4 +++- data/widget/scroller.edc | 3 ++- ug/system/clock/edje/ug_clock.edc | 1 + 5 files changed, 11 insertions(+), 3 deletions(-) diff --git a/data/viewer/change_passcode.edc b/data/viewer/change_passcode.edc index a26f3c9..fe9cb05 100644 --- a/data/viewer/change_passcode.edc +++ b/data/viewer/change_passcode.edc @@ -183,6 +183,7 @@ group { rel2 { to: "cancel_btn_swallow_padding"; } + fixed: 1 1; align: 0.0 0.0; } } @@ -260,6 +261,7 @@ group { rel2 { to: "service_content_area_padding"; } + fixed: 1 1; align: 0.0 0.0; visible: 0; } @@ -297,6 +299,7 @@ group { rel2 { to: "service_content_area_swallow_padding"; } + fixed: 1 1; align: 0.0 0.0; } } @@ -410,4 +413,4 @@ group { target: "bg"; } } -} \ No newline at end of file +} diff --git a/data/viewer/maincatalog.edc b/data/viewer/maincatalog.edc index 92be2bb..c22a21a 100644 --- a/data/viewer/maincatalog.edc +++ b/data/viewer/maincatalog.edc @@ -152,6 +152,7 @@ group { rel2 { to: MAIN_VIEW_PADDING_ICON; } + fixed: 1 1; align: 0.0 0.0; } } diff --git a/data/widget/ctxpopup.edc b/data/widget/ctxpopup.edc index 46d55c8..ce0907a 100644 --- a/data/widget/ctxpopup.edc +++ b/data/widget/ctxpopup.edc @@ -42,6 +42,7 @@ group { to: SUBLIST_CTXPOPUP1_CLIPPER; relative: 0.0 0.0; } + fixed: 1 1; align: 0.0 0.0; } } @@ -248,7 +249,7 @@ group { group { name: "elm/ctxpopup/base/change_passcode_ctxpopup"; parts { part { - name: elm.swallow.content; + name: "elm.swallow.content"; type: SWALLOW; scale: 1; description { @@ -261,6 +262,7 @@ group { name: "elm/ctxpopup/base/change_passcode_ctxpopup"; rel2 { relative: 0.0 0.0; } + fixed: 1 1; align: 0.0 0.0; } } diff --git a/data/widget/scroller.edc b/data/widget/scroller.edc index add5e15..09ead0c 100644 --- a/data/widget/scroller.edc +++ b/data/widget/scroller.edc @@ -86,6 +86,7 @@ group { rel2 { to: "bg"; } + fixed: 1 1; } } part { @@ -427,4 +428,4 @@ group { } } } -} \ No newline at end of file +} diff --git a/ug/system/clock/edje/ug_clock.edc b/ug/system/clock/edje/ug_clock.edc index dd8e5e0..f4bc252 100644 --- a/ug/system/clock/edje/ug_clock.edc +++ b/ug/system/clock/edje/ug_clock.edc @@ -151,6 +151,7 @@ collections { rel2 { to: "close_btn_swallow_padding"; } + fixed: 1 1; align: 0.0 0.0; } } -- 2.7.4 From 72668b8825dfb475d1793bced990592b33635d3b Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Thu, 28 May 2015 19:42:28 +0900 Subject: [PATCH 12/16] Add network privileges Change-Id: I82b4b291acf8bc9c186c314258e555caebd80565 --- org.tizen.settings-tv-ref.xml.in | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/org.tizen.settings-tv-ref.xml.in b/org.tizen.settings-tv-ref.xml.in index 16bdaec..4ce74aa 100644 --- a/org.tizen.settings-tv-ref.xml.in +++ b/org.tizen.settings-tv-ref.xml.in @@ -1,10 +1,15 @@ - - Rong Jinhui - settings-tv-ref Application + + Open Source RnD + Application for adjusting various configuration of the user device @DESKTOP_ICON@ + + http://tizen.org/privilege/network.get + http://tizen.org/privilege/network.set + http://tizen.org/privilege/network.profile + -- 2.7.4 From 607bfdcb375be126ecaa9f06e4b48cdc3cc20798 Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Thu, 28 May 2015 19:43:26 +0900 Subject: [PATCH 13/16] Fix "group has a non-fixed part" error Change-Id: I323409b4f13f7df70f7b21949a2e3c6277974bb8 --- ug/network/edje/ug-network-settings.edc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ug/network/edje/ug-network-settings.edc b/ug/network/edje/ug-network-settings.edc index 63969de..99ef21f 100644 --- a/ug/network/edje/ug-network-settings.edc +++ b/ug/network/edje/ug-network-settings.edc @@ -1132,6 +1132,7 @@ collections { scale: 1; description { state: "default" 0.0; + fixed: 1 1; align: 0.0 0.0; rel1 { to: "bg"; @@ -1206,6 +1207,7 @@ collections { to: "bg"; relative: 0.0 0.0; } + fixed: 1 1; align: 0.0 0.0; min: 73 181; visible: 0; -- 2.7.4 From 47dbb99073b4966e8b74b9c09dbff0cd22e88697 Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Thu, 28 May 2015 20:27:09 +0900 Subject: [PATCH 14/16] Remove sysman dependency Change-Id: I14f9b3469efc10608435ba26ff81af07863a6f0e --- packaging/org.tizen.settings-tv-ref.spec | 1 - ug/system/clock/CMakeLists.txt | 2 -- ug/system/clock/src/ug_clock_utils.c | 16 ++-------------- 3 files changed, 2 insertions(+), 17 deletions(-) diff --git a/packaging/org.tizen.settings-tv-ref.spec b/packaging/org.tizen.settings-tv-ref.spec index a51ac57..2139bd2 100644 --- a/packaging/org.tizen.settings-tv-ref.spec +++ b/packaging/org.tizen.settings-tv-ref.spec @@ -27,7 +27,6 @@ BuildRequires: pkgconfig(capi-network-wifi) BuildRequires: pkgconfig(capi-network-connection) BuildRequires: pkgconfig(capi-media-sound-manager) BuildRequires: pkgconfig(wifi-direct) -BuildRequires: pkgconfig(sysman) BuildRequires: gettext-devel BuildRequires: vconf #BuildRequires: pkgconfig(capi-appfw-tvcontext) diff --git a/ug/system/clock/CMakeLists.txt b/ug/system/clock/CMakeLists.txt index 155d397..8836c87 100644 --- a/ug/system/clock/CMakeLists.txt +++ b/ug/system/clock/CMakeLists.txt @@ -28,9 +28,7 @@ pkg_check_modules(UG_CLOCK_PKGS REQUIRED elementary aul ui-gadget-1 - sysman ) - #ecore-x SET(PKGS_LDFLAGS "${PKGS_LDFLAGS} ${UG_CLOCK_PKGS_LDFLAGS}") diff --git a/ug/system/clock/src/ug_clock_utils.c b/ug/system/clock/src/ug_clock_utils.c index 4cb0969..a164582 100644 --- a/ug/system/clock/src/ug_clock_utils.c +++ b/ug/system/clock/src/ug_clock_utils.c @@ -15,7 +15,6 @@ */ #include -#include #include "dbg.h" #include "ug_clock_utils.h" @@ -313,6 +312,7 @@ static struct tm *_get_current_time() } /** +* FIXME: sysman is not supported anymore * Set date and time of system. * * This function sets date and time of system using sysman interface @@ -324,17 +324,5 @@ static struct tm *_get_current_time() */ static void _set_datetime(struct tm *t) { - int r; - time_t tt; - - if (!t) { - _ERR("invalid struct tm pointer."); - return; - } - - tt = mktime(t); - - r = sysman_set_datetime(tt); - if (r == -1) - _ERR("sysman set date and time failed. r: %d", r); + _ERR("FIXME: sysman is not supported anymore"); } -- 2.7.4 From 3685a9cef227512f3c449d7916240118ef7e406a Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Thu, 28 May 2015 22:03:58 +0900 Subject: [PATCH 15/16] Replace utils_get_vconf_value() with is_24_hour() utils_get_vconf_value() is exclusively used for getting 24-hour format enabled/disabled state from vconf. is_24_hour() achieves the same result, albeit with more simplicity. Change-Id: I1ed582f39114fd0f729fb81475cfc88261fe96b6 --- ug/system/clock/include/ug_clock_utils.h | 2 +- ug/system/clock/src/ug_clock.c | 41 ++-------------- ug/system/clock/src/ug_clock_sublist.c | 18 ++----- ug/system/clock/src/ug_clock_time_spin_control.c | 25 ++-------- ug/system/clock/src/ug_clock_utils.c | 61 ++++++------------------ 5 files changed, 26 insertions(+), 121 deletions(-) diff --git a/ug/system/clock/include/ug_clock_utils.h b/ug/system/clock/include/ug_clock_utils.h index bfd87d5..ac77873 100644 --- a/ug/system/clock/include/ug_clock_utils.h +++ b/ug/system/clock/include/ug_clock_utils.h @@ -60,6 +60,6 @@ void utils_get_time_value(int *time); void utils_set_time_value(int *time); int utils_set_vconf_value(const char *key, int value); -int utils_get_vconf_value(const char *key, int *value); +void utils_is_24_hour(int *enabled); #endif /* __UG_CLOCK_UTILS_H__ */ diff --git a/ug/system/clock/src/ug_clock.c b/ug/system/clock/src/ug_clock.c index 53bffdf..72ef6fb 100644 --- a/ug/system/clock/src/ug_clock.c +++ b/ug/system/clock/src/ug_clock.c @@ -358,7 +358,6 @@ static Evas_Object *_add_clock_sublist_switch_btn( { Evas_Object *switch_btn; const char *display; - int ret; if (!data) { _ERR("data is null."); @@ -377,17 +376,8 @@ static Evas_Object *_add_clock_sublist_switch_btn( elm_box_pack_end(data->sublist_box, switch_btn); /* Set ON/OFF for switch button. */ - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &data->mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return NULL; - } - - if (!data->mode) - display = OFF; - else - display = ON; - + utils_is_24_hour(&data->mode); + display = data->mode ? ON : OFF; elm_object_part_text_set(switch_btn, BTN_PART_VALUE, display); evas_object_event_callback_add(switch_btn, @@ -569,18 +559,11 @@ static void _refresh_time_btn_text(Evas_Object *btn, int *time) { int mode; char buf[BUF_SIZE]; - int ret; if (!btn || !time) return; - mode = 0; - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return; - } - + utils_is_24_hour(&mode); if (mode) { snprintf(buf, sizeof(buf), "%02d : %02d", time[TIME_HOUR], time[TIME_MINUTE]); @@ -1038,19 +1021,12 @@ static void _refresh_switch_btn_text(Evas_Object *btn, int mode) static void _refresh_time_btn_as_mode(Evas_Object *btn, int *time) { int mode; - int ret; char buf[BUF_SIZE]; if (!btn || !time) return; - mode = 0; - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return; - } - + utils_is_24_hour(&mode); if (mode) snprintf(buf, sizeof(buf), "%02d : %02d", time[TIME_HOUR], time[TIME_MINUTE]); @@ -1071,20 +1047,13 @@ static void _refresh_time_btn_as_mode(Evas_Object *btn, int *time) */ static void _refresh_btn_text(struct _ug_data *data) { - int ret; - if (!data || !data->cur_btn) return; if (data->date_btn == data->cur_btn) { _refresh_date_btn_text(data->cur_btn, data->date); } else if (data->switch_btn == data->cur_btn) { - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &data->mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return; - } - + utils_is_24_hour(&data->mode); _refresh_switch_btn_text(data->cur_btn, data->mode); utils_get_time_value(data->time); diff --git a/ug/system/clock/src/ug_clock_sublist.c b/ug/system/clock/src/ug_clock_sublist.c index 47e93be..bff06ec 100644 --- a/ug/system/clock/src/ug_clock_sublist.c +++ b/ug/system/clock/src/ug_clock_sublist.c @@ -108,7 +108,7 @@ static void _sublist_btn_clicked_cb(void *priv, Evas_Object *obj, void *ei) ret = utils_set_vconf_value(VCONF_KEY_24HOUR_MODE, data->mode); if (ret != 0) { - _ERR("set 24hour mode failed."); + _ERR("Setting 24-hour mode failed"); return; } @@ -136,7 +136,6 @@ static void _key_down_on_sublist_btn_cb(void *priv, Evas *e, struct _sublist_data *data; const char *keyname; int mode; - int ret; if (!priv || !ei || !obj) return; @@ -162,11 +161,7 @@ static void _key_down_on_sublist_btn_cb(void *priv, Evas *e, return; } - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return; - } + utils_is_24_hour(&mode); if (!strncmp(keyname, KEY_DOWN, strlen(keyname))) { if (obj != on_btn) @@ -311,18 +306,10 @@ static void _set_sublist_init_value(Eina_Array *array) { Evas_Object *on_btn, *off_btn; int mode; - int ret; if (!array) return; - mode = 0; - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return; - } - on_btn = eina_array_data_get(array, 0); off_btn = eina_array_data_get(array, 1); if (!on_btn || !off_btn) { @@ -335,6 +322,7 @@ static void _set_sublist_init_value(Eina_Array *array) elm_object_text_set(on_btn, ON); elm_object_text_set(off_btn, OFF); + utils_is_24_hour(&mode); if (mode) { elm_object_signal_emit(on_btn, SIG_SRC_FOC_SHOW_ICON, SIG_NAME_SUBLIST); diff --git a/ug/system/clock/src/ug_clock_time_spin_control.c b/ug/system/clock/src/ug_clock_time_spin_control.c index 1f956af..2627164 100644 --- a/ug/system/clock/src/ug_clock_time_spin_control.c +++ b/ug/system/clock/src/ug_clock_time_spin_control.c @@ -81,21 +81,14 @@ static void _update_time_value(Evas_Object *btn, int *time, int btn_idx) { int mode; char buf[BUF_SIZE]; - int ret; if (!btn || !time) return; if (btn_idx < TIME_HOUR || btn_idx >= TIME_MAX) return; - mode = 0; - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return; - } - if (btn_idx == TIME_HOUR) { + utils_is_24_hour(&mode); if (mode) { if (time[btn_idx] > 23) time[btn_idx] = 0; @@ -612,13 +605,7 @@ static int _add_time_spin_btns(struct _time_spin_data *data) utils_get_time_value(data->time); - mode = 0; - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return -1; - } - + utils_is_24_hour(&mode); if (mode) { ret = _add_time_spin_without_ampm(data); if (ret != 0) { @@ -756,13 +743,7 @@ static Evas_Object *_create(struct _time_spin_data *data) data->base = base; elm_layout_file_set(base, UG_CLOCK_EDJFILE, TIME_SPIN_CTRL_GRP); - onoff = 0; - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &onoff); - if (ret != 0) { - _ERR("vconf get value failed."); - return NULL; - } - + utils_is_24_hour(&onoff); if (onoff) elm_object_signal_emit(base, SIGNAL_NAME_TIME_SPIN_2, SIGNAL_SOURCE_TIME_SPIN); diff --git a/ug/system/clock/src/ug_clock_utils.c b/ug/system/clock/src/ug_clock_utils.c index a164582..ae6574a 100644 --- a/ug/system/clock/src/ug_clock_utils.c +++ b/ug/system/clock/src/ug_clock_utils.c @@ -180,8 +180,7 @@ void utils_set_date_value(unsigned int *date) void utils_get_time_value(int *time) { struct tm *t; - int v; - int ret; + int mode; if (!time) return; @@ -192,15 +191,8 @@ void utils_get_time_value(int *time) time[TIME_MINUTE] = t->tm_min; time[TIME_AMPM] = time[TIME_HOUR] >= 12 ? 1 : 0; - v = 0; - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &v); - if (ret != 0) { - _ERR("get vconf key failed."); - return; - } - - if (!v) - if (time[TIME_HOUR] >= 12) + utils_is_24_hour(&mode); + if (!mode && time[TIME_HOUR] >= 12) time[TIME_HOUR] -= 12; } @@ -214,20 +206,13 @@ void utils_get_time_value(int *time) */ void utils_set_time_value(int *time) { - int ret; struct tm *t; int mode; if (!time) return; - mode = 0; - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get key failed."); - return; - } - + utils_is_24_hour(&mode); if (!mode && time[TIME_AMPM] == 1) time[TIME_HOUR] += 12; @@ -249,46 +234,28 @@ void utils_set_time_value(int *time) */ int utils_set_vconf_value(const char *key, int value) { - int ret; - if (!key) { - _ERR("the key of vconf is null."); + _ERR("Can not set vconf value for null key"); return -1; } - ret = vconf_set_int(key, value); - if (ret != 0) { - _ERR("vconf set int failed."); - return -1; - } - - return 0; + return vconf_set_int(key, value); } /** -* Get the value of vconf key. +* Get 24-hour format enabled/disabled value from vconf. * -* @param[in]: key : the vconf key which to get value from. -* @param[out]: value : the pointer of value of key. +* @param[out]: enabled : 0 - disabled; 1 - enabled. * -* @return: 0 - Success, -1 - Fail. +* @return: void. */ -int utils_get_vconf_value(const char *key, int *value) -{ - int ret; - if (!key || !value) { - _ERR("invalid argument."); - return -1; - } - - ret = vconf_get_int(key, value); - if (ret != 0) { - _ERR("vconf get int failed."); - return -1; +void utils_is_24_hour(int *enabled) +{ + if (vconf_get_int(VCONF_KEY_24HOUR_MODE, enabled) != 0) { + /* failed to get value from vconf, assume it disabled */ + *enabled = 0; } - - return 0; } /** -- 2.7.4 From 16e3eac24aa71aec221edf5d630bdae58d0581fe Mon Sep 17 00:00:00 2001 From: Shuhrat Dehkanov Date: Thu, 28 May 2015 22:36:25 +0900 Subject: [PATCH 16/16] Fix various build warnings Change-Id: I4fa8f552fe803ba6ac3738c5918c8f62145f5e03 --- src/settings_provider.c | 13 ++++++++----- ug/channel/src/tv_scan.c | 27 ++++++++++++++------------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/settings_provider.c b/src/settings_provider.c index 8e9ad3c..e28a064 100644 --- a/src/settings_provider.c +++ b/src/settings_provider.c @@ -167,6 +167,7 @@ struct sleeptimer_data { //tvtimer_h timer; }; +#if 0 static unsigned int sleeptimer_value[] = { 0, 30, @@ -176,7 +177,9 @@ static unsigned int sleeptimer_value[] = { 150, 180 }; +#endif +#if 0 /** * An timer foreach iteration callback for tvtimer_foreach_item. * @@ -186,7 +189,6 @@ static unsigned int sleeptimer_value[] = { * @param data [in] The function specific data passed by tvtimer_foreach_item. * @return void */ -#if 0 static void _timer_callback(tvtimer_h timer, void *data) { int id; @@ -201,20 +203,18 @@ static void _timer_callback(tvtimer_h timer, void *data) tvtimer_get_id(timer, &id); -#if 0 if (priv->id == id) priv->timer = timer; -#endif } #endif +#if 0 /** * Set a sleep timer. * * @param val [in] The index value for sleeptimer_value array. * @return 0 if success, -1 if fail. */ -#if 0 static int _set_sleeptimer(int val) { int size, r, id; @@ -301,6 +301,7 @@ static enum item_type _find_type(const char *key) return result; } +#if 0 /** * Find array index according to given array value and size. * @@ -326,6 +327,7 @@ static int _find_index(unsigned int *array, int size, int val, int *index) return -1; } +#endif /** * Set data with integer value. @@ -400,7 +402,8 @@ static int _set_int(const char *key, int val) static int _get_int(const char *key, int *val) { enum item_type type; - int status, size, index; + int status; + /*int size, index;*/ if (!key || !val) { _ERR("Invalid argument"); diff --git a/ug/channel/src/tv_scan.c b/ug/channel/src/tv_scan.c index 7d105b2..0e1af47 100644 --- a/ug/channel/src/tv_scan.c +++ b/ug/channel/src/tv_scan.c @@ -55,6 +55,7 @@ struct _signal_info { #endif }; +#if 0 /** * Get the scan type according to the setting of scanning mode in the beginning * @@ -65,7 +66,6 @@ struct _signal_info { * @param[out] type: The corresponding scan type provided by tv service * @return 0 on success otherwise -1 */ -#if 0 static int _get_scan_mode(enum antenna_mode mode, TvServiceScanType *type) { switch (mode) { @@ -87,6 +87,7 @@ static int _get_scan_mode(enum antenna_mode mode, TvServiceScanType *type) } #endif +#if 0 /** * Handling the beginning signal. * @@ -103,7 +104,6 @@ static int _get_scan_mode(enum antenna_mode mode, TvServiceScanType *type) static void _handle_begin_signal(struct tv_scan *tvs, struct _signal_info *sinfo) { -#if 0 if (!tvs || !sinfo) { _ERR("Invalid argument"); return; @@ -124,9 +124,10 @@ static void _handle_begin_signal(struct tv_scan *tvs, _ERR("Invalid scan type"); break; } -#endif } +#endif +#if 0 /** * Handle the receiving channel signal. * @@ -136,7 +137,6 @@ static void _handle_begin_signal(struct tv_scan *tvs, static void _handle_progress_signal(struct tv_scan *tvs, struct _signal_info *sinfo) { -#if 0 if (!tvs || !sinfo) { _ERR("Invalid argument"); return; @@ -148,9 +148,10 @@ static void _handle_progress_signal(struct tv_scan *tvs, if (tvs->cbs.progress_cb) tvs->cbs.progress_cb(tvs, tvs->set_mode, tvs->ch_count, tvs->ch_num, tvs->cbs.data); -#endif } +#endif +#if 0 /** * Calculating the number of ATV channle signal or DTV channel signal. * @@ -161,7 +162,6 @@ static void _handle_progress_signal(struct tv_scan *tvs, static void _channel_count(unsigned int *atv, unsigned int *dtv, struct _signal_info *sinfo) { -#if 0 if (!sinfo || !atv || !dtv) { _ERR("Invalid argument"); return; @@ -178,9 +178,10 @@ static void _channel_count(unsigned int *atv, unsigned int *dtv, _ERR("Invalid TVS_CHANNEL_TYPE"); break; } -#endif } +#endif +#if 0 /** * Handle the found channel signal when tune lock success. * @@ -190,7 +191,6 @@ static void _channel_count(unsigned int *atv, unsigned int *dtv, static void _handle_found_signal(struct tv_scan *tvs, struct _signal_info *sinfo) { -#if 0 if (!tvs || !sinfo) { _ERR("Invalid argument"); return; @@ -215,9 +215,10 @@ static void _handle_found_signal(struct tv_scan *tvs, sinfo->signal_data.data.s[3] > 0) && tvs->cbs.found_cb) tvs->cbs.found_cb(tvs, tvs->ch_count, tvs->ch_num, &tvs->res, tvs->cbs.data); -#endif } +#endif +#if 0 /** * Handle the result when scanning is finished. * @@ -227,7 +228,6 @@ static void _handle_found_signal(struct tv_scan *tvs, static void _handle_done_signal(struct tv_scan *tvs, struct _signal_info *sinfo) { -#if 0 if (!tvs || !sinfo) { _ERR("Invalid argument"); return; @@ -239,9 +239,10 @@ static void _handle_done_signal(struct tv_scan *tvs, if (tvs->cbs.done_cb) tvs->cbs.done_cb(tvs, &tvs->res, tvs->cbs.data); } -#endif } +#endif +#if 0 /** * Handle the receiving signal saved in tvs->signal_queue. * @@ -249,7 +250,6 @@ static void _handle_done_signal(struct tv_scan *tvs, */ static Eina_Bool _handle_signal(void *data) { -#if 0 struct tv_scan *tvs; struct _signal_info *sinfo; @@ -296,8 +296,8 @@ static Eina_Bool _handle_signal(void *data) stop: tvs->signal_timer = NULL; return ECORE_CALLBACK_CANCEL; -#endif } +#endif /** * Handle the receiving signal from tv service. @@ -538,6 +538,7 @@ int tv_scan_pause(struct tv_scan *tvs) return 0; #endif + return -1; } -- 2.7.4

O3xuZ!1CXp!A&*u&YLHF2=FHtC@ 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 TnJ2-t)fidDpxCYt5|1?BDZye&1(5pXaxK``NSB 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 diff --git a/ug/proxy/edje/images/round_rectangle_8X8_top.png b/ug/proxy/edje/images/round_rectangle_8X8_top.png index dc618e3e557c474f8d3650f87230b2b2c31e2df5..1403c5458c9ef857911b4097c103a2e3b6f3ac34 100644 GIT binary patch delta 133 zcmV;00DAxKiUF1ZkQsdh0001f;SYxZ003P{L_t&-(}l`04nRNvMA2Cn5Lt)YLev@u z(BOc$2npG!eT_{>EN{yBLf3LSCOqJo=&|7mLBYz?OnFZl-nAid9FgR}A(62Vw_p?1 nvWl~+#K5=FuqoA--GF|ak2tf!gU%5X00000NkvXXu0mjf5N|nx literal 17774 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 Mjf-`WmG92~0w%OV diff --git a/ug/system/clock/edje/images/ico_dropdown_menu_check.png b/ug/system/clock/edje/images/ico_dropdown_menu_check.png index 9e7d114640bde4abbaac4165a1829ca15854f039..b89660001ee49b9993cf7b439b46f55f5722fb1c 100644 GIT binary patch delta 212 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 diff --git a/ug/system/clock/edje/images/round_rectangle_4X4.png b/ug/system/clock/edje/images/round_rectangle_4X4.png index 5a1f51d38f87ccd9c29476b13310fb47e158e57c..bd4edfecdba9c0ea49fcd40e4f1c60c9f43f5ddb 100644 GIT binary patch delta 113 zcmV-%0FM8Ijsb!JkQr$N0000=n9iF3002ozL_t&t*ImuQ4S*mNz|i6VZb4xAzkqQk z0^wed>VL;xidYS&It{B}bNCuI4F94yIr-W}Ne)&j``}LL!k&&Du^BFP88&$U;2Bie TnJ2-t)fidDpxCYt5|1?BDZye&1(5pXaxK``NSB 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 diff --git a/ug/system/clock/edje/images/second_depth_bg.png b/ug/system/clock/edje/images/second_depth_bg.png index 5b3c6243cce9d58310769c773fdbee3cb6b9b926..3c3251d3340aec00cb8226236bb86014d997e86f 100644 GIT binary patch literal 3099 zcmeAS@N?(olHy`uVBq!ia0y~yU@>7}VA{jM0uo0!daWNbKA-8b|2O>KsT(~+Cc8Y%;o)kkf9HskO2KTJ%=MN^me TFLMSq`WZZ3{an^LB{Ts5r>}c@ literal 22286 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 diff --git a/ug/system/clock/edje/images/spincontrol_arrow_down.png b/ug/system/clock/edje/images/spincontrol_arrow_down.png index a7c0493e874ca95e6b85436a33600e0b28186851..4d9d762faaa3fbd27ec606365db13f0f0935c8f6 100644 GIT binary patch delta 247 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 Li)@OlS4aLAn$DhT diff --git a/ug/wifi-direct/edje/images/ico_dropdown_menu_check.png b/ug/wifi-direct/edje/images/ico_dropdown_menu_check.png index 9e7d114640bde4abbaac4165a1829ca15854f039..b89660001ee49b9993cf7b439b46f55f5722fb1c 100644 GIT binary patch delta 212 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 diff --git a/ug/wifi-direct/edje/images/loading_96_01.png b/ug/wifi-direct/edje/images/loading_96_01.png index f8023c617eddae210faa2dc024b4d01b7568e7db..5cf78be7af867c51116e59a148106b3ac1512ef0 100644 GIT binary patch literal 12311 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 IM6N<$g1SQ_umAu6 diff --git a/ug/wifi-direct/edje/images/loading_96_02.png b/ug/wifi-direct/edje/images/loading_96_02.png index c9c3cfa282c1c4c2fb8ba2b0cddea11e6ddb1370..3dad5ffba8464d0435ddbb43611f9bd4ed68cbe0 100644 GIT binary patch literal 12383 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 RsJs9G002ovPDHLkV1fqpJ5T@s literal 14977 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 diff --git a/ug/wifi-direct/edje/images/loading_96_04.png b/ug/wifi-direct/edje/images/loading_96_04.png index 66be9d652af4a60aab7b836773d9ea324a0aca79..6a98e2d4713674d811a7ebe0b6d2b183d666dd6e 100644 GIT binary patch literal 12497 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 diff --git a/ug/wifi-direct/edje/images/loading_96_06.png b/ug/wifi-direct/edje/images/loading_96_06.png index c6b7baa12cb2afaebe2e1e3e760b9eac648a95ec..424426051de84f9f44216c05966f7049c8aaa644 100644 GIT binary patch literal 12205 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 literal 14824 zcmVP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z001u&NklEqcHi|IbI#T5exGyCIrrXo@4K(9)-JosiS5M3Q5vu@QHYc{ z`9O>i3P?eq&UC4?*_f)z(bA;Ja=gA+Hg!7+);Rragq)$8tkw>$lA zS2O1rd|2z;dtOsjud7$(@TRnN&e_^$@4e=KwEr>2Tw-Q?w7z}IeY6E10q_w3AFXfS z3h(rVl7EvIw7?(le?9>IEbwE%KL-9j@FT!K3;a*OUEn_jGT;T^F91v67VuNRKL;K# zKmqOpF9W+E2DSnJeULz?f&Uoz63CBZwu|uJ0skV#PXhOV-v(an-{%*A{{c7xUIRW3 z{3?W>fCQKV-wpf&aKG7orhck_Zqi@t3i#Xo_ZQ&TfMk~vgMA7?`%S8W3fT4=@322`8t^UL+D`gGI0l;T z>GYl=;-A7!z8CRdgrE!6Of-v^^N||3?5S@c%BjS3qY_J^|k?@C=AI z%$*|becW<_)gObfgG*~T{(TtlL%xT!9`Requ4Bb@q-b%&SHMr8oI$z`^(oerusX)A zOYHa=@b}?tfTUZn&A}4(VT17D1E9SLi7xV6RZqKwSbr~2A$K+BFHXQdhiNY4SOzN?GD^qL%IdG6;2;O z%6j{kFw(bPD?VHR5>No&i-ZE^D}*QDnE^ca9M~6d_3N+-aQg(Au5g1A`~hs%NKwHo zAy&e1j%*7E-Db&n2w4Tr10J%34Y!~Pnh{n^z$z>~1gT*3W%Sg+?gOkC!{8LV-#~Q= zCkw3FM|6tOd~1D0_)sLi?SJOLCy?y3uxs!~YKSi&@;p>?sGmceN5-d^oFggW&Pr$; zNRA9WctN5^1`#3eA{?m^0$6|~;09PIkai2H!PEeUdWVgR&bO>vL=qI&&_RJ67&84N zHux&`wcBv#D#-KD-h*WZ*7*zjg9U*0aq$hnbr)QI0=fPY>>ok-IXG_+y#wt4HyuE# zkn9jAilhPJ5)w8@RFE-PKuAatak&TcNDN?#hzC(DPgwMbmS7PzAZ~F!$0#6X7>1{VcAvWd>>vg?060B0QsOp*l#TWTj0BZ&w;!GqhCjEJptDa zkohqjeGyi37%Oh>kO)+Y)DbtyaU;Qrfn_*qWVprULj;dFhjWIs8P*D7Elvc?W0hjD z#tcjY8U-|AR9FB@1?Ip836l+k9BVu_Xwjj^*&Z4VkzKf&VZ+BeGEK;IjZ{lyvq2^$G8y6|M+ON$@VG4CN{9Cu z-U}jv^9~mTXAYMPRG{`a409eD#nvsFjHCgJhP4rG6m3e>Ddqy29A;abLGm7T21zjs zNSR}mgSdz8Tthzj0yMt?cb$ZsL%M;PVnc0$&&*bA+KI2LcY)f|27IMN{gco~T$G&{|2Y z5L?g&v`(bT(bh_84UG;{M~V?~5p|%M2NlxVq2Uz#5>5|b_-XW?z6G!RWB3REGpu)j zKLy!>!N2;Tjf(*aopJGBP93xp zHuB^{M_D?G0D0~yGf#+$31nW#Ob`R95^YMDfJ8$ZquoTBt?*>mjVt`!_@%EC30i0{%Qq z9>NbSv70q=_etkImr5}cLqU?*1E{EZI!x8RI8TNR#{a>vx!veNVAF5tCqTfxDuMJkQyO2 z&?X=$LO^_pHU_$d_904*9WAitA^PM~*b6%d_a5;k_N@h=eFv=0$ABk*+sHu+vkk1y zk*y-x1{p75l;QFMS9;vc5oQy@$dOGQ`8cB(XAH-l(I7A_9P`34^}@&rrGudph9YD@ zkS?$lf#8K)J2q2Qhz4qkwK?lbIo&GftCrLA$YRm5S_C#5r7j)Sve%SNPN*XdkSvfe zq6o;KM|zEA5w!yM^y}F5JJ>60xcgmLy+R&k((`)<9wx zc&5BXr6nPlbKnL@n4{mHVZZ(q^7^98Lkg-B4 zkvXuFkm(SakMTPmKP~W+0r@y5%mU+S#(dqTUh!S*asZ6m&ov_Kmb zP@E54ZX=-T&=isS40%?e*}%~TEWSIh@Xi7F?XUCvlfbjU4?}72iCvf+!*Y#ef=$3p z3*7!LeiZPNjIcAJ*ew{&1JjXbRtDxC#!i?7VPu_Y={DQC%|-AA{^D;Zc#P2H!2RZT zzhBl04+w@s@V+x))7-H)@H{aMoXtEhPXf13J%=X^M}=qU8`dYrdeb5jk)%lSMCU*h zF-LR`87e6?NI8Y49Jcrj)c+9S2sp)<^@*r`5CGi$I$Zt^!lyc}{pu0&bUo7LE#lc`4Wbc|7PAcJ zwX02N1S)hsg7WeMzzlbIb(o^Dfo?Xa5rSHgYBx zVDvzF_ZUzIh!gVCGs=Ydz;U(k%nQ%UMZ=xUk!5gx?(oZmBO-M~%z+bxgwlX-U|99` zafG$|=)Eb_&j7#CvjP5t0ATwz0PFxi0elAh{{^Fu!)A&Mws6hk_Db9!;C4LWYC(CB zGnoZ;f-rTCf!U+4W&om{!B9g16+to7gk+rrJL!VH3+Wf*5ozps42WS}MAFw;F2^Qv z@m&9Y;vKV6816boxnov%Mj2$H1SdEbacZC*YeWAbkx0P&5DN_&LYEmoyF!*nSlt50 zJ>cKKE4+6A0Imc7On2#F2SzKTz7Mk;+4cBQL}meZy&yj*8O?HLg)vG-Fc2|NP-op{ zUr2Xf&5hb=g^2M;E$GX_(&?YtMeV+eRs_Q%y?#Ch()B1`2F^+UfzoM1Svn59PzGU; z!N3WHYzZQWDrO4nP6Et2jWo$HSK>Ai@&y zh+Me^nS-fddjVg1C>?G$C)>{%jy;oL3{3DMovAS%Nx1S@vfImI+RIN;qZPqv_e|)u zM{s1)eRL6ou@i;@1J@Z%=iXTTl}EnhvL<)F1u^nW*qa0jFO<$vs38i;I;2G-q6w0M zi=F351zy&WEunJgjRt96$6opz#DKBsJ1Jg&KLC8+oBqx*K8KJXKf|8Bja>O0>yhVWfCS%Fmzwp}B6fn43gPX01>`~t#nVtg6wH{K5b|K6Mac71N}D)BuLX#t<(w1|C39@$=mUo~YVbZ=SrhC@_{AX_}E$#w85Bwes&yA}? zWoKkeJnWU`_A|1fNoI+VoL48(Nql#q7k1dBk8XOWnGB>+nr&jcPHYyD&7!5P5~+=_ zZLtA(V1fjG4 z($&fvRnj)GStPb+k?pdjId4ddNNN>RMVf>~L)3u@;tX$!^Iejbi6e|M)`Q5fbgWKW z7PE$<-JHXNl4r-Bn}fhXCQL3zL~qVHE`BJOAe|%7gna`^9>j9cB4o zd-Gs;etmZ|nGDNvGz{bEjNL1HHs9SLD@)6>G6wOApstg8i%MEYHpdO?W2IRo+D(lv zYHXos1(p)T1dSo7&qJKzoWuEmlhlQcXOV2+sYjmeDzIH9w&#(}Dzdy*vb+M##Pd{e zOdNQ7foah7y&Rt_fZ@$T&C^_|gRJPc(y zbUQn{cKyj)&Gj3%((b`Qn$G471_KS=r=-v-%__1zifkV?)F&-*t60-w%LY9I-8is_ zxEi8?86twH!-dq1yi2rOPuzIovL%ih;xr@Hu`k3x(j1w1ZseYsgWTTAVM><` z;+zml&;Bgq)=tjDMP#v#Y}bi;lZYwOYNv@B8*C#e8JZNyejgc}Kz1GK8hTInUc%5z z>6~-WZiN5sf0y*am;Ab|im2^4%d=fSneA7DaC6~pcX4)_6zT`VQFU~9xHvvMUO)BR z^V=t$d@}Ct?WfUb7#ntgnj@omSfk4ZYaLoCx{0t>tZ^6#R~lvwlCmz$jUKg# zv>>8*QlBY%vZ$0_+_sr%yHvvm2o;Pj%;QaXHD~t25Is0hw?@2&(2~EqnQ&Ypv|V*o*o|Ff8yccga7B{7r*p-h*qt*oHGr#4t%L6F9Q`YwL4wo9U1z-0xp6(kwn_uP+y)CoblOx6@f z!et$e9lTIxF!sVAa}2GI&MrA(>ytO{p%{2}=NZ>_GIke{`JVqf|~-vj%u0jOSoD-|kZZ?PE$?{{zAeCD&C_{4Yr$jv98`mVun zH1y7kI6;u2D9WLCu1qnyd-v}wU;Ofy&K7NZJb!W#=N~KDI4$N1eK+UkN#tx5S*?uqx~0a`dLxO@s&rb~7}y#HbJ#zC zFWrQYy?-jA>%iG=O6S~sckkfor=EJ|v)8WQe0DgRi~y2qN5F_6&iUbRv^$&aJac+- z^z7Zk2QS}0J+-~FZF+uoJ%#*0x9YX$j4gRgLiZ^v1FNyH1*;*(j(2Luh}?rw(-nT4 zK-wa%#e&0JhKZq$zD$@Pb}_n(hIhsy6Eg283(uWlU?=y?av_tRq~nb~0YE&IrDJcF zadqOkbM81R9jnaPwnB)3#uOh7HIL%K8f5Xi$odf6kAVK6o~3#p0Cd!nrGX`#>>pfv z=KA#~pC1l~Q`3%!ykM(D3~?YLp(x5pmY4h6&31fveje7AS##xS-J3m|*7=?#6?}^X zk0$LJZ&L)VV7Wl57McTe{Au{q2zl`z!s26~0hz8LD$*E|H87N(2udUixGZ$7j>+S; zkvc$j=2#bwMd>-51@4XmR}05jAlMt@^~*V$&mEIV#MS>Y(WP@x28!~iilT$6D18A^>z2ADsEwCpLz-S-B-ML{DI z=SI7`SFT;Ze)HMka6EI)bpgW#VcbJuYN$Y4H)(l(zCC{UV7Xnd8*^C<={S{sW79$< z2FHUL`juVSEPxYad))PzaDwqlU-TZs;g9y&`LBWd45r_W9ULLM_hC?DT41R}1h9q_ zBaVzHMsN@tXx2(~9@z{7o3obl^M<2&#v%c}xN(ePJui^NW_Xofu6C^Mk42FAG_785B<#5=M^>(RdV~+*_RF%cz zYhq_hL7vaQzT=bEE`q&mpx4j)dUE5iz_tQiQls>TRN4CpOE-={9jT3S7y% z+VW+sxBl`>1cIX&W$cUslYwK9d-5OzXZQ#XhnRMn=l4P95Nnuj;rJY6``&$kbv0Yb zilQ9NclNFpc{vsld4tuw07AeyN884Da&mZl`}Rw(wcE`~2BD3$rSo-Zue4*r>yGwy zy2-+y1O98e>B+y)U;eP?Qfgpy$q-I3{szJ;(Ee3;`IB%O;InHiUv|VDIqHR!2~Ipo zwHv`uBehD?XSM5P;%pr`pXF4U>&ht7+tZ7Bvh>WUcNDo}JoHQlo^dXe0X&ND;}3`L z$UaF3hJ-FXsWMiU@_xG*Hu##rXEEl$eh-GegKxBhaUFOS;q%zakdq-6_OY;ojj~=9 zYg82VjwFy!QjDa=(^QFOmDp|)tEjZrC4OD5(bcKtascii55hP&hTah}2p+unK7z6y zFhkrL+^U;n7|{(0>JL5M%=h90f_PV!gW)jG%ffr_z|73lRMjk*p@}XIBF1RvrzdA8 zCr9_2HZH+6SZZk^{Pt7Ef3gcpF{XVUYwzJ3-39Jq{4B&@#?FS=W)JflY*1mP@3f(k zzM$W+uqi>Rwd)t%b}Z*MDlMJcx?DxOYywQc2cgUygRIMvv%=xM;G}B@5T_6n2@N7! zZ~+@-h}}V0c7VQD0GuG+Iah?>%Ph|`5pfvO!(i4q0}~NqY})N+vu>(tX___=Tk0xu z@*u(8PCCPT?5>o)*7~=Ae+T$`U5m_X-vcjxKbAd%4L#=8nD?0Y&W`sz9hyKJBh^N1 zjkY$b#@O`5qYJYm$RqQE^v`=C6hcvW241>;RS({~&h%)nHO?WDclpcY8jK^x-+cEP zAaCfyG0W5}&+>dwlx5jnjV9;}QNK(zYPH=~oAq+hw)H}=HBh6Ps4L~ce+j${o1-q= zdAA}F`)~BPcg}bfxDOc^yI3{?X)zLJ5!2X-zFyR(wQmsUc%r06G<#d)C-T+|IrI%< zVh)nSS`al{>~b0LuFHhWDa=2MJ^lT3CkDKqqP(gmkMmBXYXh_{_3Elz_J}n#HB(L2 zw5`^4UA3`o`&y^D1Sa=-h4twF7r%e(A2 zbS>;^0kswr*EI*Ib~TAsX`|9wXM!#$36(c9VVxNZB81RAvH;#2UJOye3?wFS3So@6 z5i%HI)2rZ~dT#(cO3R&-P?qH=%ZnnVl)U%B`t_JfRKt5`2vxn^tX9jVsy3HqXx_N~ z-XDWs75Jk+2eUu(jl+Nl{2jV88s5APplIOM8H`Th_#u>`GXuD;iXZ#xboO{d&3X;6 z&dYYT{O!%+MTcDoU8ArwI=(6Pd8q3W2MGn@9Jr?Y&JSAnT14zGzxPZSan6q?)4_N) z4V|4yeNkPF9svWKnPPa%lBQIp7~3~-D{oS(wiDam_)Fk_8h-32I{SWk6EeE<9{#1i z3;FHd=>+QMVg94Ao8a~w@*%_uQs`oE7kbaySA|XbjyFNPkh!k)<&nhO+lgXlYHSRzS}Him3KDu?(Q^RGaBrPJQ`cwUg9Y9`Kg!qa&G!yYX)OWXfRXu~x9!u*NXi!X$_NKa3qbkMVQw zFB48}+cv7H*=)B}+tzKC=fymQ1qY!9SW;2vg7?|59F9k$@hmTjV!Pe=Z`?EdrnNbO-}^7Hd`o@huVeK$dHn*0 z{{npX55bKGP;DTbLj&dlNQGF(4@s8ca*r=Oe&ERpPmy^FFOR<8MTycLwQyZnVo1qo zVxo;kj7m&K)QiHqAs(RY8hdqvEnh$uON_q_{I&O{0oo;4rcG0?HMQ%uZCll(2yzj= zfuYG#B8i!4UX=M{GT$i&!{K(j$$J3&*NuqYvQE(#eug@v?>C z0IUU<5Z54yPRz@I3_O11$wr=H64)(0(~E{)d1K`BhRs(cR*BUnve`!JHg(~vlV1Kh z0?FDOtHIh6#J!3&zl89+-TS;}6J#dQ)YhBL=6JK&EQX`WC=0>&If5G2xj2at5z4_} zIGykAPbRay#rfHtl;X0d*51V@-+}t4;LrSPaPkd6h|nx>cYYbN1E?}^yND0qy6{s) zFz2x%AOqKdFbGzRgX|Q-=$k++bfdA0P2{{*wk@`eWmyhqv)TT9zI*lb_;9vb zEl%y-1_AY}@bbR}#~J*Qe+3S|&Nd}r4_maz`WWOUYz#(iKlBtH$CVCj;LVM_f)O{7qgCRxF{%Vj>iSt#yWpn_2^4GVu9m4IY!iT|G5+NH$OAevq|I`* zSe%}o+~2I1XP6~%IE$84)kMTp6|p|B&hl(Bo$bwccW;z;hx6rXG3Z&G_>P8PAI&K= z@H77^=m7cif9Y{V^hN;8ZbEYiF(Snt)Y=`H@F=tqtgEZ46k>ktq?~1PrErYCS&U{7 z>u&V*WSdyliEWjrYo(1{hMWx4A{uJ6sobM@0|^`?h>inranJAJ-WMC zonD+We+LPQ zWW42pgXFs+zOK4sYnlvF>Z2h{v7{LZuSvZqo-X_SW-)Ry>MC)#NgOxIwoYv8NYg5< zc#;n!94V!4hOAI5udww1mRB);2l$ou8HV2F~s-eM=zQNvTRJQBHgJsLnCb8HiHdUlnB}yPl zH{@*+P|ML4tZ5$GX=w5aOMx{jxfrt|cc7TQa@Z#0|4gGFO^R*}P1%h@`zYK0o3 zl|)Plb%K?GImKeaP6qH=fyCGP{3m;VY-oRaCsiBc>FLSw?bG9<*Y@_VK2;3MkrU@G zDL^NBVkXYH!Jr)PT-kr-)>F@YZ&g*x=9Rjts%^Za1?e4Yg0}E$KM4F5-T8{Q9$(TA zcD3V8(RCqYQzdR&OR>@@jitI(7aLtA;#rbr+-8dhet2hAxYu$g(?M`v-Z&d-2C-3& z7SUcjuI-g&%gMTxWo6V!Y0Z(;lhk2OFzpVGVjE!9VBEy`VT>yn<@*ERBI$3ub4^{> z$7g3JuPzp6ADhl*2SqU$h*Q<1W)~4@*Djzdq06y0VNX%d~A`S!9B3c-4EuNpzwkz6Lkzynx$#!M39A$bQ$L+(6 z<54CrU?o=u;p3(E2i{R4Xi8MI+Tm#{UwVDRKYCEvtEY{etP-0_sai*^(Dvg?T4y9b zBTZ_wx{I#w_Z(JBcWSV`{~^5uv?-;{$;sj2a6Ec(|LV2p=kwj0B5vP_lb-16rcRBE zN*T`iY&4l(yMF!Vr(=vu=e!+0yiZ+k9T&&AKGuYHQ78M+$G^Vt{c!icWu1M$EWY$r z$sU}Ev8JgOqNyTG2TUx6lo$EBD&1jIH9n=&6r*gKSgmH|@vQJyix74)Ct0JMoi+CI z!-^O0HuB0z;&`E)uOpjQyUllz6ou5*sMVMgIL@$#Ph&O(Ucgvlm$RSu1Hi=*9Tl*B zc<=7*yF2^8zdPT%S>)v?FN@)Y15h>Pu{$t;vM9^hZ0D(zwC-x(ruXi>t{r2|x|fy9 zriph2#&8BN{f?{dzRcpNqRft@)r~8$P==5XR+B+KEQVT^#il9E>TPXJq-`3uRnr`= zhG(NPD@H{qhk2H(xO$a%c+$$@QR|P7T6cby*shgLtF*MFB&0f$awSTRE)5$FyI$OF z#JEOBD)PYqaAArfP&I9{ynp}BSNE@8dvY?HALK>;WJl%p_D3(6UscnNi_G$3Je%)4 z?aYedbUq$t zX_8S6tleg9U5M3HN=?(&O}$uc>UuUEtw+N$6nQ3jUL>-juE>^4_3N|NRx6Xu#;Dgy zjS$rlw~-hksmRf7iCT-+x3R?zrY{43<4vPpfBO9caN#s7V0m(Uc;~g(Ui!jpHb2OV zVl)_x_MCGrrj$C_*GDybjZqPCS)R}4JG&qEA!LK$U_2gAhp*px^`+HnaSCku_iiuw zh07r5TS_DsENjyWufO8#@V+ds41=2=WP4*NCVn&-`F0xW^?=lb6f)5)r)?^2n>sdi z)owObvsjO}gHcIV49(|dW7)83vtiYQvRa9&8(bZu#OP=Wxs8gYjfK+j;%Yt6w`mJvprEYN49y{xcdLpX>c*Fyu`Xw-eehDMw*4 z+$rXho#Eczd^8zk<6yDSX6s_xh=xq9X@%IDwkf8jp{<*?+H55o4=oI;R?11;ma@@7 zUQ3x$%(K>lB$tyk5Sz9eIL}Me3Tz9Ooxss+*oz;-mOGezg~zj*A20wHT2KSq?Ph&+ z_wH*ij7HOG$b7N8yZ4;;S?OHT7*%-#3T9o=MoqA?EC<)~{Q7t_8eh43_4-q%r^l}x z9Y45z^zh-s^>VpXOIuZoDaG{m$(v9Xh0luI=UFL}*}UAnvNxVicgLg2Y?zm2Dd1w= z&>E)BB}+jFt%*jnlt{5nnqo4I){(hZt7hv~MqBY3hl5PT=P3o$3mS~H?nBN(Np6E4 zJc*sXh`qLho<9e+hwxKxf11_@b!OZnhpcML!w2_Y$@8)(%VL-pWjUElpX}%;L{;_e z0O)ENmW#-IGM)~m)A_Z7Yfn6L?d--YCr5{O&d<*dx7GS|v)(M*wyD6Ph)XG@*fe$W z&dG2z@#E2?C@6YqQ`&P{?3VRv_b zGM&zztn2!uuBy|`W^>lG^%-Whh@=!#n^H>7d&;s5SylueybB@Z!G}yuEw)i(Q)@Cy z35)&7AE`UO)o||OBpl2;ry=+xt*>j7)mrmSEK`$3P11;_Ceu&|UQwyAG(_918-I!? z=y8GlUWB82Nb~t#J1+;<-y#4mSIcTZnz}lC?bVlFa8A&q@%j@_>S#2)A&v|cQB9cX zqc%0|@&q+iQcS9*>bwN+!&JnTgTZiKmV?cBI@_ce7b&H!APKDP1{o!qpq5n4Qc_iG zW2>s##@M!+G^&|gRNDIvdXtX5?7FKYBTt%Q-Bhc#U9PE?X<9ZxN!EyI=G81S%fxDr z*&!4=Xnh1l!d`nGd;I}+dj!dT*1OA)Yk;cSJbdldmjFp-)?U4O{WHVS z@P_wc0=Seq6J&bP(bD&PnTnbE6tNhSVCI~2Ii1JO1WM=J*3^=Sv}P7nQ>&)6CXK2o zYSK1YYE7-bF-$KbU8O?J%sIq~nK&~%j@-GJQnNkZZWhO;ix}p0J{GlriUvbVv#k&p zXgP%89NS#Q?!63~*N|7ISW{r`4yF}vZK?SXG~jZ>U{}uFtPgMBep%JDX_|U@?fQ++ zOsDf_L&#=eqN@EMfnIc5T=avRnW9~Lk;E7;M>+u^x31B!tAJ=yGs_HV=rqb}Zi^FA{tuC1G9dA44jKRDYit71@%ZtbV?%7G4NH`Ik4(Y7=@6RLA)Jk-x) z_lMY*uOr)E#`yW}sC_=$(~Iw5eX9=d)=QC*ZPrV@bNiK4Rom5ivpT(bgL)kCFdMKSc6v1c1xgs~Ngkuk`h5TP@B`&sWRE$&DMg?(JOJ|HN=G+z;MQ zoX_%ZliMyuP)pruJm}-m-N*61nTeT6-;phJ)QemaaKS`Or2pOU-s8O&5ogXx6meCI z?P{~xoE#n=p1pei_Ug2bjZLmt-aL`c+pAjb?s8OTEKi}_!BT~_BaAD+7wB$h^>6mw z-Qy0BcVc=z3;^DeETxpv+1Y8+Heafii}S;4*KfRj_39HJpG>Dul;vq?Bnp`T|VC4gTb$0ZQ1AM(r^0vxXsCj zbqkXV$DF|0^=8%9w_jeJo*o?@A3eNtW$)^ZgM({NO{TN!gK}^s&$5Yg&S{Ehj43%y zs!0=?y2G6;nQ5Xs;r4P*oQa6`4#|KdBFQ-yow!<4TDP%XY&Pq&)$;u8;6t0`@g+9tN`x@qcFwOuck%f(`~JYOxA=hbq#s5k3XG_!bFd*1Lp<-@tn z=7)V7E4w6V(*JDD%%v2Yl;WywA1+Rg506dp^PS!C-u|`ucrqD`N8>@B7lmOi_^d=k zof8WoLp4QJjRs9qH=7viO;v3-oAqk5*{rMedR=eVtEz75wr$&}nqps}@pTqEXA4nQNQI$F_Bw_0owr z>0^IcoS%h|1v8A;wyG&b5yu6gbZN8gO&hN7y1MpHFaU3-5f}88yea1A(x{fSZ7pqE zzv=%qz0Kwt-!ZrD{LTj8&0#CNb%sFRrUGVP=l|t9Nz(tI0q}N?`<+Bs@8tRKs3n&V z*Z63C`0Jy4%6|mFM*w`ZJ_6t)06tnD0q_w3AFYo7_y~ZH)`z_QzX1SW-0b+?zaE7E O0000HjrPj2WZeF6V}AD;s736DK246!0u+^4PgmPf%M6M@xuXt083y6^ngEwx`4%}T0K6>p}PyCYtZW>&voG5 zU8LEAvjf;0q3aXOhRCkN24JgGXqIp|hWiaPQ&^oqF>IIp6sU8!{wIJ5t&NDZ5;6fQ zT7CX6EdWMqwCc@`{{+GzWF2r{fxRQNyo(h%j82iFLi)Rq&Ea?-vQwnIi8KoJA<_d` z9b>mw=&r}=QzR|HN9^EAdyZ6L1B3k&WVVM@IZS>YTkk;i4k7|}0P=5P_F3R{p4g!N zXaSIDSJ;muJlg`{e-SPz9K3~ON01L;G(%jCGzZWKEClH^Fg<}nkii_GgOxqRt)W+8 z@f2D0vF-pGgXJmW3ZMWRW79Fn4Q$6id+@mhGM`|R--6{!*vY>O_NRd^@aw?v`wPMk z9)LuvSN;`*zX09yz!J`OkS{M`R69fg z!0JBi4v`{*I!By?u7@Tt6$I1+= z0_o%)rZsl>92AGJ`!1ZGz{xMc@>z`EMzD_;gzrB9O6!ArgwFy$2l;Qdy7z@X)CMO7 z*)4*x5ODcpbav;Oz)^FFVLj_zDh>Z~gq-CI41nNqN^F*^0!aNZ(NDM1K7YZPAkb6f*z)PF%69Z>Jgcx&T z6A8(Pbw)jlELV|wnpn?-st>VHnkJD}Mm-G#sYp0dlM!P;i$F>hWNSF6z@L)p8qPT= zZ^F&5zyoLv&PM>^$pI)n;E@BM2>&WD0DB$w7Vt-xh(AQmE|3F<5|Lqrp3QOn0^j#! zJt%sPUdPkTlrmGg3SDVqQ?Ev*jzWaYAXmcy8G;x{N?7t(G(s>Iqr|ETET@s_G-E!` zsEReKDiIbDmqC~}gtZay2#%NpEP~6Ctc%4O!dejCUO~5no`aqW9aTCA9fe{8 zfHTN+BMsW-L7fVj8D7BSP}?}ZW`qPGda6NWyqB2HGEV!-@iI`4YZe`&>I%)=SkD!m zF9~r;a*miBvF?(hgW8kI0Spq9HKZK7w?@WbtUnwGPY%FyAK<70+y%}7cfh@kTsQ|` zD3QGp(#xT{gAQ~2o+IDyPj#7H1=Y@_Lg&75{ipi|?qnsGoX61X~(KALa?frNG zr{G2KNDGE3DOV2qP!AHPL(kDNa5}7bFwU5r)+{Cw*GW{FqnRg~S`c%HDv3nw=14vy z)B&+I9CVN!;P)J?e*xob2n$+y{MZ3F`udX}bspg7uNs&3l~<=Wtj3&OMe%wl#jq!5 z8`CrU9bZB*Qp$ct&kH3+Cato|5FG7lcVg(~cQsJ4hyPQR*6MnSx83wUb&QdKmcI!yoOlz{CF<=;pmjTex%9uKtWxCAA=K00q=RPaUIN z*)JRieb2>#<9gw^e(E^&g7-B`A6U-}Sw=J@f+S*EVw#bP1RW#B94_2}=gz>J7vYVk zpz)iVc!F}*lLPSkfA`4&*!gkzzi$iof7|5`YR4eY?v$NuzVn*XJJ0$4^UoArTYAo& z^@F`#$Dk*f&urt@C4rQ{Fbu&&NMa-bOKmd43{2W}W(iPft6|pG$hJR~jY`_6r>!K3 zw9-?mFz5&uI>KJA3X(h zJi_qFWZ=mGc=Mk=IRN{w2&cJc_8@O+I`cX!i=x+)dY#{sweQ%pXzEEgxpc)YUVSPZ zp1)|r(GF#&NJ#6-Y=ICXZuEG>h=3*|iV!y|Isq{mNu&iyT6riz1`O_YQVP#o4{#aF_|%?DROj{_6a}gZuZE)7j~&s_Xi~`-Mof?Y*w^^2!2xx_6Ugy zeS_Qy9W}0tAll#pSd35yBsf55)G(_yRp>d?=SW}pGAzD{y>bh+0}?B~cNX>V;|D+> zde%(`7&!0G?C&35y>#iR7cXDB`uzU>!JhLziz&=bCMR#)zkTa^Z0g&hZl>ZY@AEhq z?WEjGa9bLNY<{-0n9`<7oZ8i!OCqC<3u=K}Th*0xqh?H7FyPU$-%S2i65M7AEzuh2 zy^JgqI!?%>!kKVfB~p{HrNYu<$&swtSbu}=b(nz^hs0;j!u^|Y{~m4KLuq}v?=t`b zWFQ4iGZHx5+dp{Wi!XlZPrmqtFa3%A{e!2nyy&P1Rb8+4=9ACde{lD;#dP{x@4WHG zo8A?ZUT?7Kbjp}}hlm(LiV%s^35fQvfTq#FK^79?gu(|(CzReX^w7_QK_-k`3!D@1 zwgF-b!p5z28(Z;kc;R5^$tcN0ab`#pNil*7)--JzJ9?0I22E#>-z6Ol(F@NLzxdnO zZ=52ti@*ZoI^T7+KP~_SHqj{71NMiz`_DiB!izusxtD(IXD(lP`k6e>G_|UNPPbR~ z`-8!-KRSQ?#@pe+-8+*`r?)Kio_+PU|5K#f^XVD zAkU55L7r#yN~PcRjJmG%ath^4ChTf!oU=y`6dn5z3*CaSEgH3wus85L(-f>LqpBlKFw#0BnZqQKLQXQnqGCj(m?QH$$aH~J zBaj|qiA0Z<7V~|OfbHrpft_x*_tbNreesWf@yEXWQ-_Bap7qZA7~@8TZ~Q}vpo(+q z`n}$TUfI1epHAMob@SHUa`)^i4)zv)udL?gY@T3Yq(#*lKpaR!LW5L>1Vu8#t57?` z6^^wt++Wr^SC*MS6V@3vPcTc60wN$0 zQd1!zAZtZ}AVnm&getf!5elR38coqq%!IgX2$P!CBxiQ6L%o+1yUJw|ylhv-V;&K$ z(H9X!m2StlxSO+DMrP|af!C}&p$f!M6AhAcBo&e>Y8Au`F5iXzb<*$O!^S^JOPj1e zUI1isjGn6QUA%bZg%>{i#jl({fBCtxQw~Lyl+vT=7uk5{Y$_loAw-?87S+jQyl!UG zmF=Fbx}RA#y{UzThtP-G!>j^}NKEaDO$n-iq=o`)OgwhjM0h=|% zMWAUSanUe4-y!VeJf}j&##4P<5*{rXoC>|J4E$h94_FTA>%C*KAOa=vl<*vt4SlFaalZF!}Jt_g0<^f3rN3IN;HUm^?-&t1HF z>GIVV_7BdSEz7cOa|GLrf<7WwOB?ot5aRLC(Sz4sd*#(vzxj<<)^&B?_jamV<0^Je zsyH~G5>CZ;+Z?o}Hp>_Tk|5O{b2(D1k-UP&wS{>ROck@#dQdT7wZqmzTDP@dU1uck z$YKKP;&w7Rxw5lKSIFa6y1_vll%?bBFz3pC;O;E2SVmTh#Cn}*DkBncIHG}R!19E} z9O=J{_3pyr82B2GBIJMg(E!-${%(;KdpkS3PhYrr>BWOHXD?)Vo~2}#Qc5E7C{Zqm zQzuT9@pQ6y`|WSN{Lb6o`n}`hJ2za`Iqmn#RY!_C%ZAa$YU>8gN^l-R-sYGk$CQ@m zlWIinp>ag4V;keT3JD$yB_;u*ZfPpD!;)`ROa#la$+DKWvGs-?5_qiz z!FgfW_nhC&xOAFvItwf(iDlkU*U$vt26kCP(mA@SNOcd%o<(|>NsF%nuOsvy$-svN zVC(r5K&RIq9$dU|<>~!{!^6BNiez9hC9sDYUj!8qv6O5&pU$pbd-L_*|D9j|jceE6 z{$|~z2Tpai$}g|FpZ{DOT->*(pMz7uUVR}JD8{}Nt4ct3vIPM3! zOHaLmItalMu}U}}Fli9KL=Gp&A|dxL0RJ9F_R&?40$x?i{$O*eY;ozB>DT`e#7;~VE+O0&)$ zZ@q#r!j3)*#~rNy4pIito3Psh=E(32<^~u8#1*7iwQ4ADAk{6qL9;f2hCwi7*`Vgo zlLjx2yjXKmDmO~UUPn1o2%U{RcpQgKP7k~==sM009EUx}%~F|k9C=}6bsMY&^QZ}u zB_#Ji4g*EXE79 zN4IXg``SBif9soz#r!(B6AGQ%&U00$ekq=gzrgerPr8b^tKi;*`s*<5W9|U#C!jY0 z*&~(jwyfztdKuH}$oeKCIk*wYG9&`EM*=i?0!e6!gk_>}LgfR?GBEEpoD3W83>+7- zjDZt6*v2DzEI!@@Z+Wil4>Hb=JO^XPX~#475$_U?2InA%M`GF95mD#_WHiQBC%`M4 zng5B8CIN+4*Y9@wdxPQL*q3k&J z`i{M>qgN^&-?BBlf(rqMBl!YhfpQG_h*VzQ&~$#Yz5Wj?0bB1USLeD1XAUpz?(Us0 z%U%yeQc9_H^0%>#n1~Q#i1Yb$`r!V(8xJ1beW$9bd%z6hiq$$GZzT>+T8+C4{1aM} z__MSzb_aMD`1`=m05^gCw$JK~&q0Uc3)DHHfQTZJa4`|8K(lD5 z=ECySF_{!R7$zo#V^@W2o6g?e$o7>p@?6;IW$bl5y|Sh(m3$#oBCU#Rs}zVPSXW>j z*jKoD8=7}EYKRZlBla-ymKR00*B|WndcBd$GHbu!p4P=x~`j(lLvQi+BqHtCOP#ckkc5_0D`YyGPrjxMsV`8sOxgL3Iw~@X4-1H>ON6ehv6F zEDYeSU%)bjvo|rXNX#%xAl9Y}G9@L5HH2lLSvcx>U^S_kE;7bDo@L<}3OIYT1hxx7 zT6dZvS9Ur|KUX@LkbA*jUOeT{DA;eP=Y0Rvmt!%aLUIEwsYgqnC$esXz$47^@ z&2G7;_f2VGI; z0W-7I=GM#}E6JJ}7D8y|^XX(fKDx7*&5q4%x>@rNt5pxj{cpi?!4q?9TJj0(Z`P;B zcomLT$Q#eW^a7?u8xy!q*JT5iv@P~0h*c!6BXJd}mw`oNEYpUH(z+6l?)$M-n0ck! zarC{CZzo<2(G9I$8pK7QLTrNQJ&K<)F_m;W$3h+08e-jIT z3an^bl;&&9B9w~73Y=@H>ZvWL#E?ia5kn$IYtsqa3E%Jp*k12OGJMtouv0inujEc~ zs)z<8fLKH_ke-J)gzy}6Jn(gh|2goNJ{SP@_=JTJlZc3O-eulvyV_g3`zZHjsj<3Q zEa&s43G+P514y-5`QN$vx8r~PFMtC2|JnC0Xm5@6-`YGj%aY&TTx%cl9#UU|>3NVY zR6% zn%Q>szyIl)dgH{q?|ntzu0&g+if{m@KMms^^shtTw-b@Ta)lsmx&oo)-N{2@ml&kj zQeYnb&SOhqtCAElC*;_M3fU6C#7R5(qKGNdBxnrLCCUCzq+i19FMaqpAeoufb!955 zh)4)As79A8CCseN`(xI6p<h+#D*RV}4PN-`@aO*9_x{UhRnAM_ z)0YYefq}Toj_!l+&vH$*&+WF=NfbXTA?g7t1eF1Vs4hBedA5ujd zfu`0!R#1zmD5|b?8(T-e4I?)$sBRuxPiR|1OR~wDrqp)Zm|@nk^VAecuKi#yVgrZ8 z9xTpoVwmECtDuJyrK&jZt*Pre)S)&~iZQko#%&d*mBFN{D$YxmW#XMzQGxW({d|A= zURuM~{w}O%@N<6;{vxfK`NLX9r;uNUy@ZVB5EhUGiH6#S7eGQ$L_8vjDr8Q{y|(lg zY4v)WjxfG0E75XLw`wa>GAB5sZ4^|%yS7#wLfb->7m)41#i!xi5#0U1fM-9r1Q?J~ zGE_9>d0_&LnI(}n4Y5I>ojZ#$B~kC3_dd%~N)kidO40jBz+8a`O6<1fNdBOnx<*$P_1H$A*S@`Kb9VqRg)1? z6Jkoq`>e>aJQLN-QhL1d^km3~jC6;#_38aa1;uSdt|9A)*a)dWNJ!z)ji0P-&5bOB ztZ?KVp~#`|LPv#6T4Va2n-_U((HItu6pfICqynZ$3N5$N0CNz0i`NyZnz z{uZrWc)wNhHK^}n_kIh>&Omp7RIxR#zCrQ$WH>d{3*v<=hay)xrDu@09XYz8sBC>Y z9<8i4(1}J9jd}w@3`R^~qFAoG7zmUArjfuH%{M)*Adm{HetJzp+o$0>ysV3uN=08MFQV1;B61Ie$DBJ-_3%oQJG+i--9qj8bLbwCNt>} zNvK7fI=oY|j-xa1^ah^6Uctecg7ZDk?k2j0N521iKro0QQLQ4=MPR;;G*u#mR$5G5 z+bm+V3Lvc!R&B61-I6#bA6^1%GhuaX;%YIQ9?vGHw^z&MX_4oB6A=STmfD0|vIJ@( zDtXZv?(UtreD2)E3(NW9xT;o*#{hVLDadcZ7k(A}@t=M##ZQ1WB!&Gqk@4%$xeVnV zgbtz!)ir7npEmtsg(DkyIy)Kt-Hg$G&bd*>*<9&uiZ0kg^ZV#bDo8L=Z7gODC-cC3 z7FjM5>&A#;BvXFo5*YPEO}Q*7Ee zEMX~`C5y?-VvH%Jn7s4d;c(~Tnf=43dj0+$t!G}a?caL8as6fFZ~Qs*)vux71pUV5 z@w=ckpjeSXeg=tMWL=|Hp;;M*mEQox_6tvmGw& zW}Gh_BW(k)ZBb*(=zB=vO-5{t)vV!Y)^M^6EZ2!D2BM^m+A&fHn54GRP`g;BST%>m zqphDlbS`K+NfBsL3hUWy^5ArQa$|q*;9kE!>VUaN5IkP3F%{MBU@*G;)YZ?tv|295 zH*UOJHBA*CoA~!nQRvzCaBElr1Ed2K4otz8h&71hZI77=>J;Y<*K_1Mj&k2KJSaGO zzTh+cj58{abhWjTqN0Wxxq+z*8)WK+Q1Wlx>2B(}2JvzE~=hmC2C&%xE(9A_upf$!RrMM{+SZJCULX)yA z-`UyOyL#!$)n^BT;h}SGL|a(g#s}{cqy?}eu;cdEi17KAec%=I9x)G6ZWz^dn>6bv zZr5AqAhX{2(ss|6cHu&Yr}uKM6v}ARH@2N@d03H`P5ub1F&5Ln{Yl_xZLF7xb!@k% z3!+4qT3%?kN9y#j4G5H1uyTm;kAc6od3*#3cn=6oh|A;S`*%)GkKY>Y?q71w6=s${ z5`biu3`=c;W=$o|`R;JE`|M{w_mcGoqwM8x{B}K=oVN6Z z_Qo5Y#6_L&!|gZ0UB>?t&@PxHu@!Au%9WL>+gBfb=ucU8-s%=UJ3x!iH=IeDC| z`Dn;{Z?vfr^I5~)<2AQuHPdCoY8hEKky?~yQ^c{9uvLbwM_4hzZoGzl<2G`AiSG(Q*VYl1e%k%tf2Po3eOZA`Iu@&;Lil zrJogeN+#Dm`C%^BEyXGrS*$qG)a|7mSts8mKQHxdfN8~qyD`+x8FQI zzIXHX%^UYu>*Zp@BWfNy7Y~7m5x)BC!c%vdox32-;EWW&nj~njI1CvE$(Io0*)FK308cR?iiNgkp zEqmDAi`exAq+bW#ZW-T?AN%8KQ%$t7=`zM3_wU|*XEfT~QSUp$;mA4fN6}K7Lyd+d zBVh;$i%F^!aO#UZ%g*lZ?rTwW`a663`@4GwH>Q)*quF$FI+>0ap=p}Bu4@%F!;)FM zcL%Hc#_bjJbR?lXbUHilyZeVe+d0TP@u0|?MIpUG*+?uF-elIz>&dEfvg&6?J4}PMS@@nNy$=-s?K#lc8j7@7M;#s z+3g+d?;oDlbv>`^deSuYDujC3G)?V&CMm|?@{Xv_$U24QWmjFEIVaIcz0{;e6q8Do zrT1~%E!N$_kIT%zEh+9p~#ENqS~o!WudJZ$cFzM+r+66Vnk8|5ihE_iu6U*6`itQbh=eaabcELDaNIU zM35$>SR-nvMARjN7*kBCStqlYVoR67&?Mr*ah|Qc&nKczB7|98+&?$yJk!l|4-t(? zm-E2wtGM}~()&jh5}YjM=h(If~l5hReTY7=lL0UIx{lZdSq*a7-{ zS6}Pn-YsS86#*=px=wd)-%Kf{v{)=w&piA5m-_wT(@lBIx3Z5CrP>IlJ{52UzhO%_a@feTZgCy^{ABQ-Iu zC#&x9w6=TQ!gsv$8cbHxs7I3^<8dR?an0ZJBi|^y_y^q}YW8>ECgw}wC&~WS4wHwRjeC3_5E?m02?Dhti^Sl@~jhKPN z7!w*>Q?Ma^wUL``zY|6cQ!{I+AciwD-=51fCG%jGMEs_+sO897(k*{o)hDVoQCwV2 z^I#Aov8iHQ&8pz$fpOL;W1bo2U0NnqOLOZ*(&eOPH3_VjP&Gn82~i0+qBo+iNb9EU z1)L<(ZLpKy#rUVd@BHDD_5Ip8cMHP9BK~wbiLbr(jWj+z8h_@w7hf8UcAgcHGRv}# zs=Bt66oXlcf^D*j8#6&m^##O|DMkwh7R^k}XkUXO&Y74Kkz^*?`XvoCYr|WnEL#UKcLA{RD>qHFDn6(?i#@Ke{CnfnnT6!#0*vn7B zxB~gBU@vdC{rJHH@a>Y2Vhncw{+)O_KAxqN<`*trIUWvo&zIfutaGmC)D=O4#Sl`A zF<~htv$*k;9 zS~sWCL=7PpDWSPpQjJN}Y9S_}!LSsF1|dL7p=DCL0a1F`YK+}lV#^N35oX(+Q9eNc zwqt9U*FdV9y7|`YuY{A6qti>5ubw}1=Iqt7+uQGS%KbdgdqGt-L}H97LJ*PAa!ZLR zr6@>5*jD~GsbhKAk<50JMcX1|rdV=9)MQa@vtvPQnou`YT*t;rttDmAi?#fIv3UX=+reBO=#jO)^(kJWmM%KUW9|ycvJUvtV&+Zd;T9@M8Z0)X*b<&n zKgZTx(qhwZ(3IF)KZVWykB!P5@Wc%!Kd5ieu*V(=uoy#_j8Cf2G&RPZ!?PFe?d-Bu?S9M)iRNA5c1euOB=pPY%zVySul4W~bZh56ZIa6-Bq7 zWm%5myz@>}OhtvZizNxvE$f;pS*n4s*+!{~DXv#ly`0z8Y8jgKy0NPAou)W*(K=<{ zv_CTOLmWd?hdAw_PRMJh3y3+XXhkA#@C?x^;VMkDVT3J%xK+ z?E2@SYQF{K11OvyE&#q85CFQBil%720NM=c z!(gsGZkiftWLEz?i+6sGm;X%1cAkEg`d3Ri7=fFL?F^B80=mR@z6|$wVD_8s7yrzj zg2@WzQ*3>V*snr$7x?9mHu*m+06Y!^wCZWw3$yj2o2~C3LI8pQgr@oS&wjV(M{TpI zM+%o&ojEJjAIV5(vFSCCopw`@B0>?dK?CDH%oFJANO^!|Q*83j5&IcT#x2kD;}}0o z06advmoM>tTK3xk__h&26J(jCE^r>2W7=fdpN8fe*y%q*>T}ro1*itVzkuo=f$xF+ z*e339@2%^8l<}kUeZuXq_j$mRIDwDnZMQzzF1QSsfYh57c?UX!^eWVE)AIN}<{@Su zS&e-lYoEe#-{*$!sAl_KH>2x0H5&q6o5~7d6VkgE;9fC002ovPDHLkV1h~?5QP8$ literal 14980 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 O0000f7!t_G`o-q9o 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 bNaX(mi4MZ^g&A(A00000NkvXXu0mjfOn+km literal 15054 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 diff --git a/ug/wifi-direct/edje/images/loading_96_10.png b/ug/wifi-direct/edje/images/loading_96_10.png index 0c5528c1fa164450d06c993959000822706ae4a2..e213401b551ffbe5670f2079fc3e13f8c3dc3af9 100644 GIT binary patch literal 12189 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 delta 14751 zcmV;QIbg<}U!Zf4BYyx1a7bBm000XU000XU0RWnu7ytkYPiaF#P*7-ZbZ>KLZ*U+< zLqi~Na&Km7Y-Iodc-oy)XH-+^7Crag^g>IBfRsybQWXdwQbLP>6pAqfylh#{fb z6;Z(vMMVS~$e@S=j*ftg6;Uh>2n?1;Gf_2w45>mM5#WQz#Kz&|EGkvK~TfD`~gdX7S-06<0ofSs5oQvjd@0AR~w zV&ec%EdXFAe}CrF0DztNnR@{MTa+Oc0iclpAQNSXL;z?z0IbheibVieFaQ*0OT;+< z*ew7sNmph_0I;_Jz|Ig0vH%DS05DOAg((08djMd_BO`bKgqZ*oM)FrY@hh$n=PCdI zc$u<1xgb(Nf#>=Hemu`nm{hXd4HK1GJ!M?;PcD?0HBc-5#WRK z{dmp}uFlRjj{U%*%WZ25jX{P*?X zzTzZ-GJjoxM+Erb!p!tcr5w+a34~(Y=8s4Gw+sLL9n&JjNn*KJDiq^U5^;`1nvC-@ zr6P$!k}1U{(*I=Q-z@tBKHoI}uxdU5dyy@uU1J0GOD7Ombim^G008p4Z^6_k2m^p< zgW=D2|L;HjN1!DDfM!XOaR2~bL?kX$%CkSm2!8+oM4*8xut6L2!5A#S1{}c!+`$X{ zU^aw8B*el(5JC!MfE;pQDXfA*D2C0j9V%ci)Ic3Hz)@(1lW-0$!d18qJ#Y{DVF;eV zD7=9Q1VP9M6Ja6Rhyh}XSR;-I7nz0lA;Cxl5{o1t$%qtDB1@4qNHJ21R3KGI9r8VL z0)IJ&Tt>Q)JIDYsg8YWOM=_LvvQa(M47EeKs5csfMxqPQWOOl_j~1Yt&~mgIJ&ZP? z=g_NY5897DL&q?{=okkx#B4Aw#=}CfI4lX1W6QB3tPHEh8n9NZ1G|a!W6!a71QLNo zzzH@4cS0ax9zjT0Oju6XNT?tjBs3A)34b>U1B6k+CnA%mOSC4s5&6UzVlpv@SV$}* z))J2sFA#f(L&P^E5{W}HC%KRUNwK6<(h|}}(r!{C=`5+6G)NjFlgZj-YqAG9lq?`C z$c5yc>d>VnA`E_*3F2Qp##d8RZb=H01_mm@+|Cqnc9PsG(F5HGhv< zLam{;Qm;{ms1r1GnmNsb7D-E`t)i9F8fX`2_i3-_bh;7Ul^#x)&{xvS=|||7=mYe3 z3=M`AgU5(xC>fg=2N-7=cNnjjOr{yriy6mMFgG#lnCF=fnQv8CDz++o6_Lscl}eQ+ zl^ZHARH>?_s@|##Rr6KLRFA1%Q-6J~MpZLYTc&xiMv2Yk#VimzG$o zNUKq+N9(;duI;CtroBbGS^I$wLB~obTqj3okIn_1=Tq5J-KPqt7EL`m^{y_eYo!~Z zyF_=tZl~^;p1xjyo=k72-g&*}`W$^P{Z##J`lt0r3|I!U3?v5I49*xl#WitnJRL8` z+woCDUBf^_rD2s}m*Iqwxqs0-qt!-@Mh}c>#$4kh<88)m#-k<%CLtzEP3leVno>=< zrYWX7Ogl`+&CJcB&DNPUn>{htGUuD;o7bD)w_sX$S}eAxwzy?UvgBH(S?;#HZiQMo zS*2K2T3xe7t(~nU*1N5{rxB;QPLocnp4Ml>u<^FZwyC!nu;thW+kdXMZMJ=3XJQv; zx5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C^>JO{deZfso3oq3?Wo(Y z?l$ge?uXo;%ru`Vo_|?0bI`-cL*P;6(LW2Hl`w1HtbR{JPl0E(=OZs;FOgTR*RZ#x zcdGYc?-xGyK60PqKI1$$-ZI`u$xr8UFki1L{Ox>G0o)(&RAZ;=|I=wN2l97;cLaHH6leTB-XXa*h z%dBOEvi`+xi?=Txl?TadvyiL>SuF~-LZ;|cS}4~l2Y<3>Wmjgu&56o6maCpC&F##y z%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47EtUS1iwkmDaPpj=$ zm#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kwJ{5_It`yrBmlc25 zDBO7E8-Isy%D(e4|2y!JHg)!SRV_x(P} zzS~s+RZZ1q)n)rh`?L2yu8FGY_?G)^U9C=SaewW{1JVQi2O|!)*SXZy9nw8iQjgXv z>qid9AHM#b?{_T?HVsvcoW|lKa720J>GuiW_Z|&8+IEb4tl4MXfXY$XCot2$^elGdkVB4a$ zdw=I+&fjVeZ|}Mgbm7uP|BL54ygSZZ^0;*JvfJeoSGZT2uR33C>U8Qn{*%*B$Ge=n zny$HAYq{=vy|sI0_vss+H_qMky?OB#|JK!>IX&II^LlUh#rO5!7TtbwC;iULyV-Xq z?ybB}ykGP{?LpZ?-G|jbTmIbG@7#ZCz<+n3^U>T#_XdT7&;F71j}JoykC~6lh7E@6 zo;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|zrTyx_>lv@x z#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRaV%Sl8* zRCwC#y=kaz*>>Oe8*|Rp?e6sF+_vi8s#3kaR~HnKScnjUf`TE0kOT{3LPAI|A|RXC z1RRu)CJy97@*&7c2qF$4!6LC_34bhPN0OuWELpE!TUD=g`{uN}Uu(@dMn0@{Zk=0I z@71fS`(8cdny}dCoO|xsYmG7IX#V3r#uhW=5UH8-x*aQAc;C~+=WWXaJVCV%!$-h_%kPDaZFL&Y90ohxWqW$kHkh)h% zWLcy_+4#Sd>PF)1r;Hn4fuH_yV+_)Q{YM}(u+IY(@MYkey~xKv-YdiYd@JCh&|QB| zS%2j~=A0`;$W+Za=Q9!UYDyMD29lblP9kEe+VsYx0a}T5!{OtGSv6CKyQFZkpVVEZ zobFRS%s3vy==b34r-9p`1CXD`>@rvd{8NO#3zTm$Yk!Uu;4bX&02KX`L;@gY6X)~k zDyiyXHlNOB(}kJNlcp(6S~zr(vzl$jhwI7lAGRC!57N%y=Pc}Rar_v{>u_JOGQxBS z`CVka!tP&(($&JpUgKN-EXdba-~~4TXwpJ`6saI z4T#s_`2!dngUjI6+ejF|<01C-3Bt!Q{uhKAkY}fe@FDH`&|hVLP0Dhxy}7l$zqhx4 zeX_BAZ9Lw*vbD8!Wi%RZmF1u+tHFODFUqng^4$3lG^K=@h;!nc^O(@4rcq6?ZJPCL zHak8#di0&wUi;SnclX|%FFWt80`&X|%_wnuBy_2!4^tDDszSay%##_0A6+K4_}!JR3T1st}pF~xo%gTn^-wuf&I zfKOulHp1Y8DY(nxTKJvAKuCh}1J|kl@-j)DPg+WvCB;zXSXMFahoY>-VOF@I!F6 zp^vi1S(a~Ix_tG<_3Jl3v$ucgQ+o%OU*6u{y*eC@hFQphshOFnrg(m|ofC&RCvST! z0qNG;GGRgbEWvQjQ53}>gnXFlRlrN`yp;i!(qY3A-N=chXLWzp(wY#%CTUe5iy69F zqfG;;LFS4T0xwipG~~evto}WW6W|JP0xaH}RKpKp=T{=KQI*x+{-rA~+Tw^|mVu>EyK&tN`e|imzgWkw~8K{BR>43lN!%;x!g+Ccj zCI`=5zxm0RUi!pOUB3F<)SDDAfy!2o54)K#Rb9C42N@GoD*@*i}&82tK!`H zIPoH`i-3PFo&piT2^g&E50oDA zOqeHFiqJYiYJ)nGvKsL@dN@YH3T`a1`As;x0!Lqhv;gh{U+Iec68e&NNB|J2p%&;R&%vU$xp=gl;=Q9;d|I46IuccIp~P{fIMA|ZH>h%z-kZs%sxE4gUqgDtLq43jDP&Y z_W^%$0W7OR$T#=*F5h_Wxfi~0>C&~&4M&qJ&N;7UiggjC6W0m6$1g?DF7gy-hNPIR zO|f1r7t6X{*L7X5>Uy<|F=}kv+Ic6MG-O2~!{KP0Wkp_9gVKlK+gLAFtHs09ljE0f`*d_cQfk{(j8T8r zO(R*zTvil=!EjiOM;oJRILdwSOEr5SPHycU96Y%3;!E>u&pof3+gn!Tg%=ZNN)Sg- zBXj3TV(0uNILZydCxhCsS`i$L&Y^9Hjp6hZ8*U@32*q>og%X z7op<8=H~Xn%@=;`Q`et=@k<+9+s}V{??Q^PH8VSp8%;44HD{g82q8E#wbgRDo=&IJ z$B!T0Jv}+Pef!oMuReZs|CR{L<#I7?+jc2fiYc|G7S+fFCpd8~xFX968I32|V6tiD zc(k~D{n}#t`n7oV=8x&_!DT-hjj}9wk8++n1P9(A6Tu@m0f*s(kWVt)oO$SBeX|xIVlH!J;!J;hFz0BZ3DGPs2C>+^nyO1LQtV#!`Q~Qn^L!+biNhIq z2Tp}dgbXE!;qf>DFNP}|ek(^6ln60Eo5R$w(m^3;QzF?396bW}9BjRWt^X5})2Z#r$M;+*T?1T%kIuU4zoYJPn0 z{+(~$x%I{?4<6io{rLFtoqD}GHe=Zf|2)}G7wT1p6Je`_q7s_S6@$VR)kwKIq+N>?@7CPMK-?pSvEfLNr~mePrXaF!rBbk&2fLeAPYia;2e074xu#& zqMa`=*O{qY@I!|-5SNK&ZP>a&S77sqW~aEp5auJyweYbB8##8;C&%&w_5lvagZI_; z_U``P{=o~?aB#`Yf@(}=rk&YWF%@y*%sJ=Gj99N%C#NU3ZoTp9AAR$iU;E0@(WBdK zQ$JSK>4jY%d%=HycdmgR8SP&c{^9}E!9qT^ld)b;knzZ!6}hV$w9cT-Nh#5)vb36P zDFXHkTqxDe_(uexpjTkY;W-@o%(Y}-e`yvGyIh5zm=0oheBjJwE5=D2eOZftbtC$6C>uyupc zpyNbJHAx24nlX2g!Z}8TF!Wsr8U!+gK$jn!3on0Uf(-+!4P(Ai;;f-9bHbuQC7>}N z7N9;uVn8x%21LP1u;m<^JIo21L#m7vpdL78m1mxLHsqWnVBHDmPdQ>>U5O!9##ZH-4;=H# zvo0bjBoczQb0jxp29g=JeGK;|2-`i)kBF4WafXN?Be3i)(jEbq-yVOGe&7?}y(=AP560{D> z0;GtoS7`0fBqWV!*3gW6cM3wF^}Y`-&at9CesI!-5Sg%D2|MGQGMaxuhBHAV zbc!A=VHRQklkoC3_R8?thN0&Q@I^7GMx%}0EGst52&$>85<>q1_#on>sh8`AM~9ET zef;?Gos{BRqn-D#CLsTLcV7HEIOTuRl?Tr*!O05t=AfHcF(EaEUpI(342R}Q8a1S; zXFU(hM}a2qHE3@a2&r&vWR6FrQsjZ)3~w#2Nm$#0O|htO>C=$EguU`T z%*gu{z7vs94F-eJc)absFEvF?nv$xjs#*7CQm~{+7t6)s{?Xy%TeJDeMQGuDkpFhU ze&tPfo!;WQSHSOs2~4+Oc?eFs?dEcbdH0TOggT<@h|U|*ykWUcEERv$L2x~9$siNR z#mF7x2zl^~oKR$*tn`FjyF6l@A*UrY+fYrq0^b(MP3TVRKloq@kf$Rc2~{;12!8-|LFMfqq<(d&z%qWA#DC4Z1UZ&65|g#?=pQJ&W;dS zKs-gNDVEomuYo1DR&;+J(M3y|M(Sl^6^+yIjC~aM(G)6o;-L$?(o6k zEJr9I?!a)jyB7nwWC*_p{1+eG1U)f7-urBGb98p$i&HT&1G(*l3pjvW{kJgxweV98(^ zVJ+C&uvJ3Wk#(yyg$L=2H9enN`VHfya|%@^j560j*$$i}oUd`Y;Tngv{q|cJOz!~? zfGbZYWgo-`h=>d0@pvQ4@-n3uQ%b?iF4P9qa9&NUZrbK#wOSn4^=i>aJ&8A|F{IJ3EOnHBX_L-_QD&ehGg1SK&{Af7pN9_)qkp#q;0gugowqB;SCY zPhnekkdssJ2_yE1h=6IQn3hfnjggWP4P2iG1UfS$fLe#1iWdf67-T~3AVcv^JJiJs zxTcGv)-{xOk=Q&rW7;mtHzhtnfiqGS53)~n@gHk&TG zJ@_u*+WCJP48fKVMsMcGhro{k{|NXZ@Eg6|mv`7I32Tp#v)@6M2Kf$F`c63JAZ1_) zu>>(8t#-Wj*cVCr5cDEMtpd)#iBLMB5+h(Z56(HngQSQAMe?#wKT33*L9syU_UT;U zeVd@3nczEEIVDwX)zq7Hu#BPR@g^PfWTh!B1i63M2=wkJ;J^Bt@XNmfzttsJPpw7& z`mX|iqo;noRi!PGJ_e`HV~hL9)&i+LNC2ylV%?btHHfi02{B@-sCK1`a|O7!5RS~i zJ0Z`yD`XxQJWe9`0LekSrjyW1F#8Fp{}lN3XO{_EQI@D`RMXbPQg4Fnd^8BG5&a{N4UbPcv2z%U@I0G1<7 zgrI;!tgBXd5uA0PoOf@Mi8}^xM@x5oO{4Kp1V;gg3KA2TN7@3Z7m#MK9&}0$0pnlp zP3ALDfQfT591MN%PSn%{Q8SI5^v(6jV@iLjEm*5DwVGnvacbYCRDJD#g#Y;8hhK`F zAip0)rM`ObX30kQHzE6X;L_J&JBOx(wt~Yi--cHpUvGMu>k{ z=hn=+L>N#rYs{=hBpPT+@!ey8KY`5*s_gqmhZ1n3_X`u?4)6siw_!hn(G-cBU34M= zaW&!+E=j-pI|iN;!8=DGj#7kzH~qEm)hiu?3GX25SWNu|BHGmFxLJO_RO2aj;O9x{hb9QYik9`S;6owN0!zj{Svm1C3(8&0TtN9>TkCIG2##_6KJ z4o*@7G-0eUYr7sZpZD>DVsQgv2KDLNpY8o9;5>XxX4a_cI;pNaGzfp*%+yrH4D()+ zYHC$|a^8i!D2ps)e)T4i>nSKge(9I7mp==?`yTG*6yc=HczLNKL+uz`N^s>6n@n(V zg7aN5MK~|OcdR#Gc!D>w!ch!7)gWWD3~YH}Ao3&ulefg+s)j_RZk0AF8ud-tI_t6> zJB3w)qyc6Dnp5D_XXAf_&CIlI>eRH&(kv~_bY)#0;?Lm-RZ>dYI;ZMGmJf&HK{Xg< z)9KmU{lH)TE6A_>H5lw-%{wMlutNH$G%Daaj(-Ci{7lD0i&r7L0++uAd$(}q3@3_M zflDpo6E1XwTb~Rs*4h2SQIw8y7#Ix$+nHnHg#1kk!Ba@20g``=cCE}CrD>HE4OQRu z1{fF#^E0RvTW(^j0xa(XglCioXxldJe0Dag*XwDX73+&(oA$S%s!25^7eW|~#-q)R zt-;jC`zi>Cno=3j?wuS>9&y)A#UgIL%>vdh?H8`j@O*58JWe+ypxPvP<<->W2Go7O7g7SFO1bpt>4>?8bmS|; z)J$VaF^P!F%d*G^RN7&X?!y z6Id4qB});APP_%@^YM6Nw6V2aPN!!})uuZIpZJV2Dor!s1mR~OpCiNHMK&J8&H#3H zk=?xeesB{J2Y2rwcaFeXe`L3Tyo3}HKL!!JkGLY>oDgtbBSufc%`&4H1gcTaV3IN3 z$l2ZuTpf7!yrYzkn%J{xI`Di@ef7;zWI66H(TAZF9 zC8bi#Be#~CZ79QsPO2}%b^`~yF#ZyfhPcHX?$&T}jO-Ys0g|?0W6&i#;S^R0X&s^~ zr0q(FE_i(F3D#wA#xwX5!yLV|mUoPv$Z~1JzXXF3vRW>j0*};{4*}Ul`Y$3}6 zdC>QV4FgORDS@~~>V$0VcKLT}I30i~E-7LeqKcPx4TP zVsGrBw{P|y#hy_f@MbimX+Aq!&1bXY!C<_d=UFBqCDJD^9XQvbE~XS?5OGyC81Elk z-8fk;W~Y+Ue|Yi0_7|_pc6CL|=Z4I7#x9CD4^p*Ap^$YbrnH7wKtkw2E`@cMTscXI zfk?vT4le<(ij(f}=MF;QI-9@c8Smt5ACz3$%Xxm1b1ipl(9uxNpHS$0D1DX@6D(KC z(X{1w-m+e{w6)P%z|=4mEGA4BT_vpD!j=oVUgGn?e>%VL?3i(ChOU;Y)#=I6*~Z4! zNuK9J=e%i(Wue&I+1pH2J((AZTqq_P)lSZMr(k0zXZN7w z#!kV_f6}w(gxt<&4@uvD-`Rg$=Tl>A%omZPS=LPmYgfJ3D(v)nG8rvMh7SXFZ-^eI+TGr6h`qdY9!zb?MTjEkah$ z$kfFezj~zk?6FmoilEN$#66tjwc(r_hICHBF2R3 ze-pqsnOHJS7RbV2I2a#-~!5tWAq!quwNME9XOSDo)JfRXd)h3CV`Hyi?{dlI%OyWH&UmhHOx|Ll-`4tV(AJ&l zd2rHjJd3QBiF(!$VZP{lKj~OG~x3s}*sz7O8w7 z3oa)F=bTr;xzL@0)Y*lOJgbOz_`cE*Jow-Ur6(Wy&gPFjqm7KoZo$r#isudre{N0! zS4zj02%`1`_`W!c&RnmIXe<|z2d9w-XNl=7v6>~C)h6D$lZNR5~_G z^}D5&+ZBUBCRLVEiCEq!)|$B5ASt5YO)>8X0kRy$k1GvObQ0?t=7!=}?SyL;!BRD+=$99)$wFUF~_t|t+2UJ-BNy{XT@2PDfv zk(V;8ifm_C6#G>ue=b$FeQCtOM(MVT;D!d-DzR>jR2$YLTHnnjaZd1F2$_%%JfkWw z8hSQ|fvv(Z3_{_gchJ^vm_E`Gds5@T%p2oJ8C(eMdov3z3$+M zmbUX95wr%46LfzQz5hq>n)VQR=m}Zw2djXK^JwGY(W9k%f6Wm><_<1jCuDhHI5APo zc~c4Ca>Hj>R*26^$%`tChr@DrJQ!cwsCI5_7B5~NhmQ|4cPaBy0j^b=WW-vjqtf)S zu}B~F1R=|XA~>o{C_^`r)mg`BP&4$xPJgP%E#2Pw)Nv_@2qe|kr9HPJFG4uK6QYIt}8kGBzu-nnl+TYCDtsj1L~%T^8l=D6hs; zqwz+_^TL_=C=T(N5Q0g_a9JTCFWq2JWgDYmxi=Y2u5S)rcy6Qk{8kxW&V-G=4%@Yx zb-d2D7v?!yDNb-bwdCBM_mw%`>BG9@0)OJk_dN)=e_ACT9@c#0-kNVcYP>jZs^1S#0T)RkW@`5E!Tm)TjJfjsjkLY7 zGs=7zIGj@#B;^^F=i);lSw0AZ!7!VQs&aQ+?pzw@FK!k7rNXg$@$jC9D4{baZ`P>o z33woVe`l!m%CYm26!!Ko^Ss>kyN8Dh8x2fC(N0ENG0TfW@+>3E zT?)CltZ<;oJI(txf z+MB*r$WO|h{lCivl(TPNj%qZuayX0JIjVX6Ud^kI*W5d-IXY}PJ#CpUTGq=*9icHt zvP8;T)b;SQCTuju?oF}PgFfS3(#Y#7P_{Z6sP5rx>J7Rkd1&EG8y+M=d;LqWz*k4q5^!fn^>WPS7PNSFl(95UXE*?&yH%)6VDF`T%_&(s!V1 z?Dz!ERzsVNFKZf1M4Y-j7j@%2iD_&zS1%=BO*NYzw>+#?d?R==5n|!EDnjn%Nvn`_ z)RzuR>SOtHT<1x$m8{$CtukLJCrjmM*6{G8<-xS&=(OeJq~Um;m`__~v&dqVsM|z? zr*%S`gs8E98%5w0^)0#{VEHaOd4&DOcd*rS82^3Wv*6#Gc;1@=zWP30v4`doEKj{{ z+BRV@v7(Ae%HbZ*(B#iNr>=N1tCi_mIh{q0W|8B0r1}#8Cg&m$?uWV!MuK~YFKVRj&i{^(mJ-yDcvl6+Q1d&W-lu>3T$>mAB zLrH##HfKo|p%t+x7S|RR$rj^W9#o#K(#s@sjDk>lD11jTan>`{)QHij8)e-Z^(rx4 zC8mvkvRrg_eYR9qi^O~pSk*_K?AF)d zbQ`lz1Hbjofxt6YfE<0Wq~L5DPVd3yHn>eJ^P>48sOE^6L~Tu0iaUvjHA17b^T>MG z$XV_g1V@#1yFV)&B@kRU&&MZ731S;*TcuWih-+oNj4WGYRV(X7WVKY*tJDi!X;Y+5 zp&R66iHMLCB8ij>DYj@UXt6`e7I1ouy-{Mf4byd{`)gQ;}7;u%?dl4K=CK*LW8C?Dyr!8zW7PwM)!_rqIt|a3l#hr+DwcV%HXm;OI`wIhn1SgsdHx2f-q! z8k$Lm+eE=y!*FzCT$ZR**iujh_71S=E7F*-;k1!thQ0f+cwBG_g`C%yF zx1Lc=UoxuDpm=inR`D3apBlZ_uX2qVH&kJ|LF**{>Z7LY(g>`1Fh_ zbC^cZt{1{cSd1W`zQkJVP|LQ!V%DLT={{CmLNl=a=b*Zd{mBgbR*s|>fWL$BKRk`{ z#S!qC4?_XZta1#zg4wTsA+NuTt~ZgNSVQb-5^;!TIfNzF7-*pTB$EiSGe4q&p!4YM^CR#>{<#jwXW(8Jf^)-j|nqD=UKf4Jv| zqksnE_kiDq_5TWYUx(}0FnTNgh+`w>lD!> zEO{s$Ryd%7RYIE;#2ILd=?XIgJ%x3`j!)slV~>9i(r@&T%U=UN|AQCBhob=L1Ve@K z|04Bwus`@T3`)49*zOVu6L42hS9Z;A%>ro~B=3g5imYH-z*dQ^GVq2BrJD(ND$oj6 zEWrlghiD$V&D@@UL3<1f!;S?`m)L9*?0OF={O`ce^`m9%&#MA1Dx$#r0O}c1e-1l4 zg~K=Cxd1yJJIi3T!sRDevw;m-2oc;68V{Ey*vSeBHMj{_j`~Iv;22I^JZ_3u=0Q2Gt1U0Bni5V{kj*J#4HY zJ_j3z@C^qkVbyow;U{5o9n**K@Xz3AA8rQN7wk{(!tEo_>mVa2-oV!B!+-1_y$^IY za9ddY>qs%j_##aI2<2tE5x7(2Xbg508-E4bO{ivweHrQ(v8)AM!{P>{Ps7PE*x!cq zTOdCH?k{0hmiQ6ccRz~D=%&m*$$c?0OzvX#-(cytFj-@#e*?T?N56(0{XNVnHvKhd tzl!++lZXYue2Foj8?9tNT95kw4**DoS1hvubglpZ002ovPDHLkV1lR1>t_G} diff --git a/ug/wifi-direct/edje/images/loading_96_11.png b/ug/wifi-direct/edje/images/loading_96_11.png index 41ef66f3909e6eae13ea8ece9c4ec7df589162fa..dd77fa8c8d1374831a815f6fb5934387fab6ef8e 100644 GIT binary patch delta 11893 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

O3xuZ!1 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 delta 129 zcmZqfW1Pe|L9&vCfq}tm#<|%*iY49A*O7s-ZGqv7Y4Je5r>Bc!2*>re3> diff --git a/ug/proxy/edje/images/round_rectangle_8X8_top.png b/ug/proxy/edje/images/round_rectangle_8X8_top.png index 3ab184fa85ee65cac2e90ffef9281a8555662b01..dc618e3e557c474f8d3650f87230b2b2c31e2df5 100644 GIT binary patch literal 17774 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 Mjf-`WmG92~0w%OV delta 150 zcmV;H0BQg3iUFnpkQsjj0001f;SYxZ000DMK}|sb0fwM4=$2mq003P{L_t&-(}l`0 z4nRNvMA2Cn5Lt)YLev@u(BOc$2npG!eT_{>EN{yBLf3LSCOqJo=&|7mLBYz?OnFZl z-nAid9FgR}A(62Vw_p?1vWl~+#K5=FuqoA--GF|ak2tf!gU${S6951J07*qoM6N<$ Eg2=Nz5dZ)H diff --git a/ug/proxy/include/ProxyMainView.h b/ug/proxy/include/ProxyMainView.h deleted file mode 100644 index 7bd13dd..0000000 --- a/ug/proxy/include/ProxyMainView.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef __PROXY_MAIN_VIEW_H__ -#define __PROXY_MAIN_VIEW_H__ - -#include "UgCommon.h" - -class CProxyMainView : public CBaseView, public IMouseClickedListener, public IUnfocusedListener { -private : - struct SProxyMainView *m; - - bool m_InitConnection(void); - void m_FinalizeConnection(void); - Evas_Object* m_CreateMainLayout(void); - - Evas_Object *m_CreateValueBtn(Evas_Object *parent, int num, char *txt); - bool m_SetWifiProxy(void); - bool m_SetConnectionProxy(void); - bool m_SetProxy(void); - void m_MethodBtnClicked(EProxyMethod method); - void m_SetupDownCycleFocus(Evas_Object **obj, int count); - void m_SetTheValue(void); - void m_SetLeftRightCycleFocus(Evas_Object **obj, int count); - void m_CreateValuePopup(void); - void m_CreateInputEntry(void); - void m_ShowInvalidInfoPopup(int status); - bool m_CreateMethodBoxBtn(Evas_Object *btn, const char *key, char *value, int line); - - bool m_CreateMethodAutoBtn(void); - bool m_CreateMethodManualBtn(void); - bool m_CreateMethodNoneBtn(void); - - bool m_CreateDimLayout(void); - bool m_CreateActionBtns(void); - bool m_GetProxyMethod(void); - bool m_CreateProxyLayout(void); - -protected : - virtual void t_OnShow(void); - virtual void t_OnUpdate(void *data); - virtual void t_OnHide(void); - -public : - CProxyMainView(const char *szViewId) : CBaseView(szViewId), IMouseClickedListener(this), IUnfocusedListener(this), m(0) {} - virtual ~CProxyMainView() {} - - virtual bool Create(void *data); - virtual void Destroy(void); - virtual Evas_Object* Base(void); - - virtual void OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev); - virtual void OnMouseClicked(int id, Evas_Object *obj); - virtual void OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item); -}; - -#endif /* __PROXY_MAIN_VIEW_H__ */ - diff --git a/ug/proxy/include/common.h b/ug/proxy/include/common.h new file mode 100644 index 0000000..3f18331 --- /dev/null +++ b/ug/proxy/include/common.h @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __PROXY_COMMON_H__ +#define __PROXY_COMMON_H__ + +#define MOTHED_STRING_LEN 15 +#define IP_STRING_LEN 15 +#define MOTHED_URL_LEN 100 +#define STRING_MAX_LEN 100 +#define METHOD_NUM 3 + +#define IP_ZERO "0.0.0.0" +#define URL_BLANK "" + +enum method_enum { + METHOD_NONE = 0, + METHOD_MAN, + METHOD_AUTO +}; + +#endif /* __PROXY_COMMON_H__ */ diff --git a/ug/proxy/include/connection_mgr.h b/ug/proxy/include/connection_mgr.h new file mode 100644 index 0000000..acd36a3 --- /dev/null +++ b/ug/proxy/include/connection_mgr.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CONNECTION_MGR_H__ +#define __CONNECTION_MGR_H__ + +#include +#include +#include "common.h" + +connection_h connection_mgr_create(void); +int connection_mgr_destroy(connection_h connection); +int connection_mgr_get_profile_info(connection_h connection, + connection_profile_h *out_proflie); +int connection_mgr_set_proxy_type(connection_h connection, + enum method_enum method); +int connection_mgr_get_proxy_type(connection_h connection, + enum method_enum *method); +int connection_mgr_set_proxy_address(connection_h connection, + const char *ip); +int connection_mgr_get_proxy_address(connection_h connection, + char **ip); + +#endif /* __CONNECTION_MGR_H__ */ diff --git a/ug/proxy/include/dbg.h b/ug/proxy/include/dbg.h new file mode 100644 index 0000000..faf282c --- /dev/null +++ b/ug/proxy/include/dbg.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __DBG_H__ +#define __DBG_H__ + +#include + +#ifdef LOG_TAG +#undef LOG_TAG +#endif +#define LOG_TAG "ug-network-settings" + +#ifndef _ERR +#define _ERR(fmt, args...) (LOGE("[%s:%d] "fmt"\n", __func__, __LINE__, ##args)) +#endif + +#ifndef _DBG +#define _DBG(fmt, args...) (LOGD("[%s:%d] "fmt"\n", __func__, __LINE__, ##args)) +#endif + +#ifndef _INFO +#define _INFO(fmt, args...) \ + (LOGI("[%s:%d] "fmt"\n", __func__, __LINE__, ##args)) +#endif + +#endif /* __DBG_H__ */ diff --git a/ug/proxy/include/defs.h b/ug/proxy/include/defs.h index 1c6621f..4163f4f 100644 --- a/ug/proxy/include/defs.h +++ b/ug/proxy/include/defs.h @@ -17,19 +17,6 @@ #ifndef __DEFS_H__ #define __DEFS_H__ -/* View */ -#define PROXY_MAINVIEW "PROXY_MAINVIEW" - -/* Common */ -#define MOTHED_STRING_LEN 15 -#define IP_STRING_LEN 15 -#define MOTHED_URL_LEN 100 -#define STRING_MAX_LEN 100 -#define METHOD_NUM 3 - -#define IP_ZERO "0.0.0.0" -#define URL_BLANK "" - #define ELM_SCALE elm_config_scale_get() #define RET_SUCCESS 0 @@ -107,7 +94,27 @@ #define PART_TEXT_CONTENT "content.txt" #define PART_ENTRY "part.entry" -/* Width Height */ +/* Key defines */ +#define KEY_UP "Up" +#define KEY_DOWN "Down" +#define KEY_LEFT "Left" +#define KEY_RIGHT "Right" +#define KEY_ENTER "Return" +#define KEY_EXIT "XF86Close" + +#define KEY_0 "0" +#define KEY_1 "1" +#define KEY_2 "2" +#define KEY_3 "3" +#define KEY_4 "4" +#define KEY_5 "5" +#define KEY_6 "6" +#define KEY_7 "7" +#define KEY_8 "8" +#define KEY_9 "9" + +/* FIXME: do not pre-define */ #define DEFAULT_WIN_WIDTH 1920 #define DEFAULT_WIN_HEIGHT 1080 + #endif /* __DEFS_H__ */ diff --git a/ug/proxy/include/main_view.h b/ug/proxy/include/main_view.h new file mode 100644 index 0000000..8f7a1f4 --- /dev/null +++ b/ug/proxy/include/main_view.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __MAIN_VIEW_H__ +#define __MAIN_VIEW_H__ + +#include + +Evas_Object *create_main_view(Evas_Object *win, ui_gadget_h ug); +void destroy_main_view(Evas_Object *base); + +#endif /* __MAIN_VIEW_H__ */ diff --git a/ug/proxy/include/util.h b/ug/proxy/include/util.h index 5b0a0b0..16b0647 100644 --- a/ug/proxy/include/util.h +++ b/ug/proxy/include/util.h @@ -17,11 +17,16 @@ #ifndef __UTIL_H__ #define __UTIL_H__ -Evas_Object *util_add_layout(Evas_Object *parent, const char *file, const char *group); -Evas_Object *util_add_button(Evas_Object *parent, const char *style, const char *part, const char *text); -Evas_Object *util_add_key_value_button(Evas_Object *parent, const char *style, const char *part, const char *text_key, const char *text_value); +Evas_Object *util_add_layout(Evas_Object *parent, const char *file, + const char *group); +Evas_Object *util_add_button(Evas_Object *parent, const char *style, + const char *part, const char *text); +Evas_Object *util_add_key_value_button(Evas_Object *parent, + const char *style, const char *part, + const char *text_key, const char *text_value); Evas_Object *util_add_box(Evas_Object *parent, const char *part); -Evas_Object *util_add_entry(Evas_Object *parent, const char *style, const char *part); +Evas_Object *util_add_entry(Evas_Object *parent, + const char *style, const char *part); void util_set_focus_next_self(Evas_Object *obj); #endif /* __UTIL_H__ */ diff --git a/ug/proxy/include/vconf_mgr.h b/ug/proxy/include/vconf_mgr.h new file mode 100644 index 0000000..363a73a --- /dev/null +++ b/ug/proxy/include/vconf_mgr.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __VCONF_MGR_H__ +#define __VCONF_MGR_H__ + +#include +#include "common.h" + +char *vconf_mgr_get_string_value(const char *key); +int vconf_mgr_set_string_value(const char *key, const char *value); +int vconf_mgr_get_int_value(const char *key, int *value); +int vconf_mgr_set_int_value(const char *key, const int value); + +#endif /* __VCONF_MGR_H__ */ diff --git a/ug/proxy/include/wifi_mgr.h b/ug/proxy/include/wifi_mgr.h new file mode 100644 index 0000000..43482a4 --- /dev/null +++ b/ug/proxy/include/wifi_mgr.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __WIFI_MGR_H__ +#define __WIFI_MGR_H__ + +#include +#include "common.h" + +int wifi_mgr_init(void); +int wifi_mgr_deinit(void); +int wifi_mgr_get_connected_ap(wifi_ap_h *ap); +int wifi_mgr_set_proxy_type(enum method_enum method); +int wifi_mgr_get_proxy_type(enum method_enum *method); +int wifi_mgr_set_proxy_address(const char *ip); +int wifi_mgr_get_proxy_address(char **ip); + +#endif /* __WIFI_MGR_H__ */ diff --git a/ug/proxy/src/ProxyMainView.cpp b/ug/proxy/src/ProxyMainView.cpp deleted file mode 100644 index c4245f4..0000000 --- a/ug/proxy/src/ProxyMainView.cpp +++ /dev/null @@ -1,1165 +0,0 @@ -#include -#include -#include "defs.h" -#include -#include "i18n.h" -#include "util.h" - -#include "UgCommon.h" -#include "WifiMgr.h" -#include "NetConMgr.h" - -#include "ProxyMainView.h" - -#define KEY_PRIV "priv" -#define KEY_PROXY_ENTER "Select" -#define IP_VALUE1 "value1" -#define IP_VALUE2 "value2" -#define IP_VALUE3 "value3" -#define IP_VALUE4 "value4" - -static const char *VCONF_NETWORK_TYPE = "db/menu/network/network_type"; -static const char *VCONF_PROXY_METHOD = "db/menu/proxy/method"; -static const char *VCONF_PROXY_IP = "db/menu/proxy/ip"; -static const char *VCONF_PROXY_URL = "db/menu/proxy/url"; - -#define METHOD_CTXPOPUP_OFFSET_X 448 -#define VALUE_CTXPOPUP_OFFSET_X 162 -#define VALUE_CTXPOPUP_OFFSET_Y 20 -#define PROXY_CONFIG_MAX_NUM 4 -#define IP_MAX_NUM 255 -#define IP_RATIO 10 -#define PORT_MAX_NUM 65535 -#define PORT_INVALID_NUM 65536 -#define PORT_NO_NEED 65537 -#define CENTER_ALIGN 0.5 -#define CTXPOPUP_WIDTH 688 -#define CTXPOPUP_HEIGHT 411 -#define BTN_ONE_LINE 1 -#define BTN_TWO_LINE 2 -#define LINE_PAD 2 -#define ALIGH_RATIO 1.5 - -enum network_type_enum { - TYPE_WIRELESS = 0, - TYPE_WIRED -}; - -struct SProxyMainView { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - Evas_Object *dim_ly; - Evas_Object *box; - Evas_Object *method_btn; - Evas_Object *proxy_btn; - Evas_Object *url_btn; - Evas_Object *ok_btn; - Evas_Object *cancel_btn; - Evas_Object *ctxpopup; - Evas_Object *vaule_btns[PROXY_CONFIG_MAX_NUM]; - - enum network_type_enum net_type; - - char ip[IP_STRING_LEN + 1]; - char url[MOTHED_URL_LEN + 1]; - - enum EProxyMethod eMethod; - - CWifiMgr *pWifiMgr; - CNetConMgr *pNetConMgr; - CViewMgr *pViewMgr; -}; - -bool CProxyMainView::m_InitConnection(void) -{ - bool ret = false; - - if(!CWifiMgr::Initialize()) { - _ERR("Fail to initialize WifiMgr"); - return false; - } - - m->pWifiMgr = CWifiMgr::GetInstance(); - if(!m->pWifiMgr) { - _ERR("Fail to get instance"); - return false; - } - - ret = CNetConMgr::Initialize(); - if(ret != true) { - _ERR("Fail to initialize NetConMgr"); - return false; - } - - m->pNetConMgr = CNetConMgr::GetInstance(); - if(!m->pNetConMgr) { - _ERR("Fail to get instance"); - return false; - } - - return true; -} - - -void CProxyMainView::m_FinalizeConnection() -{ - CNetConMgr::Finalize(); - CWifiMgr::Finalize(); - m->pNetConMgr = NULL; - m->pWifiMgr = NULL; -} - - -Evas_Object* CProxyMainView::m_CreateMainLayout(void) -{ - Evas_Object *base; - - base = util_add_layout(m->win, UG_PROXY_EDJ_FILE, GRP_MAIN_VIEW); - if (!base) { - _ERR("elm_layout_add() failed."); - return NULL; - } - - //evas_object_event_callback_add(base, EVAS_CALLBACK_KEY_DOWN, _base_key_pressed_cb, priv); - Connect(base, 0); - - evas_object_show(base); - - return base; -} - - -Evas_Object * CProxyMainView::m_CreateValueBtn(Evas_Object *parent, int num, char *txt) -{ - Evas_Object *btn; - - btn = util_add_button(parent, STYLE_VALUE_BTN, NULL, txt); - if (!btn) { - _ERR("add button failed."); - return NULL; - } - - switch (num) { - case 0: - elm_object_part_content_set(parent, PART_IP_FIRST, btn); - evas_object_data_set(parent, IP_VALUE1, btn); - elm_object_focus_set(btn, EINA_TRUE); - break; - case 1: - elm_object_part_content_set(parent, PART_IP_SECOND, btn); - evas_object_data_set(parent, IP_VALUE2, btn); - break; - case 2: - elm_object_part_content_set(parent, PART_IP_THIRD, btn); - evas_object_data_set(parent, IP_VALUE3, btn); - break; - case 3: - elm_object_part_content_set(parent, PART_IP_FORTH, btn); - evas_object_data_set(parent, IP_VALUE4, btn); - break; - default: - break; - } - - //evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, _value_key_pressed_cb, data); - Connect(btn, 14); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_DOWN); - - return btn; - -} - - -bool CProxyMainView::m_SetWifiProxy(void) -{ - bool ret = false; - - if (!m->pWifiMgr) { - _ERR("WifiMgr is not initialized."); - return false; - } - - CWifiAp ap(NULL); - ap.AllocConnectedAp(); - ret = ap.SetProxyType(m->eMethod); - if (ret != true) { - _ERR("wifi_mgr_get_proxy_type() failed."); - return ret; - } - - switch (m->eMethod) { - case PROXY_METHOD_NONE: - ap.SetProxyAddr(NULL); - break; - case PROXY_METHOD_MANUAL: - if (m->ip) - ap.SetProxyAddr(m->ip); - break; - case PROXY_METHOD_AUTO: - if (m->url) - ap.SetProxyAddr(m->url); - //m->pWifiMgr->SetProxyAddr(m->url); - break; - default: - return false; - } - - return true; -} - - -bool CProxyMainView::m_SetConnectionProxy(void) -{ - bool ret; - ret = m->pNetConMgr->SetProxyType(m->eMethod); - if (ret != true) { - _ERR("wifi_mgr_get_proxy_type() failed."); - return false; - } - - switch (m->eMethod) { - case PROXY_METHOD_NONE: - break; - case PROXY_METHOD_MANUAL: - if (m->ip) - m->pNetConMgr->SetProxyAddr(m->ip); - break; - case PROXY_METHOD_AUTO: - if (m->url) - m->pNetConMgr->SetProxyAddr(m->url); - break; - default: - return false; - } - - return true; -} - - -bool CProxyMainView::m_SetProxy(void) -{ - bool ret = false; - - if (m->net_type == TYPE_WIRED) { - ret = m_SetConnectionProxy(); - if (ret != true) { - _ERR("the ip or port is invalid."); - return ret; - } - } else if (m->net_type == TYPE_WIRELESS) { - ret = m_SetWifiProxy(); - if (ret != true) { - _ERR("the ip or port is invalid."); - return ret; - } - } - - return true; - -} - - -void CProxyMainView::m_MethodBtnClicked(EProxyMethod method) -{ - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - - m->eMethod = method; - - elm_box_clear(m->box); - - m->method_btn = NULL; - m->proxy_btn= NULL; - m->url_btn = NULL; - - switch (m->eMethod) { - case PROXY_METHOD_NONE: - m_CreateMethodNoneBtn(); - break; - case PROXY_METHOD_MANUAL: - m_CreateMethodManualBtn(); - break; - case PROXY_METHOD_AUTO: - m_CreateMethodAutoBtn(); - break; - default: - break; - } - - elm_object_focus_set(m->method_btn, EINA_TRUE); -} - - -void CProxyMainView::m_SetupDownCycleFocus(Evas_Object **obj, int count) -{ - for (int i = 0; i < count; i++) { - if (i == count - 1) - elm_object_focus_next_object_set(obj[i], obj[0], ELM_FOCUS_DOWN); - else - elm_object_focus_next_object_set(obj[i], obj[i + 1], ELM_FOCUS_DOWN); - - if (i == 0) - elm_object_focus_next_object_set(obj[i], obj[count - 1], ELM_FOCUS_UP); - else - elm_object_focus_next_object_set(obj[i], obj[i - 1], ELM_FOCUS_UP); - } -} - - -void CProxyMainView::m_SetTheValue(void) -{ - Evas_Object *btn; - const char *value1; - const char *value2; - const char *value3; - const char *value4; - char ip[IP_STRING_LEN + 1]; - - value1 = NULL; - btn = (Evas_Object *) evas_object_data_get(m->ctxpopup, IP_VALUE1); - if (btn) - value1 = elm_object_text_get(btn); - - value2 = NULL; - btn = (Evas_Object *) evas_object_data_get(m->ctxpopup, IP_VALUE2); - if (btn) - value2 = elm_object_text_get(btn); - - value3 = NULL; - btn = (Evas_Object *) evas_object_data_get(m->ctxpopup, IP_VALUE3); - if (btn) - value3 = elm_object_text_get(btn); - - value4 = NULL; - btn = (Evas_Object *) evas_object_data_get(m->ctxpopup, IP_VALUE4); - if (btn) - value4 = elm_object_text_get(btn); - - memset(ip, 0, IP_STRING_LEN + 1); - snprintf(ip, IP_STRING_LEN, "%s.%s.%s.%s", - value1 ? value1 : "\\0", value2 ? value2 : "\\0", - value3 ? value3 : "\\0", value4 ? value4 : "\\0"); - - strncpy(m->ip, ip, IP_STRING_LEN); - elm_object_part_text_set(m->proxy_btn, PART_VALUE, ip); - - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; -} - - -void CProxyMainView::m_SetLeftRightCycleFocus(Evas_Object **obj, int count) -{ - int i; - - if (!obj || !*obj) { - _ERR("the param is invalid."); - return; - } - - for (i = 0; i < count; i++) { - if (i == count - 1) - elm_object_focus_next_object_set(obj[i], obj[0], ELM_FOCUS_RIGHT); - else - elm_object_focus_next_object_set(obj[i], obj[i + 1], ELM_FOCUS_RIGHT); - - if (i == 0) - elm_object_focus_next_object_set(obj[i], obj[count - 1], ELM_FOCUS_LEFT); - else - elm_object_focus_next_object_set(obj[i], obj[i - 1], ELM_FOCUS_LEFT); - } -} - - -void CProxyMainView::m_CreateValuePopup(void) -{ - Evas_Object *ctxpopup; - Evas_Object *btn; - Evas_Coord pos_x; - Evas_Coord pos_y; - int i; - - ctxpopup = util_add_layout(m->base, UG_PROXY_EDJ_FILE, GRP_PROXY_VALUE_SETTING); - if (!ctxpopup) { - _ERR("elm_ctxpopup_add() failed."); - return; - } - - m->ctxpopup = ctxpopup; - - evas_object_show(m->dim_ly); - - for (i = 0; i < PROXY_CONFIG_MAX_NUM; i++) { - btn = m_CreateValueBtn(ctxpopup, i, _(TXT_ZERO)); - if (!btn) { - _ERR("m_CreateValueBtn() failed."); - evas_object_del(ctxpopup); - return; - } - - m->vaule_btns[i] = btn; - } - - elm_object_part_text_set(ctxpopup, PART_TXT_SEPERATOR, _(TXT_COLON)); - //evas_object_smart_callback_add(ctxpopup, SIG_UNFOCUSED, _ctxpopup_unfocused_cb, priv); - //evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_KEY_DOWN, _value_ctxpopup_key_pressed_cb, priv); - Connect(ctxpopup, 10); - m_SetLeftRightCycleFocus(m->vaule_btns, PROXY_CONFIG_MAX_NUM); - - pos_x = 0; - pos_y = 0; - - Evas_Coord x; - Evas_Coord y; - evas_object_geometry_get(m->proxy_btn, &x, &y, NULL, NULL); - pos_x = x + VALUE_CTXPOPUP_OFFSET_X; - pos_y = y - VALUE_CTXPOPUP_OFFSET_Y; - - evas_object_move(ctxpopup, pos_x * ELM_SCALE, pos_y * ELM_SCALE); -} - - -void CProxyMainView::m_CreateInputEntry(void) -{ - Evas_Object *entry; - Evas_Object *layout; - - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - - layout = util_add_layout(m->base, UG_PROXY_EDJ_FILE, GRP_ENTRY_POPUP); - if (!layout) { - _ERR("create layout fail."); - return; - } - - entry = util_add_entry(layout, STYLE_ENTRY, PART_ENTRY); - if (!entry) { - _ERR("add entry failed."); - evas_object_del(layout); - return; - } - - util_set_focus_next_self(entry); - //evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN, _entry_key_pressed_cb, priv); - Connect(entry, 9); - elm_object_focus_set(entry, EINA_TRUE); - - evas_object_show(m->dim_ly); - - m->ctxpopup = layout; -} - - -void CProxyMainView::m_ShowInvalidInfoPopup(int status) -{ - Evas_Object *layout; - Evas_Object *btn; - Evas_Coord w; - Evas_Coord h; - - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - - evas_object_show(m->dim_ly); - - layout = util_add_layout(m->base, UG_PROXY_EDJ_FILE, GRP_CONFIRM_LAYOUT); - if (!layout) { - _ERR("add layout failed."); - evas_object_hide(m->dim_ly); - return; - } - - switch (m->eMethod) { - case PROXY_METHOD_MANUAL: - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_MANUAL_TITLE)); - break; - case PROXY_METHOD_AUTO: - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_AUTO_TITLE)); - break; - default: - evas_object_del(layout); - evas_object_hide(m->dim_ly); - return; - } - - elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_MANUAL_TITLE)); - - if (status == RET_IP_INVALID) - elm_object_part_text_set(layout, PART_TEXT_CONTENT, _(TXT_IP_INVALID)); - else if (status == RET_VCONF_FAILED) - elm_object_part_text_set(layout, PART_TEXT_CONTENT, _(TXT_VCONF_FAILED)); - else if (status == RET_WIRED_PROXY_FAILED) - elm_object_part_text_set(layout, PART_TEXT_CONTENT, _(TXT_WIRED_FAILED)); - else if (status == RET_WIRELESS_PROXY_FAILED) - elm_object_part_text_set(layout, PART_TEXT_CONTENT, _(TXT_WIRELESS_FAILED)); - - btn = util_add_button(layout, STYLE_ACTION_BTN, PART_OK_BTN, _(TXT_OK)); - if (!btn) { - _ERR("util add button failed."); - evas_object_del(layout); - evas_object_hide(m->dim_ly); - return; - } - - elm_object_focus_set(btn, EINA_TRUE); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_DOWN); - - //evas_object_smart_callback_add(btn, SIG_CLICKED, _ctxpopup_ok_btn_clicked_cb, priv); - //evas_object_smart_callback_add(layout, SIG_UNFOCUSED, _ctxpopup_unfocused_cb, priv); - //evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, _ctxpopup_key_pressed_cb, priv); - Connect(btn, 7); - Connect(layout, 8); - - w = DEFAULT_WIN_WIDTH; - h = DEFAULT_WIN_HEIGHT; - - evas_object_move(layout, CENTER_ALIGN * (w - CTXPOPUP_WIDTH) * ELM_SCALE, CENTER_ALIGN * (h - CTXPOPUP_HEIGHT) * ELM_SCALE); - - m->ctxpopup = layout; -} - - -bool CProxyMainView::m_CreateMethodBoxBtn(Evas_Object *btn, const char *key, char *value, int line) -{ - if (btn) { - evas_object_show(btn); - elm_object_part_text_set(btn, PART_VALUE, value); - } else { - if (line == BTN_TWO_LINE) - btn = util_add_key_value_button(m->box, STYLE_KEY_VALUE_TWO_LINES, NULL, key, value); - else - btn = util_add_key_value_button(m->box, STYLE_KEY_VALUE_BTN, NULL, key, value); - - if (!btn) { - _ERR("add method btn failed."); - return false; - } - } - return true; -} - - -bool CProxyMainView::m_CreateMethodAutoBtn(void) -{ - Evas_Object *box; - box = m->box; - - if(!m_CreateMethodBoxBtn(m->method_btn, _(TXT_MOTHED), _(TXT_MOTHED_AUTO), BTN_ONE_LINE)) { - _ERR("add method btn failed."); - return false; - } - ASSERT(m->method_btn); - //evas_object_smart_callback_add(btn, SIG_CLICKED, _method_btn_clicked_cb, priv); - Connect(m->method_btn, 3); - elm_object_focus_next_object_set(m->method_btn, m->method_btn, ELM_FOCUS_LEFT); - elm_box_pack_end(box, m->method_btn); - - if(!m_CreateMethodBoxBtn(m->url_btn, _(TXT_CONFIG_URL), _(m->url), BTN_TWO_LINE)) { - _ERR("add url btn failed."); - return false; - } - ASSERT(m->url_btn); - //evas_object_smart_callback_add(btn, SIG_CLICKED, _url_btn_clicked_cb, priv); - Connect(m->url_btn, 4); - elm_object_focus_next_object_set(m->url_btn, m->url_btn, ELM_FOCUS_LEFT); - elm_box_pack_end(box, m->url_btn); - - return true; -} - - -bool CProxyMainView::m_CreateMethodManualBtn(void) -{ - Evas_Object *box; - box = m->box; - - if(!m_CreateMethodBoxBtn(m->method_btn, _(TXT_MOTHED), _(TXT_MOTHED_MAN), BTN_ONE_LINE)) { - _ERR("add method btn failed."); - return false; - } - ASSERT(m->method_btn); - //evas_object_smart_callback_add(btn, SIG_CLICKED, _method_btn_clicked_cb, priv); - Connect(m->method_btn, 3); - elm_object_focus_next_object_set(m->method_btn, m->method_btn, ELM_FOCUS_LEFT); - elm_box_pack_end(box, m->method_btn); - - if(!m_CreateMethodBoxBtn(m->proxy_btn, _(TXT_PROXY_IP), _(m->ip), BTN_ONE_LINE)) { - _ERR("add http btn failed."); - return false; - } - ASSERT(m->proxy_btn); - //evas_object_smart_callback_add(btn, SIG_CLICKED, _proxy_ip_btn_clicked_cb, priv); - Connect(m->proxy_btn, 5); - elm_object_focus_next_object_set(m->proxy_btn, m->proxy_btn, ELM_FOCUS_LEFT); - elm_box_pack_end(box, m->proxy_btn); - - return true; -} - - -bool CProxyMainView::m_CreateMethodNoneBtn(void) -{ - if(!m_CreateMethodBoxBtn(m->method_btn, _(TXT_MOTHED), _(TXT_MOTHED_NONE), BTN_ONE_LINE)) { - _ERR("add method btn failed."); - return false; - } - //evas_object_smart_callback_add(btn, SIG_CLICKED, _method_btn_clicked_cb, priv); - Connect(m->method_btn, 3); - elm_object_focus_next_object_set(m->method_btn, m->method_btn, ELM_FOCUS_LEFT); - elm_box_pack_end(m->box, m->method_btn); - - return true; -} - - -bool CProxyMainView::m_CreateDimLayout(void) -{ - Evas_Object *dim_ly; - - dim_ly = util_add_layout(m->base, UG_PROXY_EDJ_FILE, GRP_DIM_LY); - if (!dim_ly) { - _ERR("elm_layout_add() failed."); - return false; - } - - m->dim_ly = dim_ly; - evas_object_hide(m->dim_ly); - - return true; -} - - -bool CProxyMainView::m_CreateActionBtns(void) -{ - Evas_Object *btn; - - btn = util_add_button(m->base, STYLE_ACTION_BTN, PART_OK_BTN, _(TXT_OK)); - if (!btn) { - _ERR("add ok button failed."); - return false; - } - - //evas_object_smart_callback_add(btn, SIG_CLICKED, _ok_btn_clicked_cb, priv); - Connect(btn, 1); - - elm_object_focus_set(btn, EINA_TRUE); - - btn = util_add_button(m->base, STYLE_ACTION_BTN, PART_CANCEL_BTN, _(TXT_CANCEL)); - if (!btn) { - _ERR("add cancel button failed."); - return false; - } - - //evas_object_smart_callback_add(btn, SIG_CLICKED, _cancel_btn_clicked_cb, priv); - Connect(btn, 2); - - return true; -} - - -bool CProxyMainView::m_GetProxyMethod(void) -{ - int value; - int ret; - char *str; - - str = vconf_get_str(VCONF_NETWORK_TYPE); - if (str && !strcmp(str, TXT_WIRED)) - m->net_type = TYPE_WIRED; - else - m->net_type = TYPE_WIRELESS; - - value = 0; - ret = vconf_get_int((char*) VCONF_PROXY_METHOD, &value); - if (ret != true) { - _ERR("vconf_get_int() failed."); - return false; - } - - switch (value) { - case 0: - m->eMethod = PROXY_METHOD_NONE; - break; - case 1: - m->eMethod = PROXY_METHOD_MANUAL; - break; - case 2: - m->eMethod = PROXY_METHOD_AUTO; - break; - default: - return false; - } - - char *ip = NULL; - ip = vconf_get_str(VCONF_PROXY_IP); - if (!ip) - snprintf(m->ip, IP_STRING_LEN, "%s", IP_ZERO); - else - snprintf(m->ip, IP_STRING_LEN, "%s", ip); - - str = vconf_get_str(VCONF_PROXY_URL); - if (!str) - snprintf(m->url, MOTHED_URL_LEN, "%s", URL_BLANK); - else - snprintf(m->url, MOTHED_URL_LEN, "%s", str); - - return true; -} - - -bool CProxyMainView::m_CreateProxyLayout(void) -{ - Evas_Object *box; - int ret; - - box = util_add_box(m->base, PART_PROXY_SETTING); - if (!box) { - _ERR("add box failed."); - return false; - } - - m->box = box; - - switch (m->eMethod) { - case PROXY_METHOD_NONE: - ret = m_CreateMethodNoneBtn(); - if (ret != true) { - _ERR("add method none failed."); - evas_object_del(box); - return false; - } - - break; - case PROXY_METHOD_MANUAL: - ret = m_CreateMethodManualBtn(); - if (ret != true) { - _ERR("add method manual failed."); - evas_object_del(box); - return false; - } - - break; - case PROXY_METHOD_AUTO: - ret = m_CreateMethodAutoBtn(); - if (ret != true) { - _ERR("add method manual failed."); - evas_object_del(box); - return false; - } - - break; - default: - break; - } - - return true; -} - - -void CProxyMainView::t_OnShow() -{ - _DBG(); - - evas_object_show(m->base); - - CBaseView::t_OnShow(); -} - - -void CProxyMainView::t_OnUpdate(void *data) -{ - _DBG(); - - evas_object_show(m->base); - -#if 0 - switch (m->cur_view) { - case NETWORK_IP_SETTING_VIEW: - elm_object_focus_set(m->other_btn, EINA_TRUE); - break; - case NETWORK_WIFI_PASSCODE_VIEW: - elm_object_focus_set(m->connect_btn, EINA_TRUE); - break; - default: - break; - } -#endif -} - - -void CProxyMainView::t_OnHide() -{ - _DBG(); - - evas_object_hide(m->base); - - CBaseView::t_OnHide(); -} - - -bool CProxyMainView::Create(void *data) -{ - _DBG(); - ASSERT(!m); - - _CREATE_BEGIN{ - _CHECK(m = new SProxyMainView) - _CHECK(m->win = CViewMgr::GetInstance()->Window()) - _CHECK(m_InitConnection()) - _CHECK(m->base = m_CreateMainLayout()) - _CHECK(m_GetProxyMethod()) - _CHECK(m_CreateProxyLayout()) - _CHECK(m_CreateActionBtns()) - _CHECK(m_CreateDimLayout()) - - _WHEN_SUCCESS { - elm_object_part_text_set(m->base, PART_PROXY_DESCRITION, _(TXT_PROXY_DESCRIPTION)); - elm_object_focus_set(m->method_btn, EINA_TRUE); - m->pViewMgr = CViewMgr::GetInstance(); - } - - _CHECK_FAIL{/* m_CreateDimLayout() */} - _CHECK_FAIL{/* m_CreateActionBtns() */} - _CHECK_FAIL{/* m_CreateProxyLayout() */} - _CHECK_FAIL{/* m_GetProxyMethod() */} - _CHECK_FAIL{evas_object_del(m->base);} - _CHECK_FAIL{m_FinalizeConnection();} - _CHECK_FAIL{/* m->win = CViewMgr::GetInstance()->Window() */} - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - return true; -} - -void CProxyMainView::Destroy() -{ - ASSERT(m); - _DBG(); - - CBaseView::Destroy(); - delete m; - m = NULL; -} - - -Evas_Object* CProxyMainView::Base() -{ - ASSERT(m); - _DBG(); - - return m->base; -} - - -void CProxyMainView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) -{ - /* ID list */ - /* 0 m->base */ - /* 1 action ok_btn */ - /* 2 action cancel_btn */ - /* 3 method_btn */ - /* 4 url_btn */ - /* 5 proxy_btn */ - /* 6 ctxpopup */ - /* 7 invalidinfo popup ok_btn */ - /* 8 invalidinfo popup layout */ - /* 9 input entry */ - /* 10 value popup */ - - if (!ev->keyname) { - _ERR("ev->keyname is NULL."); - return; - } - - switch(id) { - case 0: - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - ug_destroy_me(m->ug); - return; - } - break; - case 6: - case 8: - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - evas_object_hide(m->dim_ly); - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - } - break; - case 9: - elm_entry_input_panel_show(obj); - - if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - evas_object_hide(m->dim_ly); - } else if (!strcmp(ev->keyname, KEY_PROXY_ENTER)) { - const char *value; - value = elm_entry_entry_get(obj); - elm_object_part_text_set(m->url_btn, PART_VALUE, value); - memset(m->url, 0, MOTHED_URL_LEN + 1); - strncpy(m->url, value, MOTHED_URL_LEN); - - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - - elm_object_focus_set(m->url_btn, EINA_TRUE); - evas_object_hide(m->dim_ly); - } - break; - case 10: - if (!strcmp(ev->keyname, KEY_ENTER) || !strcmp(ev->keyname, KEY_ENTER_REMOTE)) { - evas_object_show(m->dim_ly); - m_SetTheValue(); - evas_object_del(obj); - } else if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_BACK_REMOTE)) { - evas_object_hide(m->dim_ly); - evas_object_del(obj); - } - break; - case 14: - const char *value; - int num, new_num, max_num; - max_num = IP_MAX_NUM; - - if (!strcmp(ev->keyname, KEY_UP)) { - value = elm_object_text_get(obj); - num = atoi(value); - num++; - if (num > max_num) - num = 0; - } else if (!strcmp(ev->keyname, KEY_DOWN)) { - value = elm_object_text_get(obj); - num = atoi(value); - num--; - if (num < 0) - num = max_num; - } else if (!strcmp(ev->keyname, KEY_0) || - !strcmp(ev->keyname, KEY_1) || - !strcmp(ev->keyname, KEY_2) || - !strcmp(ev->keyname, KEY_3) || - !strcmp(ev->keyname, KEY_4) || - !strcmp(ev->keyname, KEY_5) || - !strcmp(ev->keyname, KEY_6) || - !strcmp(ev->keyname, KEY_7) || - !strcmp(ev->keyname, KEY_8) || - !strcmp(ev->keyname, KEY_9)) { - value = elm_object_text_get(obj); - if (!value) - elm_object_text_set(obj, ev->keyname); - - new_num = atoi(ev->keyname); - - num = atoi(value); - if (!num || (num * IP_RATIO + new_num) > max_num) { - elm_object_text_set(obj, ev->keyname); - return; - } - - num = num * IP_RATIO + new_num; - } else { - return; - } - - char temp_value[MOTHED_STRING_LEN]; - - if (!obj) { - _ERR("The param is invalid."); - return; - } - - memset(temp_value, 0, MOTHED_STRING_LEN); - snprintf(temp_value, MOTHED_STRING_LEN - 1, "%d", num); - elm_object_text_set(obj, temp_value); - break; - default: - break; - } -} - - -void CProxyMainView::OnMouseClicked(int id, Evas_Object *obj) -{ - bool ret = false; - - switch(id) { - case 1: - ret = m_SetProxy(); - if (ret != true) { - _ERR("the ip or port is invalid."); - m_ShowInvalidInfoPopup(ret); - return; - } - - vconf_set_int((char*)VCONF_PROXY_METHOD, m->eMethod); - - if (m->eMethod == PROXY_METHOD_MANUAL) { - if (!strncmp(m->ip, IP_ZERO, IP_STRING_LEN)) { - _ERR("IP addr is invalid."); - } - vconf_set_str((char*)VCONF_PROXY_IP, m->ip); - } - else if(m->eMethod == PROXY_METHOD_AUTO) { - vconf_set_str((char*)VCONF_PROXY_URL, m->url); - } - ug_destroy_me(m->ug); - break; - case 2: - ug_destroy_me(m->ug); - break; - case 3: - Evas_Object *ctxpopup; - Evas_Object *box; - Evas_Object *none_btn; - Evas_Object *man_btn; - Evas_Object *auto_btn; - Evas_Object *btn[METHOD_NUM]; - Evas_Coord x; - Evas_Coord y; - Evas_Coord w; - Evas_Coord h; - - ctxpopup = util_add_layout(m->base, UG_PROXY_EDJ_FILE, GRP_METHOD_SETTING); - if (!ctxpopup) { - _ERR("add method ctxpopup failed."); - return; - } - - //evas_object_smart_callback_add(ctxpopup, SIG_UNFOCUSED, _ctxpopup_unfocused_cb, priv); - //evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_KEY_DOWN, _ctxpopup_key_pressed_cb, priv); - Connect(ctxpopup, 6); - - m->ctxpopup = ctxpopup; - - elm_object_signal_emit(m->method_btn, SIG_BTN_SELECTED, PROG); - evas_object_show(m->dim_ly); - - box = util_add_box(ctxpopup, PART_SWALLOW_CONTENT); - if (!box) { - _ERR("create box failed."); - evas_object_del(ctxpopup); - return; - } - - none_btn = util_add_button(ctxpopup, STYLE_METHOD_SET, NULL, _(TXT_MOTHED_NONE)); - if (!none_btn) { - _ERR("Add btn failed."); - evas_object_del(ctxpopup); - return; - } - //evas_object_smart_callback_add(none_btn, SIG_CLICKED, _method_none_btn_clicked_cb, NULL); - Connect(none_btn, 11); - - elm_box_pack_end(box, none_btn); - elm_object_focus_set(none_btn, EINA_TRUE); - btn[PROXY_METHOD_NONE] = none_btn; - - man_btn = util_add_button(ctxpopup, STYLE_METHOD_SET, NULL, _(TXT_MOTHED_MAN)); - if (!man_btn) { - _ERR("Add btn failed."); - evas_object_del(ctxpopup); - return; - } - //evas_object_smart_callback_add(man_btn, SIG_CLICKED, _method_man_btn_clicked_cb, NULL); - Connect(man_btn, 12); - - elm_box_pack_end(box, man_btn); - btn[PROXY_METHOD_MANUAL] = man_btn; - - auto_btn = util_add_button(ctxpopup, STYLE_METHOD_SET, NULL, _(TXT_MOTHED_AUTO)); - if (!auto_btn) { - _ERR("Add btn failed."); - evas_object_del(ctxpopup); - return; - } - //evas_object_smart_callback_add(auto_btn, SIG_CLICKED, _method_auto_btn_clicked_cb, NULL); - Connect(auto_btn, 13); - elm_box_pack_end(box, auto_btn); - btn[PROXY_METHOD_AUTO] = auto_btn; - m_SetupDownCycleFocus(btn, METHOD_NUM); - m_SetLeftRightCycleFocus(btn, METHOD_NUM); - - switch (m->eMethod) { - case PROXY_METHOD_NONE: - elm_object_signal_emit(none_btn, SIG_BTN_SELECTED, PROG); - break; - case PROXY_METHOD_MANUAL: - elm_object_signal_emit(man_btn, SIG_BTN_SELECTED, PROG); - break; - case PROXY_METHOD_AUTO: - elm_object_signal_emit(auto_btn, SIG_BTN_SELECTED, PROG); - break; - default: - break; - } - - evas_object_geometry_get(m->method_btn, &x, &y, &w, &h); - evas_object_move(ctxpopup, (x + METHOD_CTXPOPUP_OFFSET_X) * ELM_SCALE, (y + ALIGH_RATIO * h + LINE_PAD) * ELM_SCALE); - break; - case 4: - m_CreateInputEntry(); - break; - case 5: - elm_object_signal_emit(m->proxy_btn, SIG_BTN_SELECTED, PROG); - m_CreateValuePopup(); - break; - case 7: - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - evas_object_hide(m->dim_ly); - elm_object_focus_set(m->ok_btn, EINA_TRUE); - break; - case 11: - m_MethodBtnClicked(PROXY_METHOD_NONE); - break; - case 12: - m_MethodBtnClicked(PROXY_METHOD_MANUAL); - break; - case 13: - m_MethodBtnClicked(PROXY_METHOD_AUTO); - break; - default: - break; - } -} - - -void CProxyMainView::OnUnfocused(int id, Evas_Object *obj, Elm_Object_Item *item) -{ - switch(id) { - case 0: - break; - case 6: - case 8: - case 10: - evas_object_hide(m->dim_ly); - if (m->ctxpopup) { - evas_object_del(m->ctxpopup); - m->ctxpopup = NULL; - } - break; - default: - break; - } -} diff --git a/ug/proxy/src/connection_mgr.c b/ug/proxy/src/connection_mgr.c new file mode 100644 index 0000000..3726c84 --- /dev/null +++ b/ug/proxy/src/connection_mgr.c @@ -0,0 +1,369 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include "defs.h" +#include "dbg.h" +#include "connection_mgr.h" + +/** + * Converts the error type to string information. + * + * @param[in] err_type Error type + * @return error string information; + */ +static const char *_convert_error_to_string(connection_error_e err_type) +{ + _DBG("Not Yet"); +#if 0 + switch (err_type) { + case CONNECTION_ERROR_NONE: + return "NONE"; + case CONNECTION_ERROR_INVALID_PARAMETER: + return "INVALID_PARAMETER"; + case CONNECTION_ERROR_OUT_OF_MEMORY: + return "OUT_OF_MEMORY"; + case CONNECTION_ERROR_INVALID_OPERATION: + return "INVALID_OPERATION"; + case CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED: + return "ADDRESS_FAMILY_NOT_SUPPORTED"; + case CONNECTION_ERROR_OPERATION_FAILED: + return "OPERATION_FAILED"; + case CONNECTION_ERROR_ITERATOR_END: + return "ITERATOR_END"; + case CONNECTION_ERROR_NO_CONNECTION: + return "NO_CONNECTION"; + case CONNECTION_ERROR_NOW_IN_PROGRESS: + return "NOW_IN_PROGRESS"; + case CONNECTION_ERROR_ALREADY_EXISTS: + return "ALREADY_EXISTS"; + case CONNECTION_ERROR_OPERATION_ABORTED: + return "OPERATION_ABORTED"; + case CONNECTION_ERROR_DHCP_FAILED: + return "DHCP_FAILED"; + case CONNECTION_ERROR_INVALID_KEY: + return "INVALID_KEY"; + case CONNECTION_ERROR_NO_REPLY: + return "NO_REPLY"; + case CONNECTION_ERROR_NO_KEYWORD: + return "NO_KEYWORD"; + case CONNECTION_ERROR_TCP_RST: + return "RST_IN_TCP_RESPONSE"; + case CONNECTION_ERROR_TCP_SYN_TIMEOUT: + return "TCP_SYN_TIMEOUT"; + case CONNECTION_ERROR_OFFLINE: + return "CONNECTION_OFFLINE"; + case CONNECTION_ERROR_NETWORK_MONITOR_FAILURE: + return "monitor failer"; + case CONNECTION_ERROR_INVALID_GATEWAY: + return "invalid gateway"; + case CONNECTION_ERROR_INVALID_MACADDRESS: + return "invalid mac addr"; + default: + break; + } + +#endif + return "Unknown"; +} + +/** + * Creates a handle for managing data connections. + * + * The handle must be released with connection_destroy(). + * + * @return connetcion if the operation is successful; NULL if failed; + */ +connection_h connection_mgr_create(void) +{ + int ret; + connection_h connection; + + connection = NULL; + ret = connection_create(&connection); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_create failed"); + connection = NULL; + } + + return connection; +} + +/** + * Destroys the connection handle. + * + * @param[in] connection The handle of the connection + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_destroy(connection_h connection) +{ + int ret; + + if (!connection) { + _ERR("connection is NULL."); + return RET_FAILED; + } + + ret = connection_destroy(connection); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_destroy() failed."); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the ethernet profile information. + * + * Iterates all the profile in the connection, and gets the ethernet one. + * + * @param[in] connection The handle of the connection + * @param[out] info The structure to store profile information + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_get_profile_info(connection_h connection, + connection_profile_h *out_profile) +{ + connection_profile_iterator_h iter; + connection_profile_h profile; + connection_profile_type_e type; + char *name; + int ret; + + if (!connection || !out_profile) { + _ERR("param is NULL."); + return RET_FAILED; + } + + ret = connection_get_profile_iterator(connection, + CONNECTION_ITERATOR_TYPE_REGISTERED, &iter); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("Fail to get profile iterator: %s.\n", + _convert_error_to_string(ret)); + return RET_FAILED; + } + + while (connection_profile_iterator_has_next(iter)) { + profile = NULL; + if (connection_profile_iterator_next(iter, + &profile) != CONNECTION_ERROR_NONE) { + _ERR("Fail to get profile handle\n"); + return RET_FAILED; + } + + if (!profile) { + _ERR("get profile failed."); + return RET_FAILED; + } + + if (connection_profile_get_type(profile, + &type) != CONNECTION_ERROR_NONE) { + _ERR("Fail to get profile type\n"); + return RET_FAILED; + } + + name = NULL; + if (connection_profile_get_name(profile, + &name) != CONNECTION_ERROR_NONE) { + _ERR("Fail to get profile name\n"); + return RET_FAILED; + } + + if (!name) { + _ERR("get name failed."); + return RET_FAILED; + } + + if (type == CONNECTION_PROFILE_TYPE_ETHERNET) + *out_profile = profile; + + free(name); + } + + return RET_SUCCESS; +} + +/** + * Sets the Proxy type. + * + * If you set Proxy type to #WIFI_PROXY_TYPE_AUTO or + * #WIFI_PROXY_TYPE_MANUAL, then Proxy will be restored. + * + * @param[in] connection The handle of the connection + * @param[in] method The proxy type + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_set_proxy_type(connection_h connection, + enum method_enum method) +{ + connection_profile_h profile; + connection_proxy_type_e type; + int ret; + + if (!connection) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + profile = NULL; + ret = connection_mgr_get_profile_info(connection, &profile); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_mgr_get_profile_info() failed.\n"); + return RET_FAILED; + } + + switch (method) { + case METHOD_NONE: + type = CONNECTION_PROXY_TYPE_DIRECT; + break; + case METHOD_MAN: + type = CONNECTION_PROXY_TYPE_MANUAL; + break; + case METHOD_AUTO: + type = CONNECTION_PROXY_TYPE_AUTO; + break; + default: + return RET_FAILED; + } + + ret = connection_profile_set_proxy_type(profile, type); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_profile_set_proxy_type() failed.\n"); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the Proxy type. + * + * @param[in] connection The handle of the connection + * @param[out] method The proxy type + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_get_proxy_type(connection_h connection, + enum method_enum *method) +{ + connection_profile_h profile; + connection_proxy_type_e type; + int ret; + + if (!connection || !method) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + profile = NULL; + ret = connection_mgr_get_profile_info(connection, &profile); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_mgr_get_profile_info() failed.\n"); + return RET_FAILED; + } + + ret = connection_profile_get_proxy_type(profile, &type); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_profile_get_proxy_type() failed.\n"); + return RET_FAILED; + } + + switch (type) { + case CONNECTION_PROXY_TYPE_DIRECT: + *method = METHOD_NONE; + break; + case CONNECTION_PROXY_TYPE_MANUAL: + *method = METHOD_MAN; + break; + case CONNECTION_PROXY_TYPE_AUTO: + *method = METHOD_AUTO; + break; + default: + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Sets the Proxy address. + * + * @param[in] connection The handle of the connection + * @param[in] ip IP address + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_set_proxy_address(connection_h connection, + const char *ip) +{ + connection_profile_h profile; + int ret; + + if (!connection) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + profile = NULL; + ret = connection_mgr_get_profile_info(connection, &profile); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_mgr_get_profile_info() failed.\n"); + return RET_FAILED; + } + + ret = connection_profile_set_proxy_address(profile, + CONNECTION_ADDRESS_FAMILY_IPV4, ip); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_profile_set_proxy_address() failed.\n"); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the Proxy address. + * + * @param[in] connection The handle of the connection + * @param[out] ip IP address + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int connection_mgr_get_proxy_address(connection_h connection, char **ip) +{ + connection_profile_h profile; + int ret; + + if (!connection || !ip || !*ip) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + profile = NULL; + ret = connection_mgr_get_profile_info(connection, &profile); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_mgr_get_profile_info() failed.\n"); + return RET_FAILED; + } + + ret = connection_profile_get_proxy_address(profile, + CONNECTION_ADDRESS_FAMILY_IPV4, ip); + if (ret != CONNECTION_ERROR_NONE) { + _ERR("connection_profile_get_proxy_address() failed.\n"); + return RET_FAILED; + } + + return RET_SUCCESS; +} diff --git a/ug/proxy/src/main_view.c b/ug/proxy/src/main_view.c new file mode 100644 index 0000000..2096d8b --- /dev/null +++ b/ug/proxy/src/main_view.c @@ -0,0 +1,2068 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include + +#include "defs.h" +#include "dbg.h" +#include "main_view.h" +#include "vconf_mgr.h" +#include "wifi_mgr.h" +#include "connection_mgr.h" +#include "i18n.h" +#include "util.h" +#include "common.h" + +#define KEY_PRIV "priv" +#define KEY_PROXY_ENTER "Select" +#define IP_VALUE1 "value1" +#define IP_VALUE2 "value2" +#define IP_VALUE3 "value3" +#define IP_VALUE4 "value4" + +static const char *VCONF_NETWORK_TYPE = "db/menu/network/network_type"; +static const char *VCONF_PROXY_METHOD = "db/menu/proxy/method"; +static const char *VCONF_PROXY_IP = "db/menu/proxy/ip"; +static const char *VCONF_PROXY_URL = "db/menu/proxy/url"; + +#define METHOD_CTXPOPUP_OFFSET_X 448 +#define VALUE_CTXPOPUP_OFFSET_X 162 +#define VALUE_CTXPOPUP_OFFSET_Y 20 +#define PROXY_CONFIG_MAX_NUM 4 +#define IP_MAX_NUM 255 +#define IP_RATIO 10 +#define PORT_MAX_NUM 65535 +#define PORT_INVALID_NUM 65536 +#define PORT_NO_NEED 65537 +#define CENTER_ALIGN 0.5 +#define CTXPOPUP_WIDTH 688 +#define CTXPOPUP_HEIGHT 411 +#define BTN_ONE_LINE 1 +#define BTN_TWO_LINE 2 +#define LINE_PAD 2 +#define ALIGH_RATIO 1.5 + +enum network_type_enum { + TYPE_WIRELESS = 0, + TYPE_WIRED +}; + +struct _priv { + Evas_Object *win; + ui_gadget_h ug; + + Evas_Object *base; + Evas_Object *dim_ly; + Evas_Object *box; + Evas_Object *method_btn; + Evas_Object *proxy_btn; + Evas_Object *url_btn; + Evas_Object *ok_btn; + Evas_Object *cancel_btn; + Evas_Object *ctxpopup; + Evas_Object *vaule_btns[PROXY_CONFIG_MAX_NUM]; + + enum method_enum method; + enum network_type_enum net_type; + + connection_h connection; + + char ip[IP_STRING_LEN + 1]; + char url[MOTHED_URL_LEN + 1]; +}; + +static int _create_method_none_btn(struct _priv *priv); +static int _create_method_manual_btns(struct _priv *priv); +static int _create_method_auto_btns(struct _priv *priv); + +/** + * Initializes WI-FI for wireless network. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _init_wifi(struct _priv *priv) +{ + if (!priv) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + wifi_mgr_init(); + + return RET_SUCCESS; +} + +/** + * Initializes connection for wired network. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _init_connection(struct _priv *priv) +{ + if (!priv) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + priv->connection = connection_mgr_create(); + if (!priv->connection) { + _ERR("connection_mgr_create() failed."); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Deinitializes WI-FI for wireless network. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _fini_wifi(struct _priv *priv) +{ + if (!priv) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + wifi_mgr_deinit(); + + return RET_SUCCESS; +} + +/** + * Deinitializes connection for wired network. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _fini_connection(struct _priv *priv) +{ + if (!priv) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + if (priv->connection) + connection_mgr_destroy(priv->connection); + + return RET_SUCCESS; +} + +/** + * Initializes the private data. + * + * Called when the view is loaded. + * + * @return the handler of the private data; + */ +static struct _priv *_init_priv() +{ + struct _priv *priv; + + priv = calloc(1, sizeof(*priv)); + if (!priv) { + _ERR("calloc priv failed."); + return NULL; + } + + _init_wifi(priv); + _init_connection(priv); + + return priv; +} + +/** + * Deinitializes the private data. + * + * Called when the view is deleted. + * + * @param[in] priv The handler of the private data + */ +static void _fini_priv(struct _priv *priv) +{ + if (!priv) + return; + + _fini_wifi(priv); + _fini_connection(priv); + + if (priv->base) + evas_object_del(priv->base); + + free(priv); +} + +/** + * Callback for key pressed event. + * + * If the key is KEY_BACK, destroies the ug. + * + * @param[in] data User data + * @param[in] evas Evas handler + * @param[in] obj The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _base_key_pressed_cb(void *data, Evas *evas, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!ei || !data) { + _ERR("The param is invalid.\n"); + return; + } + + ev = ei; + priv = data; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_BACK)) { + ug_destroy_me(priv->ug); + return; + } +} + +/** + * Shows the dim layout. + * + * Called when there is a ctxpopup. + * + * @param[in] priv The handler of the private data + */ +static void _set_layout_dim(struct _priv *priv) +{ + if (!priv || !priv->dim_ly) { + _ERR("The param is invalid.\n"); + return; + } + + evas_object_show(priv->dim_ly); +} + +/** + * Hides the dim layout. + * + * Called when the existing ctxpopup is deleted. + * + * @param[in] priv The handler of the private data + */ +static void _unset_layout_dim(struct _priv *priv) +{ + if (!priv || !priv->dim_ly) { + _ERR("The param is invalid.\n"); + return; + } + + evas_object_hide(priv->dim_ly); +} + +/** + * Sets the cycle focus in the direction of up and down. + * + * Sets the cycle focus for an array of objects. + * + * @param[in] obj The handler of objects + * @param[in] count The count of objects + */ +static void _set_up_down_cycle_focus(Evas_Object **obj, + int count) +{ + int i; + + if (!*obj || !obj) + return; + + for (i = 0; i < count; i++) { + if (i == count - 1) + elm_object_focus_next_object_set(obj[i], obj[0], + ELM_FOCUS_DOWN); + else + elm_object_focus_next_object_set(obj[i], obj[i + 1], + ELM_FOCUS_DOWN); + + if (i == 0) + elm_object_focus_next_object_set(obj[i], obj[count - 1], + ELM_FOCUS_UP); + else + elm_object_focus_next_object_set(obj[i], obj[i - 1], + ELM_FOCUS_UP); + } +} + +/** + * Sets the cycle focus in the direction of left and right. + * + * Sets the cycle focus for an array of objects. + * + * @param[in] obj The handler of objects + * @param[in] count The count of objects + */ +static void _set_left_right_cycle_focus(Evas_Object **obj, int count) +{ + int i; + + if (!obj || !*obj) { + _ERR("the param is invalid."); + return; + } + + for (i = 0; i < count; i++) { + if (i == count - 1) + elm_object_focus_next_object_set(obj[i], + obj[0], ELM_FOCUS_RIGHT); + else + elm_object_focus_next_object_set(obj[i], + obj[i + 1], ELM_FOCUS_RIGHT); + + if (i == 0) + elm_object_focus_next_object_set(obj[i], + obj[count - 1], ELM_FOCUS_LEFT); + else + elm_object_focus_next_object_set(obj[i], + obj[i - 1], ELM_FOCUS_LEFT); + } +} + +/** + * Creates the basic layout of the view. + * + * @param[in] parent The parent object + * @return layout if the operation is successful; NULL if failed; + */ +static Evas_Object *_create_basic_layout(struct _priv *priv) +{ + Evas_Object *base; + + if (!priv || !priv->win) { + _ERR("priv is NULL."); + return NULL; + } + + base = util_add_layout(priv->win, UG_PROXY_EDJ_FILE, GRP_MAIN_VIEW); + if (!base) { + _ERR("elm_layout_add() failed."); + return NULL; + } + + evas_object_event_callback_add(base, EVAS_CALLBACK_KEY_DOWN, + _base_key_pressed_cb, priv); + + evas_object_show(base); + + return base; +} + +/** + * Sets the description. + * + * Sets the description for the proxy setting view. + * + * @param[in] priv The handler of the private data + */ +static void _set_description(struct _priv *priv) +{ + if (!priv || !priv->base) { + _ERR("Parameter error!"); + return; + } + + elm_object_part_text_set(priv->base, PART_PROXY_DESCRITION, + _(TXT_PROXY_DESCRIPTION)); +} + +/** + * Gets proxy IP from vconf. + * + * @param[out] des_ip Destination IP + * @param[in] key_ip The vconf key + */ +static void _get_man_saved_value(char *des_ip, + const char *key_ip) +{ + char *ip; + + if (!des_ip || !key_ip) { + _ERR("Parameter error!"); + return; + } + + ip = vconf_mgr_get_string_value(key_ip); + if (!ip) + snprintf(des_ip, IP_STRING_LEN, "%s", IP_ZERO); + else + snprintf(des_ip, IP_STRING_LEN, "%s", ip); +} + +/** + * Gets the proxy method from vconf. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _get_proxy_method(struct _priv *priv) +{ + int value; + int ret; + char *str; + + if (!priv) { + _ERR("Parameter error!"); + return RET_FAILED; + } + + str = vconf_mgr_get_string_value(VCONF_NETWORK_TYPE); + if (str && !strcmp(str, TXT_WIRED)) + priv->net_type = TYPE_WIRED; + else + priv->net_type = TYPE_WIRELESS; + + value = 0; + ret = vconf_mgr_get_int_value(VCONF_PROXY_METHOD, &value); + if (ret != RET_SUCCESS) { + _ERR("vconf_mgr_get_int_value() failed."); + return RET_FAILED; + } + + switch (value) { + case 0: + priv->method = METHOD_NONE; + break; + case 1: + priv->method = METHOD_MAN; + break; + case 2: + priv->method = METHOD_AUTO; + break; + default: + return RET_FAILED; + } + + _get_man_saved_value(priv->ip, VCONF_PROXY_IP); + + str = vconf_mgr_get_string_value(VCONF_PROXY_URL); + if (!str) + snprintf(priv->url, MOTHED_URL_LEN, "%s", URL_BLANK); + else + snprintf(priv->url, MOTHED_URL_LEN, "%s", str); + + return RET_SUCCESS; +} + +/** + * Keeps the focused state for the button. + * + * @param[in] btn The object button + */ +static void _keep_btn_dim_focused(Evas_Object *btn) +{ + if (!btn) { + _ERR("the param is invalid."); + return; + } + + elm_object_signal_emit(btn, SIG_BTN_SELECTED, PROG); +} + +/** +* @Evas_Smart_Cb type callback for handling unfocused event. +* +* When the ctxpopup is unfocused, hide the dim layout, +* and delete the ctxpopup. +* +* @param[in] data User data +* @param[in] o The corresponding object which the focus event occurred +* @param[in] ei Event information +*/ +static void _ctxpopup_unfocused_cb(void *data, + Evas_Object *o, void *ei) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + _unset_layout_dim(priv); + + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } +} + +/** + * Clears the buttons in the box. + * + * When the method is changed, clear the box firstly. + * + * @param[in] priv The handler of the private data + */ +static void _clear_method_btns(struct _priv *priv) +{ + if (!priv) { + _ERR("Parameter error!"); + return; + } + + elm_box_clear(priv->box); + + priv->method_btn = NULL; + priv->proxy_btn= NULL; + priv->url_btn = NULL; +} + +/** + * Creates the method select button. + * + * Uses the style of 'method_select'. + * + * @param[in] base The parent object + * @param[in] txt The text in button + * @param[in] cb The callback for clicked event + * @param[in] data User data + * @return button if the operation is successful; NULL if failed; + */ +static Evas_Object *_create_method_select_btn(Evas_Object *base, + char *txt, Evas_Smart_Cb cb, void *data) +{ + Evas_Object *btn; + + if (!base || !txt || !cb || !data) { + _ERR("The param is invalid.\n"); + return NULL; + } + + btn = util_add_button(base, STYLE_METHOD_SET, NULL, txt); + if (!btn) { + _ERR("Add btn failed.\n"); + return NULL; + } + + evas_object_smart_callback_add(btn, SIG_CLICKED, cb, data); + + return btn; +} + +/** + * Callback for key pressed event. + * + * If the key is KEY_BACK, delete the ctxpopup. + * + * @param[in] data User data + * @param[in] evas Evas handler + * @param[in] o The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _ctxpopup_key_pressed_cb(void *data, Evas *evas, + Evas_Object *o, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!ei || !data) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_BACK)) { + _unset_layout_dim(priv); + + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } + } +} + +/** + * Handles the process of clicked event. + * + * According to the method. + * + * @param[in] priv The handler of the private data + * @param[in] method The proxy method + */ +static void _method_btn_click_proc(struct _priv *priv, + enum method_enum method) +{ + if (!priv) { + _ERR("The param is invalid.\n"); + return; + } + + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } + + priv->method = method; + + _clear_method_btns(priv); + + switch (priv->method) { + case METHOD_NONE: + _create_method_none_btn(priv); + break; + case METHOD_MAN: + _create_method_manual_btns(priv); + break; + case METHOD_AUTO: + _create_method_auto_btns(priv); + break; + default: + break; + } + + elm_object_focus_set(priv->method_btn, EINA_TRUE); + +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* For the 'METHOD_NONE' button. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _method_none_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + _method_btn_click_proc(priv, METHOD_NONE); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* For the 'METHOD_MAN' button. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _method_man_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + _method_btn_click_proc(priv, METHOD_MAN); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* For the 'METHOD_AUTO' button. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _method_auto_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + _method_btn_click_proc(priv, METHOD_AUTO); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* For the method select button. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _method_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + Evas_Object *base; + Evas_Object *ctxpopup; + Evas_Object *box; + Evas_Object *none_btn; + Evas_Object *man_btn; + Evas_Object *auto_btn; + Evas_Object *btn[METHOD_NUM]; + Evas_Coord x; + Evas_Coord y; + Evas_Coord w; + Evas_Coord h; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + base = priv->base; + + ctxpopup = util_add_layout(base, UG_PROXY_EDJ_FILE, + GRP_METHOD_SETTING); + if (!ctxpopup) { + _ERR("add method ctxpopup failed.\n"); + return; + } + + evas_object_smart_callback_add(ctxpopup, SIG_UNFOCUSED, + _ctxpopup_unfocused_cb, priv); + evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_KEY_DOWN, + _ctxpopup_key_pressed_cb, priv); + + priv->ctxpopup = ctxpopup; + + _keep_btn_dim_focused(priv->method_btn); + _set_layout_dim(priv); + + box = util_add_box(ctxpopup, PART_SWALLOW_CONTENT); + if (!box) { + _ERR("create box failed."); + evas_object_del(ctxpopup); + return; + } + + none_btn = _create_method_select_btn(ctxpopup, _(TXT_MOTHED_NONE), + _method_none_btn_clicked_cb, priv); + if (!none_btn) { + _ERR("Add btn failed.\n"); + evas_object_del(ctxpopup); + return; + } + + elm_box_pack_end(box, none_btn); + elm_object_focus_set(none_btn, EINA_TRUE); + btn[METHOD_NONE] = none_btn; + + man_btn = _create_method_select_btn(ctxpopup, _(TXT_MOTHED_MAN), + _method_man_btn_clicked_cb, priv); + if (!man_btn) { + _ERR("Add btn failed.\n"); + evas_object_del(ctxpopup); + return; + } + + elm_box_pack_end(box, man_btn); + btn[METHOD_MAN] = man_btn; + + auto_btn = _create_method_select_btn(ctxpopup, _(TXT_MOTHED_AUTO), + _method_auto_btn_clicked_cb, priv); + if (!auto_btn) { + _ERR("Add btn failed.\n"); + evas_object_del(ctxpopup); + return; + } + + elm_box_pack_end(box, auto_btn); + btn[METHOD_AUTO] = auto_btn; + + _set_up_down_cycle_focus(btn, METHOD_NUM); + _set_left_right_cycle_focus(btn, METHOD_NUM); + + switch (priv->method) { + case METHOD_NONE: + elm_object_signal_emit(none_btn, SIG_BTN_SELECTED, PROG); + break; + case METHOD_MAN: + elm_object_signal_emit(man_btn, SIG_BTN_SELECTED, PROG); + break; + case METHOD_AUTO: + elm_object_signal_emit(auto_btn, SIG_BTN_SELECTED, PROG); + break; + default: + break; + } + + evas_object_geometry_get(priv->method_btn, &x, &y, &w, &h); + evas_object_move(ctxpopup, (x + METHOD_CTXPOPUP_OFFSET_X) * ELM_SCALE, + (y + ALIGH_RATIO * h + LINE_PAD) * ELM_SCALE); +} + +/** + * Gets the position of IP value ctxpopup. + * + * @param[in] priv The handler of the private data + * @param[out] pos_x X position + * @param[out] pos_y Y position + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _get_value_popup_pos(struct _priv *priv, + Evas_Coord *pos_x, Evas_Coord *pos_y) +{ + Evas_Coord x; + Evas_Coord y; + + if (!priv || !pos_x || !pos_y) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + evas_object_geometry_get(priv->proxy_btn, &x, &y, NULL, NULL); + *pos_x = x + VALUE_CTXPOPUP_OFFSET_X; + *pos_y = y - VALUE_CTXPOPUP_OFFSET_Y; + + return RET_SUCCESS; +} + +/** + * Sets the number to the object text. + * + * @param[in] obj The handler of the object + * @param[in] num The number + */ +static void _set_btn_vaule(Evas_Object *obj, int num) +{ + char value[MOTHED_STRING_LEN]; + + if (!obj) { + _ERR("The param is invalid."); + return; + } + + memset(value, 0, MOTHED_STRING_LEN); + snprintf(value, MOTHED_STRING_LEN - 1, "%d", num); + elm_object_text_set(obj, value); +} + +/** + * Callback for key pressed event. + * + * If the key is KEY_UP, increase the value. + * If the key is KEY_DOWN, decrease the value. + * If the key is a number, append the number. + * + * @param[in] data User data + * @param[in] evas Evas handler + * @param[in] obj The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _value_key_pressed_cb(void *data, Evas *evas, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + const char *value; + int num, new_num, max_num; + + if (!ei || !data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + max_num = IP_MAX_NUM; + + if (!strcmp(ev->keyname, KEY_UP)) { + value = elm_object_text_get(obj); + num = atoi(value); + num++; + if (num > max_num) + num = 0; + } else if (!strcmp(ev->keyname, KEY_DOWN)) { + value = elm_object_text_get(obj); + num = atoi(value); + num--; + if (num < 0) + num = max_num; + } else if (!strcmp(ev->keyname, KEY_0) || + !strcmp(ev->keyname, KEY_1) || + !strcmp(ev->keyname, KEY_2) || + !strcmp(ev->keyname, KEY_3) || + !strcmp(ev->keyname, KEY_4) || + !strcmp(ev->keyname, KEY_5) || + !strcmp(ev->keyname, KEY_6) || + !strcmp(ev->keyname, KEY_7) || + !strcmp(ev->keyname, KEY_8) || + !strcmp(ev->keyname, KEY_9)) { + value = elm_object_text_get(obj); + if (!value) + elm_object_text_set(obj, ev->keyname); + + new_num = atoi(ev->keyname); + + num = atoi(value); + if (!num || (num * IP_RATIO + new_num) > max_num) { + elm_object_text_set(obj, ev->keyname); + return; + } + + num = num * IP_RATIO + new_num; + } else { + return; + } + + _set_btn_vaule(obj, num); +} + +/** + * Creates the value button for IP setting. + * + * @param[in] parent The parent object + * @param[in] num The sequence number of the button + * @param[in] txt The text in the button + * @param[in] data User data + * @return button if the operation is successful; NULL if failed; + */ +static Evas_Object *_create_value_btn(Evas_Object *parent, int num, + char *txt, void *data) +{ + Evas_Object *btn; + + if (!parent || !txt || !data) { + _ERR("The param is invalid.\n"); + return NULL; + } + + btn = util_add_button(parent, STYLE_VALUE_BTN, NULL, txt); + if (!btn) { + _ERR("add button failed.\n"); + return NULL; + } + + switch (num) { + case 0: + elm_object_part_content_set(parent, PART_IP_FIRST, btn); + evas_object_data_set(parent, IP_VALUE1, btn); + elm_object_focus_set(btn, EINA_TRUE); + break; + case 1: + elm_object_part_content_set(parent, PART_IP_SECOND, btn); + evas_object_data_set(parent, IP_VALUE2, btn); + break; + case 2: + elm_object_part_content_set(parent, PART_IP_THIRD, btn); + evas_object_data_set(parent, IP_VALUE3, btn); + break; + case 3: + elm_object_part_content_set(parent, PART_IP_FORTH, btn); + evas_object_data_set(parent, IP_VALUE4, btn); + break; + default: + break; + } + + evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, + _value_key_pressed_cb, data); + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_UP); + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_DOWN); + + return btn; +} + +/** + * Sets the value to the object text. + * + * @param[in] priv The handler of the private data + */ +static void _set_the_value(struct _priv *priv) +{ + Evas_Object *btn; + const char *value1; + const char *value2; + const char *value3; + const char *value4; + char ip[IP_STRING_LEN + 1]; + + if (!priv || !priv->ctxpopup) { + _ERR("The param is invalid.\n"); + return; + } + + value1 = NULL; + btn = evas_object_data_get(priv->ctxpopup, IP_VALUE1); + if (btn) + value1 = elm_object_text_get(btn); + + value2 = NULL; + btn = evas_object_data_get(priv->ctxpopup, IP_VALUE2); + if (btn) + value2 = elm_object_text_get(btn); + + value3 = NULL; + btn = evas_object_data_get(priv->ctxpopup, IP_VALUE3); + if (btn) + value3 = elm_object_text_get(btn); + + value4 = NULL; + btn = evas_object_data_get(priv->ctxpopup, IP_VALUE4); + if (btn) + value4 = elm_object_text_get(btn); + + memset(ip, 0, IP_STRING_LEN + 1); + snprintf(ip, IP_STRING_LEN, "%s.%s.%s.%s", + value1 ? value1 : "\\0", value2 ? value2 : "\\0", + value3 ? value3 : "\\0", value4 ? value4 : "\\0"); + + strncpy(priv->ip, ip, IP_STRING_LEN); + elm_object_part_text_set(priv->proxy_btn, PART_VALUE, ip); + + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; +} + +/** + * Callback for key pressed event. + * + * If the key is KEY_BACK, delete the IP value ctxpopup. + * If the key is KEY_ENTER, set the value into the button. + * + * @param[in] data User data + * @param[in] evas Evas handler + * @param[in] obj The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _value_ctxpopup_key_pressed_cb(void *data, Evas *evas, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + + if (!ei || !data) { + _ERR("The param is invalid.\n"); + return; + } + + ev = ei; + priv = data; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + if (!strcmp(ev->keyname, KEY_ENTER)) { + _unset_layout_dim(priv); + _set_the_value(priv); + evas_object_del(obj); + } else if (!strcmp(ev->keyname, KEY_BACK)) { + _unset_layout_dim(priv); + evas_object_del(obj); + } +} + +/** + * Creates value ctxpopup. + * + * User can set number in the ctxpopup. + * + * @param[in] priv The handler of the private data + */ +static void _create_value_popup(struct _priv *priv) +{ + Evas_Object *base; + Evas_Object *ctxpopup; + Evas_Object *btn; + Evas_Coord pos_x; + Evas_Coord pos_y; + int i; + + if (!priv || !priv->base) { + _ERR("The param is invalid.\n"); + return; + } + + base = priv->base; + + ctxpopup = util_add_layout(base, UG_PROXY_EDJ_FILE, + GRP_PROXY_VALUE_SETTING); + if (!ctxpopup) { + _ERR("elm_ctxpopup_add() failed.\n"); + return; + } + + priv->ctxpopup = ctxpopup; + + _set_layout_dim(priv); + + for (i = 0; i < PROXY_CONFIG_MAX_NUM; i++) { + btn = _create_value_btn(ctxpopup, i, _(TXT_ZERO), priv); + if (!btn) { + _ERR("_create_value_btn() failed.\n"); + evas_object_del(ctxpopup); + return; + } + + priv->vaule_btns[i] = btn; + } + + elm_object_part_text_set(ctxpopup, PART_TXT_SEPERATOR, _(TXT_COLON)); + evas_object_smart_callback_add(ctxpopup, SIG_UNFOCUSED, + _ctxpopup_unfocused_cb, priv); + evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_KEY_DOWN, + _value_ctxpopup_key_pressed_cb, priv); + _set_left_right_cycle_focus(priv->vaule_btns, PROXY_CONFIG_MAX_NUM); + + pos_x = 0; + pos_y = 0; + _get_value_popup_pos(priv, &pos_x, &pos_y); + evas_object_move(ctxpopup, pos_x * ELM_SCALE, pos_y * ELM_SCALE); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* After the proxy button is clicked, the value ctxpopup +* will be created to set the value. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _proxy_ip_btn_clicked_cb(void *data, + Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + _keep_btn_dim_focused(priv->proxy_btn); + + _create_value_popup(priv); +} + +/** + * Callback for key pressed event. + * + * If the key is 'Select', save the passcode. + * If the key is KEY_BACK, delete the layout. + * + * @param[in] data User data + * @param[in] e Evas handler + * @param[in] obj The corresponding object which the deletion event occurred + * @param[in] ei Event information + */ +static void _entry_key_pressed_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *ev; + struct _priv *priv; + const char *value; + + if (!data || !ei) { + _ERR("Parameter error!"); + return; + } + + priv = data; + ev = ei; + + if (!ev->keyname) { + _ERR("ev->keyname is NULL."); + return; + } + + elm_entry_input_panel_show(obj); + + if (!strcmp(ev->keyname, KEY_BACK)) { + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } + + _unset_layout_dim(priv); + } else if (!strcmp(ev->keyname, KEY_PROXY_ENTER)) { + value = elm_entry_entry_get(obj); + elm_object_part_text_set(priv->url_btn, PART_VALUE, value); + memset(priv->url, 0, MOTHED_URL_LEN + 1); + strncpy(priv->url, value, MOTHED_URL_LEN); + + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } + + elm_object_focus_set(priv->url_btn, EINA_TRUE); + + _unset_layout_dim(priv); + } +} + +/** + * Creates the entry to input passcode. + * + * @param[in] priv The handler of the private data + */ +static void _create_input_entry(struct _priv *priv) +{ + Evas_Object *entry; + Evas_Object *layout; + + if (!priv || !priv->base) { + _ERR("the param is NULL."); + return; + } + + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } + + layout = util_add_layout(priv->base, UG_PROXY_EDJ_FILE, + GRP_ENTRY_POPUP); + if (!layout) { + _ERR("create layout fail.\n"); + return; + } + + entry = util_add_entry(layout, STYLE_ENTRY, PART_ENTRY); + if (!entry) { + _ERR("add entry failed."); + evas_object_del(layout); + return; + } + + util_set_focus_next_self(entry); + evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN, + _entry_key_pressed_cb, priv); + elm_object_focus_set(entry, EINA_TRUE); + + _set_layout_dim(priv); + + priv->ctxpopup = layout; +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* After the URL button is clicked, the layout will be + * created to input the passcode. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _url_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + _create_input_entry(priv); +} + +/** + * Creates the method button. + * + * The common API for method button. + * + * @param[in] priv The handler of the private data + * @param[in] btn The handle of the button to be created + * @param[in] key The key value + * @param[in] value The value + * @param[in] line The number of lines + * @param[in] cb The callback for clicked event + * @return button if the operation is successful; NULL if failed; + */ +static Evas_Object *_create_method_box_btn(struct _priv *priv, Evas_Object *btn, + const char *key, char *value, int line, Evas_Smart_Cb cb) +{ + if (!priv || !priv->box || !key || !value || !cb) { + _ERR("Parameter error!"); + return NULL; + } + + if (btn) { + evas_object_show(btn); + elm_object_part_text_set(btn, PART_VALUE, value); + } else { + if (line == BTN_TWO_LINE) + btn = util_add_key_value_button(priv->box, + STYLE_KEY_VALUE_TWO_LINES, + NULL, key, value); + else + btn = util_add_key_value_button(priv->box, + STYLE_KEY_VALUE_BTN, NULL, key, value); + if (!btn) { + _ERR("add method btn failed."); + return NULL; + } + + evas_object_smart_callback_add(btn, SIG_CLICKED, cb, priv); + } + + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); + + return btn; +} + +/** + * Creates method none button. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _create_method_none_btn(struct _priv *priv) +{ + Evas_Object *box; + Evas_Object *btn; + + if (!priv || !priv->box) { + _ERR("Parameter error!"); + return RET_FAILED; + } + + box = priv->box; + + btn = _create_method_box_btn(priv, priv->method_btn, + _(TXT_MOTHED), _(TXT_MOTHED_NONE), + BTN_ONE_LINE, _method_btn_clicked_cb); + if (!btn) { + _ERR("add method btn failed."); + return RET_FAILED; + } + + elm_box_pack_end(box, btn); + + priv->method_btn = btn; + + return RET_SUCCESS; +} + +/** + * Creates method manual button. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _create_method_manual_btns(struct _priv *priv) +{ + Evas_Object *box; + Evas_Object *btn; + + if (!priv || !priv->box) { + _ERR("Parameter error!"); + return RET_FAILED; + } + + box = priv->box; + + btn = _create_method_box_btn(priv, priv->method_btn, + _(TXT_MOTHED), _(TXT_MOTHED_MAN), + BTN_ONE_LINE, _method_btn_clicked_cb); + if (!btn) { + _ERR("add method btn failed."); + return RET_FAILED; + } + + elm_box_pack_end(box, btn); + priv->method_btn = btn; + + btn = _create_method_box_btn(priv, priv->proxy_btn, + _(TXT_PROXY_IP), _(priv->ip), + BTN_ONE_LINE, _proxy_ip_btn_clicked_cb); + if (!btn) { + _ERR("add http btn failed."); + return RET_FAILED; + } + + elm_box_pack_end(box, btn); + priv->proxy_btn = btn; + + return RET_SUCCESS; +} + +/** + * Creates method auto button. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _create_method_auto_btns(struct _priv *priv) +{ + Evas_Object *box; + Evas_Object *btn; + + if (!priv || !priv->box) { + _ERR("Parameter error!"); + return RET_FAILED; + } + + box = priv->box; + + btn = _create_method_box_btn(priv, priv->method_btn, + _(TXT_MOTHED), _(TXT_MOTHED_AUTO), + BTN_ONE_LINE, _method_btn_clicked_cb); + if (!btn) { + _ERR("add method btn failed."); + return RET_FAILED; + } + + elm_box_pack_end(box, btn); + priv->method_btn = btn; + + btn = _create_method_box_btn(priv, priv->url_btn, + _(TXT_CONFIG_URL), _(priv->url), + BTN_TWO_LINE, _url_btn_clicked_cb); + if (!btn) { + _ERR("add url btn failed."); + return RET_FAILED; + } + + elm_box_pack_end(box, btn); + priv->url_btn = btn; + + return RET_SUCCESS; +} + +/** + * Creates the proxy layout. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _create_proxy_ly(struct _priv *priv) +{ + Evas_Object *base; + Evas_Object *box; + int ret; + + if (!priv || !priv->base) { + _ERR("Parameter error!"); + return RET_FAILED; + } + + base = priv->base; + + box = util_add_box(base, PART_PROXY_SETTING); + if (!box) { + _ERR("add box failed."); + return RET_FAILED; + } + + priv->box = box; + + switch (priv->method) { + case METHOD_NONE: + ret = _create_method_none_btn(priv); + if (ret != RET_SUCCESS) { + _ERR("add method none failed."); + goto error; + } + + break; + case METHOD_MAN: + ret = _create_method_manual_btns(priv); + if (ret != RET_SUCCESS) { + _ERR("add method manual failed."); + goto error; + } + + break; + case METHOD_AUTO: + ret = _create_method_auto_btns(priv); + if (ret != RET_SUCCESS) { + _ERR("add method manual failed."); + goto error; + } + + break; + default: + break; + } + + return RET_SUCCESS; + +error: + evas_object_del(box); + + return RET_FAILED; +} + +/** + * Checks if IP is valid. + * + * Now only check if IP is '0.0.0.0'. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; + * RET_IP_INVALID if the IP is '0.0.0.0'; RET_FAILED if failed; + */ +static int _check_ip_is_valid(struct _priv *priv) +{ + if (!priv) { + _ERR("The param is NULL.\n"); + return RET_FAILED; + } + + if (!strncmp(priv->ip, IP_ZERO, IP_STRING_LEN)) { + _ERR("IP addr is invalid."); + return RET_IP_INVALID; + } + + return RET_SUCCESS; +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* When the 'OK' button is clicked, delete the popup, +* and set the default focus. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] event Event information +*/ +static void _ctxpopup_ok_btn_clicked_cb(void *data, + Evas_Object *obj, void *event) +{ + struct _priv *priv; + + if (!data) { + _ERR("Parameter error!"); + return; + } + + priv = data; + + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } + + _unset_layout_dim(priv); + + elm_object_focus_set(priv->ok_btn, EINA_TRUE); +} + +/** + * Shows the invalid IP ctxpopup according to return value. + * + * @param[in] priv The handler of the private data + * @param[in] ret The return value from + */ +static void _show_invalid_info_ctxpopup(struct _priv *priv, int ret) +{ + Evas_Object *layout; + Evas_Object *btn; + // Evas_Coord w; + // Evas_Coord h; + + if (!priv) { + _ERR("The param is NULL.\n"); + return; + } + + if (priv->ctxpopup) { + evas_object_del(priv->ctxpopup); + priv->ctxpopup = NULL; + } + + _set_layout_dim(priv); + + layout = util_add_layout(priv->base, UG_PROXY_EDJ_FILE, + GRP_CONFIRM_LAYOUT); + if (!layout) { + _ERR("add layout failed."); + _unset_layout_dim(priv); + return; + } + + switch (priv->method) { + case METHOD_MAN: + elm_object_part_text_set(layout, PART_TEXT_TITLE, + _(TXT_MANUAL_TITLE)); + break; + case METHOD_AUTO: + elm_object_part_text_set(layout, PART_TEXT_TITLE, + _(TXT_AUTO_TITLE)); + break; + default: + evas_object_del(layout); + _unset_layout_dim(priv); + return; + } + + elm_object_part_text_set(layout, PART_TEXT_TITLE, _(TXT_MANUAL_TITLE)); + + if (ret == RET_IP_INVALID) + elm_object_part_text_set(layout, + PART_TEXT_CONTENT, _(TXT_IP_INVALID)); + else if (ret == RET_VCONF_FAILED) + elm_object_part_text_set(layout, + PART_TEXT_CONTENT, _(TXT_VCONF_FAILED)); + else if (ret == RET_WIRED_PROXY_FAILED) + elm_object_part_text_set(layout, + PART_TEXT_CONTENT, _(TXT_WIRED_FAILED)); + else if (ret == RET_WIRELESS_PROXY_FAILED) + elm_object_part_text_set(layout, + PART_TEXT_CONTENT, _(TXT_WIRELESS_FAILED)); + + btn = util_add_button(layout, + STYLE_ACTION_BTN, PART_OK_BTN, _(TXT_OK)); + if (!btn) { + _ERR("util add button failed."); + evas_object_del(layout); + _unset_layout_dim(priv); + return; + } + + elm_object_focus_set(btn, EINA_TRUE); + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_UP); + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_DOWN); + evas_object_smart_callback_add(btn, SIG_CLICKED, + _ctxpopup_ok_btn_clicked_cb, priv); + + evas_object_smart_callback_add(layout, SIG_UNFOCUSED, + _ctxpopup_unfocused_cb, priv); + evas_object_event_callback_add(layout, EVAS_CALLBACK_KEY_DOWN, + _ctxpopup_key_pressed_cb, priv); + + // w = DEFAULT_WIN_WIDTH; + // h = DEFAULT_WIN_HEIGHT; + evas_object_move(layout, + CENTER_ALIGN * (DEFAULT_WIN_WIDTH - CTXPOPUP_WIDTH) * ELM_SCALE, + CENTER_ALIGN * (DEFAULT_WIN_HEIGHT - CTXPOPUP_HEIGHT) * ELM_SCALE); + + priv->ctxpopup = layout; +} + +/** + * Saves the proxy information to vconf. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _save_to_vconf(struct _priv *priv) +{ + if (!priv) { + _ERR("The param is invalid.\n"); + return RET_SUCCESS; + } + + vconf_mgr_set_int_value(VCONF_PROXY_METHOD, priv->method); + + switch (priv->method) { + case METHOD_NONE: + break; + case METHOD_MAN: + _check_ip_is_valid(priv); + + vconf_mgr_set_string_value(VCONF_PROXY_IP, priv->ip); + + break; + case METHOD_AUTO: + vconf_mgr_set_string_value(VCONF_PROXY_URL, priv->url); + + break; + default: + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Sets the proxy information with connection api. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _set_connection_proxy(struct _priv *priv) +{ + int ret; + + if (!priv) { + _ERR("The param is invalid.\n"); + return RET_FAILED; + } + + ret = connection_mgr_set_proxy_type(priv->connection, priv->method); + if (ret != RET_SUCCESS) { + _ERR("wifi_mgr_get_proxy_type() failed."); + return ret; + } + + switch (priv->method) { + case METHOD_NONE: + connection_mgr_set_proxy_address(priv->connection, + NULL); + break; + case METHOD_MAN: + if (priv->ip) + connection_mgr_set_proxy_address(priv->connection, + priv->ip); + break; + case METHOD_AUTO: + if (priv->url) + connection_mgr_set_proxy_address(priv->connection, + priv->url); + break; + default: + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Sets the proxy information with wifi api. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _set_wifi_proxy(struct _priv *priv) +{ + int ret; + + if (!priv) { + _ERR("The param is invalid.\n"); + return RET_FAILED; + } + + ret = wifi_mgr_set_proxy_type(priv->method); + if (ret != RET_SUCCESS) { + _ERR("wifi_mgr_get_proxy_type() failed."); + return ret; + } + + switch (priv->method) { + case METHOD_NONE: + wifi_mgr_set_proxy_address(NULL); + break; + case METHOD_MAN: + if (priv->ip) + wifi_mgr_set_proxy_address(priv->ip); + break; + case METHOD_AUTO: + if (priv->url) + wifi_mgr_set_proxy_address(priv->url); + break; + default: + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Sets the proxy information. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _set_proxy(struct _priv *priv) +{ + int ret; + + if (!priv) { + _ERR("The param is invalid.\n"); + return RET_FAILED; + } + + if (priv->net_type == TYPE_WIRED) { + ret = _set_connection_proxy(priv); + if (ret != RET_SUCCESS) { + _ERR("the ip or port is invalid."); + return ret; + } + } else if (priv->net_type == TYPE_WIRELESS) { + ret = _set_wifi_proxy(priv); + if (ret != RET_SUCCESS) { + _ERR("the ip or port is invalid."); + return ret; + } + } + + return RET_SUCCESS; +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* When the 'OK' button is clicked, save the proxy information, +* and destroy the ug. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _ok_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + int ret; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + ret = _set_proxy(priv); + if (ret != RET_SUCCESS) { + _ERR("the ip or port is invalid."); + _show_invalid_info_ctxpopup(priv, ret); + return; + } + + ret = _save_to_vconf(priv); + if (ret != RET_SUCCESS) { + _ERR("the ip or port is invalid."); + _show_invalid_info_ctxpopup(priv, ret); + return; + } + + ug_destroy_me(priv->ug); +} + +/** +* @Evas_Smart_Cb type callback for handling clicked event. +* +* When the 'OK' button is clicked, don't save the proxy information, +* and destroy the ug. +* +* @param[in] data User data +* @param[in] obj The corresponding object which the focus event occurred +* @param[in] ev Event information +*/ +static void _cancel_btn_clicked_cb(void *data, Evas_Object *obj, void *ev) +{ + struct _priv *priv; + + if (!data || !obj) { + _ERR("The param is invalid.\n"); + return; + } + + priv = data; + + ug_destroy_me(priv->ug); +} + +/** + * Creates the action buttons. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _create_action_btns(struct _priv *priv) +{ + Evas_Object *base; + Evas_Object *btn; + + if (!priv || !priv->base) { + _ERR("Parameter error!"); + return RET_FAILED; + } + + base = priv->base; + + btn = util_add_button(base, STYLE_ACTION_BTN, PART_OK_BTN, _(TXT_OK)); + if (!btn) { + _ERR("add ok button failed."); + return RET_FAILED; + } + + evas_object_smart_callback_add(btn, SIG_CLICKED, + _ok_btn_clicked_cb, priv); + + elm_object_focus_set(btn, EINA_TRUE); + + btn = util_add_button(base, STYLE_ACTION_BTN, + PART_CANCEL_BTN, _(TXT_CANCEL)); + if (!btn) { + _ERR("add cancel button failed."); + return RET_FAILED; + } + + evas_object_smart_callback_add(btn, SIG_CLICKED, + _cancel_btn_clicked_cb, priv); + + return RET_SUCCESS; +} + +/** + * Creates the dim layout. + * + * @param[in] priv The handler of the private data + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +static int _create_dim_layout(struct _priv *priv) +{ + Evas_Object *dim_ly; + + if (!priv || !priv->base) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + dim_ly = util_add_layout(priv->base, UG_PROXY_EDJ_FILE, + GRP_DIM_LY); + if (!dim_ly) { + _ERR("elm_layout_add() failed.\n"); + return RET_FAILED; + } + + priv->dim_ly = dim_ly; + _unset_layout_dim(priv); + + return RET_SUCCESS; +} + +/** + * Creates the layout of the view. + * + * Called when the ug is launched. + * + * @param[in] win The handler of view manager + * @param[in] data The passed data from main view + * @return layout if the operation is successful; NULL if failed; + */ +Evas_Object *create_main_view(Evas_Object *win, ui_gadget_h ug) +{ + struct _priv *priv; + Evas_Object *base; + int ret; + + if (!win || !ug) { + _ERR("Parameter error!"); + return NULL; + } + + priv = _init_priv(); + if (!priv) { + _ERR("init priv failed."); + return NULL; + } + + priv->win = win; + priv->ug = ug; + + base = _create_basic_layout(priv); + if (!base) { + _ERR("Add main view failed.\n"); + _fini_priv(priv); + return NULL; + } + + priv->base = base; + + _set_description(priv); + + ret = _get_proxy_method(priv); + if (ret != RET_SUCCESS) { + _ERR("get proxy method failed.\n"); + goto error; + } + + ret = _create_proxy_ly(priv); + if (ret != RET_SUCCESS) { + _ERR("get proxy method failed.\n"); + goto error; + } + + ret = _create_action_btns(priv); + if (ret != RET_SUCCESS) { + _ERR("create action buttons failed.\n"); + goto error; + } + + ret = _create_dim_layout(priv); + if (ret != RET_SUCCESS) + goto error; + + elm_object_focus_set(priv->method_btn, EINA_TRUE); + evas_object_data_set(base, KEY_PRIV, priv); + + return base; + +error: + _fini_priv(priv); + return NULL; +} + +/** + * Destroies the layout of the view. + * + * Called when the ug is destroied. + * + * @param[in] base The base layout + */ +void destroy_main_view(Evas_Object *base) +{ + struct _priv *priv; + + if (!base) { + _ERR("Parameter error!"); + return; + } + + priv = evas_object_data_get(base, KEY_PRIV); + if (!priv) + return; + + _fini_priv(priv); +} diff --git a/ug/proxy/src/ug_proxy_settings.cpp b/ug/proxy/src/ug_proxy_settings.c similarity index 89% rename from ug/proxy/src/ug_proxy_settings.cpp rename to ug/proxy/src/ug_proxy_settings.c index 15dc624..6ddb58c 100644 --- a/ug/proxy/src/ug_proxy_settings.cpp +++ b/ug/proxy/src/ug_proxy_settings.c @@ -18,26 +18,17 @@ #define UG_MODULE_API __attribute__ ((visibility("default"))) #endif +#include #include +#include "main_view.h" #include "i18n.h" #include "defs.h" -#include - -#include "wifi.h" -#include "ProxyMainView.h" - -#if defined (__cplusplus) -extern "C" { -#endif +#include "dbg.h" struct _ug_data { - ui_gadget_h ug; - Evas_Object *win; Evas_Object *base; - - CViewMgr *pViewMgr; - CProxyMainView *pProxyMainView; + ui_gadget_h ug; }; /** @@ -63,6 +54,7 @@ static void *_on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv) { struct _ug_data *ugd; + Evas_Object *base; Evas_Object *win; if (!ug || !priv) { @@ -70,12 +62,12 @@ static void *_on_create(ui_gadget_h ug, enum ug_mode mode, return NULL; } - ugd = (struct _ug_data *) priv; + ugd = priv; ugd->ug = ug; elm_theme_extension_add(NULL, UG_PROXY_EDJ_THEME); - win = (Evas_Object *) ug_get_window(); + win = ug_get_window(); if (!win) { _ERR("window get failed"); return NULL; @@ -86,24 +78,16 @@ static void *_on_create(ui_gadget_h ug, enum ug_mode mode, elm_win_focus_highlight_enabled_set(win, EINA_TRUE); elm_win_focus_highlight_style_set(win, "invisible"); - CViewMgr::Initialize(ugd->win, NULL); - ugd->pViewMgr = CViewMgr::GetInstance(); - if(!ugd->pViewMgr) { - CViewMgr::Finalize(); - _ERR("Fail to get CViewMgr instance"); + base = create_main_view(win, ug); + if (!base) { + _ERR("add base layout failed."); return NULL; } - ugd->pProxyMainView = new CProxyMainView(PROXY_MAINVIEW); - if(!ugd->pViewMgr->AddView(ugd->pProxyMainView)) { - _ERR("Fail to add pFbBaseView"); - CViewMgr::Finalize(); - return false; - } - ugd->pViewMgr->PushView(PROXY_MAINVIEW, NULL); - ugd->base = ugd->pProxyMainView->Base(); + ugd->base = base; + evas_object_raise(base); - return ugd->base; + return base; } /** @@ -174,7 +158,17 @@ static void _on_resume(ui_gadget_h ug, service_h service, void *priv) */ static void _on_destroy(ui_gadget_h ug, service_h service, void *priv) { - CViewMgr::Finalize(); + struct _ug_data *ugd = priv; + + if (!ug || !priv) { + _ERR("Parameter error!"); + return; + } + + if (!ugd || !ugd->base) + return; + + destroy_main_view(ugd->base); } /** @@ -251,7 +245,7 @@ UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) if (!ops) return -1; - ugd = (struct _ug_data *) calloc(1, sizeof(*ugd)); + ugd = calloc(1, sizeof(*ugd)); if (!ugd) return -1; @@ -286,11 +280,7 @@ UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops) if (!ops) return; - ugd = (struct _ug_data *) ops->priv; + ugd = ops->priv; free(ugd); } - -#if defined (__cplusplus) -}; -#endif diff --git a/ug/proxy/src/util.cpp b/ug/proxy/src/util.c similarity index 99% rename from ug/proxy/src/util.cpp rename to ug/proxy/src/util.c index 714c0a9..a5969b8 100644 --- a/ug/proxy/src/util.cpp +++ b/ug/proxy/src/util.c @@ -19,7 +19,7 @@ #include #include "i18n.h" #include "defs.h" -#include +#include "dbg.h" #include "util.h" #define ALIGN_CENTER 0.5 diff --git a/ug/proxy/src/vconf_mgr.c b/ug/proxy/src/vconf_mgr.c new file mode 100644 index 0000000..d018549 --- /dev/null +++ b/ug/proxy/src/vconf_mgr.c @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "defs.h" +#include "dbg.h" +#include "vconf_mgr.h" +#include "i18n.h" + +/** + * Gets the string value from vconf. + * + * @param[in] key Vconf key + * @return the value in vconf; + */ +char *vconf_mgr_get_string_value(const char *key) +{ + if (!key) { + _ERR("the param is invalid."); + return NULL; + } + + return vconf_get_str(key); +} + +/** + * Sets the string value to vconf. + * + * @param[in] key Vconf key + * @param[in] value The value + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_set_string_value(const char *key, const char *value) +{ + int ret; + + if (!key || !value) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = vconf_set_str(key, value); + if (ret != 0) { + _ERR("vconf set str failed."); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the integer value from vconf. + * + * @param[in] key Vconf key + * @param[out] value The value + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_get_int_value(const char *key, int *value) +{ + int ret; + + if (!key || !value) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = vconf_get_int(key, value); + if (ret != 0) { + _ERR("vconf get int failed"); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Sets the integer value to vconf. + * + * @param[in] key Vconf key + * @param[in] value The value + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int vconf_mgr_set_int_value(const char *key, const int value) +{ + int ret; + + if (!key) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = vconf_set_int(key, value); + if (ret != 0) { + _ERR("vconf set int failed."); + return RET_FAILED; + } + + return RET_SUCCESS; +} diff --git a/ug/proxy/src/wifi_mgr.c b/ug/proxy/src/wifi_mgr.c new file mode 100644 index 0000000..88616a2 --- /dev/null +++ b/ug/proxy/src/wifi_mgr.c @@ -0,0 +1,287 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include "defs.h" +#include "dbg.h" +#include "wifi_mgr.h" + +/** + * Converts the error type to string information. + * + * @param[in] err_type Error type + * @return error string information; + */ +const char *wifi_mgr_error_dbg(wifi_error_e err_type) +{ + switch (err_type) { + case WIFI_ERROR_NONE: + return "NONE"; + case WIFI_ERROR_INVALID_PARAMETER: + return "INVALID_PARAMETER"; + case WIFI_ERROR_OUT_OF_MEMORY: + return "OUT_OF_MEMORY"; + case WIFI_ERROR_INVALID_OPERATION: + return "INVALID_OPERATION"; + case WIFI_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED: + return "ADDRESS_FAMILY_NOT_SUPPORTED"; + case WIFI_ERROR_OPERATION_FAILED: + return "OPERATION_FAILED"; + case WIFI_ERROR_NO_CONNECTION: + return "NO_CONNECTION"; + case WIFI_ERROR_NOW_IN_PROGRESS: + return "NOW_IN_PROGRESS"; + case WIFI_ERROR_ALREADY_EXISTS: + return "ALREADY_EXISTS"; + case WIFI_ERROR_OPERATION_ABORTED: + return "OPERATION_ABORTED"; + case WIFI_ERROR_DHCP_FAILED: + return "DHCP_FAILED"; + case WIFI_ERROR_INVALID_KEY: + return "INVALID_KEY"; + case WIFI_ERROR_NO_REPLY: + return "NO_REPLY"; + case WIFI_ERROR_SECURITY_RESTRICTED: + return "SECURITY_RESTRICTED"; + default: + break; + } + + return "UNKNOWN"; +} + +/** + * Initializes Wi-Fi. + * + * Called before using wifi APIs. + * + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_init(void) +{ + int ret; + + ret = wifi_initialize(); + if (ret != WIFI_ERROR_NONE) { + _ERR("Fail to wifi_initialize.\n"); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Deinitializes Wi-Fi. + * + * Called when network setting is destroyed. + * + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_deinit(void) +{ + int ret; + + ret = wifi_deinitialize(); + if (ret != WIFI_ERROR_NONE) { + _ERR("Fail to wifi_deinitialize.\n"); + return RET_FAILED; + } + + return RET_SUCCESS; +} + +/** + * Gets the handle of connected access point. + * + * You can get the connected access point and its configuration. + * + * @param[out] ap The handle of access point + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_get_connected_ap(wifi_ap_h *ap) +{ + int ret; + + if (!ap) { + _ERR("the param is invalid."); + return RET_FAILED; + } + + ret = wifi_get_connected_ap(ap); + if (ret != WIFI_ERROR_NONE) { + _ERR("wifi_get_connected_ap() failed."); + return ret; + } + + return RET_SUCCESS; +} + +/** + * Sets the Proxy type. + * + * If you set Proxy type to #WIFI_PROXY_TYPE_AUTO or + * #WIFI_PROXY_TYPE_MANUAL, then Proxy will be restored. + * + * @param[in] method The proxy method + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_set_proxy_type(enum method_enum method) +{ + wifi_proxy_type_e type; + wifi_ap_h ap; + int ret; + + if (method < 0 || method >= METHOD_NUM) { + _ERR("method is invalid."); + return RET_FAILED; + } + + ap = NULL; + ret = wifi_get_connected_ap(ap); + if (ret != WIFI_ERROR_NONE) { + _ERR("wifi_get_connected_ap() failed."); + return ret; + } + + switch (method) { + case METHOD_NONE: + type = WIFI_PROXY_TYPE_DIRECT; + break; + case METHOD_MAN: + type = WIFI_PROXY_TYPE_MANUAL; + break; + case METHOD_AUTO: + type = WIFI_PROXY_TYPE_AUTO; + break; + default: + return RET_FAILED; + } + + ret = wifi_ap_set_proxy_type(ap, type); + if (ret != WIFI_ERROR_NONE) { + _ERR("wifi_ap_set_proxy_type() failed."); + return ret; + } + + return RET_SUCCESS; +} + +/** + * Gets the Proxy type. + * + * @param[out] method The proxy method + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_get_proxy_type(enum method_enum *method) +{ + wifi_proxy_type_e type; + wifi_ap_h ap; + int ret; + + if (!method) { + _ERR("method is invalid."); + return RET_FAILED; + } + + ap = NULL; + ret = wifi_get_connected_ap(ap); + if (ret != WIFI_ERROR_NONE) { + _ERR("wifi_get_connected_ap() failed."); + return ret; + } + + ret = wifi_ap_get_proxy_type(ap, &type); + if (ret != WIFI_ERROR_NONE) { + _ERR("wifi_ap_get_proxy_type() failed."); + return ret; + } + + switch (type) { + case WIFI_PROXY_TYPE_DIRECT: + *method = METHOD_NONE; + break; + case WIFI_PROXY_TYPE_MANUAL: + *method = METHOD_MAN; + break; + case WIFI_PROXY_TYPE_AUTO: + *method = METHOD_AUTO; + break; + default: + return RET_FAILED; + } + + return RET_SUCCESS; + +} + +/** + * Sets the proxy address. + * + * @param[in] ip The IP address + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_set_proxy_address(const char *ip) +{ + wifi_ap_h ap; + int ret; + + ap = NULL; + ret = wifi_get_connected_ap(ap); + if (ret != WIFI_ERROR_NONE) { + _ERR("wifi_get_connected_ap() failed."); + return ret; + } + + ret = wifi_ap_set_proxy_address(ap, WIFI_ADDRESS_FAMILY_IPV4, ip); + if (ret != WIFI_ERROR_NONE) { + _ERR("wifi_ap_set_proxy_address() failed."); + return ret; + } + + return RET_SUCCESS; +} + +/** + * Gets the proxy address. + * + * @param[out] ip The IP address + * @return RET_SUCCESS if the operation is successful; RET_FAILED if failed; + */ +int wifi_mgr_get_proxy_address(char **ip) +{ + wifi_ap_h ap; + int ret; + + if (!ip || !*ip) { + _ERR("ip is invalid."); + return RET_FAILED; + } + + ap = NULL; + ret = wifi_get_connected_ap(ap); + if (ret != WIFI_ERROR_NONE) { + _ERR("wifi_get_connected_ap() failed."); + return ret; + } + + ret = wifi_ap_get_proxy_address(ap, WIFI_ADDRESS_FAMILY_IPV4, ip); + if (ret != WIFI_ERROR_NONE) { + _ERR("wifi_ap_get_proxy_address() failed."); + return ret; + } + + return RET_SUCCESS; +} diff --git a/ug/src/NetConMgr.cpp b/ug/src/NetConMgr.cpp deleted file mode 100644 index b5de2d0..0000000 --- a/ug/src/NetConMgr.cpp +++ /dev/null @@ -1,614 +0,0 @@ -#include -#include "NetConMgr.h" - -#define IP_STRING_MAX_SIZE 20 -#define MAX_NAME_SIZE 256 -#define CONTENT_TXT_SIZE 500 -#define ZERO_IP "0.0.0.0" - -CNetConMgr *CNetConMgr::instance = NULL; - -struct SNetConMgr { - connection_h handle; - connection_profile_h ethernet_profile_h; - void(*ip_changed_cb)(bool change_state, void *data); -}; - - -void CNetConMgr::sm_CbIpAddrChanged(const char *ipv4, const char *ipv6, void* data) -{ - _DBG("IP addr is changed!! [IPv4:%s] [IPv6:%s]", ipv4, ipv6); - - CNetConMgr::GetInstance()->m_OnIpAddrChanged(data); -} - - -void CNetConMgr::m_OnIpAddrChanged(void *data) -{ - if(m->ip_changed_cb) - m->ip_changed_cb(true, data); -} - - -void CNetConMgr::sm_CbProfileStateChanged(connection_profile_state_e state, void *data) -{ - - _DBG("Profile is changed!!!!!!!!!!!!!!!!!!!!!!!!!"); - - /* TODO : check the flow again */ - CNetConMgr::GetInstance()->RefreshEthernetProfile(); -} - - -bool CNetConMgr::m_GetEthernetProfile(void) -{ - ASSERT(m); - - connection_profile_iterator_h iter = NULL; - connection_profile_type_e type; - - int ret; - char name[MAX_NAME_SIZE] = {0}; - - ret = connection_get_profile_iterator(m->handle, CONNECTION_ITERATOR_TYPE_REGISTERED, &iter); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("Fail to get profile iterator: %s", GetErrorMsg((connection_error_e) ret)); - return false; - } - - while (connection_profile_iterator_has_next(iter)) { - - m->ethernet_profile_h = NULL; - - if (connection_profile_iterator_next(iter, &m->ethernet_profile_h) != CONNECTION_ERROR_NONE) { - _ERR("Fail to get profile handle"); - break; - } - - if (connection_profile_get_type(m->ethernet_profile_h, &type) != CONNECTION_ERROR_NONE) { - _ERR("Fail to get profile type"); - break; - } - - if (type == CONNECTION_PROFILE_TYPE_ETHERNET) - { - /* FIXME : should check when there are same ethernet profiles. */ - break; - } - } - - if(!m->ethernet_profile_h) { - _ERR("ethernet_profile_h is NULL"); - return false; - } - - GetProfileName(name); - _DBG("GetProfileName = %s", name); - - ret = connection_profile_set_state_changed_cb( m->ethernet_profile_h, sm_CbProfileStateChanged, (void *)instance); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("connection_profile_set_state_changed_cb() failed."); - return false; - } - - return true; -} - - -bool CNetConMgr::m_UpdateProfile(void) -{ - ASSERT(m); - - int ret = -1; - - ret = connection_update_profile( m->handle, m->ethernet_profile_h); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("connection_update_profile failed"); - return false; - } - - return true; -} - - -bool CNetConMgr::Initialize(void) -{ - ASSERT(!instance); - - instance = new CNetConMgr; - if(!instance) { - _ERR("Fail to allocate memory"); - return false; - } - - instance->m = new SNetConMgr; - if(!instance->m) { - _ERR("Fail to allocate memory"); - delete (instance); - return false; - } - - int ret = 0; - ret = connection_create(&instance->m->handle); - if( ret != CONNECTION_ERROR_NONE) { - _ERR("Fail to create connection : error = %s", instance->GetErrorMsg((connection_error_e) ret)); - delete (instance->m); - delete (instance); - instance = NULL; - return false; - } - - if(!instance->m_GetEthernetProfile()) { - _ERR("Fail to get ethernet_profile"); - } - - return true; -} - - -void CNetConMgr::Finalize(void) -{ - if(!instance) - return; - - ASSERT(instance->m); - - int ret = 0; - ret = connection_destroy(instance->m->handle); - if( ret != CONNECTION_ERROR_NONE) { - _ERR("Fail to destroy connection : error = %s", instance->GetErrorMsg((connection_error_e) ret)); - } - - delete (instance->m); - delete (instance); - instance = NULL; -} - - -CNetConMgr *CNetConMgr::GetInstance(void) -{ - return instance; -} - - -void CNetConMgr::RefreshEthernetProfile(void) -{ - ASSERT(m); - - if(!m_GetEthernetProfile()) { - _ERR("Fail to get ethernet_profile"); - } -} - - -bool CNetConMgr::GetEthernetState(bool *out_state) -{ - ASSERT(m); - - int ret = -1; - connection_ethernet_state_e state; - - if (!out_state) { - _ERR("the param is invalid."); - return false; - } - - ret = connection_get_ethernet_state(m->handle, &state); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("connection_get_ethernet_state() failed."); - return false; - } - - if (state == CONNECTION_ETHERNET_STATE_DEACTIVATED) - *out_state = false; - else - *out_state = true; - - return true; -} - - -bool CNetConMgr::GetProfileName(char *out_name) -{ - ASSERT(m); - - char *name; - - if(!m->ethernet_profile_h) { - _ERR("There is no ethernet profile Try to call RefreshEthernetProfile()"); - return false; - } - - if (connection_profile_get_name(m->ethernet_profile_h, &name) != CONNECTION_ERROR_NONE) { - _ERR("Fail to get profile name\n"); - return false; - } - - strncpy(out_name, name, MAX_NAME_SIZE - 1); - - delete (name); - return true; -} - - -bool CNetConMgr::IsConnected(void) -{ - ASSERT(m); - - int ret; - connection_ethernet_state_e state; - - ret = connection_get_ethernet_state(m->handle, &state); - if (ret == CONNECTION_ERROR_NONE && state == CONNECTION_ETHERNET_STATE_CONNECTED) - return true; - - return false; -} - - -bool CNetConMgr::SetIpConfType(connection_ip_config_type_e type) -{ - ASSERT(m); - - if(!m_UpdateProfile()) return false; - - int ret = -1; - - ret = connection_profile_set_ip_config_type( m->ethernet_profile_h, CONNECTION_ADDRESS_FAMILY_IPV4, type); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("connection_profile_set_ip_config_type() failed."); - return false; - } - - if(!m_UpdateProfile()) return false; - - return true; -} - - -bool CNetConMgr::SetIpAddr(char *ip) -{ - ASSERT(m); - - if(!m_UpdateProfile()) return false; - if(!SetIpConfType(CONNECTION_IP_CONFIG_TYPE_STATIC)) return false; - - int ret = -1; - ret = connection_profile_set_ip_address( m->ethernet_profile_h, CONNECTION_ADDRESS_FAMILY_IPV4, ip); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("connection_profile_set_ip_address() failed."); - return false; - } - - if(!m_UpdateProfile()) return false; - - return true; -} - - -bool CNetConMgr::SetSubnetMask(char *submask) -{ - ASSERT(m); - - if(!m_UpdateProfile()) return false; - if(!SetIpConfType(CONNECTION_IP_CONFIG_TYPE_STATIC)) return false; - - int ret = -1; - ret = connection_profile_set_subnet_mask( m->ethernet_profile_h, CONNECTION_ADDRESS_FAMILY_IPV4, submask); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("fail to set_subnet_mask"); - return false; - } - - if(!m_UpdateProfile()) return false; - return true; -} - - -bool CNetConMgr::SetGateway(char *gateway) -{ - ASSERT(m); - - if(!m_UpdateProfile()) return false; - if(!SetIpConfType(CONNECTION_IP_CONFIG_TYPE_STATIC)) return false; - - int ret = -1; - ret = connection_profile_set_gateway_address( m->ethernet_profile_h, CONNECTION_ADDRESS_FAMILY_IPV4, gateway); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("fail to set_gateway_address"); - return false; - } - - if(!m_UpdateProfile()) return false; - return true; -} - - -bool CNetConMgr::SetDNS(char *dns) -{ - ASSERT(m); - - if(!m_UpdateProfile()) return false; - if(!SetIpConfType(CONNECTION_IP_CONFIG_TYPE_STATIC)) return false; - - int ret = -1; - ret = connection_profile_set_dns_address( m->ethernet_profile_h, 1, CONNECTION_ADDRESS_FAMILY_IPV4, dns); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("fail to set_dns_address"); - return false; - } - - if(!m_UpdateProfile()) return false; - return true; -} - - -bool CNetConMgr::GetIpAddr(char *ip) -{ - ASSERT(m); - - if(!ip) { - _ERR("Invalid parameter"); - return false; - } - - char *str_value; - - if (connection_profile_get_ip_address( m->ethernet_profile_h, CONNECTION_ADDRESS_FAMILY_IPV4, &str_value) != CONNECTION_ERROR_NONE) { - _ERR("Fail to get IP address!"); - strncpy(ip, ZERO_IP, IP_STRING_MAX_SIZE); - } else { - strncpy(ip, str_value, IP_STRING_MAX_SIZE); - delete(str_value); - } - - return true; -} - - -bool CNetConMgr::GetSubnetMask(char *submask) -{ - ASSERT(m); - - if(!submask) { - _ERR("Invalid parameter"); - return false; - } - - char *str_value; - if (connection_profile_get_subnet_mask( m->ethernet_profile_h, CONNECTION_ADDRESS_FAMILY_IPV4, &str_value) != CONNECTION_ERROR_NONE) { - _ERR("Fail to get subnet mask!"); - strncpy(submask, ZERO_IP, IP_STRING_MAX_SIZE); - } else { - strncpy(submask, str_value, IP_STRING_MAX_SIZE); - delete(str_value); - } - - return true; -} - - -bool CNetConMgr::GetGateway(char *gateway) -{ - ASSERT(m); - - if(!gateway) { - _ERR("Invalid parameter"); - return false; - } - - char *str_value; - if (connection_profile_get_gateway_address( m->ethernet_profile_h, CONNECTION_ADDRESS_FAMILY_IPV4, &str_value) != CONNECTION_ERROR_NONE) { - _ERR("Fail to get gateway!"); - strncpy(gateway, ZERO_IP, IP_STRING_MAX_SIZE); - } else { - strncpy(gateway, str_value, IP_STRING_MAX_SIZE); - delete(str_value); - } - - return true; -} - - -bool CNetConMgr::GetDNS(char *dns) -{ - ASSERT(m); - - if(!dns) { - _ERR("Invalid parameter"); - return false; - } - - char *str_value; - if (connection_profile_get_dns_address( m->ethernet_profile_h, 1, CONNECTION_ADDRESS_FAMILY_IPV4, &str_value) != CONNECTION_ERROR_NONE) { - _ERR("Fail to get DNS1!"); - strncpy(dns, ZERO_IP, IP_STRING_MAX_SIZE); - } else { - strncpy(dns, str_value, IP_STRING_MAX_SIZE); - delete(str_value); - } - - return true; -} - - -bool CNetConMgr::SetProxyType(EProxyMethod method) -{ - ASSERT(m); - if(!m->ethernet_profile_h) { - _ERR("There is no ethernet profile Try to call RefreshEthernetProfile()"); - return false; - } - - connection_proxy_type_e type; - - int ret; - - switch (method) { - case PROXY_METHOD_NONE: - type = CONNECTION_PROXY_TYPE_DIRECT; - break; - case PROXY_METHOD_MANUAL: - type = CONNECTION_PROXY_TYPE_MANUAL; - break; - case PROXY_METHOD_AUTO: - type = CONNECTION_PROXY_TYPE_AUTO; - break; - default: - return false; - } - - ret = connection_profile_set_proxy_type( m->ethernet_profile_h, type); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("connection_profile_set_proxy_type() failed"); - return false; - } - - return true; -} - - -bool CNetConMgr::GetProxyType(EProxyMethod *method) -{ - ASSERT(m); - if(!m->ethernet_profile_h) { - _ERR("There is no ethernet profile Try to call RefreshEthernetProfile()"); - return false; - } - - connection_proxy_type_e type; - - int ret; - - if (!method) { - _ERR("the param is invalid."); - return false; - } - - ret = connection_profile_get_proxy_type( m->ethernet_profile_h, &type); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("connection_profile_get_proxy_type() failed"); - return false; - } - - switch (type) { - case CONNECTION_PROXY_TYPE_DIRECT: - *method = PROXY_METHOD_NONE; - break; - case CONNECTION_PROXY_TYPE_MANUAL: - *method = PROXY_METHOD_MANUAL; - break; - case CONNECTION_PROXY_TYPE_AUTO: - *method = PROXY_METHOD_AUTO; - break; - default: - return false; - } - - return true; -} - - -bool CNetConMgr::SetProxyAddr(char *ip) -{ - ASSERT(m); - if(!m->ethernet_profile_h) { - _ERR("There is no ethernet profile Try to call RefreshEthernetProfile()"); - return false; - } - - int ret; - - ret = connection_profile_set_proxy_address( m->ethernet_profile_h, CONNECTION_ADDRESS_FAMILY_IPV4, ip); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("connection_profile_set_proxy_address() failed"); - return false; - } - - return true; -} - - -bool CNetConMgr::GetProxyAddr(char *ip) -{ - ASSERT(m); - if(!m->ethernet_profile_h) { - _ERR("There is no ethernet profile Try to call RefreshEthernetProfile()"); - return false; - } - - int ret; - char *str; - - if (!ip) { - _ERR("the param is invalid."); - return false; - } - - ret = connection_profile_get_proxy_address( m->ethernet_profile_h, CONNECTION_ADDRESS_FAMILY_IPV4, &str); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("connection_profile_get_proxy_address() failed"); - return false; - } - - strncpy(ip, str, IP_STRING_MAX_SIZE ); - delete (str); - - return true; -} - - -const char *CNetConMgr::GetErrorMsg(connection_error_e err) -{ - switch (err) { - case CONNECTION_ERROR_NONE: - return "NONE"; - case CONNECTION_ERROR_INVALID_PARAMETER: - return "INVALID_PARAMETER"; - case CONNECTION_ERROR_OUT_OF_MEMORY: - return "OUT_OF_MEMORY"; - case CONNECTION_ERROR_INVALID_OPERATION: - return "INVALID_OPERATION"; - case CONNECTION_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED: - return "ADDRESS_FAMILY_NOT_SUPPORTED"; - case CONNECTION_ERROR_OPERATION_FAILED: - return "OPERATION_FAILED"; - case CONNECTION_ERROR_ITERATOR_END: - return "ITERATOR_END"; - case CONNECTION_ERROR_NO_CONNECTION: - return "NO_CONNECTION"; - case CONNECTION_ERROR_NOW_IN_PROGRESS: - return "NOW_IN_PROGRESS"; - case CONNECTION_ERROR_ALREADY_EXISTS: - return "ALREADY_EXISTS"; - case CONNECTION_ERROR_OPERATION_ABORTED: - return "OPERATION_ABORTED"; - case CONNECTION_ERROR_DHCP_FAILED: - return "DHCP_FAILED"; - case CONNECTION_ERROR_INVALID_KEY: - return "INVALID_KEY"; - case CONNECTION_ERROR_NO_REPLY: - return "NO_REPLY"; - default: - break; - } - - return "Unknown"; -} - - -bool CNetConMgr::RegisterIpChangedCallback(void(*ip_changed_cb)(bool connected, void *data), void *data) -{ - ASSERT(m); - - int ret = -1; - - ret = connection_set_ip_address_changed_cb( m->handle, sm_CbIpAddrChanged, data); - if (ret != CONNECTION_ERROR_NONE) { - _ERR("connection_set_ip_address_changed_cb() failed."); - return false; - } - m->ip_changed_cb = ip_changed_cb; - - return true; -} diff --git a/ug/src/TVServiceMgr.cpp b/ug/src/TVServiceMgr.cpp deleted file mode 100644 index 1d4cd6f..0000000 --- a/ug/src/TVServiceMgr.cpp +++ /dev/null @@ -1,295 +0,0 @@ -#include -#include -#include -//#include "tv_service_proxy.h" - -#include "TVServiceMgr.h" - -#define SIGNAL_HANDLER_INTERVAL 0.1 - -CTVServiceMgr *CTVServiceMgr::instance = NULL; - -enum tv_scan_state { - SCAN_STATE_READY, - SCAN_STATE_SEARCHING, - SCAN_STATE_PAUSED, - SCAN_STATE_STOPPING, - SCAN_STATE_MAX -}; - - -struct tv_scan_result { - unsigned int air_dtv; - unsigned int cable_dtv; - unsigned int air_atv; - unsigned int cable_atv; -}; - - -struct STVServiceMgr { - //struct tv_scan_cbs cbs; - enum tv_scan_state state; - enum antenna_mode set_mode; -#if 0 - TvServiceScan service_scan; - TvServiceScanType scan_type; -#endif - int ch_count; - int ch_num; - int total_ch; - struct tv_scan_result res; - int is_stopped; - Eina_List *signal_queue; - Ecore_Timer *signal_timer; -}; - -struct _signal_info { -#if 0 - TvServiceScanType scan_type; - TvServiceScanEvent signal; - TvServiceScanEventData signal_data; -#endif -}; - - -bool CTVServiceMgr::Initialize(void) -{ - ASSERT(!instance); - - instance = new CTVServiceMgr; - if(!instance) - return false; - - instance->m = new STVServiceMgr; - if(instance->m == NULL) return false; - -#if 0 - struct tv_scan *tvs; - TvServiceScan scan; - TvServiceScanType type; - gint result; - int r; - - tvs = calloc(1, sizeof(*tvs)); - if (!tvs) { - _ERR("calloc failed"); - return NULL; - } - - r = _get_scan_mode(mode, &type); - if (r == -1) { - _ERR("Get scan mode failed"); - free(tvs); - return NULL; - } - - result = tv_service_scan_create(&scan, type); - if (result != TVS_ERROR_OK) { - _ERR("Create Scan failed"); - free(tvs); - return NULL; - } - - tvs->service_scan = scan; - tvs->scan_type = type; - tvs->set_mode = mode; - tvs->state = SCAN_STATE_READY; - - return tvs; -#endif - return NULL; - -} - - -void CTVServiceMgr::Finalize(void) -{ - if(!instance) - return; - ASSERT(instance->m); -#if 0 - struct _signal_info *sinfo; - - if (!tvs) { - _ERR("Invalid argument"); - return -1; - } - - if (tvs->state != SCAN_STATE_READY) - tv_scan_stop(tvs); - - if (tvs->signal_timer) - ecore_timer_del(tvs->signal_timer); - - EINA_LIST_FREE(tvs->signal_queue, sinfo) - free(sinfo); - - tv_service_scan_destroy(tvs->service_scan); - free(tvs); - -#endif - delete instance->m; - delete instance; - instance = NULL; -} - - -CTVServiceMgr *CTVServiceMgr::GetInstance(void) -{ - return instance; -} - - -bool CTVServiceMgr::Start(void) -{ - ASSERT(m); -#if 0 - gint result; - - if (!tvs || !tvs->service_scan) { - _ERR("Invalid argument"); - return -1; - } - - if (tvs->state != SCAN_STATE_READY) { - _ERR("unable state to start scan"); - return -1; - } - - result = tv_service_scan_register_callback(tvs->service_scan, - _signal_received, (gpointer)tvs); - if (result != TVS_ERROR_OK) { - _ERR("register callback failed"); - return -1; - } - - result = tv_service_scan_start(tvs->service_scan); - if (result != TVS_ERROR_OK) { - _ERR("scan start failed"); - return -1; - } - - tvs->state = SCAN_STATE_SEARCHING; - tvs->is_stopped = 0; - tvs->ch_count = 0; - memset(&tvs->res, 0x00, sizeof(tvs->res)); - - return 0; -#endif - return false; -} - - -bool CTVServiceMgr::Pause(void) -{ - ASSERT(m); -#if 0 - gint result; - - if (!tvs || !tvs->service_scan) { - _ERR("Invalid argument"); - return -1; - } - - if (tvs->state != SCAN_STATE_SEARCHING) { - _ERR("unable state to pause scan"); - return -1; - } - - result = tv_service_scan_pause(tvs->service_scan); - if (result != TVS_ERROR_OK) { - _ERR("Pause Scan failed"); - return -1; - } - - tvs->state = SCAN_STATE_PAUSED; - -#endif - return false; -} - - -bool CTVServiceMgr::Resume(void) -{ - ASSERT(m); -#if 0 - gint result; - - if (!tvs || !tvs->service_scan) { - _ERR("Invalid argument"); - return -1; - } - - if (tvs->state != SCAN_STATE_PAUSED) { - _ERR("unable state to resume scan"); - return -1; - } - - result = tv_service_scan_resume(tvs->service_scan); - if (result != TVS_ERROR_OK) { - _ERR("resume Scan failed"); - return -1; - } - - tvs->state = SCAN_STATE_SEARCHING; - -#endif - return false; -} - - -bool CTVServiceMgr::Stop(void) -{ - ASSERT(m); -#if 0 - gint result; - - if (!tvs) { - _ERR("Invalid argument"); - return -1; - } - - if (tvs->state == SCAN_STATE_READY) { - _ERR("unable state to stop scan"); - return -1; - } - - result = tv_service_scan_stop(tvs->service_scan); - if (result != TVS_ERROR_OK) { - _ERR("Create Scan failed"); - return -1; - } - - tvs->state = SCAN_STATE_STOPPING; - tvs->is_stopped = 1; - -#endif - return false; -} - - -bool CTVServiceMgr::GetAllChannel(void) -{ - ASSERT(m); - - return m->total_ch; -} - - -unsigned int CTVServiceMgr::GetServiceType(void) -{ - ASSERT(m); - -#if 0 - return &tvs->res; -#endif - return -1; -} - - -bool CTVServiceMgr::IsStopped(void) -{ - ASSERT(m); - - return m->is_stopped; -} diff --git a/ug/src/WifiDirectMgr.cpp b/ug/src/WifiDirectMgr.cpp deleted file mode 100644 index 90697cb..0000000 --- a/ug/src/WifiDirectMgr.cpp +++ /dev/null @@ -1,476 +0,0 @@ -#include "defs.h" -#include -#include "WifiMgr.h" -#include "WifiDirectMgr.h" - -#define LOCAL_MAX_CLIENT 8 - -#define WIFI_DIRECT_DISCOVERY_LISTEN_AND_SCAN 0 -#define WIFI_DIRECT_SCAN_TIMEOUT 3 - -CWifiDirectMgr *CWifiDirectMgr::instance = NULL; - -struct SWifiDirectMgr { - CWifiMgr *pWifiMgr; -}; - -bool CWifiDirectMgr::Initialize() -{ - ASSERT(!instance); - - instance = new CWifiDirectMgr; - if(!instance) - return false; - - instance->m = new SWifiDirectMgr; - if(instance->m == NULL) return false; - - - if(CWifiMgr::Initialize()) { - _ERR("Fail to init wifi"); - return false; - } - - int ret = -1; - ret = wifi_direct_initialize(); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct_initialize failed, ret:%s.", instance->GetErrorMsg(ret)); - CWifiMgr::Finalize(); - delete instance->m; - delete instance; - instance = NULL; - return false; - } - - return true; -} - - -void CWifiDirectMgr::Finalize() -{ - if(!instance) - return; - ASSERT(instance->m); - - int ret = -1; - ret = wifi_direct_deinitialize(); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct_deinitialize failed, ret:%s.", instance->GetErrorMsg(ret)); - } - - CWifiMgr::Finalize(); - - delete instance->m; - delete instance; - instance = NULL; -} - - -CWifiDirectMgr * CWifiDirectMgr::GetInstance() -{ - return instance; -} - - -char* CWifiDirectMgr::GetDevieName(void) -{ - int ret; - char *name = NULL; - - ret = wifi_direct_get_device_name(&name); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("get device name failed, ret: %s.", GetErrorMsg(ret)); - return NULL; - } - - return name; -} - - -char* CWifiDirectMgr::GetMacAddr(void) -{ - int ret; - char *mac_addr = NULL; - - ret = wifi_direct_get_mac_address(&mac_addr); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("get mac address failed, ret: %s.", GetErrorMsg(ret)); - return NULL; - } - - return mac_addr; -} - - -bool CWifiDirectMgr::GetState(wifi_direct_state_e *status) -{ - int ret; - - if (!status) { - _ERR("The param is NULL."); - return false; - } - - ret = wifi_direct_get_state(status); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("get state failed ret:%s.", GetErrorMsg(ret)); - return false; - } - - return true; -} - - -bool CWifiDirectMgr::Activate(void) -{ - int ret; - - ret = wifi_direct_activate(); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct_activate failed ret:%s.", GetErrorMsg(ret)); - return false; - } - - return true; -} - - -bool CWifiDirectMgr::Deactivate(void) -{ - int ret; - - ret = wifi_direct_deactivate(); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct_deactivate failed ret:%s.", GetErrorMsg(ret)); - return false; - } - - return true; -} - - -bool CWifiDirectMgr::SetMaxClient(void) -{ - int ret; - - ret = wifi_direct_set_max_clients(LOCAL_MAX_CLIENT); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("set max client failed ret:%s.", GetErrorMsg(ret)); - return false; - } - - return true; -} - - -bool CWifiDirectMgr::GetAllDicoveredPeerInfo(wifi_direct_discovered_peer_cb cb, void *data) -{ - int ret; - - if (!cb || !data) { - _ERR("The parameter is NULL."); - return false; - } - - ret = wifi_direct_foreach_discovered_peers(cb, data); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("foreach connected pees failed ret:%s.", GetErrorMsg(ret)); - return false; - } - - return true; -} - - -bool CWifiDirectMgr::GetAllConnectedPeerInfo(wifi_direct_connected_peer_cb cb, void *data) -{ - int ret; - - if (!cb || !data) { - _ERR("The parameter is NULL."); - return false; - } - - ret = wifi_direct_foreach_connected_peers(cb, data); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("foreach connected peers failed ret:%s.", GetErrorMsg(ret)); - return false; - } - - return true; -} - - -bool CWifiDirectMgr::StartDiscovery(void) -{ - int ret; - - ret = wifi_direct_start_discovery(WIFI_DIRECT_DISCOVERY_LISTEN_AND_SCAN, WIFI_DIRECT_SCAN_TIMEOUT); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("start discovery failed ret:%s.", GetErrorMsg(ret)); - return false; - } - - return true; -} - - -bool CWifiDirectMgr::CancelDiscovery(void) -{ - int ret; - - ret = wifi_direct_cancel_discovery(); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct_cancel_discovery failed ret:%s.", GetErrorMsg(ret)); - return false; - } - - return true; -} - - -bool CWifiDirectMgr::Connect(const char *macaddr) -{ - int ret; - - if (!macaddr) { - _ERR("mac_address is NULL"); - return false; - } - - ret = wifi_direct_connect(macaddr); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct_connect failed,%s.", GetErrorMsg(ret)); - return false; - } - - return true; -} - - -bool CWifiDirectMgr::Disconnect(const char *macaddr) -{ - int ret; - - if (!macaddr) { - _ERR("mac_address is NULL"); - return false; - } - - ret = wifi_direct_disconnect(macaddr); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct_disconnect failed,%s.", GetErrorMsg(ret)); - return false; - } - - return true; -} - - -bool CWifiDirectMgr::AcceptConnection(char *macaddr) -{ - int ret; - - if (!macaddr) { - _ERR("mac_address is NULL"); - return false; - } - - ret = wifi_direct_accept_connection(macaddr); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct_accept_connection failed,%s.", GetErrorMsg(ret)); - return false; - } - - return true; -} - - -bool CWifiDirectMgr::GetWPStype(Eina_Bool *is_pbc) -{ - _DBG("Not Yet"); -#if 0 - wifi_direct_wps_type_e type; - - if (!is_pbc) { - _ERR("Parameter is NULL"); - return false; - } - - int ret; - ret = wifi_direct_get_wps_type(&type); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct_get_wps_type failed,%s.", - wifi_direct_mgr_err_dbg(ret)); - return false; - } - - if ((type & WIFI_DIRECT_WPS_TYPE_PBC) == WIFI_DIRECT_WPS_TYPE_PBC) - *is_pbc = EINA_TRUE; - else - *is_pbc = EINA_FALSE; - - return true; -#endif - return false; -} - - -bool CWifiDirectMgr::SetWPStype(wifi_direct_wps_type_e *type) -{ - if (!type) { - _ERR("Parameter is NULL"); - return false; - } - - _DBG("Not Yet"); -#if 0 - int ret; - ret = wifi_direct_set_wps_type(*type); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("wifi_direct_get_wps_type failed,%s.", - wifi_direct_mgr_err_dbg(ret)); - return false; - } -#endif - - return true; -} - - -bool CWifiDirectMgr::SetDeviceStateChangedCb(wifi_direct_device_state_changed_cb cb, void *data) -{ - int ret = -1; - ret = wifi_direct_set_device_state_changed_cb(cb, data); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("set device state changed cb failed ret:%s.", GetErrorMsg(ret)); - return false; - } - return true; -} - - -bool CWifiDirectMgr::UnSetDeviceStateChangedCb(void) -{ - int ret = -1; - ret = wifi_direct_unset_device_state_changed_cb(); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("unset device state changed cb failed ret:%s.", GetErrorMsg(ret)); - return false; - } - return true; -} - - -bool CWifiDirectMgr::SetDiscoveryStateChangedCb(wifi_direct_discovery_state_chagned_cb cb, void *data) -{ - int ret = -1; - ret = wifi_direct_set_discovery_state_changed_cb(cb, data); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("set discovery state changed cb failed ret:%s.", GetErrorMsg(ret)); - wifi_direct_unset_device_state_changed_cb(); - return false; - } - return true; -} - - -bool CWifiDirectMgr::UnSetDiscoveryStateChangedCb(void) -{ - int ret = -1; - ret = wifi_direct_unset_discovery_state_changed_cb(); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("unset discovery state changed cb failed ret:%s.", GetErrorMsg(ret)); - return false; - } - return true; -} - - -bool CWifiDirectMgr::SetConnectionStateChangedCb(wifi_direct_connection_state_changed_cb cb, void *data) -{ - int ret = -1; - ret = wifi_direct_set_connection_state_changed_cb(cb, data); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("set connection state changed cb failed ret:%s.", GetErrorMsg(ret)); - wifi_direct_unset_device_state_changed_cb(); - wifi_direct_unset_discovery_state_changed_cb(); - return false; - } - return true; -} - - -bool CWifiDirectMgr::UnSetConnectionStateChangedCb(void) -{ - int ret = -1; - ret = wifi_direct_unset_connection_state_changed_cb(); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("unset connection state changed cb failed ret:%s.", GetErrorMsg(ret)); - return false; - } - return true; -} - - -bool CWifiDirectMgr::UnSetClientIpAddrAssignedCb(void) -{ - int ret = -1; - ret = wifi_direct_unset_client_ip_address_assigned_cb(); - if (ret != WIFI_DIRECT_ERROR_NONE) { - _ERR("unset device state changed cb failed ret:%s.", GetErrorMsg(ret)); - return false; - } - return true; -} - - -const char *CWifiDirectMgr::GetErrorMsg(int err) -{ - switch (err) { - case WIFI_DIRECT_ERROR_OUT_OF_MEMORY: - return "WIFI_DIRECT_ERROR_OUT_OF_MEMORY"; - break; - case WIFI_DIRECT_ERROR_NOT_PERMITTED: - return "WIFI_DIRECT_ERROR_NOT_PERMITTED"; - break; - case WIFI_DIRECT_ERROR_INVALID_PARAMETER: - return "WIFI_DIRECT_ERROR_INVALID_PARAMETER"; - break; - case WIFI_DIRECT_ERROR_RESOURCE_BUSY: - return "WIFI_DIRECT_ERROR_RESOURCE_BUSY"; - break; - case WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT: - return "WIFI_DIRECT_ERROR_CONNECTION_TIME_OUT"; - break; - case WIFI_DIRECT_ERROR_NOT_INITIALIZED: - return "WIFI_DIRECT_ERROR_NOT_INITIALIZED"; - break; - case WIFI_DIRECT_ERROR_COMMUNICATION_FAILED: - return "WIFI_DIRECT_ERROR_COMMUNICATION_FAILED"; - break; - case WIFI_DIRECT_ERROR_WIFI_USED: - return "WIFI_DIRECT_ERROR_WIFI_USED"; - break; - case WIFI_DIRECT_ERROR_MOBILE_AP_USED: - return "WIFI_DIRECT_ERROR_MOBILE_AP_USED"; - break; - case WIFI_DIRECT_ERROR_CONNECTION_FAILED: - return "WIFI_DIRECT_ERROR_CONNECTION_FAILED"; - break; - case WIFI_DIRECT_ERROR_AUTH_FAILED: - return "WIFI_DIRECT_ERROR_AUTH_FAILED"; - break; - case WIFI_DIRECT_ERROR_OPERATION_FAILED: - return "WIFI_DIRECT_ERROR_OPERATION_FAILED"; - break; - case WIFI_DIRECT_ERROR_TOO_MANY_CLIENT: - return "WIFI_DIRECT_ERROR_TOO_MANY_CLIENT"; - break; - default: - break; - } - - return "UNKNOWN"; -} - diff --git a/ug/src/WifiMgr.cpp b/ug/src/WifiMgr.cpp deleted file mode 100644 index f12b1a0..0000000 --- a/ug/src/WifiMgr.cpp +++ /dev/null @@ -1,533 +0,0 @@ -#include -#include -#include -#include "WifiMgr.h" - - -#define IP_STRING_MAX_SIZE 20 -#define MAX_NAME_SIZE 256 -#define CONTENT_TXT_SIZE 500 -#define ZERO_IP "0.0.0.0" - - -bool CWifiAp::m_CheckErr(const char *func, int ret) -{ - if (ret != WIFI_ERROR_NONE) { - _ERR("Fail to wifi_get_connected_ap %s", CWifiMgr::ErrorMsg((wifi_error_e)ret)); - } - - return ret == WIFI_ERROR_NONE ? true : false; -} - - -void CWifiAp::t_SetHandle(wifi_ap_h handle) -{ - m_handle = handle; -} - - -CWifiAp::CWifiAp(wifi_ap_h handle) -{ - m_handle = handle; - - int ret = wifi_ap_clone(&m_handle, handle); - m_CheckErr(__FUNCTION__, ret); -} - - -CWifiAp::~CWifiAp() -{ - wifi_ap_destroy(m_handle); - m_handle = NULL; -} - - -#define WIFI_CHECK_RET(EXP) return m_CheckErr(__FUNCTION__, EXP); -#define WIFI_CHECK(EXP) m_CheckErr(__FUNCTION__, EXP); - - -wifi_ap_h CWifiAp::Handle(void) -{ - return m_handle; -} - - -bool CWifiAp::AllocConnectedAp(void) -{ - ASSERT(m_handle == NULL); - - WIFI_CHECK_RET(wifi_get_connected_ap(&m_handle)); -} - - -void CWifiAp::Destroy(void) -{ - if (m_handle == NULL) - return; - - WIFI_CHECK(wifi_ap_destroy(m_handle)); - m_handle = NULL; -} - - -bool CWifiAp::GetEssid(char *essid, int size) -{ - ASSERT(m_handle); - - char *str = NULL; - int ret = wifi_ap_get_essid(m_handle, &str); - if (ret == WIFI_ERROR_NONE) { - strncpy(essid, str, size); - _DBG("str : %s , ESSID : %s", str, essid); - free(str); - } - else { - _ERR("Fail to get ESSID"); - } - - return ret == WIFI_ERROR_NONE ? true : false; -} - - -bool CWifiAp::GetConnectionState(wifi_connection_state_e *state) -{ - ASSERT(m_handle); - - WIFI_CHECK_RET(wifi_ap_get_connection_state(m_handle, state)); -} - - -bool CWifiAp::GetSecurityType(wifi_security_type_e *type) -{ - ASSERT(m_handle); - - WIFI_CHECK_RET(wifi_ap_get_security_type(m_handle, type)); -} - - -bool CWifiAp::SetPassPhrase(const char *passcode) -{ - ASSERT(m_handle); - ASSERT(passcode); - - WIFI_CHECK_RET(wifi_ap_set_passphrase(m_handle, passcode)); -} - - -bool CWifiAp::Connect(void(*wifi_connected_cb)(wifi_error_e err, void *data), void *data) -{ - ASSERT(m_handle); - ASSERT(wifi_connected_cb); - - WIFI_CHECK_RET(wifi_connect(m_handle, wifi_connected_cb, data)); -} - - -bool CWifiAp::SetIpType(wifi_ip_config_type_e type) -{ - ASSERT(m_handle); - - WIFI_CHECK_RET(wifi_ap_set_ip_config_type(m_handle, WIFI_ADDRESS_FAMILY_IPV4, type)); -} - - -bool CWifiAp::GetIp(char *ip, int size) -{ - ASSERT(m_handle); - - char *str_value = NULL; - int ret = wifi_ap_get_ip_address(m_handle, WIFI_ADDRESS_FAMILY_IPV4, &str_value); - if (ret == WIFI_ERROR_NONE) { - strncpy(ip, str_value, IP_STRING_MAX_SIZE < size); - free(str_value); - } - else { - strncpy(ip, ZERO_IP, IP_STRING_MAX_SIZE); - _ERR("Fail to get Gateway"); - } - return ret == WIFI_ERROR_NONE ? true : false; -} - - -bool CWifiAp::GetSubnetMask(char *submask) -{ - ASSERT(m_handle); - - char *str_value = NULL; - int ret = wifi_ap_get_subnet_mask(m_handle, WIFI_ADDRESS_FAMILY_IPV4, &str_value); - if (ret == WIFI_ERROR_NONE) { - strncpy(submask, str_value, IP_STRING_MAX_SIZE); - free(str_value); - } - else { - strncpy(submask, ZERO_IP, IP_STRING_MAX_SIZE); - _ERR("Fail to get Gateway"); - } - return ret == WIFI_ERROR_NONE ? true : false; -} - - -bool CWifiAp::GetGateway(char *gateway) -{ - ASSERT(m_handle); - - char *str_value; - - str_value = NULL; - if (wifi_ap_get_gateway_address(m_handle, WIFI_ADDRESS_FAMILY_IPV4, &str_value) == WIFI_ERROR_NONE) { - strncpy(gateway, str_value, IP_STRING_MAX_SIZE); - free(str_value); - return true; - } - else { - strncpy(gateway, ZERO_IP, IP_STRING_MAX_SIZE); - _ERR("Fail to get Gateway"); - return false; - } -} - - -bool CWifiAp::GetDNS(char *dns) -{ - ASSERT(m_handle); - - char *str_value; - - str_value = NULL; - if (wifi_ap_get_dns_address(m_handle, 1, WIFI_ADDRESS_FAMILY_IPV4, &str_value) == WIFI_ERROR_NONE) { - strncpy(dns, str_value, IP_STRING_MAX_SIZE); - free(str_value); - return true; - } - else { - strncpy(dns, ZERO_IP, IP_STRING_MAX_SIZE); - _ERR("Fail to get DNS1"); - return false; - } -} - - -bool CWifiAp::SetIp(char *ip) -{ - ASSERT(m_handle); - - WIFI_CHECK_RET(wifi_ap_set_ip_address(m_handle, WIFI_ADDRESS_FAMILY_IPV4, ip)); -} - - -bool CWifiAp::SetSubnetMask(char *submask) -{ - ASSERT(m_handle); - - WIFI_CHECK_RET(wifi_ap_set_subnet_mask(m_handle, WIFI_ADDRESS_FAMILY_IPV4, submask)); -} - - -bool CWifiAp::SetGateway(char *gateway) -{ - ASSERT(m_handle); - - WIFI_CHECK_RET(wifi_ap_set_gateway_address(m_handle, WIFI_ADDRESS_FAMILY_IPV4, gateway)); -} - - -bool CWifiAp::SetDNS(char *dns) -{ - ASSERT(m_handle); - - WIFI_CHECK_RET(wifi_ap_set_dns_address(m_handle, 1, WIFI_ADDRESS_FAMILY_IPV4, dns)); -} - - -bool CWifiAp::CloneAP(wifi_ap_h *cloned_ap, wifi_ap_h origin) -{ - int ret; - - if (!cloned_ap || !origin) { - _ERR("the param is invalid."); - return false; - } - - ret = wifi_ap_clone(cloned_ap, origin); - if (ret != WIFI_ERROR_NONE) { - _ERR("Fail to wifi_ap_clone %s", CWifiMgr::ErrorMsg((wifi_error_e)ret)); - return false; - } - - return true; -} - - -bool CWifiAp::ForgetAP(void) -{ - int ret; - wifi_ap_h handle; - char *name; - - ret = wifi_get_connected_ap(&handle); - if (ret == WIFI_ERROR_NO_CONNECTION) { - return true; - } - else if (ret != WIFI_ERROR_NONE) { - _ERR("Fail to get connected AP [%s]", CWifiMgr::ErrorMsg((wifi_error_e)ret)); - return false; - } - - ret = wifi_ap_get_essid(handle, &name); - if (ret != WIFI_ERROR_NONE) { - _ERR("Fail to wifi_ap_get_essid AP [%s]", CWifiMgr::ErrorMsg((wifi_error_e)ret)); - wifi_ap_destroy(handle); - return false; - } - - ret = wifi_forget_ap(handle); - if (ret != WIFI_ERROR_NONE) { - _ERR("Fail to forget [%s],[%s].", name, CWifiMgr::ErrorMsg((wifi_error_e)ret)); - } - - wifi_ap_destroy(handle); - free(name); - - return ret == WIFI_ERROR_NONE ? true : false; -} - - -bool CWifiAp::SetProxyType(EProxyMethod pm) -{ - ASSERT(m_handle); - - wifi_proxy_type_e type; - - switch (pm) { - case PROXY_METHOD_NONE: - type = WIFI_PROXY_TYPE_DIRECT; - break; - - case PROXY_METHOD_MANUAL: - type = WIFI_PROXY_TYPE_MANUAL; - break; - - case PROXY_METHOD_AUTO: - type = WIFI_PROXY_TYPE_AUTO; - break; - - default: - return false; - } - - int ret = wifi_ap_set_proxy_type(m_handle, type); - return ret = WIFI_ERROR_NONE ? true : false; -} - - -bool CWifiAp::GetProxyType(EProxyMethod *pm) -{ - ASSERT(m_handle); - - wifi_proxy_type_e type; - - int ret = wifi_ap_get_proxy_type(m_handle, &type); - if (ret != WIFI_ERROR_NONE) { - _ERR("wifi_ap_get_proxy_type() failed."); - return false; - } - - switch (type) { - case WIFI_PROXY_TYPE_DIRECT: - *pm = PROXY_METHOD_NONE; - break; - - case WIFI_PROXY_TYPE_MANUAL: - *pm = PROXY_METHOD_MANUAL; - break; - - case WIFI_PROXY_TYPE_AUTO: - *pm = PROXY_METHOD_AUTO; - break; - - default: - return false; - } - - return ret; -} - - -bool CWifiAp::SetProxyAddr(const char *addr) -{ - ASSERT(m_handle); - - WIFI_CHECK_RET(wifi_ap_set_proxy_address(m_handle, WIFI_ADDRESS_FAMILY_IPV4, addr)); -} - - -bool CWifiAp::GetProxyAddr(char **addr) -{ - ASSERT(m_handle); - ASSERT(addr); - - WIFI_CHECK_RET(wifi_ap_get_proxy_address(m_handle, WIFI_ADDRESS_FAMILY_IPV4, addr)); -} - - -CWifiMgr *CWifiMgr::instance = NULL; - - -struct SWifiMgr { - int a; -}; - - -bool CWifiMgr::Initialize(void) -{ - ASSERT(!instance); - - _CREATE_BEGIN{ - _CHECK(instance = new CWifiMgr); - _CHECK(instance->m = new SWifiMgr); - _CHECK(wifi_initialize() == WIFI_ERROR_NONE); - - _CHECK_FAIL{ wifi_deinitialize(); } - _CHECK_FAIL{ delete instance->m; } - _CHECK_FAIL{ delete instance; instance = NULL; } - } _CREATE_END_AND_CATCH { return false; } - - return true; -} - - -void CWifiMgr::Finalize(void) -{ - ASSERT(instance); - ASSERT(instance->m); - - wifi_deinitialize(); - - delete instance->m; - delete instance; - instance = NULL; -} - - -CWifiMgr *CWifiMgr::GetInstance(void) -{ - return instance; -} - - -bool CWifiMgr::Activate(void (*cbActivated)(wifi_error_e err, void *data), void *data) -{ - ASSERT(cbActivated); - - int ret = wifi_activate(cbActivated, data); - if (ret != WIFI_ERROR_NONE) { - _ERR("Fail to wifi_activate %s", CWifiMgr::ErrorMsg((wifi_error_e) ret)); - return false; - } - - return true; -} - - -bool CWifiMgr::IsActivated(bool *activated) -{ - int ret; - - ret = wifi_is_activated(activated); - if (ret != WIFI_ERROR_NONE) { - _ERR("Fail to wifi_is_activated %s",CWifiMgr::ErrorMsg((wifi_error_e) ret)); - return false; - } - - return true; -} - - -bool CWifiMgr::Scan(void(*cbFinish)(wifi_error_e err, void* data), void *data) -{ - ASSERT(cbFinish); - - int ret = wifi_scan(cbFinish, data); - if (ret != WIFI_ERROR_NONE) { - _ERR("Scan request failed [%s]", CWifiMgr::ErrorMsg((wifi_error_e) ret)); - return false; - } - - return true; -} - - -struct SUserData -{ - bool(*cb)(CWifiAp *ap, void *data); - void *data; - SUserData(bool(*c)(CWifiAp *ap, void *data), void *d) { - cb = c; - data = data; - } -}; - - -static bool g_CbFound(wifi_ap_h ap, void *data) -{ - SUserData *ud = (SUserData*)data; - CWifiAp ins(ap); - ud->cb(&ins, ud->data); - delete ud; - - return false; -} - - -bool CWifiMgr::FoundAps(bool(*cbFound)(CWifiAp *ap, void *data), void *data) -{ - ASSERT(cbFound); - - SUserData *ud = new SUserData(cbFound, data); - int ret = wifi_foreach_found_aps(g_CbFound, ud); - if (ret != WIFI_ERROR_NONE) { - _ERR("Fail to get AP list %s.", CWifiMgr::ErrorMsg((wifi_error_e) ret)); - return false; - } - - return true; -} - - -const char * CWifiMgr::ErrorMsg(wifi_error_e err_type) -{ - switch (err_type) { - case WIFI_ERROR_NONE: - return "NONE"; - case WIFI_ERROR_INVALID_PARAMETER: - return "INVALID_PARAMETER"; - case WIFI_ERROR_OUT_OF_MEMORY: - return "OUT_OF_MEMORY"; - case WIFI_ERROR_INVALID_OPERATION: - return "INVALID_OPERATION"; - case WIFI_ERROR_ADDRESS_FAMILY_NOT_SUPPORTED: - return "ADDRESS_FAMILY_NOT_SUPPORTED"; - case WIFI_ERROR_OPERATION_FAILED: - return "OPERATION_FAILED"; - case WIFI_ERROR_NO_CONNECTION: - return "NO_CONNECTION"; - case WIFI_ERROR_NOW_IN_PROGRESS: - return "NOW_IN_PROGRESS"; - case WIFI_ERROR_ALREADY_EXISTS: - return "ALREADY_EXISTS"; - case WIFI_ERROR_OPERATION_ABORTED: - return "OPERATION_ABORTED"; - case WIFI_ERROR_DHCP_FAILED: - return "DHCP_FAILED"; - case WIFI_ERROR_INVALID_KEY: - return "INVALID_KEY"; - case WIFI_ERROR_NO_REPLY: - return "NO_REPLY"; - case WIFI_ERROR_SECURITY_RESTRICTED: - return "SECURITY_RESTRICTED"; - default: - break; - } - - return "UNKNOWN"; -} diff --git a/ug/system/clock/CMakeLists.txt b/ug/system/clock/CMakeLists.txt index 2347d14..155d397 100644 --- a/ug/system/clock/CMakeLists.txt +++ b/ug/system/clock/CMakeLists.txt @@ -21,6 +21,7 @@ SET(UG_CLOCK_EDJ_THEME "ug_clock_theme.edj") INCLUDE(FindPkgConfig) pkg_check_modules(UG_CLOCK_PKGS REQUIRED + dlog eina edje evas @@ -29,6 +30,7 @@ pkg_check_modules(UG_CLOCK_PKGS REQUIRED ui-gadget-1 sysman ) + #ecore-x SET(PKGS_LDFLAGS "${PKGS_LDFLAGS} ${UG_CLOCK_PKGS_LDFLAGS}") @@ -39,16 +41,14 @@ ENDFOREACH(FLAG) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=hidden -Wall") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}") SET(SRCS - src/ug_clock.cpp - src/util.cpp - src/ClockMainView.cpp - src/ClockSublistView.cpp - src/ClockSpinControlView.cpp - src/ClockTimeSpinControlView.cpp + src/ug_clock.c + src/ug_clock_spin_control.c + src/ug_clock_sublist.c + src/ug_clock_utils.c + src/ug_clock_time_spin_control.c ) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../include) ADD_DEFINITIONS("-DUG_CLOCK_EDJFILE=\"${UG_CLOCK_EDJE_DIR}/${UG_CLOCK_EDJ_FILE}\"") ADD_DEFINITIONS("-DUG_CLOCK_EDJTHEME=\"${UG_CLOCK_EDJE_DIR}/${UG_CLOCK_EDJ_THEME}\"") diff --git a/ug/system/clock/edje/images/ico_dropdown_menu_check.png b/ug/system/clock/edje/images/ico_dropdown_menu_check.png index d32061e3f26a756ae7721c99edb3533edd3e15ba..9e7d114640bde4abbaac4165a1829ca15854f039 100644 GIT binary patch literal 17850 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 delta 228 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 delta 129 zcmZqfW1Pe|L9&vCfq}tm#<|%*iY49A*O7s-ZGqv7Y4Je5r>Bc!2*>re3> diff --git a/ug/system/clock/edje/images/second_depth_bg.png b/ug/system/clock/edje/images/second_depth_bg.png index 602e2724c46424c7ad67cad0fb6f46ad2a5a6b3b..5b3c6243cce9d58310769c773fdbee3cb6b9b926 100644 GIT binary patch literal 22286 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 literal 3115 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 Li)@OlS4aLAn$DhT delta 248 zcmV$!l)0XTysN1)^iatI4@gvk{YIRFO`S+X29Gc{kEN0k0EG#i@t z-~HZupL(mmMx{}?RFsU#n2h;V#!_Q7QC7?p=2v6^z><<_&Wv!B*>SHumG77)J^&FB z06wix8O>0ZuXJd05paY~&gAjrlp{41iYf<5<`j}KE*n`{<2+J_m84tTc&5%t#%I_s y9h<3i&NR$SmjHl}!P|5Dga8Eeo^$<=|I`g4%3Mr&+x6oB0000 + +#ifndef _ERR +#define _ERR(fmt, args...) LOGE("[%s:%d] "fmt"\n", __func__, __LINE__, ##args) +#endif + +#ifndef _DBG +#define _DBG(fmt, args...) LOGD("[%s:%d] "fmt"\n", __func__, __LINE__, ##args) +#endif + +#ifndef _INFO +#define _INFO(fmt, args...) LOGI("[%s:%d] "fmt"\n", __func__, __LINE__, ##args) +#endif + +#endif /* __DBG_H__ */ diff --git a/ug/system/clock/include/ug_clock.h b/ug/system/clock/include/ug_clock.h index 11d8187..4c4e6b4 100644 --- a/ug/system/clock/include/ug_clock.h +++ b/ug/system/clock/include/ug_clock.h @@ -19,14 +19,6 @@ #include -#if defined (__cplusplus) -extern "C" { -#endif - void view_ug_clock_refresh(Evas_Object *base, unsigned int *date, int *time); -#if defined (__cplusplus) -}; -#endif - #endif /* __UG_CLOCK_H__ */ diff --git a/ug/system/clock/include/defs.h b/ug/system/clock/include/ug_clock_define.h similarity index 90% rename from ug/system/clock/include/defs.h rename to ug/system/clock/include/ug_clock_define.h index a91193c..6b0527f 100644 --- a/ug/system/clock/include/defs.h +++ b/ug/system/clock/include/ug_clock_define.h @@ -22,12 +22,6 @@ #define AM "AM" #define PM "PM" -/* view */ -#define CLOCK_MAIN_VIEW "CLOCK_MAIN_VIEW" -#define CLOCK_SUBLIST_VIEW "CLOCK_SUBLIST_VIEW" -#define CLOCK_SPINCONTROL_VIEW "CLOCK_SPINCONTROL_VIEW" -#define CLOCK_TIME_SPINCONTROL_VIEW "CLOCK_TIME_SPINCONTROL_VIEW" - /* definitions for ug_clock.edc */ /* UG_CLOCK_GRP */ #define UG_CLOCK_GRP "main" @@ -87,4 +81,21 @@ #define SIG_SRC_FOC_HIDE_ICON "focus_hide_icon" #define SIG_NAME_SUBLIST "sublist" +/* Key defines */ +#define KEY_UP "Up" +#define KEY_DOWN "Down" +#define KEY_LEFT "Left" +#define KEY_RIGHT "Right" + +#define KEY_0 "0" +#define KEY_1 "1" +#define KEY_2 "2" +#define KEY_3 "3" +#define KEY_4 "4" +#define KEY_5 "5" +#define KEY_6 "6" +#define KEY_7 "7" +#define KEY_8 "8" +#define KEY_9 "9" + #endif /* __UG_CLOCK_DEFINE_H__ */ diff --git a/ug/system/clock/include/ug_clock_spin_control.h b/ug/system/clock/include/ug_clock_spin_control.h new file mode 100644 index 0000000..e8b7f9c --- /dev/null +++ b/ug/system/clock/include/ug_clock_spin_control.h @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#ifndef __UG_CLOCK_SPIN_CONTROL_H__ +#define __UG_CLOCK_SPIN_CONTROL_H__ + +#include + +void view_spin_control_create(Evas_Object *win, + Evas_Object *ug_base); + +#endif /* __UG_CLOCK_SPIN_CONTROL_H__ */ diff --git a/ug/system/clock/include/ug_clock_sublist.h b/ug/system/clock/include/ug_clock_sublist.h new file mode 100644 index 0000000..a71dea1 --- /dev/null +++ b/ug/system/clock/include/ug_clock_sublist.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __UG_CLOCK_SUBLIST_H__ +#define __UG_CLOCK_SUBLIST_H__ + +#include + +void view_sublist_create(Evas_Object *win, Evas_Object *ug_base); + +#endif /* __UG_CLOCK_SUBLIST_H__ */ diff --git a/ug/system/clock/include/ug_clock_time_spin_control.h b/ug/system/clock/include/ug_clock_time_spin_control.h new file mode 100644 index 0000000..d9f920f --- /dev/null +++ b/ug/system/clock/include/ug_clock_time_spin_control.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __UG_CLOCK_TIME_SPIN_CONTROL_H__ +#define __UG_CLOCK_TIME_SPIN_CONTROL_H__ + +#include + +void view_time_spin_ctrl_create(Evas_Object *win, + Evas_Object *ug_base); + +#endif /* __UG_CLOCK_TIME_SPIN_CONTROL_H__ */ diff --git a/ug/system/clock/include/util.h b/ug/system/clock/include/ug_clock_utils.h similarity index 100% rename from ug/system/clock/include/util.h rename to ug/system/clock/include/ug_clock_utils.h diff --git a/ug/system/clock/src/ClockMainView.cpp b/ug/system/clock/src/ClockMainView.cpp deleted file mode 100644 index 91c36d8..0000000 --- a/ug/system/clock/src/ClockMainView.cpp +++ /dev/null @@ -1,459 +0,0 @@ -#include -#include -#include "defs.h" -#include "util.h" - -#include "ClockMainView.h" - -#define CLOCK_SUBLIST_NULL_BTNS 2 -#define UG_CLOCK_DATA_ID "ug_clock_data" - -struct SClockMainView { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - Evas_Object *close_btn; - Evas_Object *date_btn; - Evas_Object *switch_btn; - Evas_Object *time_btn; - Evas_Object *sublist_box; - Evas_Object *cur_btn; - - unsigned int date[DATE_MAX]; - int mode; - int time[TIME_MAX]; - - CViewMgr *pViewMgr; -}; - - -bool CClockMainView::m_AddCloseBtn(void) -{ - m->close_btn = utils_add_button(m->base); - if (!m->close_btn) { - _ERR("elm add button failed."); - return false; - } - - elm_object_style_set(m->close_btn, BTN_STYLE_CLOSE_BTN); - elm_object_text_set(m->close_btn, BTN_TEXT_CLOSE); - elm_object_part_content_set(m->base, SWALLOW_CLOSE_BTN, m->close_btn); - - //evas_object_smart_callback_add(m->close_btn, "clicked", _close_btn_clicked_cb, data); - //evas_object_event_callback_add(m->close_btn, EVAS_CALLBACK_KEY_DOWN, _key_down_on_close_btn_cb, data); - Connect(m->close_btn, 1, TYPE_CLICKED | TYPE_KEY_DOWN); -#if 0 - evas_object_event_callback_add(m->close_btn, EVAS_CALLBACK_MOUSE_IN, _close_btn_mouse_in_cb, data); - evas_object_event_callback_add(m->close_btn, EVAS_CALLBACK_MOUSE_OUT, _close_btn_mouse_out_cb, data); -#endif - return true; -} - - -bool CClockMainView::m_AddClockSublist(void) -{ - m->sublist_box = utils_add_box(m->base); - if (!m->sublist_box) { - _ERR("add clock sublist box failed."); - return false; - } - - m->date_btn = utils_add_button(m->base); - if (!m->date_btn) { - _ERR("add button failed."); - evas_object_del(m->sublist_box); - return NULL; - } - - elm_object_style_set(m->date_btn, BTN_STYLE_LIST_BTN); - elm_object_text_set(m->date_btn, BTN_TEXT_DATE); - - elm_box_pack_end(m->sublist_box, m->date_btn); - elm_object_focus_set(m->date_btn, EINA_TRUE); - utils_get_date_value(m->date); - - char buf[BUF_SIZE]; - snprintf(buf, sizeof(buf), "%02d / %02d / %04d", m->date[DATE_MONTH], m->date[DATE_DAY], m->date[DATE_YEAR]); - elm_object_part_text_set(m->date_btn, BTN_PART_VALUE, (const char *)buf); - - //evas_object_event_callback_add(m->date_btn, EVAS_CALLBACK_KEY_DOWN, _key_down_on_btns_cb, data); - //evas_object_smart_callback_add(m->date_btn, "clicked", _date_btn_clicked_cb, data); - Connect(m->date_btn, 2, TYPE_CLICKED | TYPE_KEY_DOWN); -#if 0 - evas_object_event_callback_add(m->date_btn, EVAS_CALLBACK_MOUSE_IN, _date_btn_mouse_in_cb, NULL); - evas_object_event_callback_add(m->date_btn, EVAS_CALLBACK_MOUSE_OUT, _date_btn_mouse_out_cb, NULL); -#endif - - m->switch_btn = utils_add_button(m->base); - if (!m->switch_btn) { - _ERR("add button failed."); - evas_object_del(m->date_btn); - evas_object_del(m->sublist_box); - return NULL; - } - - elm_object_style_set(m->switch_btn, BTN_STYLE_LIST_BTN); - elm_object_text_set(m->switch_btn, BTN_TEXT_24HOUR_TIME); - - elm_box_pack_end(m->sublist_box, m->switch_btn); - - /* Set ON/OFF for switch button. */ - if(utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &m->mode)) { - _ERR("vconf get value failed."); - return false; - } - - if (!m->mode) - elm_object_part_text_set(m->switch_btn, BTN_PART_VALUE, OFF); - else - elm_object_part_text_set(m->switch_btn, BTN_PART_VALUE, ON); - - //evas_object_event_callback_add(m->switch_btn, EVAS_CALLBACK_KEY_DOWN, _key_down_on_btns_cb, data); - //evas_object_smart_callback_add(m->switch_btn, "clicked", _switch_btn_clicked_cb, data); - Connect(m->switch_btn, 3, TYPE_CLICKED | TYPE_KEY_DOWN); - -#if 0 - evas_object_event_callback_add(switch_btn, EVAS_CALLBACK_MOUSE_IN, _switch_btn_mouse_in_cb, NULL); - evas_object_event_callback_add(switch_btn, EVAS_CALLBACK_MOUSE_OUT, _switch_btn_mouse_out_cb, NULL); -#endif - - m->time_btn = utils_add_button(m->base); - if (!m->time_btn) { - _ERR("add time button failed."); - evas_object_del(m->switch_btn); - evas_object_del(m->date_btn); - evas_object_del(m->sublist_box); - return NULL; - } - - elm_object_style_set(m->time_btn, BTN_STYLE_LIST_BTN); - elm_object_text_set(m->time_btn, BTN_TEXT_TIME); - - elm_box_pack_end(m->sublist_box, m->time_btn); - - /* Set hour : minute : AM/PM for time button. */ - utils_get_time_value(m->time); - - m_RefreshTimeBtnText(m->time_btn, m->time); - - //evas_object_event_callback_add(m->time_btn, EVAS_CALLBACK_KEY_DOWN, _key_down_on_btns_cb, data); - //evas_object_smart_callback_add(m->time_btn, "clicked", _time_btn_clicked_cb, data); - Connect(m->time_btn, 4, TYPE_CLICKED | TYPE_KEY_DOWN); -#if 0 - evas_object_event_callback_add(m->time_btn, EVAS_CALLBACK_MOUSE_IN, _time_btn_mouse_in_cb, NULL); - evas_object_event_callback_add(m->time_btn, EVAS_CALLBACK_MOUSE_OUT, _time_btn_mouse_out_cb, NULL); -#endif - - Evas_Object *null_btn; - Evas_Object *last_btn; - - for (int idx = 0; idx < CLOCK_SUBLIST_NULL_BTNS; idx++) { - null_btn = utils_add_button(m->base); - if (!null_btn) { - _ERR("add null button failed."); - evas_object_del(m->time_btn); - evas_object_del(m->switch_btn); - evas_object_del(m->date_btn); - evas_object_del(m->sublist_box); - } - - elm_object_style_set(null_btn, BTN_STYLE_LIST_BTN); - elm_box_pack_end(m->sublist_box, null_btn); - } - - last_btn = utils_add_button(m->base); - if (!last_btn) { - _ERR("add last button failed."); - evas_object_del(m->time_btn); - evas_object_del(m->switch_btn); - evas_object_del(m->date_btn); - evas_object_del(m->sublist_box); - } - - elm_object_style_set(last_btn, BTN_STYE_LAST_BTN); - elm_object_part_content_set(m->base, SWALLOW_CLOCK_LAST, last_btn); - - Evas_Object *dbtn, *sbtn, *tbtn, *cbtn; - - dbtn = m->date_btn; - sbtn = m->switch_btn; - tbtn = m->time_btn; - cbtn = m->close_btn; - - elm_object_focus_next_object_set(dbtn, dbtn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(dbtn, dbtn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(dbtn, sbtn, ELM_FOCUS_DOWN); - /* Maybe it's not necessary to set ELM_FOCUS_RIGHT for date_btn */ - elm_object_focus_next_object_set(dbtn, cbtn, ELM_FOCUS_RIGHT); - - elm_object_focus_next_object_set(sbtn, tbtn, ELM_FOCUS_DOWN); - elm_object_focus_next_object_set(sbtn, dbtn, ELM_FOCUS_UP); - /* Maybe it's not necessary to set ELM_FOCUS_RIGHT for switch_btn */ - elm_object_focus_next_object_set(sbtn, cbtn, ELM_FOCUS_RIGHT); - - elm_object_focus_next_object_set(tbtn, tbtn, ELM_FOCUS_DOWN); - elm_object_focus_next_object_set(tbtn, sbtn, ELM_FOCUS_UP); - /* Maybe it's not necessary to set ELM_FOCUS_RIGHT for time_btn */ - elm_object_focus_next_object_set(tbtn, cbtn, ELM_FOCUS_RIGHT); - - elm_object_focus_next_object_set(cbtn, cbtn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(cbtn, cbtn, ELM_FOCUS_DOWN); - elm_object_focus_next_object_set(cbtn, dbtn, ELM_FOCUS_LEFT); - elm_object_part_content_set(m->base, SWALLOW_CLOCK_LIST, m->sublist_box); - - return true; -} - - -void CClockMainView::m_RefreshTimeBtnText(Evas_Object *btn, int *time) -{ - int mode; - char buf[BUF_SIZE]; - int ret; - - if (!btn || !time) - return; - - mode = 0; - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return; - } - - if (mode) { - snprintf(buf, sizeof(buf), "%02d : %02d", time[TIME_HOUR], time[TIME_MINUTE]); - } else { - if (time[TIME_HOUR] >= 12) { - time[TIME_HOUR] -= 12; - time[TIME_AMPM] = 1; - } else { - time[TIME_AMPM] = 0; - } - - snprintf(buf, sizeof(buf), "%02d : %02d : %s", time[TIME_HOUR], time[TIME_MINUTE], time[TIME_AMPM] == 1 ? PM : AM); - } - - elm_object_part_text_set(btn, BTN_PART_VALUE, (const char *)buf); -} - - -void CClockMainView::m_RefreshBtnText(void) -{ - int ret, mode; - char buf[BUF_SIZE]; - - if (m->date_btn == m->cur_btn) { - snprintf(buf, sizeof(buf), "%02d / %02d / %04d", m->date[DATE_MONTH], m->date[DATE_DAY], m->date[DATE_YEAR]); - elm_object_part_text_set(m->cur_btn, BTN_PART_VALUE, (const char *)buf); - } else if (m->switch_btn == m->cur_btn) { - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &m->mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return; - } - - if (m->mode) - elm_object_part_text_set(m->cur_btn, BTN_PART_VALUE, ON); - else - elm_object_part_text_set(m->cur_btn, BTN_PART_VALUE, OFF); - - utils_get_time_value(m->time); - - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return; - } - - if (mode) - snprintf(buf, sizeof(buf), "%02d : %02d", m->time[TIME_HOUR], m->time[TIME_MINUTE]); - else - snprintf(buf, sizeof(buf), "%02d : %02d : %s", m->time[TIME_HOUR], m->time[TIME_MINUTE], m->time[TIME_AMPM] == 1 ? PM : AM); - - elm_object_part_text_set(m->time_btn, BTN_PART_VALUE, (const char *)buf); - } else { - m_RefreshTimeBtnText(m->cur_btn, m->time); - } -} - - -void CClockMainView::t_OnShow(void) -{ - _DBG(); - - evas_object_show(m->base); - - CBaseView::t_OnShow(); -} - - -void CClockMainView::t_OnUpdate(void *data) -{ - _DBG(); - unsigned int *date = NULL; - int *time = NULL; - int idx = -1; - - if(!data) { - _ERR("Invlid Parameter"); - return ; - } - - date = (unsigned int *) data; - - elm_object_focus_set(m->cur_btn, EINA_TRUE); - - if (date) - for (idx = DATE_MONTH; idx < DATE_MAX; idx++) - m->date[idx] = date[idx]; - - if (time) - for (idx = TIME_HOUR; idx < TIME_MAX; idx++) - m->time[idx] = time[idx]; - - m_RefreshBtnText(); - - evas_object_show(m->base); -} - - -void CClockMainView::t_OnHide(void) -{ - _DBG(); - - evas_object_hide(m->base); - - CBaseView::t_OnHide(); -} - - -bool CClockMainView::Create(void *data) -{ - _DBG(); - ASSERT(!m); - - ui_gadget_h ug; - if (!data) { - _ERR("Invalid argument"); - return false; - } - ug = (ui_gadget_h)data; - - _CREATE_BEGIN{ - _CHECK(m = new SClockMainView) - _CHECK(m->win = CViewMgr::GetInstance()->Window()) - _CHECK(m->base = utils_add_layout(m->win)) - _COMMAND{ - elm_layout_file_set(m->base, UG_CLOCK_EDJFILE, UG_CLOCK_GRP); - elm_object_part_text_set(m->base, TEXT_INTRO, STRINGS_INTRO); - - } - _CHECK(m_AddCloseBtn()) - _CHECK(m_AddClockSublist()) - - _WHEN_SUCCESS { -#if 0 - evas_object_data_set(m->base, UG_CLOCK_DATA_ID, data); -#endif - m->ug = ug; - m->pViewMgr = CViewMgr::GetInstance(); - } - - _CHECK_FAIL{evas_object_del(m->sublist_box);} - _CHECK_FAIL{evas_object_del(m->close_btn);} - _CHECK_FAIL{evas_object_del(m->base);} - _CHECK_FAIL{/* m->win = CViewMgr::GetInstance()->Window() */} - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - return true; -} - - -void CClockMainView::Destroy(void) -{ - ASSERT(m); - - if(m->sublist_box) - evas_object_del(m->sublist_box); - - if(m->close_btn) - evas_object_del(m->close_btn); - - if(m->base) - evas_object_del(m->base); - - delete m; - m = NULL; -} - - -Evas_Object* CClockMainView::Base(void) -{ - ASSERT(m); - - return m->base; -} - -void CClockMainView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) -{ - if (!ev->keyname) { - _ERR("ev->keyname NULL!"); - return; - } - - switch(id) { - case 1: - case 2: - case 3: - case 4: - ug_destroy_me(m->ug); - break; - } -} - - -void CClockMainView::OnMouseClicked(int id, Evas_Object *obj) -{ - switch(id) { - case 1: - ug_destroy_me(m->ug); - break; - case 2: - { - m->cur_btn = obj; -#if 0 - view_spin_control_create(m->win, m->base); -#endif - m->pViewMgr->PushView(CLOCK_SPINCONTROL_VIEW, NULL); - elm_object_signal_emit(obj, SIGNAL_NAME_AFTER_CLICK, SIGNAL_SOURCE_BTN); - } - break; - case 3: - { - m->cur_btn = obj; - -#if 0 - view_sublist_create(data->win, data->base); -#endif - m->pViewMgr->PushView(CLOCK_SUBLIST_VIEW, NULL); - - elm_object_signal_emit(obj, SIGNAL_NAME_AFTER_CLICK, SIGNAL_SOURCE_BTN); - } - break; - case 4: - { - m->cur_btn = obj; -#if 0 - view_time_spin_ctrl_create(m->win, m->base); -#endif - m->pViewMgr->PushView(CLOCK_TIME_SPINCONTROL_VIEW, NULL); - elm_object_signal_emit(obj, SIGNAL_NAME_AFTER_CLICK, SIGNAL_SOURCE_BTN); - } - break; - default: - break; - } -} diff --git a/ug/system/clock/src/ClockSpinControlView.cpp b/ug/system/clock/src/ClockSpinControlView.cpp deleted file mode 100644 index 02d48e7..0000000 --- a/ug/system/clock/src/ClockSpinControlView.cpp +++ /dev/null @@ -1,529 +0,0 @@ -#include -#include -#include "defs.h" -#include "util.h" - -#include "ClockSpinControlView.h" - -#define ARROW_BTN_DATA_ID "arrow_btn_data_id" -#define DATE_SPIN_DATA_ID "spin_ctrl_data" -#define YEAR_BTN (2) - -#define UP_ARROW (1) -#define DOWN_ARROW (0) - -static const int days[] = { - 31, - 28, - 31, - 30, - 31, - 30, - 31, - 31, - 30, - 31, - 30, - 31 -}; - -struct SClockSpinControlView { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - - unsigned int date[DATE_MAX]; - int entry[DATE_MAX]; - - Eina_Array *spin_array; - CViewMgr *pViewMgr; -}; - - -Evas_Object * CClockSpinControlView::m_AddArrowBtn(Evas_Object *obj, int flag) -{ - Evas_Object *btn; - - btn = utils_add_button(m->base); - if (!btn) { - _ERR("utils add button failed."); - return NULL; - } - - elm_object_style_set(btn, BTN_STYLE_ARROW_BTN); - - if (flag == UP_ARROW) - elm_object_part_content_set(obj, UP_ARROW_SWALLOW, btn); - else - elm_object_part_content_set(obj, DOWN_ARROW_SWALLOW, btn); - - elm_object_focus_allow_set(btn, EINA_FALSE); - - evas_object_data_set(btn, ARROW_BTN_DATA_ID, obj); - evas_object_raise(btn); - evas_object_repeat_events_set(btn, EINA_FALSE); - - return btn; -} - - -bool CClockSpinControlView::m_AddDateSpin(void) -{ - Evas_Object *btn, *uparrow, *downarrow; - char buf[BUF_SIZE]; - int idx; - - m->spin_array = eina_array_new(1); - if (!m->spin_array) { - _ERR("new eina array failed."); - return false; - } - - for (idx = DATE_MONTH; idx < DATE_MAX; idx++) { - btn = utils_add_button(m->base); - if (!btn) { - _ERR("add spin control button failed."); - return false; - } - - elm_object_style_set(btn, BTN_STYLE_SPIN_CTRL_BTN); - if (idx == YEAR_BTN) - elm_object_style_set(btn, BTN_STYLE_SPIN_CTRL_YEAR_BTN); - - snprintf(buf, sizeof(buf), "spin_ctrl_%d_swallow", idx + 1); - elm_object_part_content_set(m->base, (const char *)buf, btn); - - eina_array_push(m->spin_array, btn); - - uparrow = m_AddArrowBtn( btn, UP_ARROW); - if (!uparrow) { - _ERR("add up arrow button failed."); - evas_object_del(btn); - return false; - } - //evas_object_smart_callback_add(btn, "clicked", _arrow_btn_clicked_cb, data); - Connect(uparrow, 1, TYPE_CLICKED); - - downarrow = m_AddArrowBtn( btn, DOWN_ARROW); - if (!downarrow) { - _ERR("add down arrow button failed."); - evas_object_del(btn); - evas_object_del(uparrow); - return false; - } - Connect(downarrow, 2, TYPE_CLICKED); - } - - elm_object_focus_set((Evas_Object *) eina_array_data_get(m->spin_array, 0), EINA_TRUE); - - return true; -} - - -void CClockSpinControlView::m_InitDateSpin(void) -{ - Evas_Object *spin; - char buf[BUF_SIZE]; - - utils_get_date_value(m->date); - - spin = (Evas_Object *) eina_array_data_get(m->spin_array, 0); - if (!spin) { - _ERR("month button is null."); - return; - } - - snprintf(buf, sizeof(buf), "%02d", m->date[DATE_MONTH]); - elm_object_text_set(spin, buf); - - spin = (Evas_Object *) eina_array_data_get(m->spin_array, 1); - if (!spin) { - _ERR("month button is null."); - return; - } - - snprintf(buf, sizeof(buf), "%02d", m->date[DATE_DAY]); - elm_object_text_set(spin, buf); - - spin = (Evas_Object *) eina_array_data_get(m->spin_array, 2); - if (!spin) { - _ERR("month button is null."); - return; - } - - m->date[DATE_YEAR] = m->date[DATE_YEAR] < 2000 ? 2000 : m->date[DATE_YEAR]; - snprintf(buf, sizeof(buf), "%04d", m->date[DATE_YEAR]); - elm_object_text_set(spin, buf); - - int idx; - - for (idx = DATE_MONTH; idx < DATE_MAX; idx++) { - spin = (Evas_Object *) eina_array_data_get(m->spin_array, idx); - if (!spin) { - _ERR("there is no button. idx: %d", idx); - return; - } - - elm_object_focus_next_object_set(spin, spin, ELM_FOCUS_UP); - elm_object_focus_next_object_set(spin, spin, ELM_FOCUS_DOWN); - - if (idx == DATE_MONTH) { - elm_object_focus_next_object_set(spin, (Evas_Object *) eina_array_data_get(m->spin_array, idx+1), ELM_FOCUS_NEXT); - elm_object_focus_next_object_set(spin, spin, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(spin, (Evas_Object *) eina_array_data_get(m->spin_array, idx + 1), ELM_FOCUS_RIGHT); - } else if (idx == DATE_YEAR) { - elm_object_focus_next_object_set(spin, spin, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(spin, (Evas_Object *) eina_array_data_get(m->spin_array, idx - 1), ELM_FOCUS_LEFT); - } else { - elm_object_focus_next_object_set(spin, (Evas_Object *) eina_array_data_get(m->spin_array, idx + 1), ELM_FOCUS_NEXT); - elm_object_focus_next_object_set(spin, (Evas_Object *) eina_array_data_get(m->spin_array, idx + 1), ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(spin, (Evas_Object *) eina_array_data_get(m->spin_array, idx - 1), ELM_FOCUS_LEFT); - } - } -} - - -void CClockSpinControlView::m_UpdateDateValue(Evas_Object *spin, int spin_idx) -{ - char buf[BUF_SIZE]; - - if (!spin) - return; - if (spin_idx < DATE_MONTH || spin_idx >= DATE_MAX) - return; - - if (spin_idx == DATE_MONTH) { - if (m->date[spin_idx] > 12) - m->date[spin_idx] = 1; - if (m->date[spin_idx] <= 0) - m->date[spin_idx] = 12; - - snprintf(buf, sizeof(buf), "%02d", m->date[spin_idx]); - } else if (spin_idx == DATE_DAY) { - if ((int)m->date[spin_idx] > days[m->date[DATE_MONTH] - 1]) - m->date[spin_idx] = 1; - if (m->date[spin_idx] <= 0) - m->date[spin_idx] = days[m->date[DATE_MONTH] - 1]; - - snprintf(buf, sizeof(buf), "%02d", m->date[spin_idx]); - } else { - if (m->date[spin_idx] > 2037) - m->date[spin_idx] = 2000; - if (m->date[spin_idx] < 2000) - m->date[spin_idx] = 2037; - - snprintf(buf, sizeof(buf), "%04d", m->date[spin_idx]); - } - - elm_object_text_set(spin, buf); -} - - -bool CClockSpinControlView::m_AddSpin(void) -{ - if(!m_AddDateSpin()) { - _ERR("add spin control buttons failed."); - return false; - } - - m_InitDateSpin(); - - Evas_Object *spin; - - for (int idx = DATE_MONTH; idx < DATE_MAX; idx++) { - spin = (Evas_Object *) eina_array_data_get(m->spin_array, idx); - if (!spin) { - _ERR("eina m->spin_array data get failed. spin index: %d", idx); - return false; - } - - //evas_object_smart_callback_add(spin, CLICKED, _date_spin_clicked_cb, data); - //evas_object_event_callback_add(spin, EVAS_CALLBACK_KEY_DOWN, _date_spin_keydown_cb, data); - Connect(spin, 100+idx, TYPE_CLICKED | TYPE_KEY_DOWN | TYPE_KEY_UP); -#if 0 - evas_object_event_callback_add(spin, EVAS_CALLBACK_MOUSE_IN, _date_spin_mousein_cb, NULL); - evas_object_event_callback_add(spin, EVAS_CALLBACK_MOUSE_OUT, _date_spin_mouseout_cb, NULL); -#endif - } - - return true; -} - - -void CClockSpinControlView::t_OnShow(void) -{ - _DBG(); - - evas_object_show(m->base); - - CBaseView::t_OnShow(); -} - - -void CClockSpinControlView::t_OnUpdate(void *data) -{ - _DBG(); - - evas_object_show(m->base); -} - - -void CClockSpinControlView::t_OnHide(void) -{ - _DBG(); - - evas_object_hide(m->base); - - CBaseView::t_OnHide(); -} - - -bool CClockSpinControlView::Create(void *data) -{ - _DBG(); - ASSERT(!m); - - ui_gadget_h ug; - if (!data) { - _ERR("Invalid argument"); - return false; - } - ug = (ui_gadget_h)data; - - _CREATE_BEGIN{ - _CHECK(m = new SClockSpinControlView) - _CHECK(m->win = CViewMgr::GetInstance()->Window()) - _CHECK(m->base = utils_add_layout(m->win)) - _CHECK(m_AddSpin()) - - _WHEN_SUCCESS { - elm_layout_file_set(m->base, UG_CLOCK_EDJFILE, SPIN_CTRL_GRP); -#if 0 - evas_object_data_set(m->base, DATE_SPIN_DATA_ID, data); -#endif - m->ug = ug; - m->pViewMgr = CViewMgr::GetInstance(); - } - - _CHECK_FAIL{if(m->spin_array) eina_array_free(m->spin_array);} - _CHECK_FAIL{if(m->base) evas_object_del(m->base);} - _CHECK_FAIL{/* m->win = CViewMgr::GetInstance()->Window() */} - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - return true; -} - - -void CClockSpinControlView::Destroy(void) -{ - ASSERT(m); - - if(m->spin_array) - eina_array_free(m->spin_array); - - if(m->base) - evas_object_del(m->base); - - delete m; - m = NULL; -} - - -Evas_Object* CClockSpinControlView::Base(void) -{ - ASSERT(m); - - return m->base; -} - - -void CClockSpinControlView::OnKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Up *ev) -{ - if (!ev->keyname) { - _ERR("ev->keyname is NULL."); - return; - } - - switch(id) { - case 100: - case 101: - case 102: - { - Evas_Object *spin; - int idx = -1; - - for (int i = DATE_MONTH; i < DATE_MAX; i++) { - spin = (Evas_Object *) eina_array_data_get(m->spin_array, i); - if (!spin) - return; - - if (obj == spin) { - idx = i; - break; - } - } - - if (idx == -1) { - _ERR("can't get the right spin."); - return; - } - if (!strncmp(ev->keyname, KEY_UP, strlen(ev->keyname))) { - m->date[idx]++; - m_UpdateDateValue(obj, idx); - } - } - break; - default: - break; - } -} - - -void CClockSpinControlView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) -{ - if (!ev->keyname) { - _ERR("ev->keyname is NULL."); - return; - } - - switch(id) { - case 100: - case 101: - case 102: - { - int idx = -1; - Evas_Object *spin; - char buf[BUF_SIZE]; - - for (int i = DATE_MONTH; i < DATE_MAX; i++) { - spin = (Evas_Object *) eina_array_data_get(m->spin_array, i); - if (!spin) - return; - - if (obj == spin) { - idx = i; - break; - } - } - - if (idx == -1) { - _ERR("can't get the right spin."); - return; - } - - if (!strncmp(ev->keyname, KEY_DOWN, strlen(ev->keyname))) { - m->date[idx]--; - m_UpdateDateValue(obj, idx); - } else if (!strncmp(ev->keyname, KEY_0, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_1, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_2, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_3, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_4, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_5, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_6, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_7, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_8, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_9, strlen(ev->keyname))) { - if (idx != DATE_YEAR) { - if (m->entry[idx] == 0) { - m->entry[idx]++; - m->date[idx] = atoi(ev->keyname); - } else { - m->entry[idx]++; - m->date[idx] = m->date[idx] * 10 + atoi(ev->keyname); - m->entry[idx] = 0; - elm_object_focus_next(obj, ELM_FOCUS_NEXT); - } - } else { - if (m->entry[idx] == 0) { - m->entry[idx]++; - m->date[idx] = atoi(ev->keyname); - snprintf(buf, sizeof(buf), "%04d", m->date[idx]); - elm_object_text_set(obj, buf); - return; - } else if (m->entry[idx] == 3) { - m->date[idx] = m->date[idx] * 10 + atoi(ev->keyname); - m->entry[idx] = 0; - } else { - m->entry[idx]++; - m->date[idx] = m->date[idx] * 10 + atoi(ev->keyname); - snprintf(buf, sizeof(buf), "%04d", m->date[idx]); - elm_object_text_set(obj, buf); - return; - } - } - m_UpdateDateValue(obj, idx); - } else if (!strncmp(ev->keyname, KEY_RIGHT, strlen(ev->keyname)) || !strncmp(ev->keyname, KEY_LEFT, strlen(ev->keyname))) { - m->entry[idx] = 0; - } else if (!strncmp(ev->keyname, KEY_BACK, strlen(ev->keyname)) || !strncmp(ev->keyname, KEY_BACK_REMOTE, strlen(ev->keyname))) { - Destroy(); - } - } - break; - default: - break; - } -} - - -void CClockSpinControlView::OnMouseClicked(int id, Evas_Object *obj) -{ - switch(id) { - case 1: - case 2: - { - Evas_Object *cur_btn, *btn, *up_btn; - int idx; - - cur_btn = (Evas_Object *) evas_object_data_get(obj, ARROW_BTN_DATA_ID); - if (!cur_btn) { - _ERR("evas object data get failed. ID: %s", ARROW_BTN_DATA_ID); - return; - } - - up_btn = elm_object_part_content_get(cur_btn, UP_ARROW_SWALLOW); - if (!up_btn) { - _ERR("part %s content get failed.", UP_ARROW_SWALLOW); - return; - } - - idx = 0; - for (int i = DATE_DAY; i < DATE_MAX; i++) { - btn = (Evas_Object *) eina_array_data_get(m->spin_array, i); - if (!btn) { - _ERR("eina array data get failed. button index: %d", i); - return; - } - - if (cur_btn == btn) { - idx = i; - break; - } - } - - if (obj == up_btn) - m->date[idx]++; - else - m->date[idx]--; - - m_UpdateDateValue(cur_btn, idx); - } - break; - case 100: - case 101: - case 102: - { - utils_set_date_value(m->date); -#if 0 - view_ug_clock_refresh(m->ug_base, m->date, NULL); -#endif - m->pViewMgr->UpdateView(CLOCK_MAIN_VIEW, m->date); - Destroy(); - } - break; - default: - break; - } -} diff --git a/ug/system/clock/src/ClockSublistView.cpp b/ug/system/clock/src/ClockSublistView.cpp deleted file mode 100644 index eb436ae..0000000 --- a/ug/system/clock/src/ClockSublistView.cpp +++ /dev/null @@ -1,358 +0,0 @@ -#include -#include -#include "defs.h" -#include "util.h" - -#include "ClockSublistView.h" - -#define SUBLIST_BTN_NUM 2 -#define SUBLIST_DATA_ID "sublist_data" - -#define BOX_HPADDING 0 -#define BOX_VPADDING 2 - -#define CLICKED "clicked" - -struct SClockSublistView { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - Evas_Object *box; - - unsigned int mode; - - Eina_Array *array; - CViewMgr *pViewMgr; -}; - -bool CClockSublistView::m_AddSublist(void) -{ - m->box = utils_add_box(m->base); - if (!m->box) { - _ERR("add sublist m->box failed."); - return false; - } - - if(!m_AddSublistBtns()) { - _ERR("add sublist buttons failed."); - evas_object_del(m->box); - m->box = NULL; - return false; - } - - m_SetSublistInitValue(); - - return true; -} - - -bool CClockSublistView::m_AddSublistBtns(void) -{ - Evas_Object *btn; - - elm_box_padding_set(m->box, BOX_HPADDING, BOX_VPADDING); - - m->array = eina_array_new(1); - if (!m->array) { - _ERR("new array for sublist buttons failed."); - return false; - } - - for (int idx = 0; idx < SUBLIST_BTN_NUM; idx++) { - btn = utils_add_button(m->base); - if (!btn) { - _ERR("add button failed."); - eina_array_free(m->array); - return false; - } - - //evas_object_smart_callback_add(btn, CLICKED, _sublist_btn_clicked_cb, data); - //evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, _key_down_on_sublist_btn_cb, data); - Connect(btn, 100+idx, TYPE_CLICKED | TYPE_KEY_DOWN | TYPE_KEY_UP); -#if 0 - evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_IN, _sublist_btn_mouse_in_cb, NULL); - evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_OUT, _sublist_btn_mouse_out_cb, NULL); -#endif - - elm_object_style_set(btn, BTN_STYLE_SUBLIST_BTN); - - elm_box_pack_end(m->box, btn); - eina_array_push(m->array, btn); - } - - elm_object_part_content_set(m->base, SWALLOW_SUBLIST, m->box); - - return true; -} - - -void CClockSublistView::m_SetSublistInitValue(void) -{ - Evas_Object *on_btn, *off_btn; - int mode = 0; - int ret; - - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return; - } - - on_btn = (Evas_Object *) eina_array_data_get(m->array, 0); - off_btn = (Evas_Object *) eina_array_data_get(m->array, 1); - if (!on_btn || !off_btn) { - _ERR("there is no button in sublist array."); - return; - } - - elm_object_focus_set(on_btn, EINA_TRUE); - - elm_object_text_set(on_btn, ON); - elm_object_text_set(off_btn, OFF); - - if (mode) { - elm_object_signal_emit(on_btn, SIG_SRC_FOC_SHOW_ICON, SIG_NAME_SUBLIST); - elm_object_signal_emit(off_btn, SIG_SRC_UNFOC_HIDE_ICON, SIG_NAME_SUBLIST); - } else { - elm_object_signal_emit(off_btn, SIG_SRC_UNFOC_SHOW_ICON, SIG_NAME_SUBLIST); - elm_object_signal_emit(on_btn, SIG_SRC_FOC_HIDE_ICON, SIG_NAME_SUBLIST); - } - - elm_object_focus_next_object_set(on_btn, on_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(on_btn, off_btn, ELM_FOCUS_DOWN); - elm_object_focus_next_object_set(on_btn, on_btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(on_btn, on_btn, ELM_FOCUS_RIGHT); - - elm_object_focus_next_object_set(off_btn, on_btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(off_btn, off_btn, ELM_FOCUS_DOWN); - elm_object_focus_next_object_set(off_btn, off_btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(off_btn, off_btn, ELM_FOCUS_RIGHT); -} - - -void CClockSublistView::t_OnShow(void) -{ - _DBG(); - - evas_object_show(m->base); - - CBaseView::t_OnShow(); -} - - -void CClockSublistView::t_OnUpdate(void *data) -{ - _DBG(); - - evas_object_show(m->base); -} - - -void CClockSublistView::t_OnHide(void) -{ - _DBG(); - - evas_object_hide(m->base); - - CBaseView::t_OnHide(); -} - - -bool CClockSublistView::Create(void *data) -{ - _DBG(); - ASSERT(!m); - - ui_gadget_h ug; - if (!data) { - _ERR("Invalid argument"); - return false; - } - ug = (ui_gadget_h)data; - - _CREATE_BEGIN{ - _CHECK(m = new SClockSublistView) - _CHECK(m->win = CViewMgr::GetInstance()->Window()) - _CHECK(m->base = utils_add_layout(m->win)) - _CHECK(m_AddSublist()) - _COMMAND{ - elm_layout_file_set(m->base, UG_CLOCK_EDJFILE, SUBLIST_GRP); - } - - _WHEN_SUCCESS { -#if 0 - evas_object_data_set(m->base, SUBLIST_DATA_ID, data); -#endif - m->ug = ug; - m->pViewMgr = CViewMgr::GetInstance(); - } - - _CHECK_FAIL{if(m->array) eina_array_free(m->array); if(m->box) evas_object_del(m->box);} - _CHECK_FAIL{evas_object_del(m->base);} - _CHECK_FAIL{/* m->win = CViewMgr::GetInstance()->Window() */} - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - return true; -} - - -void CClockSublistView::Destroy(void) -{ - ASSERT(m); - - if(m->array) - eina_array_free(m->array); - - if(m->box) - evas_object_del(m->box); - - if(m->base) - evas_object_del(m->base); - - delete m; - m = NULL; -} - - -Evas_Object* CClockSublistView::Base(void) -{ - ASSERT(m); - - return m->base; -} - - -void CClockSublistView::OnKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Up *ev) -{ - if (!ev->keyname) { - _ERR("ev->keyname is NULL."); - return; - } - - switch(id) { - case 100: - case 101: - { - Evas_Object *on_btn = NULL; - int mode, ret = -1; - on_btn = (Evas_Object *) eina_array_data_get(m->array, 0); - - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return; - } - - if (!strncmp(ev->keyname, KEY_UP, strlen(ev->keyname))) { - - if (obj == on_btn) - return; - - elm_object_focus_set(on_btn, EINA_TRUE); - - if (mode) { - elm_object_signal_emit(on_btn, SIG_SRC_FOC_SHOW_ICON, SIG_NAME_SUBLIST); - elm_object_signal_emit(obj, SIG_SRC_UNFOC_HIDE_ICON, SIG_NAME_SUBLIST); - } else { - elm_object_signal_emit(obj, SIG_SRC_UNFOC_SHOW_ICON, SIG_NAME_SUBLIST); - elm_object_signal_emit(on_btn, SIG_SRC_FOC_HIDE_ICON, SIG_NAME_SUBLIST); - } - } - } - break; - } -} - - -void CClockSublistView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) -{ - if (!ev->keyname) { - _ERR("ev->keyname is NULL."); - return; - } - - switch(id) { - case 100: - case 101: - { - Evas_Object *on_btn, *off_btn; - Eina_Array *array = NULL; - int mode; - int ret; - - on_btn = (Evas_Object *) eina_array_data_get(array, 0); - off_btn = (Evas_Object *) eina_array_data_get(array, 1); - if (!on_btn || !off_btn) { - _ERR("ON button or OFF button is null."); - return; - } - - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return; - } - - if (!strcmp(ev->keyname, KEY_DOWN)) { - if (obj != on_btn) - return; - - elm_object_focus_set(off_btn, EINA_TRUE); - - if (mode) { - elm_object_signal_emit(obj, SIG_SRC_UNFOC_SHOW_ICON, SIG_NAME_SUBLIST); - elm_object_signal_emit(off_btn, SIG_SRC_FOC_HIDE_ICON, SIG_NAME_SUBLIST); - } else { - elm_object_signal_emit(obj, SIG_SRC_UNFOC_HIDE_ICON, SIG_NAME_SUBLIST); - elm_object_signal_emit(off_btn, SIG_SRC_FOC_SHOW_ICON, SIG_NAME_SUBLIST); - } - } else if (!strncmp(ev->keyname, KEY_BACK, strlen(ev->keyname)) || !strncmp(ev->keyname, KEY_BACK_REMOTE, strlen(ev->keyname))) { - Destroy(); - } - } - break; - } -} - - -void CClockSublistView::OnMouseClicked(int id, Evas_Object *obj) -{ - switch(id) { - case 100: - case 101: - { - Evas_Object *on_btn, *off_btn; - int ret; - - if (!m->array) - return; - - on_btn = (Evas_Object *) eina_array_data_get(m->array, 0); - off_btn = (Evas_Object *) eina_array_data_get(m->array, 1); - if (!on_btn || !off_btn) { - _ERR("ON button or OFF button is null."); - return; - } - - if (obj == on_btn) - ret = utils_set_vconf_value(VCONF_KEY_24HOUR_MODE, 1); - else - ret = utils_set_vconf_value(VCONF_KEY_24HOUR_MODE, 0); - - if (ret != 0) { - _ERR("set 24hour mode failed."); - return; - } - -#if 0 - view_ug_clock_refresh(data->ug_base, NULL, NULL); -#endif - m->pViewMgr->UpdateView(CLOCK_MAIN_VIEW, NULL); - - Destroy(); - } - break; - } -} diff --git a/ug/system/clock/src/ClockTimeSpinControlView.cpp b/ug/system/clock/src/ClockTimeSpinControlView.cpp deleted file mode 100644 index 8f193c3..0000000 --- a/ug/system/clock/src/ClockTimeSpinControlView.cpp +++ /dev/null @@ -1,624 +0,0 @@ -#include -#include -#include "defs.h" -#include "util.h" - -#include "ClockTimeSpinControlView.h" - -#define ARROW_BTN_DATA_ID "arrow_btn_data_id" -#define TIME_SPIN_DATA_ID "time_spin_ctrl_data" - -#define BOX_HPADDING 2 -#define BOX_VPADDING 122 - -#define UP_ARROW (1) -#define DOWN_ARROW (0) - -struct SClockTimeSpinControlView { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - Evas_Object *ug_base; - Evas_Object *spin_box; - - int time[TIME_MAX]; - int entry[TIME_MAX]; - - Eina_Array *spin_array; - - CViewMgr *pViewMgr; -}; - - -Evas_Object * CClockTimeSpinControlView::m_AddArrowBtn(Evas_Object *obj, int flag) -{ - Evas_Object *btn; - - btn = utils_add_button(m->base); - if (!btn) { - _ERR("utils add button failed."); - return NULL; - } - - elm_object_style_set(btn, BTN_STYLE_ARROW_BTN); - - if (flag == UP_ARROW) - elm_object_part_content_set(obj, UP_ARROW_SWALLOW, btn); - else - elm_object_part_content_set(obj, DOWN_ARROW_SWALLOW, btn); - - elm_object_focus_allow_set(btn, EINA_FALSE); - - evas_object_data_set(btn, ARROW_BTN_DATA_ID, obj); - evas_object_raise(btn); - evas_object_repeat_events_set(btn, EINA_FALSE); - - return btn; -} - - -void CClockTimeSpinControlView::m_UpdateTimeValue(Evas_Object *btn, int btn_idx) -{ - int mode; - char buf[BUF_SIZE]; - int ret; - - if (!btn) - return; - if (btn_idx < TIME_HOUR || btn_idx >= TIME_MAX) - return; - - mode = 0; - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return; - } - - if (btn_idx == TIME_HOUR) { - if (mode) { - if (m->time[btn_idx] > 23) - m->time[btn_idx] = 0; - if (m->time[btn_idx] < 0) - m->time[btn_idx] = 23; - } else { - if (m->time[btn_idx] > 11) - m->time[btn_idx] = 0; - if (m->time[btn_idx] < 0) - m->time[btn_idx] = 11; - } - - snprintf(buf, sizeof(buf), "%02d", m->time[btn_idx]); - } else if (btn_idx == TIME_MINUTE) { - if (m->time[btn_idx] > 59) - m->time[btn_idx] = 0; - if (m->time[btn_idx] < 0) - m->time[btn_idx] = 59; - - snprintf(buf, sizeof(buf), "%02d", m->time[btn_idx]); - } else { - if (m->time[btn_idx]) - snprintf(buf, sizeof(buf), "%s", PM); - else - snprintf(buf, sizeof(buf), "%s", AM); - } - - elm_object_text_set(btn, buf); -} - - -bool CClockTimeSpinControlView::m_AddTimeSpinWithAMPM(void) -{ - Evas_Object *btn; - Evas_Object *uparrow, *downarrow; - char buf[BUF_SIZE]; - - elm_box_horizontal_set(m->spin_box, EINA_TRUE); - elm_box_padding_set(m->spin_box, BOX_HPADDING, BOX_VPADDING); - - m->spin_array = eina_array_new(1); - if (!m->spin_array) { - _ERR("new eina m->spin_array failed."); - return false; - } - - for (int idx = TIME_HOUR; idx < TIME_AMPM; idx++) { - btn = utils_add_button(m->base); - if (!btn) { - _ERR("add time spin control button failed."); - return false; - } - - //evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, _time_spin_keydown_cb, data); - //evas_object_smart_callback_add(btn, "clicked", _time_spin_click_cb, data); - Connect(btn, 100+idx, TYPE_CLICKED | TYPE_KEY_DOWN); -#if 0 - evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_IN, _time_spin_mousein_cb, NULL); - evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_OUT, _time_spin_mouseout_cb, NULL); -#endif - elm_object_style_set(btn, BTN_STYLE_TIME_SPIN_BTN); - - snprintf(buf, sizeof(buf), "%02d", m->time[idx]); - elm_object_text_set(btn, buf); - - eina_array_push(m->spin_array, btn); - elm_box_pack_end(m->spin_box, btn); - - uparrow = m_AddArrowBtn(btn, UP_ARROW); - if (!uparrow) { - _ERR("add up arrow button failed."); - evas_object_del(btn); - return false; - } - - downarrow = m_AddArrowBtn(btn, DOWN_ARROW); - if (!downarrow) { - _ERR("add down arrow button failed."); - evas_object_del(btn); - evas_object_del(uparrow); - return false; - } - } - - elm_object_focus_set((Evas_Object *) eina_array_data_get(m->spin_array, TIME_HOUR), EINA_TRUE); - elm_object_part_content_set(m->base, SWALLOW_TIME_SPIN_2, m->spin_box); - - return true; -} - - -bool CClockTimeSpinControlView::m_AddTimeSpinWithoutAMPM(void) -{ - Evas_Object *btn; - Evas_Object *uparrow, *downarrow; - char buf[BUF_SIZE]; - - elm_box_horizontal_set(m->spin_box, EINA_TRUE); - elm_box_padding_set(m->spin_box, BOX_HPADDING, BOX_VPADDING); - - m->spin_array = eina_array_new(1); - if (!m->spin_array) { - _ERR("new eina m->spin_array failed."); - return false; - } - - for (int idx = TIME_HOUR; idx < TIME_AMPM; idx++) { - btn = utils_add_button(m->base); - if (!btn) { - _ERR("add time spin control button failed."); - return false; - } - - //evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, _time_spin_keydown_cb, data); - //evas_object_smart_callback_add(btn, "clicked", _time_spin_click_cb, data); - Connect(btn, 100+idx, TYPE_CLICKED | TYPE_KEY_DOWN); -#if 0 - evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_IN, _time_spin_mousein_cb, NULL); - evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_OUT, _time_spin_mouseout_cb, NULL); -#endif - - elm_object_style_set(btn, BTN_STYLE_TIME_SPIN_BTN); - - snprintf(buf, sizeof(buf), "%02d", m->time[idx]); - elm_object_text_set(btn, buf); - - eina_array_push(m->spin_array, btn); - - elm_box_pack_end(m->spin_box, btn); - - uparrow = m_AddArrowBtn(btn, UP_ARROW); - if (!uparrow) { - _ERR("add up arrow button failed."); - evas_object_del(btn); - return false; - } - //evas_object_smart_callback_add(btn, "clicked", _arrow_btn_clicked_cb, data); - Connect(uparrow, 1, TYPE_CLICKED); - - downarrow = m_AddArrowBtn(btn, DOWN_ARROW); - if (!downarrow) { - _ERR("add down arrow button failed."); - evas_object_del(btn); - evas_object_del(uparrow); - return false; - } - Connect(downarrow, 2, TYPE_CLICKED); - } - - elm_object_focus_set((Evas_Object *) eina_array_data_get(m->spin_array, TIME_HOUR), EINA_TRUE); - - elm_object_part_content_set( m->base, SWALLOW_TIME_SPIN_2, m->spin_box); - - return true; -} - - -bool CClockTimeSpinControlView::m_AddTimeSpinBtns(void) -{ - int mode; - int ret; - - utils_get_time_value(m->time); - - mode = 0; - ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); - if (ret != 0) { - _ERR("vconf get value failed."); - return false; - } - - if (mode) { - ret = m_AddTimeSpinWithoutAMPM(); - if (ret != 0) { - _ERR("add buttons without ampm failed."); - return false; - } - } else { - ret = m_AddTimeSpinWithAMPM(); - if (ret != 0) { - _ERR("add buttons with ampm failed."); - return false; - } - } - - return true; -} - - -bool CClockTimeSpinControlView::m_AddTimeSpin(void) -{ - Evas_Object *btn; - unsigned int count; - int idx; - - m->spin_box = utils_add_box(m->base); - if (!m->spin_box) { - _ERR("add time spin control box failed."); - return false; - } - - if(!m_AddTimeSpinBtns()) { - _ERR("add time spin control buttons failed."); - return false; - } - - - count = eina_array_count(m->spin_array); - - for (idx = TIME_HOUR; idx < (int)count; idx++) { - btn = (Evas_Object *) eina_array_data_get(m->spin_array, idx); - if (!btn) { - _ERR("there is no button. idx: %d", idx); - return false; - } - - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_UP); - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_DOWN); - - if (idx == TIME_HOUR) { - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_LEFT); - elm_object_focus_next_object_set(btn, (Evas_Object *) eina_array_data_get(m->spin_array, idx + 1), - ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(btn, (Evas_Object *) eina_array_data_get(m->spin_array, idx + 1), - ELM_FOCUS_NEXT); - } else if (idx == (int)count - 1) { - elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(btn, (Evas_Object *) eina_array_data_get(m->spin_array, idx - 1), ELM_FOCUS_LEFT); - } else { - elm_object_focus_next_object_set(btn, (Evas_Object *) eina_array_data_get(m->spin_array, idx + 1), ELM_FOCUS_RIGHT); - elm_object_focus_next_object_set(btn, (Evas_Object *) eina_array_data_get(m->spin_array, idx + 1), ELM_FOCUS_NEXT); - elm_object_focus_next_object_set(btn, (Evas_Object *) eina_array_data_get(m->spin_array, idx - 1), ELM_FOCUS_LEFT); - } - } - return true; -} - - -void CClockTimeSpinControlView::t_OnShow(void) -{ - _DBG(); - - evas_object_show(m->base); - - CBaseView::t_OnShow(); -} - - -void CClockTimeSpinControlView::t_OnUpdate(void *data) -{ - _DBG(); - - evas_object_show(m->base); -} - - -void CClockTimeSpinControlView::t_OnHide(void) -{ - _DBG(); - - evas_object_hide(m->base); - - CBaseView::t_OnHide(); -} - - -bool CClockTimeSpinControlView::Create(void *data) -{ - _DBG(); - ASSERT(!m); - - bool ret = false; - - ui_gadget_h ug; - if (!data) { - _ERR("Invalid argument"); - return false; - } - ug = (ui_gadget_h)data; - - _CREATE_BEGIN{ - _CHECK(m = new SClockTimeSpinControlView) - _CHECK(m->win = CViewMgr::GetInstance()->Window()) - _CHECK(m->base = utils_add_layout(m->win)) - _COMMAND { - int onoff = 0; - ret = true; - if(utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &onoff) != 0) { - _ERR("vconf get value failed."); - ret = false; - } - - if (onoff) - elm_object_signal_emit(m->base, SIGNAL_NAME_TIME_SPIN_2, SIGNAL_SOURCE_TIME_SPIN); - else - elm_object_signal_emit(m->base, SIGNAL_NAME_TIME_SPIN_1, SIGNAL_SOURCE_TIME_SPIN); - - } - _CHECK(ret) - _CHECK(m_AddTimeSpin()) - - _WHEN_SUCCESS { - elm_layout_file_set(m->base, UG_CLOCK_EDJFILE, TIME_SPIN_CTRL_GRP); -#if 0 - evas_object_data_set(m->base, TIME_SPIN_DATA_ID, data); -#endif - m->ug = ug; - m->pViewMgr = CViewMgr::GetInstance(); - } - - _CHECK_FAIL{if(m->spin_array) eina_array_free(m->spin_array); if(m->spin_box) evas_object_del(m->spin_box);} - _CHECK_FAIL{/* ret */} - _CHECK_FAIL{if(m->base) evas_object_del(m->base);} - _CHECK_FAIL{/* m->win = CViewMgr::GetInstance()->Window() */} - _CHECK_FAIL{ delete m; m = NULL; } - } _CREATE_END_AND_CATCH{ return false; } - - return true; -} - - -void CClockTimeSpinControlView::Destroy(void) -{ - ASSERT(m); - - if(m->spin_array) - eina_array_free(m->spin_array); - - if(m->spin_box) - evas_object_del(m->spin_box); - - if(m->base) - evas_object_del(m->base); - - delete m; - m = NULL; -} - - -Evas_Object* CClockTimeSpinControlView::Base(void) -{ - ASSERT(m); - - return m->base; -} - - -void CClockTimeSpinControlView::OnKeyUp(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Up *ev) -{ - if (!ev->keyname) { - _ERR("ev->keyname is NULL."); - return; - } - - switch(id) { - case 100: - case 101: - { - Evas_Object *hour_btn, *minute_btn; - - hour_btn = (Evas_Object *) eina_array_data_get(m->spin_array, TIME_HOUR); - minute_btn = (Evas_Object *) eina_array_data_get(m->spin_array, TIME_MINUTE); - if (!hour_btn || !minute_btn) { - _ERR("eina m->spin_array data get failed."); - return; - } - - if (!strncmp(ev->keyname, KEY_UP, strlen(ev->keyname))) { - if (obj == hour_btn) { - m->time[TIME_HOUR]++; - m_UpdateTimeValue(obj, TIME_HOUR); - } else if (obj == minute_btn) { - m->time[TIME_MINUTE]++; - m_UpdateTimeValue(obj, TIME_MINUTE); - } else { - if (m->time[TIME_AMPM] == 0) - m->time[TIME_AMPM] = 1; - else - m->time[TIME_AMPM] = 0; - m_UpdateTimeValue(obj, TIME_AMPM); - } - } - } - break; - default: - break; - } -} - - -void CClockTimeSpinControlView::OnKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev) -{ - if (!ev->keyname) { - _ERR("ev->keyname is NULL."); - return; - } - - switch(id) { - case 100: - case 101: - { - Evas_Object *hour_btn, *minute_btn; - - hour_btn = (Evas_Object *) eina_array_data_get(m->spin_array, TIME_HOUR); - minute_btn = (Evas_Object *) eina_array_data_get(m->spin_array, TIME_MINUTE); - if (!hour_btn || !minute_btn) { - _ERR("eina m->spin_array data get failed."); - return; - } - - if (!strncmp(ev->keyname, KEY_DOWN, strlen(ev->keyname))) { - if (obj == hour_btn) { - m->time[TIME_HOUR]--; - m_UpdateTimeValue(obj, TIME_HOUR); - } else if (obj == minute_btn) { - m->time[TIME_MINUTE]--; - m_UpdateTimeValue(obj, TIME_MINUTE); - } else { - if (m->time[TIME_AMPM] == 0) - m->time[TIME_AMPM] = 1; - else - m->time[TIME_AMPM] = 0; - m_UpdateTimeValue(obj, TIME_AMPM); - } - } else if (!strncmp(ev->keyname, KEY_0, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_1, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_2, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_3, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_4, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_5, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_6, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_7, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_8, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_9, strlen(ev->keyname))) { - if (obj == hour_btn) { - if (m->entry[TIME_HOUR] == 0) { - m->entry[TIME_HOUR]++; - m->time[TIME_HOUR] = atoi(ev->keyname); - } else { - m->entry[TIME_HOUR]++; - m->time[TIME_HOUR] = - (m->time[TIME_HOUR] * 10) + atoi(ev->keyname); - m->entry[TIME_HOUR] = 0; - - elm_object_focus_next(obj, ELM_FOCUS_NEXT); - } - m_UpdateTimeValue(obj, TIME_HOUR); - } else if (obj == minute_btn) { - if (m->entry[TIME_MINUTE] == 0) { - m->entry[TIME_MINUTE]++; - m->time[TIME_MINUTE] = atoi(ev->keyname); - } else { - m->entry[TIME_MINUTE]++; - m->time[TIME_MINUTE] = - (m->time[TIME_MINUTE] * 10) + atoi(ev->keyname); - m->entry[TIME_MINUTE] = 0; - - elm_object_focus_next(obj, ELM_FOCUS_NEXT); - } - m_UpdateTimeValue(obj, TIME_MINUTE); - } else { - return; - } - } else if (!strncmp(ev->keyname, KEY_LEFT, strlen(ev->keyname)) || - !strncmp(ev->keyname, KEY_RIGHT, strlen(ev->keyname))) { - if (obj == hour_btn) - m->entry[TIME_HOUR] = 0; - else if (obj == minute_btn) - m->entry[TIME_MINUTE] = 0; - else - return; - } else if (!strncmp(ev->keyname, KEY_BACK, strlen(ev->keyname)) || !strncmp(ev->keyname, KEY_BACK_REMOTE, strlen(ev->keyname))) { - Destroy(); - } - } - break; - default: - break; - } -} - - -void CClockTimeSpinControlView::OnMouseClicked(int id, Evas_Object *obj) -{ - switch(id) { - case 1: - case 2: - { - Evas_Object *cur_btn, *btn, *up; - int flag, idx = -1; - - cur_btn = (Evas_Object *) evas_object_data_get(obj, ARROW_BTN_DATA_ID); - if (!cur_btn) - return; - - up = elm_object_part_content_get(cur_btn, UP_ARROW_SWALLOW); - if (!up) - return; - - if (obj == up) - flag = 1; - else - flag = 0; - - for (int i = TIME_HOUR; i < TIME_MAX; i++) { - btn = (Evas_Object *) eina_array_data_get(m->spin_array, i); - - if (cur_btn == btn) { - idx = i; - break; - } - } - - if (idx != TIME_AMPM) { - if (flag) - m->time[idx]++; - else - m->time[idx]--; - } else { - if (m->time[idx] == 0) - m->time[idx] = 1; - else - m->time[idx] = 0; - } - - m_UpdateTimeValue(cur_btn, idx); - } - break; - case 100: - case 101: - { - utils_set_time_value(m->time); - -#if 0 /* FIXME: m->time should be passed */ - view_ug_clock_refresh(m->ug_base, NULL, m->time); -#else - m->pViewMgr->UpdateView(CLOCK_MAIN_VIEW, NULL); -#endif - Destroy(); - } - break; - default: - break; - } -} diff --git a/ug/system/clock/src/ug_clock.c b/ug/system/clock/src/ug_clock.c new file mode 100644 index 0000000..53bffdf --- /dev/null +++ b/ug/system/clock/src/ug_clock.c @@ -0,0 +1,1189 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef UG_MODULE_API +#define UG_MODULE_API __attribute__ ((visibility("default"))) +#endif + +#include +#include + +#include + +#include "ug_clock_utils.h" +#include "ug_clock.h" +#include "ug_clock_define.h" +#include "dbg.h" +#include "ug_clock_spin_control.h" +#include "ug_clock_sublist.h" +#include "ug_clock_time_spin_control.h" + +#define CLOCK_SUBLIST_NULL_BTNS 2 +#define UG_CLOCK_DATA_ID "ug_clock_data" + +struct _ug_data { + Evas_Object *win; + Evas_Object *base; + Evas_Object *close_btn; + Evas_Object *date_btn; + Evas_Object *switch_btn; + Evas_Object *time_btn; + Evas_Object *sublist_box; + Evas_Object *cur_btn; + + unsigned int date[DATE_MAX]; + int mode; + int time[TIME_MAX]; + + ui_gadget_h ug; +}; + +/** +* Free allocated memory. +* +* This function frees allocated memory when needed. +* +* @param[in]: data : the user data of clock ug. +* +* @return: void. +*/ +static void _free_ug_data(struct _ug_data *data) +{ + if (!data) + return; + + if (data->base) { + evas_object_del(data->base); + data->base = NULL; + } + + free(data); +} + +/** +* This function will be invoked when the BACK key is pressed. +* When the BACK key is pressed, this UI gadget will be destroyed. +* +* @param[in]: keyname : the name of pressed key. +* @param[in]: data : the user data of clock ug. +* +* @return: void. +*/ +static void _key_down_cb(const char *keyname, struct _ug_data *data) +{ + if (!keyname || !data || !data->ug) + return; + + if (!strncmp(keyname, KEY_BACK, strlen(keyname))) + ug_destroy_me(data->ug); +} + +/** +* Callback function for button click event. +* +* This function will be invoked when the close button is clicked or +* the ENTER key is pressed. +* +* @param[in]: priv : the user data. +* @param[in]: obj : the pointer of clicked evas object. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _close_btn_clicked_cb(void *priv, Evas_Object *obj, void *ei) +{ + struct _ug_data *data; + + if (!priv) { + _ERR("private data is null."); + return; + } + + data = priv; + ug_destroy_me(data->ug); +} + +/** +* Callback function for key pressed event. +* +* This function will be invoked when this the close button is focused +* and the BACK key is pressed. +* +* @param[in]: priv : the user data. +* @param[in]: e : the evas canvas. +* @param[in]: obj : the current evas object. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _key_down_on_close_btn_cb(void *priv, Evas *e, + Evas_Object *obj, void *ei) +{ + struct _ug_data *data; + Evas_Event_Key_Down *event; + const char *keyname; + + if (!priv || !ei) { + _ERR("invalid argument."); + return; + } + + event = ei; + keyname = event->keyname; + + if (!keyname) + return; + + data = priv; + + _key_down_cb(keyname, data); +} + +/** +* Callback function for key pressed event. +* +* This function will be invoked when BACK key is pressed. +* When the BACK key is pressed, this UI gadget will be destroyed. +* +* @param[in]: priv : the user data. +* @param[in]: e : the evas canvas. +* @param[in]: obj : the current evas object. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _key_down_on_btns_cb(void *priv, Evas *e, + Evas_Object *obj, void *ei) +{ + struct _ug_data *data; + Evas_Event_Key_Down *event; + const char *keyname; + + if (!priv || !ei) { + _ERR("invalid argument."); + return; + } + + event = ei; + keyname = event->keyname; + if (!keyname) + return; + + data = priv; + + _key_down_cb(keyname, data); +} + +/** +* Mouse in event callback. +* +* This function will be invoked when the mouse moves in the region of +* close button. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas canvas. +* @param[in]: obj : the current evas object. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _close_btn_mouse_in_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ + if (!obj) + return; + + elm_object_focus_set(obj, EINA_TRUE); +} + +/** +* Mouse out event callback. +* +* This function will be invoked when the mouse moves out the region of +* close button. +* +* @param[in]: dt The pointer of private data. +* @param[in]: e The evas canvas. +* @param[in]: obj The current evas object. +* @param[in]: ei The event info. +* +* @return: void. +*/ +static void _close_btn_mouse_out_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ + /* TODO: Add necessary operation when needed. */ +} + +/** +* Add close button. +* +* This function adds close button for clock UI gadget. +* +* @param[in]: parent : the parent base layout of clock UI gadget. +* @param[in]: data : the user data. +* +* @return: The pointer of created evas object button or NULL. +*/ +static Evas_Object *_add_close_btn(Evas_Object *parent, + struct _ug_data *data) +{ + Evas_Object *btn; + + if (!parent || !data) { + _ERR("parent of close button is null."); + return NULL; + } + + btn = utils_add_button(parent); + if (!btn) { + _ERR("elm add button failed."); + return NULL; + } + + data->close_btn = btn; + + elm_object_style_set(btn, BTN_STYLE_CLOSE_BTN); + elm_object_text_set(btn, BTN_TEXT_CLOSE); + elm_object_part_content_set(parent, SWALLOW_CLOSE_BTN, btn); + + evas_object_smart_callback_add(data->close_btn, "clicked", + _close_btn_clicked_cb, data); + evas_object_event_callback_add(data->close_btn, EVAS_CALLBACK_KEY_DOWN, + _key_down_on_close_btn_cb, data); + evas_object_event_callback_add(data->close_btn, + EVAS_CALLBACK_MOUSE_IN, _close_btn_mouse_in_cb, data); + evas_object_event_callback_add(data->close_btn, + EVAS_CALLBACK_MOUSE_OUT, _close_btn_mouse_out_cb, data); + + return btn; +} + +/** +* CLICKED event callback. +* +* This is the CLICKED event callback function for 24 Hour mode button. +* When user clicks the 24 Hour mode button or the ENTER key is pressed +* on this button, this function will be triggered to show the sub UI of +* 24 Hour mode button. +* +* @param[in]: priv : the user data. +* @param[in]: obj : the 24 Hour mode button. +* @param[in]: ei : the event info. +* +* @return: void. +*/ +static void _switch_btn_clicked_cb(void *priv, Evas_Object *obj, void *ei) +{ + struct _ug_data *data; + + if (!priv) + return; + + data = priv; + data->cur_btn = obj; + + view_sublist_create(data->win, data->base); + + elm_object_signal_emit(obj, SIGNAL_NAME_AFTER_CLICK, + SIGNAL_SOURCE_BTN); +} + +/** +* MOUSEIN event callback function. +* +* This is the MOUSEIN event callback function for 24 Hour mode +* button. When the mouse moves in the region of 24 Hour mode +* button, this function will be called. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas canvas. +* @param[in]: obj : the 24 Hour mode button. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _switch_btn_mouse_in_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ + if (!obj) + return; + + elm_object_focus_set(obj, EINA_TRUE); +} + +/** +* MOUSEOUT event callback function. +* +* This is the MOUSEOUT event callback function for 24 Hour mode +* button. When the mouse moves out of the region of 24 Hour mode +* button, this function will be called. Till now there is no operation +* in this function, and you can add operations here as needed. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas canvas. +* @param[in]: obj : the 24 Hour mode button. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _switch_btn_mouse_out_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ + /* TODO: Add necessary operations when needed. */ +} + +/** +* This function creates the 24 Hour mode item button. +* +* @param[in]: data : the user data. +* +* @return: The created evas object 24 Hour mode button or NULL. +*/ +static Evas_Object *_add_clock_sublist_switch_btn( + struct _ug_data *data) +{ + Evas_Object *switch_btn; + const char *display; + int ret; + + if (!data) { + _ERR("data is null."); + return NULL; + } + + switch_btn = utils_add_button(data->base); + if (!switch_btn) { + _ERR("add button failed."); + return NULL; + } + + elm_object_style_set(switch_btn, BTN_STYLE_LIST_BTN); + elm_object_text_set(switch_btn, BTN_TEXT_24HOUR_TIME); + + elm_box_pack_end(data->sublist_box, switch_btn); + + /* Set ON/OFF for switch button. */ + ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &data->mode); + if (ret != 0) { + _ERR("vconf get value failed."); + return NULL; + } + + if (!data->mode) + display = OFF; + else + display = ON; + + elm_object_part_text_set(switch_btn, BTN_PART_VALUE, display); + + evas_object_event_callback_add(switch_btn, + EVAS_CALLBACK_KEY_DOWN, _key_down_on_btns_cb, data); + evas_object_smart_callback_add(switch_btn, + "clicked", _switch_btn_clicked_cb, data); + evas_object_event_callback_add(switch_btn, + EVAS_CALLBACK_MOUSE_IN, _switch_btn_mouse_in_cb, NULL); + evas_object_event_callback_add(switch_btn, EVAS_CALLBACK_MOUSE_OUT, + _switch_btn_mouse_out_cb, NULL); + + return switch_btn; +} + +/** +* CLICKED event callback function. +* +* This is the clicked event callback function for Date button. +* When user clicks the Date button or ENTER key is pressed, +* this function will be called to show sub UI of Date button. +* +* @param[in]: priv : the user data. +* @param[in]: obj : the Date button. +* @param[in]: ei : the event info. +* +* @return: void. +*/ +static void _date_btn_clicked_cb(void *priv, Evas_Object *obj, void *ei) +{ + struct _ug_data *data; + + if (!priv || !obj) { + _ERR("invalid argument."); + return; + } + + data = priv; + data->cur_btn = obj; + + view_spin_control_create(data->win, data->base); + + elm_object_signal_emit(obj, SIGNAL_NAME_AFTER_CLICK, + SIGNAL_SOURCE_BTN); +} + +/** +* MOUSEIN event callback function. +* +* This is the MOUSEIN event callback function for Date button. +* When the mouse moves in the region of Date button, this +* function will be called. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas canvas. +* @param[in]: obj : the Date button. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _date_btn_mouse_in_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ + if (!obj) + return; + + elm_object_focus_set(obj, EINA_TRUE); +} + +/** +* MOUSEOUT event callback function. +* +* This is the MOUSEOUT event callback function for Date button. +* When the mouse moves out of the region of Date button, this +* function will be called. Till now there is no operation in this +* function, and you can add operations here as needed. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas canvas. +* @param[in]: obj : the Date button. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _date_btn_mouse_out_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ + /* TODO: Add necessary operations when needed. */ +} + +/** +* This function creates the Date item button. +* +* @param[in]: data : the user data. +* +* @return: The created evas object Date button or NULL. +*/ +static Evas_Object *_add_clock_sublist_date_btn(struct _ug_data *data) +{ + Evas_Object *date_btn; + char buf[BUF_SIZE]; + + if (!data) { + _ERR("data is null."); + return NULL; + } + + date_btn = utils_add_button(data->base); + if (!date_btn) { + _ERR("add button failed."); + return NULL; + } + + elm_object_style_set(date_btn, BTN_STYLE_LIST_BTN); + elm_object_text_set(date_btn, BTN_TEXT_DATE); + + elm_box_pack_end(data->sublist_box, date_btn); + + elm_object_focus_set(date_btn, EINA_TRUE); + + utils_get_date_value(data->date); + + snprintf(buf, sizeof(buf), + "%02d / %02d / %04d", data->date[DATE_MONTH], + data->date[DATE_DAY], data->date[DATE_YEAR]); + + elm_object_part_text_set(date_btn, BTN_PART_VALUE, (const char *)buf); + + evas_object_event_callback_add(date_btn, + EVAS_CALLBACK_KEY_DOWN, _key_down_on_btns_cb, data); + evas_object_smart_callback_add(date_btn, + "clicked", _date_btn_clicked_cb, data); + evas_object_event_callback_add(date_btn, + EVAS_CALLBACK_MOUSE_IN, _date_btn_mouse_in_cb, NULL); + evas_object_event_callback_add(date_btn, + EVAS_CALLBACK_MOUSE_OUT, _date_btn_mouse_out_cb, NULL); + + return date_btn; +} + +/** +* CLICKED event callback function. +* +* This is the clicked event callback function for Time button. +* When user clicks the Time button or ENTER key is pressed +* on this button, this function will be called to show sub UI +* of Time button. +* +* @param[in]: priv : the user data. +* @param[in]: obj : the Time button. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _time_btn_clicked_cb(void *priv, Evas_Object *obj, void *ei) +{ + struct _ug_data *data; + + if (!priv) + return; + + data = priv; + data->cur_btn = obj; + + view_time_spin_ctrl_create(data->win, data->base); + + elm_object_signal_emit(obj, SIGNAL_NAME_AFTER_CLICK, + SIGNAL_SOURCE_BTN); +} + +/** +* Refresh text of Time button. +* +* @param[in]: btn : the Time button. +* @param[in]: time : the refreshed value of time. +* +* @return: void. +*/ +static void _refresh_time_btn_text(Evas_Object *btn, int *time) +{ + int mode; + char buf[BUF_SIZE]; + int ret; + + if (!btn || !time) + return; + + mode = 0; + ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); + if (ret != 0) { + _ERR("vconf get value failed."); + return; + } + + if (mode) { + snprintf(buf, sizeof(buf), "%02d : %02d", + time[TIME_HOUR], time[TIME_MINUTE]); + } else { + if (time[TIME_HOUR] >= 12) { + time[TIME_HOUR] -= 12; + time[TIME_AMPM] = 1; + } else { + time[TIME_AMPM] = 0; + } + + snprintf(buf, sizeof(buf), "%02d : %02d : %s", + time[TIME_HOUR], time[TIME_MINUTE], + time[TIME_AMPM] == 1 ? PM : AM); + } + + elm_object_part_text_set(btn, BTN_PART_VALUE, (const char *)buf); +} + +/** +* MOUSEIN event callback function. +* +* This is the MOUSEIN event callback function for Time button. +* When the mouse moves in the region of Time button, this +* function will be called. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas canvas. +* @param[in]: obj : the Time button. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _time_btn_mouse_in_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ + if (!obj) + return; + + elm_object_focus_set(obj, EINA_TRUE); +} + +/** +* MOUSEOUT event callback function. +* +* This is the MOUSEOUT event callback function for Time button. +* When the mouse moves out of the region of Time button, this +* function will be called. Till now there is no operation in this +* function, and you can add operations here as needed. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas canvas. +* @param[in]: obj : the Time button. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _time_btn_mouse_out_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ + /* TODO: Add necessary operations when needed. */ +} + +/** +* This function creates the Time item button. +* +* @param[in]: data : the user data. +* +* @return: The created evas object Date button or NULL. +*/ +static Evas_Object *_add_clock_sublist_time_btn( + struct _ug_data *data) +{ + Evas_Object *time_btn; + + if (!data || !data->base) { + _ERR("invalid argument."); + return NULL; + } + + time_btn = utils_add_button(data->base); + if (!time_btn) { + _ERR("add time button failed."); + return NULL; + } + + elm_object_style_set(time_btn, BTN_STYLE_LIST_BTN); + elm_object_text_set(time_btn, BTN_TEXT_TIME); + + elm_box_pack_end(data->sublist_box, time_btn); + + /* Set hour : minute : AM/PM for time button. */ + utils_get_time_value(data->time); + + _refresh_time_btn_text(time_btn, data->time); + + evas_object_event_callback_add(time_btn, + EVAS_CALLBACK_KEY_DOWN, _key_down_on_btns_cb, data); + evas_object_smart_callback_add(time_btn, + "clicked", _time_btn_clicked_cb, data); + evas_object_event_callback_add(time_btn, + EVAS_CALLBACK_MOUSE_IN, _time_btn_mouse_in_cb, NULL); + evas_object_event_callback_add(time_btn, + EVAS_CALLBACK_MOUSE_OUT, _time_btn_mouse_out_cb, NULL); + + return time_btn; +} + +/** +* Create unused buttons. +* +* There is a unused region of clock UI gadget. We use blank +* buttons to implement this unused region. This function +* creates the unused region. +* +* @param[in]: data : the user data. +* +* @return: 0 - Success, -1 - Fail. +*/ +static int _add_clock_sublist_null_btn(struct _ug_data *data) +{ + Evas_Object *null_btn; + Evas_Object *last_btn; + int idx; + + if (!data || !data->base) { + _ERR("invalid argument."); + return -1; + } + + for (idx = 0; idx < CLOCK_SUBLIST_NULL_BTNS; idx++) { + null_btn = utils_add_button(data->base); + if (!null_btn) { + _ERR("add null button failed."); + return -1; + } + + elm_object_style_set(null_btn, BTN_STYLE_LIST_BTN); + elm_box_pack_end(data->sublist_box, null_btn); + } + + last_btn = utils_add_button(data->base); + if (!last_btn) { + _ERR("add last button failed."); + return -1; + } + + elm_object_style_set(last_btn, BTN_STYE_LAST_BTN); + elm_object_part_content_set( + data->base, SWALLOW_CLOCK_LAST, last_btn); + + return 0; +} + +/** +* Set moving directions of focus for created buttons. +* +* @param[in]: data : the user data. +* +* @return: void. +*/ +static void _set_btn_directions(struct _ug_data *data) +{ + Evas_Object *dbtn, *sbtn, *tbtn, *cbtn; + + if (!data || !data->date_btn || + !data->switch_btn || !data->time_btn) { + _ERR("all the sublist buttons may null."); + return; + } + + dbtn = data->date_btn; + sbtn = data->switch_btn; + tbtn = data->time_btn; + cbtn = data->close_btn; + + elm_object_focus_next_object_set(dbtn, dbtn, ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(dbtn, dbtn, ELM_FOCUS_UP); + elm_object_focus_next_object_set(dbtn, sbtn, ELM_FOCUS_DOWN); + /* Maybe it's not necessary to set ELM_FOCUS_RIGHT for date_btn */ + elm_object_focus_next_object_set(dbtn, cbtn, ELM_FOCUS_RIGHT); + + elm_object_focus_next_object_set(sbtn, tbtn, ELM_FOCUS_DOWN); + elm_object_focus_next_object_set(sbtn, dbtn, ELM_FOCUS_UP); + /* Maybe it's not necessary to set ELM_FOCUS_RIGHT for switch_btn */ + elm_object_focus_next_object_set(sbtn, cbtn, ELM_FOCUS_RIGHT); + + elm_object_focus_next_object_set(tbtn, tbtn, ELM_FOCUS_DOWN); + elm_object_focus_next_object_set(tbtn, sbtn, ELM_FOCUS_UP); + /* Maybe it's not necessary to set ELM_FOCUS_RIGHT for time_btn */ + elm_object_focus_next_object_set(tbtn, cbtn, ELM_FOCUS_RIGHT); + + elm_object_focus_next_object_set(cbtn, cbtn, ELM_FOCUS_UP); + elm_object_focus_next_object_set(cbtn, cbtn, ELM_FOCUS_DOWN); + elm_object_focus_next_object_set(cbtn, dbtn, ELM_FOCUS_LEFT); +} + +/** +* Create buttons for clock UI gadget. +* +* The main UI of clock UI gadget contains three items which are Date, +* 24 Hour mode and Time. And they are implemented using buttons. +* This function is to create these three buttons. +* +* @param[in]: data : the user data. +* +* @return: 0 - Success, -1 - Fail. +*/ +static int _add_clock_sublist_btn(struct _ug_data *data) +{ + Evas_Object *date_btn; + Evas_Object *switch_btn; + Evas_Object *time_btn; + int ret; + + if (!data) + return -1; + + date_btn = _add_clock_sublist_date_btn(data); + if (!date_btn) { + _ERR("add date button failed."); + return -1; + } + + data->date_btn = date_btn; + + switch_btn = _add_clock_sublist_switch_btn(data); + if (!switch_btn) { + _ERR("add switch button failed."); + evas_object_del(data->date_btn); + return -1; + } + + data->switch_btn = switch_btn; + + time_btn = _add_clock_sublist_time_btn(data); + if (!time_btn) { + _ERR("add time button failed."); + evas_object_del(data->date_btn); + evas_object_del(data->switch_btn); + return -1; + } + + data->time_btn = time_btn; + + ret = _add_clock_sublist_null_btn(data); + if (ret != 0) { + _ERR("add null buttons failed."); + evas_object_del(data->date_btn); + evas_object_del(data->switch_btn); + evas_object_del(data->time_btn); + return -1; + } + + _set_btn_directions(data); + + return 0; +} + +/** +* Create UI components of clock UI gadget. +* +* This function creates the three UI components of clock UI gadget: +* Date, 24Hour mode and Time. +* +* @param[in]: data : the user data. +* +* @return: 0 - Success, -1 - Fail. +*/ +static int _add_clock_sublist(struct _ug_data *data) +{ + Evas_Object *box; + int ret; + + if (!data) + return -1; + + box = utils_add_box(data->base); + if (!box) { + _ERR("add clock sublist box failed."); + return -1; + } + + data->sublist_box = box; + + ret = _add_clock_sublist_btn(data); + if (ret != 0) { + _ERR("add clock sublist btn failed."); + evas_object_del(data->sublist_box); + return -1; + } + + elm_object_part_content_set( + data->base, SWALLOW_CLOCK_LIST, data->sublist_box); + + return 0; +} + +/** +* Create the UI of this ui gadget. +* +* This function creates all the UI components of this UI gadget. +* +* @param[in]: ug : the UI gadget created by ug_create(). +* @param[in]: mode : the mode of ug, fullview or frameview. +* @param[in]: service : argument for the UI gadget. +* @param[in]: priv : the user data. +* +* @return: The base layout of this UI gadget. +*/ +static void *_on_create(ui_gadget_h ug, + enum ug_mode mode, service_h service, void *priv) +{ + struct _ug_data *data; + Evas_Object *win; + Evas_Object *base; + Evas_Object *close_btn; + int ret; + + if (!ug || !priv) { + _ERR("ug or private data is null."); + return NULL; + } + + if ((mode == UG_MODE_INVALID) || + (mode >= UG_MODE_MAX) || (mode < UG_MODE_FULLVIEW)) { + _ERR("invalid ug mode."); + return NULL; + } + + elm_theme_overlay_add(NULL, UG_CLOCK_EDJTHEME); + + data = priv; + data->ug = ug; + + win = ug_get_window(); + if (!win) { + _ERR("ug get window failed."); + _free_ug_data(data); + return NULL; + } + + data->win = win; + + elm_win_focus_highlight_enabled_set(win, EINA_TRUE); + + base = utils_add_layout(win); + if (!base) { + _ERR("add base layout failed."); + _free_ug_data(data); + return NULL; + } + + elm_layout_file_set(base, UG_CLOCK_EDJFILE, UG_CLOCK_GRP); + elm_object_part_text_set( + base, TEXT_INTRO, STRINGS_INTRO); + data->base = base; + + close_btn = _add_close_btn(base, data); + if (!close_btn) { + _ERR("add close button for ug clock failed."); + _free_ug_data(data); + return NULL; + } + + ret = _add_clock_sublist(data); + if (ret == -1) { + _ERR("add clock sublist failed."); + evas_object_del(close_btn); + _free_ug_data(data); + return NULL; + } + + evas_object_data_set(data->base, UG_CLOCK_DATA_ID, data); + + return base; +} + +/** +* Destroy this UI gadget. +* +* This function destroyes all the UI components of this UI gadget. +* +* @param[in]: ug : UI gadget. +* @param[in]: service : argument of this UI gadget. +* @param[in]: priv : the user data. +* +* @return: void. +*/ +static void _on_destroy(ui_gadget_h ug, service_h service, void *priv) +{ + struct _ug_data *data; + + if (!ug || !priv) { + _ERR("ug or private data is null."); + return; + } + + data = priv; + + _free_ug_data(data); +} + +/** +* Refresh text of Date button. +* +* @param[in]: btn : the Date button. +* @param[in]: date : the user data. +* +* @return: void. +*/ +static void _refresh_date_btn_text(Evas_Object *btn, unsigned int *date) +{ + char buf[BUF_SIZE]; + + if (!btn || !date) + return; + + snprintf(buf, sizeof(buf), "%02d / %02d / %04d", + date[DATE_MONTH], date[DATE_DAY], date[DATE_YEAR]); + elm_object_part_text_set(btn, BTN_PART_VALUE, (const char *)buf); +} + +/** +* Refresh text of 24 Hour mode button. +* +* @param[in]: btn : the 24 Hour mode button. +* @param[in]: mode : the refreshed value of mode. +* +* @return: void. +*/ +static void _refresh_switch_btn_text(Evas_Object *btn, int mode) +{ + if (!btn) + return; + + if (mode) + elm_object_part_text_set(btn, BTN_PART_VALUE, ON); + else + elm_object_part_text_set(btn, BTN_PART_VALUE, OFF); +} + +/** +* Change the way of displayed time. +* +* This function displays time as the 24 Hour mode changes. +* If 24 Hour mode is ON, we display the time using 24 hour mode. +* If 24 Hour mode is OFF, we display the time using 12 hour mode. +* +* @param[in]: btn : the Time button. +* @param[in]: time : the value of time. +* +* @return: void. +*/ +static void _refresh_time_btn_as_mode(Evas_Object *btn, int *time) +{ + int mode; + int ret; + char buf[BUF_SIZE]; + + if (!btn || !time) + return; + + mode = 0; + ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); + if (ret != 0) { + _ERR("vconf get value failed."); + return; + } + + if (mode) + snprintf(buf, sizeof(buf), "%02d : %02d", + time[TIME_HOUR], time[TIME_MINUTE]); + else + snprintf(buf, sizeof(buf), "%02d : %02d : %s", + time[TIME_HOUR], time[TIME_MINUTE], + time[TIME_AMPM] == 1 ? PM : AM); + + elm_object_part_text_set(btn, BTN_PART_VALUE, (const char *)buf); +} + +/** +* Refresh text of buttons. +* +* @param[in]: data : the user data. +* +* @return: void. +*/ +static void _refresh_btn_text(struct _ug_data *data) +{ + int ret; + + if (!data || !data->cur_btn) + return; + + if (data->date_btn == data->cur_btn) { + _refresh_date_btn_text(data->cur_btn, data->date); + } else if (data->switch_btn == data->cur_btn) { + ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &data->mode); + if (ret != 0) { + _ERR("vconf get value failed."); + return; + } + + _refresh_switch_btn_text(data->cur_btn, data->mode); + + utils_get_time_value(data->time); + _refresh_time_btn_as_mode(data->time_btn, data->time); + } else { + _refresh_time_btn_text(data->cur_btn, data->time); + } +} + +/** +* Refresh the UI of clock UI gadget. +* +* This function refreshes the UI of clock UI gadget. For example, +* when the user sets a new date, this function will be called to refresh +* the date item of clock UI gadget. They are the same as mode item +* time item of clock UI gadget. +* +* @param[in]: base : the base layout of clock UI gadget. +* @param[in]: date : the user data. +* @param[in]: time : the new time need to be refreshed. +* +* @return: void. +*/ +void view_ug_clock_refresh(Evas_Object *base, unsigned int *date, int *time) +{ + struct _ug_data *data; + int idx; + + if (!base) { + _ERR("invalid argument."); + return; + } + + data = evas_object_data_get(base, UG_CLOCK_DATA_ID); + if (!data) { + _ERR("evas object data get failed. ID: %s", UG_CLOCK_DATA_ID); + return; + } + + elm_object_focus_set(data->cur_btn, EINA_TRUE); + + if (date) + for (idx = DATE_MONTH; idx < DATE_MAX; idx++) + data->date[idx] = date[idx]; + + if (time) + for (idx = TIME_HOUR; idx < TIME_MAX; idx++) + data->time[idx] = time[idx]; + + _refresh_btn_text(data); +} + +/** +* ug module init function. +* +* This function is the first function which is called by caller +* using dlopen() and dlsym(). +* +* @param[in]: ops : the struct ug_module_ops including +* callbacks which will be used in UI gadget module. +* +* @return: 0 - Success, -1 - Fail. +*/ +UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) +{ + struct _ug_data *priv; + + if (!ops) { + _ERR("invalid argument ops."); + return -1; + } + + priv = calloc(1, sizeof(*priv)); + if (!priv) { + _ERR("calloc memory for ug private data failed."); + return -1; + } + + ops->create = _on_create; + ops->destroy = _on_destroy; + ops->priv = priv; + ops->opt = UG_OPT_INDICATOR_ENABLE; + + return 0; +} + +/** +* ug module exit function. +* +* This function will be called by the caller when ug is unloaded. +* +* @param[in]: ops : the pointer of struct ug_module_ops. +* +* @return: void. +*/ +UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops) +{ + if (!ops) { + _ERR("invalid argument ops."); + return; + } +} diff --git a/ug/system/clock/src/ug_clock.cpp b/ug/system/clock/src/ug_clock.cpp deleted file mode 100644 index 4037c28..0000000 --- a/ug/system/clock/src/ug_clock.cpp +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef UG_MODULE_API -#define UG_MODULE_API __attribute__ ((visibility("default"))) -#endif - -#include - -#include "util.h" -#include "ug_clock.h" -#include "defs.h" -#include - -#include "ClockMainView.h" -#include "ClockSublistView.h" - -#define CLOCK_SUBLIST_NULL_BTNS 2 -#define UG_CLOCK_DATA_ID "ug_clock_data" - -#if defined (__cplusplus) -extern "C" { -#endif - -struct _ug_data { - ui_gadget_h ug; - - Evas_Object *win; - Evas_Object *base; - - CViewMgr *pViewMgr; - CClockMainView *pClockMainView; - CClockSublistView *pClockSublistView; -}; - -static void *_on_create(ui_gadget_h ug, - enum ug_mode mode, service_h service, void *priv) -{ - struct _ug_data *ugd; - Evas_Object *win; - - if (!ug || !priv) { - _ERR("ug or private data is null."); - return NULL; - } - - if ((mode == UG_MODE_INVALID) || (mode >= UG_MODE_MAX) || (mode < UG_MODE_FULLVIEW)) { - _ERR("invalid ug mode."); - return NULL; - } - - elm_theme_overlay_add(NULL, UG_CLOCK_EDJTHEME); - - ugd = (struct _ug_data *) priv; - ugd->ug = ug; - - win = (Evas_Object *) ug_get_window(); - if (!win) { - _ERR("ug get window failed."); - return NULL; - } - - ugd->win = win; - - elm_win_focus_highlight_enabled_set(win, EINA_TRUE); - - - CViewMgr::Initialize(ugd->win, NULL); - ugd->pViewMgr = CViewMgr::GetInstance(); - if(!ugd->pViewMgr) { - CViewMgr::Finalize(); - _ERR("Fail to get CViewMgr instance"); - return NULL; - } - ugd->pClockMainView = new CClockMainView(CLOCK_MAIN_VIEW); - if(!ugd->pViewMgr->AddView(ugd->pClockMainView)) { - _ERR("Fail to add pFbBaseView"); - CViewMgr::Finalize(); - return false; - } - - ugd->pClockSublistView = new CClockSublistView(CLOCK_SUBLIST_VIEW); - if(!ugd->pViewMgr->AddView(ugd->pClockSublistView)) { - _ERR("Fail to add pFbBaseView"); - CViewMgr::Finalize(); - return false; - } - - ugd->pViewMgr->PushView(CLOCK_MAIN_VIEW, ugd->ug); - ugd->base = ugd->pClockMainView->Base(); - - return ugd->base; -} - -/** -* Destroy this UI gadget. -* -* This function destroyes all the UI components of this UI gadget. -* -* @param[in]: ug : UI gadget. -* @param[in]: service : argument of this UI gadget. -* @param[in]: priv : the user data. -* -* @return: void. -*/ -static void _on_destroy(ui_gadget_h ug, service_h service, void *priv) -{ - CViewMgr::Finalize(); -} - -/** -* ug module init function. -* -* This function is the first function which is called by caller -* using dlopen() and dlsym(). -* -* @param[in]: ops : the struct ug_module_ops including -* callbacks which will be used in UI gadget module. -* -* @return: 0 - Success, -1 - Fail. -*/ -UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) -{ - struct _ug_data *priv; - - if (!ops) { - _ERR("invalid argument ops."); - return -1; - } - - priv = (struct _ug_data *) calloc(1, sizeof(*priv)); - if (!priv) { - _ERR("calloc memory for ug private data failed."); - return -1; - } - - ops->create = _on_create; - ops->destroy = _on_destroy; - ops->priv = priv; - ops->opt = UG_OPT_INDICATOR_ENABLE; - - return 0; -} - -/** -* ug module exit function. -* -* This function will be called by the caller when ug is unloaded. -* -* @param[in]: ops : the pointer of struct ug_module_ops. -* -* @return: void. -*/ -UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops) -{ - if (!ops) { - _ERR("invalid argument ops."); - return; - } -} - -#if defined (__cplusplus) -}; -#endif diff --git a/ug/system/clock/src/ug_clock_spin_control.c b/ug/system/clock/src/ug_clock_spin_control.c new file mode 100644 index 0000000..bf5f0d0 --- /dev/null +++ b/ug/system/clock/src/ug_clock_spin_control.c @@ -0,0 +1,797 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "dbg.h" +#include "ug_clock_define.h" +#include "ug_clock.h" +#include "ug_clock_spin_control.h" +#include "ug_clock_utils.h" + +#define ARROW_BTN_DATA_ID "arrow_btn_data_id" +#define DATE_SPIN_DATA_ID "spin_ctrl_data" +#define YEAR_BTN (2) + +#define UP_ARROW (1) +#define DOWN_ARROW (0) + +#define CLICKED "clicked" + +struct _date_spin_data { + Evas_Object *win; + Evas_Object *base; + Evas_Object *ug_base; + + unsigned int date[DATE_MAX]; + int entry[DATE_MAX]; + + Eina_Array *spin_array; +}; + +static const int days[] = { + 31, + 28, + 31, + 30, + 31, + 30, + 31, + 31, + 30, + 31, + 30, + 31 +}; + +static void _destroy(Evas_Object *base); +static void _update_date_value(Evas_Object *spin, + unsigned int *date, int spin_idx); + +/** +* Free user data of date spin. +* +* @param[in]: data : the user data. +* +* @return: void. +*/ +static void _free_date_spin_data(struct _date_spin_data *data) +{ + if (!data) + return; + + if (data->base) { + evas_object_del(data->base); + data->base = NULL; + } + + if (data->spin_array) + eina_array_free(data->spin_array); + + free(data); +} + +/** +* Evas_Smart_Cb type callback for handling click event. +* +* @param[in]: priv : the user data. +* @param[in]: obj : the corresponding object which the click event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +void _arrow_btn_clicked_cb(void *priv, Evas_Object *obj, void *ev) +{ + struct _date_spin_data *data; + Evas_Object *cur_btn; + Evas_Object *btn; + Evas_Object *up_btn; + int i; + int idx; + int flag; + + if (!priv || !obj) + return; + + data = priv; + cur_btn = evas_object_data_get(obj, ARROW_BTN_DATA_ID); + if (!cur_btn) { + _ERR("evas object data get failed. ID: %s", ARROW_BTN_DATA_ID); + return; + } + + up_btn = elm_object_part_content_get(cur_btn, UP_ARROW_SWALLOW); + if (!up_btn) { + _ERR("part %s content get failed.", UP_ARROW_SWALLOW); + return; + } + + if (obj == up_btn) + flag = 1; + else + flag = 0; + + idx = 0; + for (i = DATE_DAY; i < DATE_MAX; i++) { + btn = eina_array_data_get(data->spin_array, i); + if (!btn) { + _ERR("eina array data get failed. button index: %d", i); + return; + } + + if (cur_btn == btn) { + idx = i; + break; + } + } + + if (flag) + data->date[idx]++; + else + data->date[idx]--; + + _update_date_value(cur_btn, data->date, idx); + +} + +/** +* Create arrow buttons for date spin. +* +* @param[in]: data : the user data. +* @param[in]: obj : the corresponding object which the arrow created on. +* @param[in]: flag : 1 - up arrow button, 0 - down arrow button. +* +* @return: the created arrow button. +*/ +static Evas_Object *_add_arrow_btn(struct _date_spin_data *data, + Evas_Object *obj, int flag) +{ + Evas_Object *btn; + + if (!data || !data->base || !obj) + return NULL; + + btn = utils_add_button(data->base); + if (!btn) { + _ERR("utils add button failed."); + return NULL; + } + + elm_object_style_set(btn, BTN_STYLE_ARROW_BTN); + + if (flag == UP_ARROW) + elm_object_part_content_set(obj, UP_ARROW_SWALLOW, btn); + else + elm_object_part_content_set(obj, DOWN_ARROW_SWALLOW, btn); + + elm_object_focus_allow_set(btn, EINA_FALSE); + + evas_object_smart_callback_add(btn, "clicked", + _arrow_btn_clicked_cb, data); + + evas_object_data_set(btn, ARROW_BTN_DATA_ID, obj); + evas_object_raise(btn); + evas_object_repeat_events_set(btn, EINA_FALSE); + + return btn; +} + +/** +* Create date spin. +* +* @param[in]: data : the user data. +* +* @return: 0 - Success, -1 - Fail. +*/ +static int _add_date_spin(struct _date_spin_data *data) +{ + Evas_Object *btn, *uparrow, *downarrow; + Eina_Array *array; + char buf[BUF_SIZE]; + int idx; + + if (!data || !data->base) { + _ERR("invalid arguments."); + return -1; + } + + array = eina_array_new(1); + if (!array) { + _ERR("new eina array failed."); + return -1; + } + + for (idx = DATE_MONTH; idx < DATE_MAX; idx++) { + btn = utils_add_button(data->base); + if (!btn) { + _ERR("add spin control button failed."); + return -1; + } + + elm_object_style_set(btn, BTN_STYLE_SPIN_CTRL_BTN); + if (idx == YEAR_BTN) + elm_object_style_set(btn, BTN_STYLE_SPIN_CTRL_YEAR_BTN); + + snprintf(buf, sizeof(buf), "spin_ctrl_%d_swallow", idx + 1); + elm_object_part_content_set( + data->base, (const char *)buf, btn); + + eina_array_push(array, btn); + + uparrow = _add_arrow_btn(data, btn, UP_ARROW); + if (!uparrow) { + _ERR("add up arrow button failed."); + evas_object_del(btn); + return -1; + } + + downarrow = _add_arrow_btn(data, btn, DOWN_ARROW); + if (!downarrow) { + _ERR("add down arrow button failed."); + evas_object_del(btn); + evas_object_del(uparrow); + return -1; + } + } + + elm_object_focus_set( + eina_array_data_get(array, 0), EINA_TRUE); + + data->spin_array = array; + + return 0; +} + +/** +* Evas_Smart_Cb type callback for handling click event. +* +* @param[in]: priv : the user data. +* @param[in]: obj : the corresponding object which the click event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _date_spin_clicked_cb(void *priv, Evas_Object *obj, void *ei) +{ + struct _date_spin_data *data; + + if (!priv) { + _ERR("invalid argument."); + return; + } + + data = priv; + + utils_set_date_value(data->date); + + view_ug_clock_refresh(data->ug_base, data->date, NULL); + + _destroy(data->base); +} + +/** +* Evas_Object_Event_Cb type callback for handling mouse in event. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the mouse in event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _date_spin_mousein_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ + if (!obj) + return; + + elm_object_focus_set(obj, EINA_TRUE); +} + +/** +* Evas_Object_Event_Cb type callback for handling mouse out event. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the mouse out event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _date_spin_mouseout_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ +} + +/** +* Evas_Smart_Cb type callback for handling click event. +* +* @param[in]: priv : the user data. +* @param[in]: obj : the corresponding object which the click event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static int _add_date_spin_click_event(struct _date_spin_data *data) +{ + Evas_Object *spin; + Eina_Array *array; + int idx; + + if (!data || !data->spin_array) { + _ERR("no spin control buttons."); + return -1; + } + + array = data->spin_array; + + for (idx = DATE_MONTH; idx < DATE_MAX; idx++) { + spin = eina_array_data_get(array, idx); + if (!spin) { + _ERR("eina array data get failed. spin index: %d", idx); + return -1; + } + + evas_object_smart_callback_add(spin, CLICKED, + _date_spin_clicked_cb, data); + evas_object_event_callback_add(spin, EVAS_CALLBACK_MOUSE_IN, + _date_spin_mousein_cb, NULL); + evas_object_event_callback_add(spin, EVAS_CALLBACK_MOUSE_OUT, + _date_spin_mouseout_cb, NULL); + } + + return 0; +} + +/** +* Set focus move directions among buttons. +* +* @param[in]: array : the eina array including buttons. +* +* @return: void. +*/ +static void _set_date_spin_direction(Eina_Array *array) +{ + Evas_Object *spin; + int idx; + + if (!array) { + _ERR("spin control button array is null."); + return; + } + + for (idx = DATE_MONTH; idx < DATE_MAX; idx++) { + spin = eina_array_data_get(array, idx); + if (!spin) { + _ERR("there is no button. idx: %d", idx); + return; + } + + elm_object_focus_next_object_set(spin, spin, ELM_FOCUS_UP); + elm_object_focus_next_object_set(spin, spin, ELM_FOCUS_DOWN); + + if (idx == DATE_MONTH) { + elm_object_focus_next_object_set(spin, + eina_array_data_get(array, idx+1), + ELM_FOCUS_NEXT); + elm_object_focus_next_object_set(spin, spin, + ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(spin, + eina_array_data_get(array, idx + 1), + ELM_FOCUS_RIGHT); + } else if (idx == DATE_YEAR) { + elm_object_focus_next_object_set(spin, spin, + ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(spin, + eina_array_data_get(array, idx - 1), + ELM_FOCUS_LEFT); + } else { + elm_object_focus_next_object_set(spin, + eina_array_data_get(array, idx + 1), + ELM_FOCUS_NEXT); + elm_object_focus_next_object_set(spin, + eina_array_data_get(array, idx + 1), + ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(spin, + eina_array_data_get(array, idx - 1), + ELM_FOCUS_LEFT); + } + } +} + +/** +* Initialize value of date spin. +* +* @param[in]: data : the user data. +* +* @return: void. +*/ +static void _init_date_spin(struct _date_spin_data *data) +{ + Evas_Object *spin; + Eina_Array *spin_array; + char buf[BUF_SIZE]; + + if (!data || !data->spin_array) + return; + + spin_array = data->spin_array; + + utils_get_date_value(data->date); + + spin = eina_array_data_get(spin_array, 0); + if (!spin) { + _ERR("month button is null."); + return; + } + + snprintf(buf, sizeof(buf), "%02d", data->date[DATE_MONTH]); + elm_object_text_set(spin, buf); + + spin = eina_array_data_get(spin_array, 1); + if (!spin) { + _ERR("month button is null."); + return; + } + + snprintf(buf, sizeof(buf), "%02d", data->date[DATE_DAY]); + elm_object_text_set(spin, buf); + + spin = eina_array_data_get(spin_array, 2); + if (!spin) { + _ERR("month button is null."); + return; + } + + data->date[DATE_YEAR] = data->date[DATE_YEAR] < 2000 ? + 2000 : data->date[DATE_YEAR]; + snprintf(buf, sizeof(buf), "%04d", data->date[DATE_YEAR]); + elm_object_text_set(spin, buf); +} + +/** +* Update value of date spin. +* +* @param[in]: spin : the corresponding date spin whose value need to update. +* @param[in]: date : the value to be updated. +* @param[in]: spin_idx : the index of corresponding date spin. +* +* @return: void. +*/ +static void _update_date_value(Evas_Object *spin, + unsigned int *date, int spin_idx) +{ + char buf[BUF_SIZE]; + + if (!spin || !date) + return; + if (spin_idx < DATE_MONTH || spin_idx >= DATE_MAX) + return; + + if (spin_idx == DATE_MONTH) { + if (date[spin_idx] > 12) + date[spin_idx] = 1; + if (date[spin_idx] <= 0) + date[spin_idx] = 12; + + snprintf(buf, sizeof(buf), "%02d", date[spin_idx]); + } else if (spin_idx == DATE_DAY) { + if (date[spin_idx] > days[date[DATE_MONTH] - 1]) + date[spin_idx] = 1; + if (date[spin_idx] <= 0) + date[spin_idx] = days[date[DATE_MONTH] - 1]; + + snprintf(buf, sizeof(buf), "%02d", date[spin_idx]); + } else { + if (date[spin_idx] > 2037) + date[spin_idx] = 2000; + if (date[spin_idx] < 2000) + date[spin_idx] = 2037; + + snprintf(buf, sizeof(buf), "%04d", date[spin_idx]); + } + + elm_object_text_set(spin, buf); +} + +/** +* Evas_Object_Event_Cb type callback for handling key press event. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the key press event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _date_spin_keydown_cb(void *priv, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *event; + struct _date_spin_data *data; + const char *keyname; + int i, idx; + Evas_Object *spin; + Eina_Array *spin_array; + char buf[BUF_SIZE]; + + if (!priv || !ei || !obj) { + _ERR("invalid argument."); + return; + } + + event = ei; + keyname = event->keyname; + if (!keyname) + return; + + data = priv; + + if (!data->spin_array) + return; + + spin_array = data->spin_array; + + idx = -1; + for (i = DATE_MONTH; i < DATE_MAX; i++) { + spin = eina_array_data_get(spin_array, i); + if (!spin) + return; + + if (obj == spin) { + idx = i; + break; + } + } + + if (idx == -1) { + _ERR("can't get the right spin."); + return; + } + + if (!strncmp(keyname, KEY_UP, strlen(keyname))) { + data->date[idx]++; + _update_date_value(obj, data->date, idx); + } else if (!strncmp(keyname, KEY_DOWN, strlen(keyname))) { + data->date[idx]--; + _update_date_value(obj, data->date, idx); + } else if (!strncmp(keyname, KEY_0, strlen(keyname)) || + !strncmp(keyname, KEY_1, strlen(keyname)) || + !strncmp(keyname, KEY_2, strlen(keyname)) || + !strncmp(keyname, KEY_3, strlen(keyname)) || + !strncmp(keyname, KEY_4, strlen(keyname)) || + !strncmp(keyname, KEY_5, strlen(keyname)) || + !strncmp(keyname, KEY_6, strlen(keyname)) || + !strncmp(keyname, KEY_7, strlen(keyname)) || + !strncmp(keyname, KEY_8, strlen(keyname)) || + !strncmp(keyname, KEY_9, strlen(keyname))) { + if (idx != DATE_YEAR) { + if (data->entry[idx] == 0) { + data->entry[idx]++; + + data->date[idx] = atoi(keyname); + } else { + data->entry[idx]++; + + data->date[idx] = data->date[idx] * 10 + + atoi(keyname); + data->entry[idx] = 0; + elm_object_focus_next(obj, ELM_FOCUS_NEXT); + } + } else { + if (data->entry[idx] == 0) { + data->entry[idx]++; + data->date[idx] = atoi(keyname); + + snprintf(buf, sizeof(buf), "%04d", + data->date[idx]); + elm_object_text_set(obj, buf); + return; + } else if (data->entry[idx] == 3) { + data->date[idx] = data->date[idx] * 10 + + atoi(keyname); + data->entry[idx] = 0; + } else { + data->entry[idx]++; + data->date[idx] = data->date[idx] * 10 + + atoi(keyname); + + snprintf(buf, sizeof(buf), "%04d", + data->date[idx]); + elm_object_text_set(obj, buf); + return; + } + } + + _update_date_value(obj, data->date, idx); + } else if (!strncmp(keyname, KEY_RIGHT, strlen(keyname)) || + !strncmp(keyname, KEY_LEFT, strlen(keyname))) { + data->entry[idx] = 0; + } else if (!strncmp(keyname, KEY_BACK, strlen(keyname))) { + _destroy(data->base); + } +} + +/** +* Add key event for date spin. +* +* @param[in]: data : the user data. +* +* @return: 0 - Success, -1 - Fail. +*/ +static int _add_date_spin_key_event(struct _date_spin_data *data) +{ + Evas_Object *spin; + int idx; + + if (!data || !data->spin_array) { + _ERR("invalid argument."); + return -1; + } + + for (idx = DATE_MONTH; idx < DATE_MAX; idx++) { + spin = eina_array_data_get(data->spin_array, idx); + if (!spin) { + _ERR("button is null."); + return -1; + } + + evas_object_event_callback_add(spin, EVAS_CALLBACK_KEY_DOWN, + _date_spin_keydown_cb, data); + } + + return 0; +} + +/** +* Create data spin. +* +* @param[in]: data : the user data. +* +* @return: 0 - Success, -1 - Fail. +*/ +static int _add_spin(struct _date_spin_data *data) +{ + int ret; + + if (!data || !data->base) { + _ERR("private data is null."); + return -1; + } + + ret = _add_date_spin(data); + if (ret != 0) { + _ERR("add spin control buttons failed."); + return -1; + } + + _init_date_spin(data); + + _set_date_spin_direction(data->spin_array); + + ret = _add_date_spin_click_event(data); + if (ret != 0) { + _ERR("add click event for spin control button failed."); + return -1; + } + + ret = _add_date_spin_key_event(data); + if (ret != 0) { + _ERR("add key event for spin control button failed."); + return -1; + } + + return 0; +} + +/** +* Create all UI components of date spin. +* +* @param[in]: data : the user data. +* +* @return: the base layout of date spin. +*/ +static Evas_Object *_create(struct _date_spin_data *data) +{ + Evas_Object *base; + int ret; + + if (!data || !data->win) { + _ERR("window for spin control base is null."); + return NULL; + } + + base = utils_add_layout(data->win); + if (!base) { + _ERR("add base layout for spin control failed."); + return NULL; + } + + data->base = base; + elm_layout_file_set(base, UG_CLOCK_EDJFILE, SPIN_CTRL_GRP); + + ret = _add_spin(data); + if (ret != 0) { + _ERR("add spin control failed."); + evas_object_del(data->base); + data->base = NULL; + return NULL; + } + + evas_object_data_set(data->base, DATE_SPIN_DATA_ID, data); + + return base; +} + +/** +* Destroy all the UI componets of date spin. +* +* @param[in]: base : the base layout of date spin. +* +* @return: void. +*/ +static void _destroy(Evas_Object *base) +{ + struct _date_spin_data *data; + + if (!base) { + _ERR("base is null."); + return; + } + + data = evas_object_data_get(base, DATE_SPIN_DATA_ID); + if (!data) { + _ERR("evas object get data failed. ID: %s", DATE_SPIN_DATA_ID); + return; + } + + _free_date_spin_data(data); +} + +/** +* Entry of creating date spin UI. +* +* @param[in]: win : window. +* @param[in]: ug_base : the base layout of clock UI gadget. +* +* @return: void. +*/ +void view_spin_control_create(Evas_Object *win, + Evas_Object *ug_base) +{ + Evas_Object *base; + struct _date_spin_data *data; + + if (!win || !ug_base) { + _ERR("the window of spin control is null."); + return; + } + + data = calloc(1, sizeof(*data)); + if (!data) { + _ERR("calloc spin control data memory failed."); + return; + } + + data->win = win; + data->ug_base = ug_base; + + base = _create(data); + if (!base) { + _ERR("create spin control failed."); + _free_date_spin_data(data); + } +} diff --git a/ug/system/clock/src/ug_clock_sublist.c b/ug/system/clock/src/ug_clock_sublist.c new file mode 100644 index 0000000..47e93be --- /dev/null +++ b/ug/system/clock/src/ug_clock_sublist.c @@ -0,0 +1,516 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "dbg.h" +#include "ug_clock_define.h" +#include "ug_clock_sublist.h" +#include "ug_clock_utils.h" +#include "ug_clock.h" + +#define SUBLIST_BTN_NUM 2 +#define SUBLIST_DATA_ID "sublist_data" + +#define BOX_HPADDING 0 +#define BOX_VPADDING 2 + +#define CLICKED "clicked" + +struct _sublist_data { + Evas_Object *win; + Evas_Object *base; + Evas_Object *ug_base; + Evas_Object *box; + + unsigned int mode; + + Eina_Array *array; +}; + +static void _destroy(Evas_Object *base); + +/** +* Free user data of mode sublist. +* +* @param[in]: data : the user data of mode sublist. +* +* @return: void. +*/ +static void _free_sublist_data(struct _sublist_data *data) +{ + if (!data) + return; + + if (data->base) { + evas_object_del(data->base); + data->base = NULL; + } + + if (data->array) + eina_array_free(data->array); + + free(data); +} + +/** +* Evas_Smart_Cb type callback for handling click event. +* +* @param[in]: priv : the user data. +* @param[in]: obj : the corresponding object which the click event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _sublist_btn_clicked_cb(void *priv, Evas_Object *obj, void *ei) +{ + struct _sublist_data *data; + Eina_Array *array; + Evas_Object *on_btn, *off_btn; + int ret; + + if (!priv || !obj) { + _ERR("invalid argument."); + return; + } + + data = priv; + + if (!data->array) + return; + + array = data->array; + + on_btn = eina_array_data_get(array, 0); + off_btn = eina_array_data_get(array, 1); + if (!on_btn || !off_btn) { + _ERR("ON button or OFF button is null."); + return; + } + + if (obj == on_btn) + data->mode = 1; + else + data->mode = 0; + + ret = utils_set_vconf_value(VCONF_KEY_24HOUR_MODE, data->mode); + if (ret != 0) { + _ERR("set 24hour mode failed."); + return; + } + + view_ug_clock_refresh(data->ug_base, NULL, NULL); + + _destroy(data->base); +} + +/** +* Evas_Object_Event_Cb type callback for handling key press event. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the key press event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _key_down_on_sublist_btn_cb(void *priv, Evas *e, + Evas_Object *obj, void *ei) +{ + Evas_Object *on_btn, *off_btn; + Eina_Array *array; + Evas_Event_Key_Down *event; + struct _sublist_data *data; + const char *keyname; + int mode; + int ret; + + if (!priv || !ei || !obj) + return; + + data = priv; + + if (!data->array || !data->base) + return; + + array = data->array; + + event = ei; + + if (!event->keyname) + return; + + keyname = event->keyname; + + on_btn = eina_array_data_get(array, 0); + off_btn = eina_array_data_get(array, 1); + if (!on_btn || !off_btn) { + _ERR("ON button or OFF button is null."); + return; + } + + ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); + if (ret != 0) { + _ERR("vconf get value failed."); + return; + } + + if (!strncmp(keyname, KEY_DOWN, strlen(keyname))) { + if (obj != on_btn) + return; + + elm_object_focus_set(off_btn, EINA_TRUE); + + if (mode) { + elm_object_signal_emit(obj, SIG_SRC_UNFOC_SHOW_ICON, + SIG_NAME_SUBLIST); + elm_object_signal_emit(off_btn, SIG_SRC_FOC_HIDE_ICON, + SIG_NAME_SUBLIST); + } else { + elm_object_signal_emit(obj, SIG_SRC_UNFOC_HIDE_ICON, + SIG_NAME_SUBLIST); + elm_object_signal_emit(off_btn, SIG_SRC_FOC_SHOW_ICON, + SIG_NAME_SUBLIST); + } + } else if (!strncmp(keyname, KEY_UP, strlen(keyname))) { + if (obj == on_btn) + return; + + elm_object_focus_set(on_btn, EINA_TRUE); + + if (mode) { + elm_object_signal_emit(on_btn, SIG_SRC_FOC_SHOW_ICON, + SIG_NAME_SUBLIST); + elm_object_signal_emit(obj, SIG_SRC_UNFOC_HIDE_ICON, + SIG_NAME_SUBLIST); + } else { + elm_object_signal_emit(obj, SIG_SRC_UNFOC_SHOW_ICON, + SIG_NAME_SUBLIST); + elm_object_signal_emit(on_btn, SIG_SRC_FOC_HIDE_ICON, + SIG_NAME_SUBLIST); + } + } else if (!strncmp(keyname, KEY_BACK, strlen(keyname))) { + _destroy(data->base); + } +} + +/** +* Evas_Object_Event_Cb type callback for handling mouse in event. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the mouse in event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _sublist_btn_mouse_in_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ + if (!obj) + return; + + elm_object_focus_set(obj, EINA_TRUE); +} + +/** +* Evas_Object_Event_Cb type callback for handling mouse out event. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the mouse out event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _sublist_btn_mouse_out_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ +} + +/** +* Create mode sublist buttons. +* +* @param[in]: data : the user data. +* +* @return: 0 - Success, -1 - Fail. +*/ +static int _add_sublist_btns(struct _sublist_data *data) +{ + Eina_Array *array; + Evas_Object *btn; + Evas_Object *box; + int idx; + + if (!data || !data->base || !data->box) { + _ERR("invalid arguments."); + return -1; + } + + box = data->box; + elm_box_padding_set(box, BOX_HPADDING, BOX_VPADDING); + + array = eina_array_new(1); + if (!array) { + _ERR("new array for sublist buttons failed."); + return -1; + } + + for (idx = 0; idx < SUBLIST_BTN_NUM; idx++) { + btn = utils_add_button(data->base); + if (!btn) { + _ERR("add button failed."); + eina_array_free(array); + return -1; + } + + evas_object_smart_callback_add(btn, CLICKED, + _sublist_btn_clicked_cb, data); + evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, + _key_down_on_sublist_btn_cb, data); + evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_IN, + _sublist_btn_mouse_in_cb, NULL); + evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_OUT, + _sublist_btn_mouse_out_cb, NULL); + + elm_object_style_set(btn, BTN_STYLE_SUBLIST_BTN); + + elm_box_pack_end(box, btn); + eina_array_push(array, btn); + } + + data->array = array; + + elm_object_part_content_set(data->base, + SWALLOW_SUBLIST, data->box); + + return 0; +} + +/** +* Initialize value of mode sublist. +* +* @param[in]: array : eina array including mode sublist buttons. +* +* @return: void. +*/ +static void _set_sublist_init_value(Eina_Array *array) +{ + Evas_Object *on_btn, *off_btn; + int mode; + int ret; + + if (!array) + return; + + mode = 0; + ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); + if (ret != 0) { + _ERR("vconf get value failed."); + return; + } + + on_btn = eina_array_data_get(array, 0); + off_btn = eina_array_data_get(array, 1); + if (!on_btn || !off_btn) { + _ERR("there is no button in sublist array."); + return; + } + + elm_object_focus_set(on_btn, EINA_TRUE); + + elm_object_text_set(on_btn, ON); + elm_object_text_set(off_btn, OFF); + + if (mode) { + elm_object_signal_emit(on_btn, + SIG_SRC_FOC_SHOW_ICON, SIG_NAME_SUBLIST); + elm_object_signal_emit(off_btn, + SIG_SRC_UNFOC_HIDE_ICON, SIG_NAME_SUBLIST); + } else { + elm_object_signal_emit(off_btn, + SIG_SRC_UNFOC_SHOW_ICON, SIG_NAME_SUBLIST); + elm_object_signal_emit(on_btn, + SIG_SRC_FOC_HIDE_ICON, SIG_NAME_SUBLIST); + } +} + +/** +* Set focus move directions among mode sublist buttons. +* +* @param[in]: array : the eina array including mode sublist buttons. +* +* @return: void. +*/ +static void _set_sublist_btn_directions(Eina_Array *array) +{ + Evas_Object *on_btn, *off_btn; + + if (!array) + return; + + on_btn = eina_array_data_get(array, 0); + off_btn = eina_array_data_get(array, 1); + if (!on_btn || !off_btn) { + _ERR("get sublist button from array failed."); + return; + } + + elm_object_focus_next_object_set(on_btn, on_btn, ELM_FOCUS_UP); + elm_object_focus_next_object_set(on_btn, off_btn, ELM_FOCUS_DOWN); + elm_object_focus_next_object_set(on_btn, on_btn, ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(on_btn, on_btn, ELM_FOCUS_RIGHT); + + elm_object_focus_next_object_set(off_btn, on_btn, ELM_FOCUS_UP); + elm_object_focus_next_object_set(off_btn, off_btn, ELM_FOCUS_DOWN); + elm_object_focus_next_object_set(off_btn, off_btn, ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(off_btn, off_btn, ELM_FOCUS_RIGHT); +} + +/** +* Create mode sublist. +* +* @param[in]: data : the user data. +* +* @return: 0 - Success, -1 - Fail. +*/ +static int _add_sublist(struct _sublist_data *data) +{ + int ret; + Evas_Object *box; + + if (!data || !data->base) { + _ERR("invalid argument."); + return -1; + } + + box = utils_add_box(data->base); + if (!box) { + _ERR("add sublist box failed."); + return -1; + } + + data->box = box; + + ret = _add_sublist_btns(data); + if (ret != 0) { + _ERR("add sublist buttons failed."); + evas_object_del(data->box); + data->box = NULL; + return -1; + } + + _set_sublist_init_value(data->array); + _set_sublist_btn_directions(data->array); + + return 0; +} + +/** +* Destroy all the UI componets of mode sublist. +* +* @param[in]: base : the base layout of mode sublist. +* +* @return: void. +*/ +static void _destroy(Evas_Object *base) +{ + struct _sublist_data *data; + + if (!base) + return; + + data = evas_object_data_get(base, SUBLIST_DATA_ID); + if (!data) { + _ERR("evas object get data failed. ID: %s", SUBLIST_DATA_ID); + return; + } + + _free_sublist_data(data); +} + +/** +* Create all the UI componets of mode sublist. +* +* @param[in]: data : the user data. +* +* @return: the base layout of mode sublist. +*/ +static Evas_Object *_create(struct _sublist_data *data) +{ + Evas_Object *base; + int ret; + + if (!data || !data->win) { + _ERR("invalid argument."); + return NULL; + } + + base = utils_add_layout(data->win); + if (!base) { + _ERR("add base layout for sublist failed."); + return NULL; + } + + data->base = base; + + elm_layout_file_set(base, UG_CLOCK_EDJFILE, SUBLIST_GRP); + + ret = _add_sublist(data); + if (ret != 0) { + _ERR("add sublist failed."); + evas_object_del(data->base); + data->base = NULL; + return NULL; + } + + evas_object_data_set(data->base, SUBLIST_DATA_ID, data); + + return base; +} + +/** +* Entry of creating mode sublist. +* +* @parma[in]: win : window. +* @param[in]: ug_base : the base layout of clock UI gadget. +* +* @return: void. +*/ +void view_sublist_create(Evas_Object *win, Evas_Object *ug_base) +{ + Evas_Object *base; + struct _sublist_data *data; + + if (!win || !ug_base) { + _ERR("the window or base layout is null."); + return; + } + + data = calloc(1, sizeof(*data)); + if (!data) { + _ERR("calloc sublist data failed."); + return; + } + data->win = win; + data->ug_base = ug_base; + + base = _create(data); + if (!base) { + _ERR("create sublist failed."); + _free_sublist_data(data); + } +} diff --git a/ug/system/clock/src/ug_clock_time_spin_control.c b/ug/system/clock/src/ug_clock_time_spin_control.c new file mode 100644 index 0000000..1f956af --- /dev/null +++ b/ug/system/clock/src/ug_clock_time_spin_control.c @@ -0,0 +1,842 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "dbg.h" +#include "ug_clock_define.h" +#include "ug_clock.h" +#include "ug_clock_time_spin_control.h" +#include "ug_clock_utils.h" + +#define ARROW_BTN_DATA_ID "arrow_btn_data_id" +#define TIME_SPIN_DATA_ID "time_spin_ctrl_data" + +#define BOX_HPADDING 2 +#define BOX_VPADDING 122 + +#define UP_ARROW (1) +#define DOWN_ARROW (0) + +struct _time_spin_data { + Evas_Object *win; + Evas_Object *base; + Evas_Object *ug_base; + Evas_Object *spin_box; + + int time[TIME_MAX]; + int entry[TIME_MAX]; + + Eina_Array *spin_array; +}; + +static void _destroy(Evas_Object *base); + +/** +* Free user data of time spin. +* +* @param[in]: data : the user data. +* +* @return: void. +*/ +static void _free_time_spin_data(struct _time_spin_data *data) +{ + if (!data) + return; + + if (data->base) { + evas_object_del(data->base); + data->base = NULL; + } + + if (data->spin_array) + eina_array_free(data->spin_array); + + free(data); +} + +/** +* Update value of time spin. +* +* @param[in]: spin : the corresponding date spin whose value need to update. +* @param[in]: date : the value to be updated. +* @param[in]: spin_idx : the index of corresponding time spin. +* +* @return: void. +*/ +static void _update_time_value(Evas_Object *btn, int *time, int btn_idx) +{ + int mode; + char buf[BUF_SIZE]; + int ret; + + if (!btn || !time) + return; + if (btn_idx < TIME_HOUR || btn_idx >= TIME_MAX) + return; + + mode = 0; + ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); + if (ret != 0) { + _ERR("vconf get value failed."); + return; + } + + if (btn_idx == TIME_HOUR) { + if (mode) { + if (time[btn_idx] > 23) + time[btn_idx] = 0; + if (time[btn_idx] < 0) + time[btn_idx] = 23; + } else { + if (time[btn_idx] > 11) + time[btn_idx] = 0; + if (time[btn_idx] < 0) + time[btn_idx] = 11; + } + + snprintf(buf, sizeof(buf), "%02d", time[btn_idx]); + } else if (btn_idx == TIME_MINUTE) { + if (time[btn_idx] > 59) + time[btn_idx] = 0; + if (time[btn_idx] < 0) + time[btn_idx] = 59; + + snprintf(buf, sizeof(buf), "%02d", time[btn_idx]); + } else { + if (time[btn_idx]) + snprintf(buf, sizeof(buf), "%s", PM); + else + snprintf(buf, sizeof(buf), "%s", AM); + } + + elm_object_text_set(btn, buf); +} + +/** +* Evas_Object_Event_Cb type callback for handling key press event. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the key press event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _time_spin_keydown_cb(void *priv, + Evas *e, Evas_Object *obj, void *ei) +{ + Evas_Event_Key_Down *event; + struct _time_spin_data *data; + const char *keyname; + Eina_Array *array; + Evas_Object *hour_btn, *minute_btn; + + if (!priv || !ei || !obj) { + _ERR("invalid argument."); + return; + } + + data = priv; + + if (!data->spin_array) + return; + + array = data->spin_array; + + hour_btn = eina_array_data_get(array, TIME_HOUR); + minute_btn = eina_array_data_get(array, TIME_MINUTE); + if (!hour_btn || !minute_btn) { + _ERR("eina array data get failed."); + return; + } + + event = ei; + + if (!event->keyname) + return; + + keyname = event->keyname; + + if (!strncmp(keyname, KEY_UP, strlen(keyname))) { + if (obj == hour_btn) { + data->time[TIME_HOUR]++; + + _update_time_value(obj, data->time, TIME_HOUR); + } else if (obj == minute_btn) { + data->time[TIME_MINUTE]++; + + _update_time_value(obj, data->time, TIME_MINUTE); + } else { + if (data->time[TIME_AMPM] == 0) + data->time[TIME_AMPM] = 1; + else + data->time[TIME_AMPM] = 0; + + _update_time_value(obj, data->time, TIME_AMPM); + } + } else if (!strncmp(keyname, KEY_DOWN, strlen(keyname))) { + if (obj == hour_btn) { + data->time[TIME_HOUR]--; + _update_time_value(obj, data->time, TIME_HOUR); + } else if (obj == minute_btn) { + data->time[TIME_MINUTE]--; + _update_time_value(obj, data->time, TIME_MINUTE); + } else { + if (data->time[TIME_AMPM] == 0) + data->time[TIME_AMPM] = 1; + else + data->time[TIME_AMPM] = 0; + + _update_time_value(obj, data->time, TIME_AMPM); + } + } else if (!strncmp(keyname, KEY_0, strlen(keyname)) || + !strncmp(keyname, KEY_1, strlen(keyname)) || + !strncmp(keyname, KEY_2, strlen(keyname)) || + !strncmp(keyname, KEY_3, strlen(keyname)) || + !strncmp(keyname, KEY_4, strlen(keyname)) || + !strncmp(keyname, KEY_5, strlen(keyname)) || + !strncmp(keyname, KEY_6, strlen(keyname)) || + !strncmp(keyname, KEY_7, strlen(keyname)) || + !strncmp(keyname, KEY_8, strlen(keyname)) || + !strncmp(keyname, KEY_9, strlen(keyname))) { + if (obj == hour_btn) { + if (data->entry[TIME_HOUR] == 0) { + data->entry[TIME_HOUR]++; + data->time[TIME_HOUR] = atoi(keyname); + } else { + data->entry[TIME_HOUR]++; + data->time[TIME_HOUR] = + (data->time[TIME_HOUR] * 10) + + atoi(keyname); + data->entry[TIME_HOUR] = 0; + + elm_object_focus_next(obj, ELM_FOCUS_NEXT); + } + + _update_time_value(obj, data->time, TIME_HOUR); + } else if (obj == minute_btn) { + if (data->entry[TIME_MINUTE] == 0) { + data->entry[TIME_MINUTE]++; + data->time[TIME_MINUTE] = atoi(keyname); + } else { + data->entry[TIME_MINUTE]++; + data->time[TIME_MINUTE] = + (data->time[TIME_MINUTE] * 10) + + atoi(keyname); + data->entry[TIME_MINUTE] = 0; + + elm_object_focus_next(obj, ELM_FOCUS_NEXT); + } + + _update_time_value(obj, data->time, TIME_MINUTE); + } else { + return; + } + } else if (!strncmp(keyname, KEY_LEFT, strlen(keyname)) || + !strncmp(keyname, KEY_RIGHT, strlen(keyname))) { + if (obj == hour_btn) + data->entry[TIME_HOUR] = 0; + else if (obj == minute_btn) + data->entry[TIME_MINUTE] = 0; + else + return; + } else if (!strncmp(keyname, KEY_BACK, strlen(keyname))) { + _destroy(data->base); + } +} + +/** +* Evas_Smart_Cb type callback for handling click event. +* +* @param[in]: priv : the user data. +* @param[in]: obj : the corresponding object which the click event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _time_spin_click_cb(void *priv, + Evas_Object *obj, void *ei) +{ + struct _time_spin_data *data; + + if (!priv) + return; + + data = priv; + + utils_set_time_value(data->time); + view_ug_clock_refresh(data->ug_base, NULL, data->time); + _destroy(data->base); +} + +/** +* Evas_Object_Event_Cb type callback for handling mouse in event. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the mouse in event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _time_spin_mousein_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ + if (!obj) + return; + + elm_object_focus_set(obj, EINA_TRUE); +} + +/** +* Evas_Object_Event_Cb type callback for handling mouse out event. +* +* @param[in]: dt : the user data. +* @param[in]: e : the evas. +* @param[in]: obj : the corresponding object which the mouse out event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _time_spin_mouseout_cb(void *dt, Evas *e, + Evas_Object *obj, void *ei) +{ + /* TODO: Add necessary operation when needed. */ +} + +/** +* Evas_Smart_Cb type callback for handling click event. +* +* @param[in]: priv : the user data. +* @param[in]: obj : the corresponding object which the click event occurred. +* @param[in]: ei : event info. +* +* @return: void. +*/ +static void _arrowbtn_clicked_cb(void *priv, Evas_Object *obj, void *ev) +{ + struct _time_spin_data *data; + Evas_Object *cur_btn; + Evas_Object *btn; + Evas_Object *up; + int i; + int idx; + int flag; + + if (!priv || !obj) + return; + + data = priv; + cur_btn = evas_object_data_get(obj, ARROW_BTN_DATA_ID); + if (!cur_btn) + return; + + up = elm_object_part_content_get(cur_btn, UP_ARROW_SWALLOW); + if (!up) + return; + + if (obj == up) + flag = 1; + else + flag = 0; + + idx = 0; + for (i = TIME_HOUR; i < TIME_MAX; i++) { + btn = eina_array_data_get(data->spin_array, i); + + if (cur_btn == btn) { + idx = i; + break; + } + } + + if (idx != TIME_AMPM) { + if (flag) + data->time[idx]++; + else + data->time[idx]--; + } else { + if (data->time[idx] == 0) + data->time[idx] = 1; + else + data->time[idx] = 0; + } + + _update_time_value(cur_btn, data->time, idx); +} + +/** +* Create arrow buttons for time spin. +* +* @param[in]: data : the user data. +* @param[in]: obj : the corresponding object which the arrow created on. +* @param[in]: flag : 1 - up arrow button, 0 - down arrow button. +* +* @return: the created arrow button. +*/ +static Evas_Object *_add_arrow_btn(struct _time_spin_data *data, + Evas_Object *obj, int flag) +{ + Evas_Object *btn; + + if (!data || !data->base || !obj) + return NULL; + + btn = utils_add_button(data->base); + if (!btn) { + _ERR("utils add button failed."); + return NULL; + } + + elm_object_style_set(btn, BTN_STYLE_ARROW_BTN); + + if (flag == UP_ARROW) + elm_object_part_content_set(obj, UP_ARROW_SWALLOW, btn); + else + elm_object_part_content_set(obj, DOWN_ARROW_SWALLOW, btn); + + elm_object_focus_allow_set(btn, EINA_FALSE); + + evas_object_smart_callback_add(btn, "clicked", + _arrowbtn_clicked_cb, data); + + evas_object_data_set(btn, ARROW_BTN_DATA_ID, obj); + evas_object_raise(btn); + evas_object_repeat_events_set(btn, EINA_FALSE); + + return btn; +} + +/** +* Create time spin for 12 hour mode. +* +* @parma[in]: data : the user data. +* +* @return: 0 - Success, -1 - Fail. +*/ +static int _add_time_spin_without_ampm(struct _time_spin_data *data) +{ + Evas_Object *box; + Evas_Object *btn; + Evas_Object *uparrow, *downarrow; + Eina_Array *array; + char buf[BUF_SIZE]; + int idx; + + if (!data || !data->base || !data->spin_box) { + _ERR("invalid argument."); + return -1; + } + + box = data->spin_box; + elm_box_horizontal_set(box, EINA_TRUE); + elm_box_padding_set(box, BOX_HPADDING, BOX_VPADDING); + + array = eina_array_new(1); + if (!array) { + _ERR("new eina array failed."); + return -1; + } + + for (idx = TIME_HOUR; idx < TIME_AMPM; idx++) { + btn = utils_add_button(data->base); + if (!btn) { + _ERR("add time spin control button failed."); + return -1; + } + + evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, + _time_spin_keydown_cb, data); + evas_object_smart_callback_add( + btn, "clicked", _time_spin_click_cb, data); + evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_IN, + _time_spin_mousein_cb, NULL); + evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_OUT, + _time_spin_mouseout_cb, NULL); + + elm_object_style_set(btn, BTN_STYLE_TIME_SPIN_BTN); + + snprintf(buf, sizeof(buf), "%02d", data->time[idx]); + elm_object_text_set(btn, buf); + + eina_array_push(array, btn); + + elm_box_pack_end(box, btn); + + uparrow = _add_arrow_btn(data, btn, UP_ARROW); + if (!uparrow) { + _ERR("add up arrow button failed."); + evas_object_del(btn); + return -1; + } + + downarrow = _add_arrow_btn(data, btn, DOWN_ARROW); + if (!downarrow) { + _ERR("add down arrow button failed."); + evas_object_del(btn); + evas_object_del(uparrow); + return -1; + } + } + + elm_object_focus_set(eina_array_data_get(array, TIME_HOUR), EINA_TRUE); + + data->spin_array = array; + + elm_object_part_content_set( + data->base, SWALLOW_TIME_SPIN_2, box); + + return 0; +} + +/** +* Create time spin for 24 hour mode. +* +* @parma[in]: data : the user data. +* +* @return: 0 - Success, -1 - Fail. +*/ +static int _add_time_spin_with_ampm(struct _time_spin_data *data) +{ + Evas_Object *box; + Evas_Object *btn; + Evas_Object *uparrow, *downarrow; + Eina_Array *array; + char buf[BUF_SIZE]; + int idx; + + if (!data || !data->base || !data->spin_box) { + _ERR("invalid argument."); + return -1; + } + + box = data->spin_box; + elm_box_horizontal_set(box, EINA_TRUE); + elm_box_padding_set(box, BOX_HPADDING, BOX_VPADDING); + + array = eina_array_new(1); + if (!array) { + _ERR("new eina array failed."); + return -1; + } + + for (idx = TIME_HOUR; idx < TIME_MAX; idx++) { + btn = utils_add_button(data->base); + if (!btn) { + _ERR("add time spin control button failed."); + return -1; + } + + evas_object_event_callback_add(btn, EVAS_CALLBACK_KEY_DOWN, + _time_spin_keydown_cb, data); + evas_object_smart_callback_add( + btn, "clicked", _time_spin_click_cb, data); + evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_IN, + _time_spin_mousein_cb, NULL); + evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_OUT, + _time_spin_mouseout_cb, NULL); + + elm_object_style_set(btn, BTN_STYLE_TIME_SPIN_BTN); + + if (idx != TIME_AMPM) { + snprintf(buf, sizeof(buf), "%02d", data->time[idx]); + elm_object_text_set(btn, buf); + } else { + if (data->time[idx]) + elm_object_text_set(btn, PM); + else + elm_object_text_set(btn, AM); + } + + eina_array_push(array, btn); + + elm_box_pack_end(box, btn); + + uparrow = _add_arrow_btn(data, btn, UP_ARROW); + if (!uparrow) { + _ERR("add up arrow button failed."); + evas_object_del(btn); + return -1; + } + + downarrow = _add_arrow_btn(data, btn, DOWN_ARROW); + if (!downarrow) { + _ERR("add down arrow button failed."); + evas_object_del(btn); + evas_object_del(uparrow); + return -1; + } + } + + elm_object_focus_set(eina_array_data_get(array, TIME_HOUR), EINA_TRUE); + + data->spin_array = array; + + elm_object_part_content_set( + data->base, SWALLOW_TIME_SPIN_1, box); + + return 0; +} + +/** +* Create buttons for time spin. +* +* @param[in]: data : the user data. +* +* @return: 0 - Success, -1 - Fail. +*/ +static int _add_time_spin_btns(struct _time_spin_data *data) +{ + int mode; + int ret; + + if (!data || !data->base || + !data->spin_box) { + _ERR("invalid argument."); + return -1; + } + + utils_get_time_value(data->time); + + mode = 0; + ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &mode); + if (ret != 0) { + _ERR("vconf get value failed."); + return -1; + } + + if (mode) { + ret = _add_time_spin_without_ampm(data); + if (ret != 0) { + _ERR("add buttons without ampm failed."); + return -1; + } + } else { + ret = _add_time_spin_with_ampm(data); + if (ret != 0) { + _ERR("add buttons with ampm failed."); + return -1; + } + } + + return 0; +} + +/** +* Set focus move directions among time spin buttons. +* +* @param[in]: btn_array : eina array of time spin buttons. +* +* @return: void. +*/ +static void _set_time_spin_btn_directions(Eina_Array *btn_array) +{ + Evas_Object *btn; + unsigned int count; + int idx; + + if (!btn_array) { + _ERR("time spin control button array is null."); + return; + } + + count = eina_array_count(btn_array); + + for (idx = TIME_HOUR; idx < count; idx++) { + btn = eina_array_data_get(btn_array, idx); + if (!btn) { + _ERR("there is no button. idx: %d", idx); + return; + } + + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_UP); + elm_object_focus_next_object_set(btn, btn, ELM_FOCUS_DOWN); + + if (idx == TIME_HOUR) { + elm_object_focus_next_object_set(btn, btn, + ELM_FOCUS_LEFT); + elm_object_focus_next_object_set(btn, + eina_array_data_get(btn_array, idx + 1), + ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(btn, + eina_array_data_get(btn_array, idx + 1), + ELM_FOCUS_NEXT); + } else if (idx == count - 1) { + elm_object_focus_next_object_set(btn, btn, + ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(btn, + eina_array_data_get(btn_array, idx - 1), + ELM_FOCUS_LEFT); + } else { + elm_object_focus_next_object_set(btn, + eina_array_data_get(btn_array, idx + 1), + ELM_FOCUS_RIGHT); + elm_object_focus_next_object_set(btn, + eina_array_data_get(btn_array, idx + 1), + ELM_FOCUS_NEXT); + elm_object_focus_next_object_set(btn, + eina_array_data_get(btn_array, idx - 1), + ELM_FOCUS_LEFT); + } + } +} + +/** +* Create time spin. +* +* @param[in]: data : the user data. +* +* @return: 0 - Success, -1 - Fail. +*/ +static int _add_time_spin(struct _time_spin_data *data) +{ + Evas_Object *box; + int ret; + + if (!data || !data->base) { + _ERR("private data is null."); + return -1; + } + + box = utils_add_box(data->base); + if (!box) { + _ERR("add time spin control box failed."); + return -1; + } + data->spin_box = box; + + ret = _add_time_spin_btns(data); + if (ret != 0) { + _ERR("add time spin control buttons failed."); + return -1; + } + + _set_time_spin_btn_directions(data->spin_array); + + return 0; +} + +/** +* Create all UI components of time spin. +* +* @param[in]: data : the user data. +* +* @return: the base layout of time spin. +*/ +static Evas_Object *_create(struct _time_spin_data *data) +{ + Evas_Object *base; + int onoff; + int ret; + + if (!data || !data->win) { + _ERR("window for time spin control base is null."); + return NULL; + } + + base = utils_add_layout(data->win); + if (!base) { + _ERR("add base layout for spin control failed."); + return NULL; + } + data->base = base; + elm_layout_file_set(base, UG_CLOCK_EDJFILE, TIME_SPIN_CTRL_GRP); + + onoff = 0; + ret = utils_get_vconf_value(VCONF_KEY_24HOUR_MODE, &onoff); + if (ret != 0) { + _ERR("vconf get value failed."); + return NULL; + } + + if (onoff) + elm_object_signal_emit(base, SIGNAL_NAME_TIME_SPIN_2, + SIGNAL_SOURCE_TIME_SPIN); + else + elm_object_signal_emit(base, SIGNAL_NAME_TIME_SPIN_1, + SIGNAL_SOURCE_TIME_SPIN); + + ret = _add_time_spin(data); + if (ret != 0) { + _ERR("add time spin control failed."); + return NULL; + } + + evas_object_data_set(data->base, TIME_SPIN_DATA_ID, data); + + return base; +} + +/** +* Destroy all the UI componets of time spin. +* +* @param[in]: base : the base layout of time spin. +* +* @return: void. +*/ +void _destroy(Evas_Object *base) +{ + struct _time_spin_data *data; + + if (!base) { + _ERR("invalid argument."); + return; + } + + data = evas_object_data_get(base, TIME_SPIN_DATA_ID); + if (!data) { + _ERR("evas object get data failed. ID: %s", TIME_SPIN_DATA_ID); + return; + } + + _free_time_spin_data(data); +} + +/** +* Entry of creating time spin UI. +* +* @param[in]: win : window. +* @param[in]: ug_base : the base layout of clock UI gadget. +* +* @return: void. +*/ +void view_time_spin_ctrl_create(Evas_Object *win, + Evas_Object *ug_base) +{ + Evas_Object *base; + struct _time_spin_data *data; + + if (!win || !ug_base) { + _ERR("the window of time spin control is null."); + return; + } + + data = calloc(1, sizeof(*data)); + if (!data) { + _ERR("calloc time spin control data memory failed."); + return; + } + + data->win = win; + data->ug_base = ug_base; + + base = _create(data); + if (!base) { + _ERR("create time spin control failed."); + _free_time_spin_data(data); + } +} diff --git a/ug/system/clock/src/util.cpp b/ug/system/clock/src/ug_clock_utils.c similarity index 96% rename from ug/system/clock/src/util.cpp rename to ug/system/clock/src/ug_clock_utils.c index 795a27c..4cb0969 100644 --- a/ug/system/clock/src/util.cpp +++ b/ug/system/clock/src/ug_clock_utils.c @@ -17,8 +17,8 @@ #include #include -#include -#include "util.h" +#include "dbg.h" +#include "ug_clock_utils.h" static struct tm *_get_current_time(); static void _set_datetime(struct tm *t); @@ -257,7 +257,7 @@ int utils_set_vconf_value(const char *key, int value) return -1; } - ret = vconf_set_int((char*) key, value); + ret = vconf_set_int(key, value); if (ret != 0) { _ERR("vconf set int failed."); return -1; @@ -283,7 +283,7 @@ int utils_get_vconf_value(const char *key, int *value) return -1; } - ret = vconf_get_int((char*)key, value); + ret = vconf_get_int(key, value); if (ret != 0) { _ERR("vconf get int failed."); return -1; @@ -302,13 +302,11 @@ int utils_get_vconf_value(const char *key, int *value) static struct tm *_get_current_time() { time_t tt; - struct tm *t = NULL; + struct tm *t; tt = 0; time(&tt); - /* FIXME: memory of *t is not allocated ?? */ - t = localtime(&tt); return t; diff --git a/ug/wifi-direct/CMakeLists.txt b/ug/wifi-direct/CMakeLists.txt index e6717bd..6e427e9 100644 --- a/ug/wifi-direct/CMakeLists.txt +++ b/ug/wifi-direct/CMakeLists.txt @@ -25,6 +25,7 @@ SET(UG_WIFI_DIRECT_EDJ_THEME "ug-wifi-direct-theme.edj") INCLUDE(FindPkgConfig) pkg_check_modules(UG_WIFI_DIRECT_PKGS REQUIRED + dlog eina edje evas @@ -38,6 +39,8 @@ pkg_check_modules(UG_WIFI_DIRECT_PKGS REQUIRED capi-network-connection wifi-direct ) + #ecore-x + SET(PKGS_LDFLAGS "${PKGS_LDFLAGS} ${UG_WIFI_DIRECT_PKGS_LDFLAGS}") FOREACH(FLAG ${UG_WIFI_DIRECT_PKGS_CFLAGS}) @@ -47,17 +50,13 @@ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=hidden -Wall -W SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}") SET(SRCS - src/ug_wifi_direct.cpp - src/WifiDirectMainView.cpp - src/util.cpp - ../src/WifiMgr.cpp - ../src/WifiDirectMgr.cpp + src/ug_wifi_direct.c + src/wifi_direct_mgr.c + src/wifi_direct_view.c + src/util.c ) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../include) - ADD_DEFINITIONS("-DPKGNAME=\"${PROJECT_NAME}\"") ADD_DEFINITIONS("-DUG_WIFI_DIRECT_EDJ_FILE=\"${UG_WIFI_DIRECT_EDJE_DIR}/${UG_WIFI_DIRECT_EDJ_FILE}\"") diff --git a/ug/wifi-direct/edje/images/ico_dropdown_menu_check.png b/ug/wifi-direct/edje/images/ico_dropdown_menu_check.png index d32061e3f26a756ae7721c99edb3533edd3e15ba..9e7d114640bde4abbaac4165a1829ca15854f039 100644 GIT binary patch literal 17850 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 delta 228 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 IM6N<$g1SQ_umAu6 literal 12311 zcmV+yFzC;TP)vXT0amZ>U$Vrmn7@+-|!)#5ie!f^fhL4g`fj5Gec=5LQ4T5<*Du zhrtK|RtWq<5D)5|$-{0?unel`1@eTKJ-@yOhM|kv&{2TA`w<2J`Ujlvw zcoq2Xf!UkR`+4A(R-gatz^?;;8Tdzm9|OJ#96{$UR8NB>u>TS4>yZD$;QlPsUC3Ss z|1wm9^#4I@@@EkF<1qZo*yQJs@D(imB4S?w`ByOO0k6Quj{;wV$*)27ry%?gEQi3~ z0sc4OUjqKx>RG-9R8K~z??tJEcYo?fFa)R&E}))(Q_vh@gz!n|{V=3cWaDQL|4%?E zF!(oN-bLg~h0gbIile;+CCz}6DkY>-jH3Xkh|uUr3K2JPf$3PnT)Q?MS0Vx>W`gISKL;*x>yq5W+*I>a5HW6Lcpz5tX6_VI%7 z;R7JR66hoR3GknU(QCNT7}*V2F~DW}ARdttNe)?5kk7z_qkzmoo{+|ns)Rg8l3>#k zH_9;WU?Bh=+fc9`mI|z#L6d+@=x6ZE1g_>-{Uh+zU8K2;@n0b1A0G@KJ^%__f{lL} zo_Pj#2f%MY*aoM#>RCj$5lN7pA;9Kj{i^spx~ba-3Jz6AoQU49Mb(=*!((N z`%z?(Bliyx*N4oIjmtQ1I5$NwTrNm3L=6`T1i_2pQ1Bokh$+x2HmqrnfI5!}m_|$# z^M*>^0x)ZEwj^Z&MF(Pr^(WZ1JuJNex6UE{5sahuSsq;V4-Eh{#^c&9k^crio;QIB(mH}DEhJUGE&h=8aeP5}>A zLu!2=6)>l$PpCOkfaC(F8BG+LCQv7(Q9yIV2N(oM4!R!8BeGY( z^)u}6COG;bU~dKE9~uC9tC@UgDQC;1(KBU~>ZJ4KyY8hX(*dXbg2&qh_gb z=I~mg=I7pNgH;ta%3V@6zTR zP9swD(Ws%v0eCmdt^sm{KLgn=d})GYdq_IL;gLMU`G`Yt67YC3jLavppk!T7F>v&T zf#D#~-^|z=tzMfMmo{?tdyc)HXS;9=yrbtKckKr31cE%Y)5Sm?IBV?|wbg#Goyl@1 zNk0w94!qSb09RMf`;h^#|9#H1 z)#Sel{5WiV3;EPfAJ2c&h8!4#FS^ zg|)8G0~sqI>u{N^eAN~T9zE~PL!dLvd?Mzy2KMx2{3&eMt3}-Y)=?w+ej~vxg-}f$VpY&t1Tv2YMe7#RZR# zg7}2Dh*u%=j;sh|gFt8G7;a_^w+goQ3ikIqJhhwi{8r$ZLB`eGF>M?7_m7|Lgk%;7`Bl(;RpOI0QZo9S_e|uoqxDgkA>P$AyHe9bRd5 zeg;`LBku<~8-c-Y#%Q--d#}UQs|7FYba;N`xn6koy|k)kl}A+svBy=6+1t%>dGPN$ zNk%+Yh!IjsVyVfsE;GtS5#n6>I`>ZJJ~kJNYC4wVo74KDJe6j)gyO4-+3&u4!M~63 zH~>HVHfKy}9qM*AK1F6Ugk z)ZzL4f=>@JuI0kWL1DDBdA6XRXYO-riQGzm@7r=|*8mOfQw z?qcaX+JwzO5Y#W{Q_=HTt;??{^?e7T?=8*#K>&EWkw6wOID*S1WDyDHt%n-~S38_J zTo3||PzYI1D29RFPQmDMhrKIZp1G3q(ss^^gN&zxFc1i9wPLM)e=G#{Cc(<1pRd)< zN)^4+XzFB>Ws~Mr6SZE}8q0=Mm#(Q6_-Zb`XM!WK z`%@nV0GFYEf_&--uI24q@U9IHX9;f}M8l++wU_ak zZs3X+dbDPvt^_SBVLmEzTYo0t)_O+T1!9k&An!2ywNlP6s&xBo(Ht$7WmT5T6sr<# zDrZeaswzia<5J9uK)$mv43_pXnN8(jdOWX|G%N5w6cFAC0AUyQuEX;Y$@XybBb+6i z7aR`f6Tu)j$U2Y@J>9LqU?*qmQo+^B9bVkcd8zNYCPH^5zy}-Z`VXz8zuH_y{=7@`nccqi>VnoMmeuizg78iNn0pPkcLp1O1i80Btb^ng&T3q8 zxClPa@P&{Ka*9zwe=}!eKjYGsE-&sCe5&WUBJv=}Ypdxk$OAS02;#`f);DcqJuxa( z19dd2WW=O21}Xw-G(pI6N5>03IC4N^vgM-D`vzTiv z^%$y3OwcsSVxG8IM8;)ewn)qxqmD*2C7FpD!o#c~w=*sIfGOm04;Wsd2>QRFjy-*2yy?6h*eXe_3K|%*@VCjt`eSzIvYs z2#*8s`>SIEd`~$sjh9;w0B*wGI=`?bB-f%RjxmYBY%fuoYDMD1G5kZ^~y=&c- z%%QoM!>Fr97mLQ0XG>cgFPp{1yh@8@rLnG%rV-yX&QgP>C|DFUIb!n3aG27Fxy%Q* zw|`j|i@7f6Gn+5w2Bo=E*0$U7d*R>aXokjtz;i$TGyNFo2^GvBQ6u?)5!5j&E3J|&x?+`^3>DB*rZ!;+|c=aR+-ro+ms&%;BT&uHSkIJ>=&?0&*JV) zaIV2M4l###X>+!c@IK%MfnqbKx0AEElXGPlxSlz-u{KKiK*~Hc-5;nN(8eeik>it! zH;zi~oHX3Oh>T~E#WXUXN6IGA)QP5nm>{jvk0y`=H1`lZ2@@3yDQRrVvTo+f)XWde3;Q4X7slU_D4C_yMcWV-PI-E z%rg+cq~)ZgN*PZhhsPB+?=5-bq~dtoFrFl4vxdd2RXue~t>D#&tDQWl!yG7y6xyV* zs-ezE$y}^ch)SWB^m8}eH>;W@%4@W-+7E!_N7=x&3{TkeizNK~9Ryc4ov-kP2x z&uBAnr60Hwq*XooHn#nG_FF6b`MBoRLB;RiFS&bEadh4=9yiRUk@+IBtP@RyM%(=% zVMGC(psKA^k`#>zlZ1(DL((cPL7rUj7P?8ZZbwU(QPvjYbfL>;k~T7|oB1LOSs|Ky zQoJc1+LWnkl9Zx&?|oi$wniJ9^U-LuI6ptFQ;LapPy0Zt;Bf$cVRiJddji|%n9p%p zK%%yuZvy9h%as~rgn=X92z0h{Hb)tk3&)Owd}Z}KnE7uCnrUN9XOX)HCEvMS^7=`| z=~>OidChdHEEb7nY-lhVe9LqYLCsKI>3%U(1;e3|Kok|%zKCd2tnp4&a;4Z%-`~c1 zea20UdU6s=m-N!kcG1m?j(5Q!$*B`hOX2lkE~O+XB@1~by}@9AXM2BfetNb%uBv3F z`axI0;{g1=Ym-fo zHpH{i|Jo>vY2@If=GB8GuOHXkKdl&_)=VZ1i%O}YQDM~1kwj3G#9F{$T4COywFl{- z1PsLxOcPoIF-O&l#=4-%Hmn)!S?cav3L!1ZvCWq=AvPD+E?*i1@47he%*@kn$XUzD zGfWd`2wBKChojA%&F!7>#rS+#*QI}C1-vg1-WrZJz#}pMdQd0C8{&L>6mUhrXW(-o zD?IryFzkDFgRmixt%R+soyv)=oU7K_sY~VfyynLJlGjga4o@piPbwzUhQ(4TlM=NR zexohtCn+Qa4T_mysX&8aUO*z640FDvBSym-Z3|v%hoxN1Z+5guTSl=<9rmQw#-{UA zv-$LVSY(5(?d^V+<$V$HF*N}*4+KPQ6;5lMwxlRm1VT5E^#h$z##Ya>leHVKm_4R`jFrugV2v@E zHrzR?xp}|j-f6|zd1NxFnJ<(Qp)#W}Avz(ZM64a^9E!HwPv=kti_&`4X^G_?Bg0Yy zOOMU7RtI*$HY&`<&L#&#J6m4otn&$`{XMH+y(Q=IWO>xG2_H3ZR)8 z0mGYtnwrCWmS>y8jg6iDaCA1ATr5-{n56G(6+8~W*W1Gt4?9y_%%QUdMF5+ERJc6g zih%32-fz~===B4;xnmn4x0b2=NY-}cz8jK^Q7VW-pG9E~;y zNB8eeRGak*cmgVD+G3e)0tu@ocs)bH0Pz)00#XEA$Ki@q=(+3Yc08NG(U;aLFj}6b zti*33hzVLHPS0!JI4-$$-f%Wfj3*8AWld>NI%q^_1R7~bjU!1wd!AG%7Un1(Ta<9o zR@s=HLa&S29$W&Op2Fk^#;;-*b2#t8`Ab;2u~HTlB@x&CQ*iZnt;dG~;G<<@d!TdK`d3dnxHbkwb9- zX^u1==dzZZDFR+_8Ms0SU18913|(tEz(c$LK@8svOR!ufj>k23&udO64U<{JVjfx6 zMhVmcjTsGzq&2Ayq^ux`wSl+nGPWFI^Eq5f5W(&&;5*;KIv%e5Fm`+c-Z(`LGgy2E zcnaeX;|?O9!ej|LS;8Byt?l^KGi5yQOlWD_z(NI=OWzdKbam2<*1~F!+CQ=j8NkT1$@;U6h zhedU2|e{^_n{0IOaa0Of-Tt&DJ%LTX! zysY#|LQuqoHWZONe8-dZ0(~!ZR$+zptYZCitI;&ZWDz-V1wm3oZyYTugZ2DWkuLA!(HvR&PzXkkV;1ag-AllIZ z1{gW8n7}XpjYpr_fK*n?W;{M$EaubsU@(l{d8f{MGs|dstgsF!I@jrRx*LOy(MAaQ zab1^B2!MMa*I+P#SR%6=>1W_TNQflFOIy*B2|jmZUC+=vGJ7ce$AWBtC8KVX>0CKq zB<6LZtd(jN*N-A3btGpbZ={qk4E0x0yMXa)*x?iww}6+i`U2`VXp6)vjQI-djFv_c zc&jo9V3Q^MPyZeK!oTxo01VK@eA>)rv-$Q;tc#-XsxDWPjD%mMdQ31CaXoRqSL8)6 zFACo@l{0&kr19=m(c=KT1Yy4|j_xD~UCd`d-PYe)0&hrgNbtDakp-c%4lRhRbpFFf zYr_J@vPzsU8qODyMX8igXp$1WBPyf>scAD^hM;bOo$g^bcHnM+T zc)3ofKukuX+HSB4)>vC!WDT|q*s#G)D(sD?SFHz5fZdf^c|Qi(hp@Hf-=-do)`MLpSVpLmQKy#2uZ@v>#C(QU(mGp}L#@H4ee7au#lBJ? z$B6Ie5mz@`1LO1Wb%p_?*ieN7dFgj@HKSmyI!RlsYOY zDal%EN6ldYbP%w@V?~Z_R#?@=#(Nll2l(HCr-32w&+*>?{`RlHzxt=Y-&yTuT$W8! zH;srm=UwKU%bYkbB3=Y9NHDXIRGkkY?{@pSIOlnvm1U2wfKR~a+pv8HbPt)HdFt*4E@|+aVx|knEuj6k3m1f!f;mPH9GL&FNOx3z%l84;Y4N4+~3d*~d;R zC~M#wz~A5@M>Emx1^>)@m||-U{SL!>@4-B(-Z{xZav&3t)zgbUQm5I;v#eVbMfS+m zKj0>u!}yQE*iMQ8L70!RfaZ3eb8!z6~ZH{deDu3?8*$f~FL_4?X8YFKL}2<{YkF0hl=voVZ-XdB99{osf9~ z!MIyk{Q@k;NG(VlVdh#NMjaLtmRQx~N?Q_|jHMZ+2>B}f@F)OlM@xc3GHDxcc#pXN z65CZ^1~G4Ic0UN7piJm*L4-`12o=y9Dp-~&%nu5bbA-q^T@Ko zilS{N<_*&fqjjFvC83LCETnbF)_UKulItpmYu*uZ!DoicXjg){HsKHLZ!|U11Q;)2 zd=F_ZFm3{0dj|(+%^?4az}pYxuD!#fIpBByQ)vDw zt=IORgztbXFFO5xufLra`IbNjCA6*%Vwi~t-h1=j$Ff>hv)OEBrt4h56Hr07F}9JN zYp@?$BWxL<3}{mzML=!MI%p%DO=HXr%9R>2V;#P2?P^-hLMCmgQrF`PK?;ZKdPo5j z#M)e@bt8g9Hm69xM#rDW_%v;#_WPAk$zKKg4``b`yl3GDpco7{M!o)U*Sjz@wZgCm z+wV#R;iTOUnyQ(fpP!CXO7-eF-&b<}aRB}T@KbOSR_^T*mZvT4xy;(6dJ0%AXlzr3 zO{Gkm#MrkiIA@?@_?6rKAZO|wz8mNbGxC0h>nk!d+^n}^S~-YWn^2B(7;VGo7K|?e zKMDM|@AN4D*?SfKdUzl&@}jr1v%9ykv3b>bH&E5!L|O_On2CuXIPV=;tea}OSj-n@ zmiPcU;m5tVKM!1o8(?EFP00KL@?#jyA+K7SzY+Iyw}9 z&R{s&+}_#0-X9FEc<+Y-L7WpGf^*(E=e+Yic;|ytP1S5RJ1@)S(%R_Mqx6*bvtP#hs6bstQX^G~SP6AB>N+t=+NvUi3Td-jtb7F8pd6V{3_Sf| zMyHqIhaNXlq?3@2VSa|h3!GEL4`C~Z;eytt|I+H_-n`ujV1I%4G5goT?>grNY1W?j!|&)D)tkhXP)e^BDm2IFcB^^o-g!|j~GG%;-& zyf{J@&}o5-3sO@doq#kB+1!V{Gi2&eeggOngpEfZ)L{CXypLXE{t@Aiws-a}U%vd* zCpR~@U&!-(C#C2S)QJ;QMVvzran6~kR%N+7o6l!wDW#GRp#Q%Y0LCs{)!Wc_} zO%!V~j0%el+V7Ieie~DWj|%3sah}7#ffpk@LZa7IVlX*}D}??iV`Dclu9PK$j}c!d zQk^4p**411tYu_upTSLlf3ocd$~S24 z&`+2t=KAfi5v&s8GSV!RvP>*0<-AcQCM;+(wWLdVow}1J$t5=`? z+;DU2Ip=+U9c>V4s}ICEan4ByLBzXM)z#T}e13O)adsY?rsN?b;t8yPZ?0z+u#KIM zFzv&R!OA@;!_X6oSy4#-36sSa6 zOGzRw_c+V3SR%_DV*#TvJi7_s*)=A$z^^0t*b+wG*#KNyI~i?aa^Rfb-rv9c>k5!H|b1*Gvx;14XxPjxenn{iy3r^$iu zIQqKC59Z=O|XbdJ3M$*UVZtSKA+yRdVFHcP3SBQ^XprDG*0v= zA#82w6hO~8x6$qOclY)#Kl}9cXFvPQGcSB$dw2i&JTJPKnW~yN5ob zvRsx&Cr3xGpPd~aHZd+(_hw%II@hn;e%JEHbq2Leb#n8F2#AQRTg2zGT7zp^b;bhC_x7B8BvT8F4zVLLma)v>$JYe@1CDr^S9pC(}On>XkHvalo zU3GfEVmURpELHPHX=e6-fBpE3fAg&GW_h-`Ioi2;>GIX*uU&ukvsbS?{i%(O(dDAs z>j9Etj3TnmWjmy;LSC^vtg6bh)3f8(?jPKF?d(a|!)uC^1$O-v zBtL`B4rZHZ2RJz)N#6EzEK005$zM>JDyJPM7OMU zvOIRv*IrJqf8{sq-Z#GH7WeLkYJ4tLwNRQUNQyM3tB%hrvf6{^S-(12o^K8Y!|l=L z*0n2FufKHl>eHXxzjWo<&CTsyF~kH*DXFxsR-0>umW1uS&$2A9t8zTPIJt56*3EC; zJGgtNs>&%(Nd3GOfIt7HPaSXs^-sa^KMvPk!?vG?lTpi>OF1@QV1tCtjpjUu&;V`f z(Px4$JfjE2dahjsC`sDB+G(YZOav^&JWa>LczU-2g9Q|s;SU3&VdYtO#0y}f&V|I+1WMw?q(oldXt-n&@W zO=?5QE5gqzsy_G4Xl7qe+In~mq?V!3RZdeOvaMV@K!!G|pCh;yOS z>GX%g&7EGizq7NucV&BLf3Mf;4+n#O&->t#nWh+{Vum12T+976)SNRf;+%87X_`10 zpWV8B>&EZAe&f5pcY1bwK>H;v6;H5b!MkhP=dk7y+}MO^7y0}RtPnW#=#^0$o1S=F zSkibf>0yP#a)&qv8-Ze%vaQnQksE|)sMb}b7iZ^k_tvfK^;dttGd&+)+uPjz z;^yY&=Q`c~2#vNw{X9g_=t#Hcit+ z=fwGtx!^?{3WBN@s?k<MO{%JDW^JcGG0b72h_yhNiSxm0irO@FxtPz6 z4i0XA_4U`k^OZYyZhmJzpC1GBM`r(r*e&JS+niC;7H-UdJ6QZR$|V{dcDnpgQ6?cV=w;AbIi!MDGN zJ@YlVas}!ds|v(b$avazw5_{sMZ6EBQiu&SyGq#)bUKc15D+od6s;^5GM!$qSj@ua zaC?|#d4H9Id;8~J{iv0-+PZ|u%+$;tbQxQ2;n%xSIdZHx}s4VeB6ynYDP z^YHvRbVkse!{ihe1y)DQx6xDW8d@4!N8%`>+AC->BRCLMLt~PrY1&rADWw?eWcH|| z_10ul%hXxX^WH2L=SKPL=M9s8rs(LaWpPikb9Nd26#>@8)?)=_(Jid8yeE)V;m1nd%e;u6v(1icq0my(O z+OnV=_^-kJ$LR9Y$Tv$Umhic4Xfo_Lfpl<{Va*gP&#-O>9cReJ60ITiD%|!KRUYw^ zvWa!s_^K?&)x5lYHaxx4?{Dn)`u)DNU)6xUbrrO+GNG*^ZYRlVra!1{R8zAUV=Alp zVm6yiC*zBg!^4ADFV0V1`|h{D@wM?}d<$$6V;rx9U-JPfA3r<*)||HiYs#wW*MZ*x zejfYUNz0~tzKcBTv5PT!ULlr2Rbu%R=@`x%nm44$1XmYQcT01JlO`Tsl2N&bB zJ4Z(cZ=9VR-=EE=$FvsCV)crAz_tS)4*=^i!1yZ&e-h6A9A>W|yA8%Ck!l9d_pzkN zVua0)v3oW2pF-?4WYh^%o4d)4woO7luj@u;7iVcQyI9`4f9K}bXzS_i?VW4=!Eme7 z=?zE2txYpE=Oigv}8~~tYg63eqjgYW!b&zidtalwdx!V?g*Ch-N+NA%LufctXZOw(I z>ap0{H#Ub$ca$d;SI_3ldOCjn>MiZZH`3e8_!OEvvFB zo2INv)l~Wr(qb{6%x9B}vaA+$T}@Qe)Xb_!gueD_*Q|z*Wjt8`*6ENO<5!TT!uS`V zc?o8HaQ85~2O)tvD&DOeY2N8?D1iLm*m6bU`DF| zURkY-Dez^4&tZIq7JwrlUs0f|eW)8HK5(?wU()vGO8hqi@CQ=R-)nq?U)s0&YXvPi zBmm##;ddjfnVM^bBC%z@Jx&y`ck%i|HRJKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z001wnNkl;z3#K>)}yQ6Jv}d*as0%V3=W_qmK*{JQuu=; z5D6j(0R*yy;SVs8fFL9!a1=!e4}oL_DY9{_C}Wfa8)3kT87K3e?&oS1^yf0&jNo5 z_?y7b0RIU%1Nk`!KaCWx!|dm=!|y?K4VQiqJNQ$Goxt`lV~c+d3BLsV=fDWue~R&^ zAifR!bsz`+B=Dz!tH56X{wnBSh4gbEKLz#<@D*S(T;s0~_x1;Y{~mbst%t{c1h+p6u13^jtw%n+hLD3f@C}SV z0ejyMCh(8G1Yh|Zpbd!Gme*xxy9!r}* zJxm1oy=s5}tPunggGoZi|0cZpzkx+`>pIvP*{Be!k#2-FC9(==HiyiE(?HkUhv-WOD&8&R|v}v*!@&kfMgw6k&;sau7kxP_IZUND4?yARZ|kxc+k` zcAyT^3{nnV)t^4clEZw2Y42prYRsnCSh39pTSjd322=;w!`HDzi>_-djUjslY>yA! z1|OaQ+Tjd{0~vn`+x!gd9UyyaWOM^5zmA-Nq&1Q!BzK79Xxl;H<%xpCZX; zp#2=eSAmx>eiT^$ZZLoiaPJy|LJ?puhpU&7SwglzHfv-Nk+?>-1vvw)1L8|0fu@LJ zh(t6*#2o5ezn)S=VnUNZio+T+OdMih>M-$`CM+3A4OB^@Sc)VX%n2qXQ7g<9qo zhg}_GFI<;-s_T6j%1E-Kii2W4o+(kYygDVNT7OfXZcYrh* zA~U3$_A|Vw(3GKKh!{>41w;jhA(l`PoCqk02`UDf5EH}{Q|qCpfr(+skw_#-mT z{cEy>1tS@lQ<51WCL)kD5=mGRLY^ZLlJkgWq?lt-k-8#vHFm8+TnArlk<|(~8SZlY z>@tXF?SiBzVDla1Mg!9h*|*-ek9SeGL{-tML`+dCv<2@Rsu73aHT8q-K)sQ9hjW7W z;GM@AXsNg)hzhC+O+Ajc4pK~{kVsu31|x(-3J_H3ED;f6iUb379(A5*5JN_aklH1Z z8&Hty%gCm|$Ij5V=GfvZ82iAF0Npnkg@5{Y-T*=ilMMc;=aA7MvRXhfMWjMfgIbA3 zP)fWxG{oMmIKivna)-;6EQ2ib_)N(PC~_q$9C@x3PRP9AGR2FaW{CF4-GcRJG(wjM zO`@wKU2Sx&(RPtGM!JybT4*DLm~6(9ieS>(qr!S&~mMv=EDwI4|N>#Glk$E9Yh6son+6@CAjnEox6KU&2T_>tKP_F}Z9jWR>Q$^|~ z(Kbe#x*n@}1xt|S(1B1B#tvfy<%`J68M>&kul*5>oAlA?J7xf($ACA19k}`iyi&sM zr(s{A8X%sq@{v-E9p%_D9y`Wk&$v`3W5;ytm=(&T zRHmh8rb1RIV=ojYhzLl+1*7YXrb$#?qG}@bDzdB+%Oy1&qGQpm)HkuTmoY%+EiI{LpJK z{!!#;hKz3`au-b=C*UliDZ`n^i{d=^%*acn7<-DTV>EG$rx}wC$JWR*nL4&MJy&KK zm&Tr*LfG(1>6M8WN(@B$WZ1wITr#={(Tvm?tInva#G;CvR)P7vQ~2Kea@c;^E6Dd4XG zKMQ;U{1@S$y$+W@g*+0ZyoD6|s5&$iC=m$_PCC4I_{@>#j(p-MH*!W3WxScOx#8H@ zD%jc1xHfTInm8^`JbQ&>!wXXz_4p|tf6>yHmCDb~!U7}U&KRh21ueHeGZ$dK%+NXCz z-)MltZ}RT-utHXd{usRY5ZQeZIbNXBApQgiisDdFL>2EkyhO4hqZnuXjNizZZhB@L zp3U8yy-m;M?SdOyo)-$ocBX7*!c>J!zzs}+oWGi3(qsPf(wX!LFDig2BLVR+$(5-Y zahB0+WbADRUf3yk{;cKJamW2qaO=ovsfcf}Wd^HAG9#KtQQRnC$sj~z`wqr2@E;AN z&F^Ro=ztR8KL)>tTslBb-a(2zBzOod>RgZO9XKEHUdX*CpE^dHp2=p;Y&&CfH)D4v zN4 z<3^@zd10hb+Thm>l0At&GR*QPYu+xro@c%Gtb>bLmRXb5}=vVk_s>k#gM& zn=)KSvOdXw>{{f>z+V{a_gVp2NINY>UNRV$6v z3YsO-CUc#cs&5h3A+1BwDKh#kC=a3ilTT0Ne4_!r?*nT2*MLt#c@u8TpqYSlum<&l zXoHK^yPphvspMOZ(WRW(PQmuok}FpWUfRofeKY4{xpGPSh@u9`>|Or+;>@>;`NlV? zf|$JbJ@PFn=&W$;?dE*C3UYGR#Dg=9rzN)ZDXqnvT9XsaksPD~;wda|^_&BL^yy0y z-)Ml}d=E*!0#1QX!FUEAui%;?+M=;QLqO@!WN6mmvz%<4QEYk2-Hgdj&U7zl_qmc+ zuM~Xm%=1d-*pk~ zCmJ6V7IO{J5fGE0K{7S+7}iRC(hu4?0N0@;04axYKldIw zeDmA|otGRQ`*@xhNx1M{14B@?C(FXV^;B87#W7qgtuQFS$b8Au-#D$QYTJVx&BI>rNyD^gyR2BBV1}LA#0L6O@a0V=p z%`N2lh_HpUbEIDPWnlrIDQ+V8St8#l80{2HE|qLw9dTnf=VKGc3r?5~gWmi5Co}Ug zXc^E-Pe=AB$js>4#JWwaL!|4V>5NuDlMw-Rf*VQ{(@ZJyzIHTmLax&12j5(vVNKno z<9XelF4k3OsG4S#`_hf@V2)tk#9E>Q3seYmt`mShPeeziN4zQ@f03kAnX73%Z@G zFFEX7LH6dz@*a{pB-=*X4Ds5>fKu^OA)7kNO~>SF&fb-R*ETX<$(2o$$20%Qpr0p8 z19}+(XWK@WRpfZl@#wf?|E%M56n;)+qwS0+f(zEWAU6<&6UU@1^fDr7vF2wj(Kep-ij9-P*<4$jtRC-X(KI6IB?{7k87T})?ZO}Ksc ztohQtlf}K`)5UUrx@_vjDuwkDZP(tVZj^;}=jyX=xvo>4Zin&ei*od9+weDky1$C| z9*?r8FhF?$0bNEfCAjo8B)fu)_IfI@tNN874O)8KNbwU#KJ$#XJX>2CFN_@5Wx)9t z)|6g|vuW_np-ZgRk^PgFTZavI4_gin8&1vw%T=VQ0&QiqT_VLujE0?~8%u~+oC@ld zELU8vxIy*HM8LIE|ilL+q1<to?l-)( zUvuxU;c(uuJndMWb*$HcwuyuQAqvS7$s&mF1%&}bBBDJ->7C#*!7Y_+5hxape34PE z0!JsU-5qHve2Qh$bz!yc>a*2y_3-Fyd2(`EA0Hn#tHoJp*DI`9tF*OP=)_r)DJgBK zwWsYmoGu$9>>K&t|A1lr!c!RFzZ&N0zXe4Nd;brVmyuQxT_9D3x&kR3T5jT|4mZol zH!>z$IeVKKFJ;P(^)S-jQ@O#;K(us92><{j0#rEMc2 zD4iM65=j+P9Wdw+OQIpkdN2?KZ3R~+v`+XYBWu7{kzyn%%Sq0Yv}uE^77JT1=IP|< zI4;jl<7$2u+vPmPdMVbf9ZhW(IuQ}gmC439Z^vb7?EcM;vjpK#o;DZu?_2jz2qTzX z#b$TWa13q&zClarr65_a0N2vvb0wQOMq7@nrRTE96ZMQeNmca1#irI+ECRRoTi(1^ zaqFPv=uyYnS;KM_sF%acM+ss?i=-qZmBIZ8qz*9$qKI{?ssO25J}N zuIX{k*#E3vbliSe^W{4gw;$CU9=6O+I+n|hstL56(TNaMh|x$vNnU%+Pn|H)zUVA1 zWO?t3VvCqZ5Y%EXZH$IAiqsD05MnTMA!%E6)}6M_=BwP6^W0YRk*!xw>PqNpv93`< z3n^%_L=<(-`^olf)?S@$S8wm%jTca~Jv#${@sr5-5V`&<*!D|k+e-$q0^As~h-8YE zprw#+dd8ccOPR7MeN&4)E=%_73A6rt23;L_bkgzGLBs9ihDXN@^W%=?yrb$8ZA`S1 zh)xLzF+j3NB4M$Q-n{`5;sjDJ(CX_D9U4p2WuP5usgFM`s3B(NO;XSf3Iz=S(inKCA%M4dK@>#}4>DhLUvDrYB_vL~x`1}5!VXbj?+Vb`Nns<&` zj*eSSk6M;tbro1<&jD+N4=CWMF<4xM=XEF<5{8BH^`b7dy;C zBX+_0B9pQlO}2M-%SVqM)KA+{@Qns|4fJ)`{2^?z#yCUUCE|QfDP>X2XB;g8w@*9v7lG4xWVsAfZJEa7Bq>Q* zN9qQQu#vFwbx;Rq2XI^=zJ%2g%toY{gP_nV+67V@AqphzMO6}2%rZ-z6Uv!q#;O{SBL>3A|(w{06P#5j9;1N?b-?lt5SJFv5c zD!@7*T|!)d%pn4r3tD9OQBUtp-MevrJXa41mNZ) zgCsCh5ufMQWi#noWVK$VaPSa6$%@hLc2_trQ8i03IKZpPz(1s3ajkATnoK6M*;Y0` zJJXbsyHHMlN(20GpT1rJ87-lU;HD7QkPRCCB8PE?PBOAd#w34|@ut+*X=IrB=QW5J zjQJ|Cf7)?4?^rBa*6Wt0?t^X+Bc_blL6k(QT9SE^uSwmQbTWhH09$)_>xUp1rUksP z374-T$G;AX1Bf*|w};GjvF-qxL&$a!-}H?l>UzpEHQvlJ(wS*kpV?w{sJ`*-)+q1F z=>`t*3A|bIcCN}W14}_&HY$qIcskuI%5qe#*X!_Z4(KU^a03<^SUo^jr@$6w9&ZQr!~NZREI$9IXS3I#G9tHbAgQk{;hj=X(O2hO{zL z3vm*$V}&5M-;nm1u&n>ut$G{Sb!?G+JZ)|Q%#*^u~Y3eq{ zsKd&CN&_52-oWA%cm%0JJV-tTH|n(_nf8G=7hDFpgF>DN7WHD*JMg_#XDn8Uvvp+I zMCumm0BtgYWrQTeJR_=+8X+Pi*J8&z*xRqd=^VI&@oT^@4>haXu>Rw~FG1a4`~vXD z;0=Q>{4Y@bL&#pkY-?y$t+BJBr!}{tq~lk%#m^$&Bi1TioWm%!>+&PW$Y*xT6IQcwsps;xbiV;jA*a}fa{0J#P$B>PMGE++F z8!93Y?LuOb&SL;H!C0&#XX`}O7;W7VLLj2O0iq+N4zr9T1vabTV1&K>0(O{yzX$vV zu!E8HNRkGa0+)yCZQEZ(?jZhsgqv9R2Z5h};t{0(8MDuT-T?n~jDJ25?tdL_zhNvE z#5`HGUNkYrR2Cy|Dft+q=ZQG1$NYk-`cbA?A%doq^qHX`89{9Nzvwo4P9X0J>W9Nz2D}YjW7z%GZC8G(ER10-RNh}<>k(Jcml_F3~K9IY`w0!uImDV2PqI$ zA^E;WAZD0aN~)rxtjNbjG0IiN#rQ6Y)xK>5*gYt-Uh$f0hzV8(zC=8j3!oX|1u0z5 z2}tiB6Mb(TkIC`AULVY8g0b!rO`8b8h%KaOMD@gM)uY5(NV+CQ{tB_NH`3%;lNIb-*8*nrStAI&Q-r%1>M?(hj=oW{6?$vMPCR3nm zTP!7{KfH)!BI3+Uhb}f16*a-B^IDc8FCq%hXa(pGz@>!k>?8gjMD5W-v+f(A(*(1G zg^n0z13`OyABg>oH^V~2Y=nh?S-{eZ*zOMK3hYw|KSFwp zEehaE^t-C;K1Dl;f8RA?W)M=eWOz|GQjt>RA<}O*^N)L!z?Z%NfApXD03{4EbYnUZ@t|H* zy_k6(FKvk;k}R1fOLT3UQi{g2EXFN?$rel_)OR5}?)PNKd+j~R_k){^fDsckPRM$9 z$a#_6te^2sGHNk8RgwxR6HFY|^{j!70_1Zj9M~bec@qvJus@jd_&ql#z;E^0;&0pk z=Yz;#&{Mw8y9ChCwVG0LJ>_8qCQcBwz7l?}o=KwORh%!1(utghhi8F;==WQi39?dT zX^;oV8_ao3241!knhq-Kn<0Wd=^IRgp)JR zT|%0^he3YtQ33lyzk+iFYFt{+FC!y z?1KKr4B{Z~CR4=qg*tNyd<1L385YM_D6o7EtIz`gA0brOHw|eu{q9=&Zt7oM52v{b z{NgXbU;A@#atQB_Vb9%i2wUff@|RK{yT7R z_^rl40S%#3@3UE+7uy(9OIGxRr#K*qs*0*Q)h?#k*Y(t)Lm+%6L72Y-Y=Ryj#W6D4 zfUtqJGi(xjAQU2rNQ#LNptjzt7J~-J&PxzOW*ielC%D4lOOK2*7#Xq*&?cbnd0ris zP}CvI{q6Q(wf{cY9R8xhCnq$&{PS@4H+s^gy7$|`MGo-e@nk$2jW@*U)UaZR8Y&_> z)T_ja6G1eElvb-%wO*~;l+rU~#P%`fP*%uv7vg2Csi6=|61JR^wnxNPi6IeVq7I45 zJH|shN*p>Y42a2kS}~J;1?0Z(#r5_iChA}*FVKd*`YIPCj320TiqQQm@K>O#;qTI) zy*lc*yVr~Y&N)|XZST$|)7iH7*@lRghUJ4)RRryu0G*ns5@Oe^R?Dic*U`+Bwh-77ob-$qLLDebGo_@5o}_yTQlP zqx~l5w|_i#JwQ#-FT`=4-7Npd>^I9NGM=^`s6{U zj$$jrp9<2{SR+WCLu?UASS;Y`$6+~wGq|^R|~7o;6VB@aZX>K7!>Z z>31gi)r&>01^sTS#jphI+Z}w@M;955C)3TVSD$-vYkT(<@BMDobuL*C`OmdY>YO>} zELm#1u3cBvdTmCZ6+ejq&%gkmK4){W(sE49L2PE&%u_xc`@Jk_dHEe;@+Ao_~4*9)aiGlR}2~Tb=&~M56uRiU} z9|oUsQI=aTzx>*(FTVWRXUcMPJ;pfd$8%`F?31tHoQvv|6k@YnE)E~=KR8-0=ardt zPt&O6-?t8Newi({9HB=WupJ??9NI?bEsghDMGmEO4yvx*yi%r*@&QDJckB=TLEv4?+YeV08SE6I{5dQWv4CNR5(~N;A(`jT1}l_wvae_a617i7@a2Q4I5vbVMk1Id8-L5zC z^S!37yoGe$iJwFyiHN8=ao!0=yIL+Dot_*$iXk+^l1w~PY2vHzuAR%9aMMHlB=!Se zg4GPH1{$n_xQxiCgL%h#=9y<6mn&lgHy9y_5t9+k2+>lgsx_y_r}@d9yR-Xmypg~0 z=2yDAH*baI(P^lc^U!qCt#*I4WAtj`WzL7@|&w-RYe3;(caqT`eCxxP9lXx4!l;rBt2Mu+Me{{MmOY zr6v6o=Kll~pGWF#80VP1gDed5Gtww0PC7WNsi(?f;>mJF1+tW|^q81QsR<$0>$M#p z9=Jyj?vL)g_4Q)^tv5J)=gn^Z@KIWyoOac6xo*3r>F!Cz>`M(2BXW@bF>h4fQ~mcq zp{i4#?iS1pdwqf2TtFzXt|HAmQWwbFh?7XQk(lQR=cTVx z4y1gFDaE?3IDB-Vciw*6-F*Aa?B?5Vj+VzK+hroVG@VIYE>>sN;z7M$&rNhmyI5kW zrfu5`H~iiuFWCuO~YpnN`S+)1fy!4*gex6vKqnr#FIj0+&o7PxTx;oVDnFBU~H>&bi*K`BS$@y^brtJkhQ_lcYDy!pnXhxgw)K7Mq2 zF`qv)v(>s~W@AjAXAKt$==rWq8$$Y=H z0lxS?@9Ka6Xv3kq9oCr4(Zjk#lydr{}D%IjE{;J|mf}m#g{Rd-raA@tt?xc=PP^_;^@--Lvrh zA8df)12Dy2AN(dqF~ zuE^eObMv`8%Zi@AOuYfplf61jj4aRH?(W|1Y`QVqy?o{RaxtG*)oQ+4E*7ixav4Ib znra<=mIoCDk$gO!jI%5&N0ae%Jf2K)UyRlJTm(rer5Hj;DaFSHW>rbO1Vu%hIfwJ! ziHIz#)#A>hhY!AR`_?;OK0ZF&AEIIVw6ODA8{mUPb{q5^;9thV^T?Y&fR%O67hmp11QdqUNfB!%qK6p4#H&g;lM9A|Z z-`?Kcp3OF9q3iZyN*24WtLt?oqAr<*&~?#gnRn_`oH*~j7qAdQh-S%BG8@v`p}-@i zO0r~vB4(-zL+z)ktLo0f2ls#Lop;{&NBa-&-Rs(RdBOL8$Od@7E!smbgypk+K(-v} zAAtHg{N^#d`ex5ZUOmJru=`hfWKt}VM@Ln6^X>cfTW{T}j}DIN?TwAvLh4dVrb)#< zz>}I8W>31Hopb7(E6hMfj7H3ae{AFcsbAK-${AMZpj3+HEnKLclf z06u@Ij}agLIx@Qsmnv*llO8#wI_=Wi2gmL0d-tmK$uOOi7iaVJ*~#7Q&F!!5T)O;9S&m*6QF#LBhOrf}Wc^t8 z114r>mQp%z6f&bXPCv=dJq+i+HAsm2R#p)i+)wXk%=CQvrx=>`dVM%QJ9*>I?OUI_ zd-vv-kB<-UBzv5Dd}xEux23c^7dmZWl)zs@_`iUE7vlwFb%=d^10LK$t{h++E?DZi z&~{DRRO@A3RS({|_4fal73H+9>v;9b)f;(Ul+JsX205?vh{$?qV)E`CZshUk_G39L z2YJF74BMJX>Nm7ZeT)?y?1mtOt_xk)%&XP<;laU!uiUwH^K-ZFy#2=f>|{T5-5EwT z1l`1k__(X5le!A9jqyte&jBCD;*SFvwkqK5ZNPTP$1kTzn6$0Qstw`r-u*jooSh!k zcW=LS_q9-B&Gz-v z;r9OrgugWq`~M=w68PGT_Qt2AePJ(g^mZ*yC05nL)yd)daR0&CYOy$Y{)Lx5@yctT z_`%DU_Vz~O=_Jqd!l`qj>TpgaB@9Wu{!b)XLR5$3p%*J$fRvc3(RWSsJ9CAu>q6J2 zn7X>IP9Hsb_{O9Chi{%7AAEiP;r-jk#|MwPu00(F|3g7LAFcs%;OB<<@{<^wz)gf- z8UDf_*)sSi6A$j19n@>1GeX|P(AICh@#W>CM-Oh@yLapM^UuHX(sS2ecx`)U_r_>E z8Bb@kaZ!{b%xq9Z`50qVk>1x^;(`td=bST3F@|2K6JqGPuIuW$TCSIigZX0d;PmwH z*5SeaTZaexw-)o$gZX@ZoKjr9$KQXbZs*w>;N218JWlkjL`qK}EM7G3|I0%Cb5K31 zh}QK!*6Op<B`HS+q-)ko10f=(~aHHcrq%ABKJNkMV$__ z-E4S(K-aach=@9srm5?uZmOoPs=BVv*46rWxtQ;to*vykI^4f=dUEt&v78^RR;yEi z4mh=5b zj~?7TIXOORn|fhp=Yw7kg5vX1xA7f#w&Zv6VV>!NuWf)j#88D8&YHG)v|g|7nc1kw zi|PLU{hiTdJaek~WHQ?<%kjhzmuH!V*mXlmqdPu2ILPuMo}C=c7mLM7mgjX-ua}F( zd_FuIuYN3g{6>D^JMv)9@AT7DFW&sQAu6zW2we^o>nh|;TaVOfAtvgxe3VjB?;WZx ztLv&Ak0#p1F4gsVm1m`OUE9VOD(75CDYZR;`j|_&NTmEeewymL<3_vyY=^!^>T^~r z#(3T?Ds9(hJZXmWK6z z@w*G}bwC;z3#K>)}yQ6J>B!L8OKj-$>0D=V#y(pAca3j0+Aqs5I`VH82$hg z2?#<$0!LBg1Q1A8kRlt$iZVt?un`8Vm~k@i?w;IX5IcqKU&Chq91?yN_|Jg>xc?O6PeFVa_-jB8{7K+X z1DAon0Q^aXrXmyXjwR*Nc2>f;6;G3(*e(Wg#_*g}ODFXB$7ZB%= zeIFG69mFw&n}~b`5rtrg{Vz}|#Dt{34aE>ke;Kp@yNt96D1l~mDBo2!_qziC0UCq_ z@E?HtLoj$AseT#C4!-aE;nhC`?E&2U9Jm@$kF_58%o0Kl=D;^F{3PuCAeg{E`Z9d= zZ-6#1{3&etY3Sw%OW+vb;|Js810Vq>2$xsq-w*lQi2o_wMR zsqet<6^Jzw7HEDI!$Veqo`JuJ4Ly?Xg3qy6E7+VPMTyC0;LSZa`)#EBDLDP(SZol^ z0K-=E?jI8XjD8LI_mJ`?M)7a)`Veb&xTOxyNNcnZ-93(A~JR!M5BuCp8f^c3I)?KGn}3=lpN01G2wwwU z!uWAu`TGF?qj&eNASe_8_Hwv<5t$@p3uLoKW)X=?WLuDP&^jQ#L=tF z&H*4PA~B&!AjSS?7$y!eFm;%COcR!jqz0-aQ7lCg4dw)slBgBt3R0f1qQfo^u@^4D z>{G~@gZn=W?I(es0Cwr)gY3H*00XCx28jI(?A%5^Ie|+Fx)!ZxNOy=d86p#;8}}o; zsL+(5Vu%<{6$L~Ehar|w5u6AphzTkNnh+Dj6jSS6PXiOfk|U8wk}wgHBw_*+N6H)t zL&JoKp@kAfv5Og|FA+zIURlCqhxD}u=68B;i)^K_^j!=QDySLG3C>3}3F2HIAWM#55QXFoZTr_`2@6It zFsCFlLQF&;X(W=cB!oOiA|&S#%}6oFq9S!g>T2vtg}4sB)FO)oaJqWRAD{2wqdKYzOL%%sZSDya(?*&Ol4W zB|%hBO=#-R5;R~N0_Ov$_OQJZ%nz|Qw_)}<1jTUAMsd#q z00EHCAwPKmu0DqxfMkkjLQT*DG_+{SQKMION;se4bI5W}mN~LQD275Y@RYfuD3zjg z3=3sYD0!}ws${t%^Fo#k5fC-BTPZ#op*7kj($WEUIywqQq_s3iquV_ZHzW` zy|3mKEJ2n-2SQC4I*b97FCs5z=&Z)x{396G=~t(Z4FI9{0j~o)aQQ8GrG(wjz`jB? zK>QGO4VveufO9R*)i?%tQM_030(_z51Em-`%AsR8bPR`{VX2IUj`7ejDU?yEj7!f% zg{)A9UMNfu5s-unM%Nillc>5x)kNw=WL_oaO<=hQ%;tf4ZB)~a`69BcI;v$r6NC`^ z1YaIO9JGd63wc4x=2+EYeh9;TWcj<8l+R=WJOO~ghbX-R7C-?=Kl1a>AwTjO41XLs zo*=`Uh}=e##|b!#Xv%Qr@uD~nJ~Q%CDTbb6>==w3!*RxF!?88+jK+?wP0yuC#)YA0 zrw}&0QhH_Ng%SgiJ{UGI1(%F2LNp_F#-cOoDlw}fXH{T2?KnPfIa)-fqm0ve%Y5OO z&pWa@Q7seFY46%PMKX^i#j-$3v5!@D&*1EZKB;Ganm(QK%mMh>Z*b)d_!;0Afu9FH z3I0p)&t8R#pGFP@DQ_UfKB^8)1xiFhgOd*L9X@m9xg#Gr%8i`CNEvQsY;HIvr7e1 z+Hvoo<>taOTSTU3HGUq+rX4afQY+vbjZ3I?Xgf!%*uQx`AYN&aqu+sM3bapeh8_pt z=tHhvu4c#r(Vu`9?<2b}A}2Fc8pNL>K~Wqkim2jUhnGlJWE8`!AMqO*<4w2{`%`kE~zKFzJ2%b?Qv|fEN`&l!1VF80E^?j5x_? zHZu0M1260pJb&JDZLJ-c7qC{OpQ^HvfK$aPqSMpKDU^{2Dm9eptvvZ~3+Fr>k+ZiuU zGOlIHmKO#JrLF9`L3*I*)ge3*|JWn1>j-%Dw?h90>)*=iaF9Cz?Kf^SYUujtJ31vvjiefpUF@^3!Ed|^?LR>9PiKZ62jDM0;VJEdv zk*(Ws@iJr^$e`?}rVFSRXcKYLlA&bYQ*0Itw{j*IayBpIT)33;+~onE+{$@%pj`FB zrmXHGSs&y-FfH;>@sH^GgZCz@TYO-SK5*T-?&HDx2xzWsd1X`#7?n;llC^b6)k0&n zfM$-g$y{fq>RZHhNb8Vvh75ie$|Gq1qoAa3}$mw|#56?B8mDt>;v=nn{O-?jNa*zs$XE49fa}NAbo;oG* zH~_!%{ySs=oB^MP;RN2O;EEyIqOm|jK=`+yJ;WHr2X4U)WnAzsghN2{Ggz6liGu`|iiwN0Nc zjx^pYEan=bBOoS0gJf#tF)Wq(v{%|P09SeH#N6WmeDRU<8u&rrCqS3Th10xUntpFDYiZ1-JGqxl1tB(ymqPN`!_wG@WM8btrkqPl}owO``UWw z>W6C+v`#rZu<>g}ude6O-y^85-p%A2n6CFrRycMBPId~?&~;UwmaS_#B#5e|Tr8B* zSs`&*kgxx${7wMyw;nkU^d{+FfYEQlm2K#11Vd*vI*6!LsB|b9zVP^=kZ<&h?qsjv z;`0MOajE39W6!Hj*r0bKgFPJCkICv6`iK`~2|`LFgJ6B8Qw&n?;2;X>lpI4HI1!YG zKFWt;AS?GarKquMe5@ClEta`8DGTC4NKP$yNiq_3Th!f<(EzFndm;eeMwI+G0L2FY zI0t6P<`(jNMA$;wDN--{w6K8B6gLw5B$4kF40Z}e7fQA-54g6Q^NEq;1t&~aO7HFc z!;$&GX<2zIJssJ5L1sqRCYEht86sT=O=q+Mnv4jj6Wl6AG0v1C?{h~ZC*&%9eDGmP zNLW*M>10~BXR~D$nri8^nU>k2X__{4U7|};NYWBFtSJ2}%$L%0$LU#nK`%XWevVMV z_$KUL0Lx%_3t@!hc~29vB2G%dZ{`$R1;g!}jY|d3UCeo7?0Gp8wgA6U==<(?Jv7&@ zB0Y83bcscim^P8wG;lNvoVAIrO?@Iwg)H{8xy$;rgbp1WBhPr?n2bH!L&wI@u~|4a zRsr1;^&cYBvnJd1^)4$qh8r_)(8J3ou{^jxW{ zybN{OHOpo(tC~*AL~6udt1P?roN@e#CwoC#PXoYu4VVId0xPc|+Y2Z&q}xJPM7a7E zui&x_KQgjOM!A_W*zEoN=QljhXUZ0kt%IURQV0DK*(cT1AO@qZBd4>#z0;Pv$1VFu z4JY$JRmDDq+!?7!bb+2qjD2LR*@{=l9a*kqg^-UkMw=bujf`6tIxbwyxwe(@V(HjU zMrUAMOy}oKxOw}$`SP99*`1TK*?f97Z|d11h2ho^CtW%wChT-B% za{Qay@Hc<9zl#sb!M9EvKMufp0jYtD=!FCq-bAuX$Y8Ih61%FO3DTgY#|;!ea^w@w zaLco`mGQ#BaaC4+{v&g0eJ-rh2SDf&i)Cd0wB^Q8!|kJ%!=r}N^T2!&X{tb58EuzH zF%qL;YwyMq;uWWYdL_#hmn-==Fqj1fn;qq{V}H@v{hgd!6VHyCWih3==)%eIqP}bW6=FxV#JHD8=@CcG@1^IO~>{8UCe2{Hl?jvl<7xTsaFL zux6>!)?%R(XGzASw58UbwaaieZ;Y^S~NEed?RDDm9w{*@lvMjSnozYnz31*^y{wCHi^?&$Bl!AcWyV_ zI%+sMZJ3=07SoPu+0wR=5R}f0Xo;kXsjhs`9$AToBA5KK zuzJQGhAQh|3m~<|Y!RdExwMryN)N>gy^TMoa0bD@h**KoNHO)4>MnUW3_vq&P-1MP!8d9L-yF z;3>vJv6(U2&bc)5>?sth2((Whuk1Z*Ao}0cvyPkhYrb-;;^slk(NW9vv|~Q+sG30A z8J!4Gg&2(#l;pLq`Kc2o+9#c*g)Hw)QEUhlmC8cWn= zpdD(dUw>LqL(I&Zq@Z08t6G!Pw3)A}vZ!n4+PX|#qcJo>Y{X)#7L)W9UYfkBj0c0s z-i6)yom*wqH1%5XYcQS(05E`24a0k&8!#GyH>6WULSK!k|I6rIo`hLxO$1TSvEoa9q^F^SlTAFBm4Uaft6k-a*)RN3dt;4)R zshBLVB!~_mMz9Q#4AY1+K`evhR%vqW-Dhj)Z5DaoRDj8%37wxWgI3ETZ<|cJ&TH4H zb)AzGlxUhPNm2tBqfm=WLrKvHvJR4BsfJFGwuH`*6fxKIrR!u!@@Qxvh8`qS3{$aA&Adpc zTGyRV&DCdf)sT4$xl2JUMJ1WDlw7i;(Tvyy=Zj3raxmK7*)0za?$tbHEc`eCuYtY} zn?Hh$mKf(~J4c-FDWwdgpwIaif*&~YvaePcU?|et`xOXgwn|6}u``ZmftzO?`?J8= zG%}wDsy5K3L~DsoGD0$wKEg)AhF3uyoFBqTh4>N{$1oX?CJur^ zt7sQUZGYQMfnrd$0?0BgK#YUM8o#K<2OPEK@uSvFK$;^^wSvDGv zHpauzXxX-H;NcqgZJVLT0r>Oq+-t}ucVK4;Re)tcx`em@nL`9L7qrOmgPz_SyZ8J3 zaWyicfSF(hRUO$s>$pAZm`wwVS?}l9bw{Vrnf3mDGUAHoO%^dXBo!l4bp)-!yH~N| zT3?Qy4dKN(a@N4&1V(#MY(oXIoRLBe%@BzNNP{FWQxTu%)@2jvT4b@Dr*L>5Kgx>1 z?siu=FHtp1F*v}h$%=nSeZ{r9@nAF>O(t8}^!!{?N{)x=^rr;iNBi*g63Ac~4pq^c#EC;6Jx4N0dHXb!QZhj)Gif?-;~3!8B9GIH`;Fgt`;!*hGcWEblWp*ezV z7x7KsD59>XJX7P%EF+zphUK}<7DwtE-);@^t{iXR5TC%CC2#Ah3^TA4)MbOB7!1eb z&7v#^)pEHE@8^J?1^}P|3k@vpp^GzM3p0fN zC8*oTNfkL>24;1l?h++gLi95bx8bt`?3!WcQ{?;@$!3@a2m^2l%t*nh#A8q8Hd7rMUDl^DwXwduxz%nA zMy7^WBa1z^;OKb_ETK3o%d+9d=Ei6^8ZVosZextPn)y!&zzO6H%+7!VNEPBi@-etU zUn`PnzYynw%OH19$isrg2f6nL)eT0~8M8&=d>NTHk-CLCK%0zU86gQV&xmTIMu-T> zwb;oH_U@~2HU(~B{3h^g^f{}Wu>9k|uR`5m{4(&z;4OnM{?AbTL&#pkY-`o3T4U!$ zPit;PNhhyti=Rr0i#fJ`o`g2kd($rLY)9|CYSPRwXJ(EEIQ;^0sIYkniUEuw*aA^S`~WFHhmZ}0GE++F8!93Y?UBGFt=9l(f-zf0&X0uu$Q{JL zk8mC9{vhyEP#i$|pD_C@=r!v%$k*KmsQ{fwJ;=LZa_nS(zVO zy@rsOHHq_(SeVg8rAtBzMp_fVDPY+G^CPUSu-lvP_6E%MSIYl;z(tHZ-{O-EFbdX@ z2+d7s{xW^L(a*2T%bjum6i#j#)Yi4wa#?j<*98O*QXr~A@_-^@hN-2bDmuuDd{`8N zTvc3*@1t11<@Mk(0PGHwSzqy*YKRFI2EIf*m1;3!H6xSXhikIY|(p(wUBg4>J+=Vh0X3@e6F9B>|!jxokx50p;qH}2$UEp zlFm=zZVmtCe+F#}V9t54MCh87Vn`x570Hr`r%x`X)f%TF)O?)p8@(qa3Ntk`-r~-QG4&9S@w<4X@ptALPrcatwD#; zn$WFF1Xp*k4o+I@>7Agxe;SXX7HRWKD+Q#S%p1?!{_va)^+NLpic zhMft?)!4yH*nEodA7cCxu>FYgI{J6I{1KF20$=_j{Lz2nNwBPozg&Na2lb-r#mx5? z34%lsNtR5LCAzjvDaDTzggp@efH^SQf^mfUHe@ILo(y?kdr$Jca+47-VuHpAS#J(m zC&|tF5#J=E7Nb)osgN?k#9>{}8rUE}K83=89l_hz;V1(8D>zR+@NfeBE^z5vc*3>) z&*`cARXybst`a~)*J?`1^^}Jdm^eYy`b_w`dM1gAS8={5N++^j9-aXJLcibAM399d zbAvoU-eAsSvf^bsq3NKqz8NCe!@j|^DtR;dpLJN@hwB{RNH|ggLrEdQyu`*C<~op5 zXy=f|yq`h-pj5yg7>dYnZ5v&DgSR7)Z!15_9Lhk_h2%&ml&Ymna{q9*cGxaOK48Qp2;PeQd?8C0jkE*B}jmCqr9FCp3GFZq_oR~PkL?lXIp&AWKF@`Rt z5YtD?LOdA&{u-S8G+cibd+jbZsn90%4Q#4?pwt<$NrXC42cwEmd&pPufHQmGhQ`&N zBhhK!-#b(o2}}%vgD$}09La~USgkGX62b;B{3c$70r%*kAJLnn3{L;+pCkTnKMk&d zzx(gN;fJ;Tz#763I`uxAe+SqE zJw%EVWUv8Y18XPPDE5v}h$JE@CPIMPdaGK{*8tf%1wkJf#{|&{u5kF$Bf|^^hRg%B z38;IXSLvrvRQf3QTkXMW|9!A2{6&RNjc9)Dm*Dnq_oPepO(Qppiq9UTJe3dwHB8aAt(qgfwmWySZQhJ7r*gnP-$_g3pLcEAIH57tL!sb)b_JG(b zF(hJ4)FDxM$8gn-5?37-2E=4Nt(Zwa19IQ@;(B|yCh7_)FVKcQ`?{V&z=v#*5uy8e z;IBYe!{4Pp066$o_nJ|_Ip>P4?cK>}JlXa>+Yr&xu$sT%Z#w>XzR$bbIfyLD7_ta@SyHI zTJMH-PGI23CQ5eZ5N|M0WSPOjf%hWXvYApU%q$aOb%;|{=bU#jgl4%| z%+AkF=WW+@d_*=3o-_kKPw!o9BYp=8hqZlcs+DEG7tc~iP2W@7Eh2T}sYbnHm?7(Z zlz@IB1gsCAJm}a_Y-RW}L7EzC1gUd~Eg}hv1zdgu<^!0&)^8O+^;C-fu)*hh$Qf>I zZe7^Du=iqF4)!d@(o%A(4b}jXh@j3HSZvy6Uf0WM+t!Vx80ejkk2Dh=2jC+8;+Mn8 z0J)!FXV$yV)tHn#<{M}lWHChN9d(s4kH&oEih8pZdGU~*?5q#Obl}OiBgHIH)qP8= zOxwQH@VtRChtG`R>;UGUqTiY1Hy%xL&FFViE$FAfM;draKl(F}!EiL*ynOk&7q_-| zU-91WR$b?k^)CNPv7*kIbIy{bw(HtuRV|lh^ilD{HQ*Tl@EO+Bik)0X-aCPjgSdgU zt`E?pf;rf@Cbo`HMHX#hmMeuov7+!;wF~vGsL%n)J9OyDH#_`X2we?ZAhq_>W|BjG zr?137`u>E64;SdSJ?#zC*oRRd-pd6)|Y+3C^A z@xk0u>iCEw{~H7F-XrIRO-t;k>ywYR3C9B{w@6)tt|B!`nk&sTV=+w3wcpDpd(eB- zrzXOR7l>k*m!tzisq<+Y?w+Li`Jo)%yv6l9)5z&k%8itcul;Buy=M55-a+-&_e(vM z^4A-Wjhu5^TU$GqpMT-y*SB{rypj2Quc<3G44f zp`o9WAKCmo8GuLAlgswHP9XZh)^+mpL*y_LW9_E)>x*KdUR@mZ+n)6jI%Ep~sSWAJL?^m3y3 z-;L(iKk73+a5d={j*)Y2^TNf;*FN!yPkrCjYcG6uJl=RIgf@>UuG(D15OuQJoz6Kg z-e=a<)%@PQo44M1=gs>mrHWOC_i0AO;{g2GN6u$R`Wejs2`IjR)Y~x3F?$c08RjRX zK~5ZXa9&f7mD$LX<%$YqDPidWF_TggLadidJ2^UZ2lws{ZoTvMV*j1DIC}5xZhHS9 zEl>FMe5dnYHy_fv0r9v%J9a0WcO7h1$Pf-pmG zZ^6W{*JsG}8H5t+D$>Lwb%9KcIEqvoiD{m2Uiv)cij+?=rC8S$M+b*`>)m(V^>^RS zuD|>CV19DCT_&;%CqpOgz-kNCB{9{|HV zFL$21_TuxGuUviog%@7_!SQ6{B{LhQ82fy(bE~^eiX zNA!u3wfp&u*MRB+=SyIdR9`~o?;w*6?9vA5Jnt)#&!?m;LxO{$r#o#}=HMm{b4rf% z96{SOc6xB=ZhZai>}y~C;^^MZ8#^h67q>RIUftc=-AsmF*uJpb-q?EY&Yc_Y9Ua_z zH&pF0Xx+!gJ*)PCk@x6s&udcy551fW7&xaJo15DguU>oUwHIG__4~GWc3+unY(B55 z!>;T4dL~toRaUd_)>KpHG%s=uA)Md4d-LtDe&q|-t7iC`0wf>cMoJQpHng0doypxhH}mW7zFFSCePd6= zK67dB>L1wN+WLg^*#OX&UwX|QJpc0T8#ms0^Ube);Vbv=+irPfV@qkedgwI} zY4y4;0$!V&Uireni5qNeZf{?@a`lD1i>9AH8{h|L)hTdU>`|{!>N29}d9Z{=oNXH4`qt$sdE?`AK+V3pN_e zzlSU~`UKr>j>wxPSMZlaqs+v+4A{nJt#p;!-el;wGu`K)k09}EVA&GC4$wYPWWg)3LDy}q%zb!|Kv?`C;1G&AkGE~aF?mxG#V zl9Vt75${CBb(k#{^V#*gcW!=V|Nh-OtGbMar-*#NIRIaJ!c`q`gry&cg9}LaHSEV7 zGBj*{0Ly|@g1Hu*cOWHJwwOB7hNiMvE{nr^_wqZpZshaXY<6W@yW^I{&KN6&wLio&QIrq za-d~dx~8quc)Yby6y<0z8g6WDZeQHo+PS*1v9&iEj<+SQilatl#TeH$nJ^G&vK=FjD);whn{9iENgHnkI&@r{{6w($#Jg8-ehz0xjf4XfRs`XKzg`W zhl!Epx!c{{+ntOzCc76eU7gRS)2dob7xUR{v7FCCh*eW9qtEi7q9BqFhofPZW#wQr z91n-1QSOVOdY_9RDWw!c2q~rbAi=CEsV_lM5ogZfymulZ^J+1>b#VXQ7jNEp?<*%K zNBi`v;i~rT*~yc7#GWi0^c~<|!NT*%+dqVrb$SqNPheU^ErPQ{7y-g^NHA%tj_EG4s5Si4H_h^dk+nV^W7s=_MwQ`J><>;ApF zzx&>MZ~deF`*-eiZ9C_o?f(t~@T4u;18@`g9B>YnL;XWgUxnW}fmh$|`N+#hSOs?X zQtz1*bL8N->aM?gw|?iH8};$walO5sieN4`L~Gi^XDj{l@io{-1Z= z{>ty{@87*q*Yz3iU-+M?JPyF(30DbyisGxQ?6A5BDvjU%rNIEMf01QYGw4 zj``Z83X8a`X7zk_K3$%l-rnBa{@Tuki?5XB;8hWohYsCJw*r=|*LANjF*CE2(z;Q| zj2@hRkgqKa>%U^v6xbKDiLA^|Z)ePOg|eg=n&onNG(A6k>(cM^zL~5GowhJa;1?18PvGChcmY`)VPD^XdpD3vhuDS-mbxyqUDGzza$Z-} zz4vas`~PM|Ij-wEUcPksTAmlB^WLRZIj{5{k@c>Ly^kJV@6u=3N|ylkaHC2d?Aj-( z-_SDkYpm!BHv}PcUFf=IS}m6M4-fBs_12B+pTBwQ-M6Oar~9Gn&M_+bMfaKb`_B%5 zM@4{bj9*1~4tN8LKM7>mqJVd|0ox@XzMMv3)V3yzHiV-)cW=FQes)~nzWL745B$K7 z{`kdazEK`-$2mNSI8TPg$tr~6~?s&7_aAv)!*~1DVTW`6jB7(!E6__Zb z6k}aC^ZE4rXgWQ8_xR}W>v!&4|LV<~@4a0umxuJLV8z2=>pLpXX8Zc_>hb@3gug{k z?Ei}xbKuPh?X^!!`@&x0_}yBZO025;i_@d!(f+;j#cX!?{0lFA@|D*<`NJ14?ClMP z<58aHg;VE5)#02$=djDW|PrTN5k=CGAxR6 zfSIi-qI`@osz`6^E%8Vl63#himSPNjp-zaQ>$uSE7&km=v*}b!~qZ>zu`|lhb z?%$YA&km>4=}Ag)!Tas~chu}WdjKBFLqnjeRwAV*5N0nLcmHLf{spKGDx!5j3s#?> zot(|4XZKEykFMW*xbA{8E@na`&CXJ^MZkB|0mot+-vo6V=ki^bwhV7|)huLG># zQ{{gr0QhihB=zNrSj4(@I=2I=l+yI{_~>+cc6Rqh`OcTNcXs#kyx1L&Hg+#xzItUi z9&J09kIHgT=0#DOCFgxch`}tSD9|-c(}oll%f;e!K0QC~+U9IFpY9(V+`D~xdUD)0 z^~}uHO0QQ1#p_h}Q|0x49{})}Bp%w@2B<>}RfyrdX`6%Pa&gDZ21QT9HC#cIVE*X^Rxc5TMP zW;hSTu4~tgaE$EuaqvBPHu60HK4$qI03Wk_4}gzZz6Zd^EZ+m*W0vm$@G;Bx0Qi{Y{{!`Y_ByFd RsJs9G002ovPDHLkV1fqpJ5T@s diff --git a/ug/wifi-direct/edje/images/loading_96_03.png b/ug/wifi-direct/edje/images/loading_96_03.png index 982c5202466f98f9d068c511a3d65eb819e06723..c4044c04f18958f886a9dbb3d880d32848e9622b 100644 GIT binary patch delta 15050 zcmV;*IyJ@6Vf%HEBYyx1a7bBm000XU000XU0RWnu7ytkYPiaF#P*7-ZbZ>KLZ*U+< zLqi~Na&Km7Y-Iodc-oy)XH-+^7Crag^g>IBfRsybQWXdwQbLP>6pAqfylh#{fb z6;Z(vMMVS~$e@S=j*ftg6;Uh>2n?1;Gf_2w45>mM5#WQz#Kz&|EGkvK~TfD`~gdX7S-06<0ofSs5oQvjd@0AR~w zV&ec%EdXFAe}CrF0DztNnR@{MTa+Oc0iclpAQNSXL;z?z0IbheibVieFaQ*0OT;+< z*ew7sNmph_0I;_Jz|Ig0vH%DS05DOAg((08djMd_BO`bKgqZ*oM)FrY@hh$n=PCdI zc$u<1xgb(Nf#>=Hemu`nm{hXd4HK1GJ!M?;PcD?0HBc-5#WRK z{dmp}uFlRjj{U%*%WZ25jX{P*?X zzTzZ-GJjoxM+Erb!p!tcr5w+a34~(Y=8s4Gw+sLL9n&JjNn*KJDiq^U5^;`1nvC-@ zr6P$!k}1U{(*I=Q-z@tBKHoI}uxdU5dyy@uU1J0GOD7Ombim^G008p4Z^6_k2m^p< zgW=D2|L;HjN1!DDfM!XOaR2~bL?kX$%CkSm2!8+oM4*8xut6L2!5A#S1{}c!+`$X{ zU^aw8B*el(5JC!MfE;pQDXfA*D2C0j9V%ci)Ic3Hz)@(1lW-0$!d18qJ#Y{DVF;eV zD7=9Q1VP9M6Ja6Rhyh}XSR;-I7nz0lA;Cxl5{o1t$%qtDB1@4qNHJ21R3KGI9r8VL z0)IJ&Tt>Q)JIDYsg8YWOM=_LvvQa(M47EeKs5csfMxqPQWOOl_j~1Yt&~mgIJ&ZP? z=g_NY5897DL&q?{=okkx#B4Aw#=}CfI4lX1W6QB3tPHEh8n9NZ1G|a!W6!a71QLNo zzzH@4cS0ax9zjT0Oju6XNT?tjBs3A)34b>U1B6k+CnA%mOSC4s5&6UzVlpv@SV$}* z))J2sFA#f(L&P^E5{W}HC%KRUNwK6<(h|}}(r!{C=`5+6G)NjFlgZj-YqAG9lq?`C z$c5yc>d>VnA`E_*3F2Qp##d8RZb=H01_mm@+|Cqnc9PsG(F5HGhv< zLam{;Qm;{ms1r1GnmNsb7D-E`t)i9F8fX`2_i3-_bh;7Ul^#x)&{xvS=|||7=mYe3 z3=M`AgU5(xC>fg=2N-7=cNnjjOr{yriy6mMFgG#lnCF=fnQv8CDz++o6_Lscl}eQ+ zl^ZHARH>?_s@|##Rr6KLRFA1%Q-6J~MpZLYTc&xiMv2Yk#VimzG$o zNUKq+N9(;duI;CtroBbGS^I$wLB~obTqj3okIn_1=Tq5J-KPqt7EL`m^{y_eYo!~Z zyF_=tZl~^;p1xjyo=k72-g&*}`W$^P{Z##J`lt0r3|I!U3?v5I49*xl#WitnJRL8` z+woCDUBf^_rD2s}m*Iqwxqs0-qt!-@Mh}c>#$4kh<88)m#-k<%CLtzEP3leVno>=< zrYWX7Ogl`+&CJcB&DNPUn>{htGUuD;o7bD)w_sX$S}eAxwzy?UvgBH(S?;#HZiQMo zS*2K2T3xe7t(~nU*1N5{rxB;QPLocnp4Ml>u<^FZwyC!nu;thW+kdXMZMJ=3XJQv; zx5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C^>JO{deZfso3oq3?Wo(Y z?l$ge?uXo;%ru`Vo_|?0bI`-cL*P;6(LW2Hl`w1HtbR{JPl0E(=OZs;FOgTR*RZ#x zcdGYc?-xGyK60PqKI1$$-ZI`u$xr8UFki1L{Ox>G0o)(&RAZ;=|I=wN2l97;cLaHH6leTB-XXa*h z%dBOEvi`+xi?=Txl?TadvyiL>SuF~-LZ;|cS}4~l2Y<3>Wmjgu&56o6maCpC&F##y z%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47EtUS1iwkmDaPpj=$ zm#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kwJ{5_It`yrBmlc25 zDBO7E8-Isy%D(e4|2y!JHg)!SRV_x(P} zzS~s+RZZ1q)n)rh`?L2yu8FGY_?G)^U9C=SaewW{1JVQi2O|!)*SXZy9nw8iQjgXv z>qid9AHM#b?{_T?HVsvcoW|lKa720J>GuiW_Z|&8+IEb4tl4MXfXY$XCot2$^elGdkVB4a$ zdw=I+&fjVeZ|}Mgbm7uP|BL54ygSZZ^0;*JvfJeoSGZT2uR33C>U8Qn{*%*B$Ge=n zny$HAYq{=vy|sI0_vss+H_qMky?OB#|JK!>IX&II^LlUh#rO5!7TtbwC;iULyV-Xq z?ybB}ykGP{?LpZ?-G|jbTmIbG@7#ZCz<+n3^U>T#_XdT7&;F71j}JoykC~6lh7E@6 zo;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|zrTyx_>lv@x z#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRaXCP_p= zRCwC#y;+Q;S$5y|JNMpii6tY~s;s@2S(-DP;czkSA#G9|LpB82GHp-Px@bhDe%_n z@ec5dz+V9V8So|GCE(ux3P3Nw|9=BLa4&(r32qGbMX;X+1o$1`ZQ%D2`G0LJ{3@gy zp#LV~{ufODb>J5f{(X$UgYe%2e+}c8fdk;zfd2uAApbkq25@clz5W#R|1m5FU@rha z2i%45-+}!_NOyq0v3l>I`wT|Fp9gLM{|?ZuzUMbsmYxED55*F&h&%@A4EQwgFM%zP zn80#`zX~cq0)7lIguevt7Jul?l}IvR0h|H`IP62c1HRvar$Mv=UO?CeTCDdYz)MIT zA-@m(655ww=PoSQ5SxR)1oZ;+^RV5A#mn%<--7%lxbgGY*>yO20JcQ943wR6{z(Tw z9(y7MO~8-B*8hvVn1gy~YbZX0l$VgvJKB&!bTggywmNf8;0crXiu=y zQ)E0q4*pMQTFeR{M}L?B4Tk*x5rA`DTY&6={{!U5UclBqiHru=6f7;UY6*431Y~dxb2D5oM|Uga@;hiX zz#UFuHpk*m0l$tg{od?~@IBG^2vi^n?hw{qh9A5JX&pZG0)JvdnB2zg2ti%yCvi%D_29dJwGxD`sE4FgDvR7)%rnCoFRpgFeK#lkKwEa3Vc zE*)dnDy&wBe--Y20Zy)Ufg0hv>nXnb0JOj^@EK&y;Ij+J1M-QF!|XH2nIZKN5?f@n zhKNUs8u2yKbbotBq`iZq6J0Vxn?-L7alz|9+0dMp(XBa$MjODq@2Mp)4& zwE>zTR_B=C!ZtIkcLTfhact)^*zdi9oPMQK99oQ77b<`F0g#o@7pqubx(Fuw7~K3V zmbO1OIbExwm zhP4eQIp%ZFh-Hcuf?2>qi^~$$bELM9X~1TJH4{wV#gpieZ3y!(75FAz6vF0WAa#1*UV1h+SX9 zMsuvXgx&oaxchmq{|dMV3_r{OOn^TF{HqXNMXvoWeBu%eA~FcbJmRt%sUp%EK8_G? zo#_$9Ys6W?2?QT-UJx%hCj=L81e`O(Rse|LRDTg1Y61#o4wKH^8%9Dg3{8%t)&U`c zdcld3oI|SxYM^Dpe89$6Nxd!D-a?v3P`w6co6vj?oWqiR7y(dV1Mv}hXUMf(xVqVe zciJGdIH_=Mfg405Dqak?5`+XJsN%)rd>{nF2f=wqSUtQ5&Vx9?33yQ?NoVQIpw&*$ zNq;d_G#asSBoj0xqD4$0i6@yO(!DnkP>Yy4Qj?L2B}B#Ah}_&qhY=qAIpoeyqv6+K z^7@Aj00Sc8eip6=Aq$?&fzO4^gGX>d$S@=Ux-vV_NMXrH5mKw9N{O}7L?zY`Ti3l7L(PcR#b_zZ zNm(Sd0f`YOkotktpToi+-Ga4%ZoQ0*73i<7+Ac&%@+<(5Z^Oy@)qi^KWF0~RK9Afw zg6lmb56}pb4{`YrtitIMUoCNyRt7D9N)*Y^R*8)g+wM`%mBmu2Yo%RAnq{PJj3yd! zY19HqpiQ1g#5o~_&|OpG5bYsbka~vn2JpsZSpF0ie-k0QP|~oc4_W2Oet`VMw{WmG zfd6<^Ap3uS=Ycw3>jYg2gJEE8=ouD{LFO3do_=uTPRPtUC+&n_U}~h+XzRqXO3WLju8nG* zm@Sk=9jOn0X8BmJqX59^y!u zA~Z0Xkro5!=g98!a2P;yAYizajO4rR1J2FQ0?B^{x%?*b+%AwI^)Zq+I2qzxi8zNd z!x@AUvdjp5$cGulny0@J81w?YVW7X6b9p1@>RMoT;JI9Qwll|i<`{bD88`vwJE1%6 zs?q*}4?cgQ1}Q6E5!pYb^y5G za9(I*AV!b&OPm?Dm5_3RE*CJd$9d0F*N~nbfOCWc!Y@H{1#bK{te+zNEu>vTQh}hj zb7$$K)05!{CV!+L;OyLNc2#{5>4ep7gs#>Dh;!Y~0ER=&*y;zajFed&n9MSc)&uuW zS`JQY4suV~_moF1<7rE%48L;j4c%@)1Y8a=kn%*z3{nsGxf9ZxpM^*NGVos_yp2(O zw*Zh8(vLuX8rB~mmwL#xUBt~1S0Dq2v^ma}I1KL$-+vRbk)v4il9>|H~5{`VcoBL5%3N6MIkpCl?e&b^QNx{HMX%>5j(@vQ*G;V2yP-N3+0Dz+#LR3*40oyL+_@ggE{7C=cP=;z<~=1$+VV zz|O1i(pRADf@LIO1u6bDE#xb{Nvxt zd5QX>X*mxKe*{@=4Y_Eh-p6d28Aeym5bwxKVKeKJyv%{~4lyCAkxa2uB~_53k(^>7 zk`b@6|zhpPhaFY2pO$U^vRSwTj-%AUVU#XbhThBrOt2g_Jp5G_+2*ut3`$ zuJ;`FgH!a&zXeBMTy@pLDsla`0r+e0|Hga|p1%U00Bi{Dqt52j)#IJ7aKYi%a>AA; z-_Ge@e=gX(T5{uZ&L`IbFFMbLYG=3Qg5b_gj9t)v=`_@@-V?RcT3u@S^@A3!ce(<1-<}MRLG$qf0GP}EuI`l!j%p`3gp{4#a5udQ?hos z$K}g8FRW!eAB1(YP9W#z;|cR%!FR%=mkeET^=FlJLG*$(glU^kgs`eTrOEQ#v&yaZDQFZmbI}=iC~VDAeIhE zfBCAUeh+mmkj6~y^V|))mXO4P8ZQm zXRVB9D)UAOQK+>=f+1ExvqXG`v<>vY+;2eoCo2#3m!1ZI!zW%R=q+K#Bbt!?`^ab; zXV%%+T#+)z4IJ4pkoP_1R>9ikf*Wgr=Q8QAyCC4MNg|JvEP0&73#m~Si^Rb+f3iPr zIT*K`OcV1(q-qkeRZ?rH0!cf+;ULR|+<9C-Fjxz$myY3j#@1HG)s4XJTE?X!u;wB6 zU2^uGT;hF&BMjC8H@0(boHcg$I9NGQmrq(*Si~8Kl@M#BX}j>Vm>|Uu0iVYBwJvFW zx*c%si5Txbl)s5AYUIwRA)nzEe}dR1k`+j=zzqa90=Joy@Ag>RExEFub0c@`h|s$j z+^#fVFO;qx|EWqGoweLOZFz89b8yx$8As-GrEVfACbWXK?K)f}>yj_;2m!Lp6ADLJ z22M*yf9N?p3LI|dT)td#YrEij-?348MqbG5iE#J*OmFGgUeDylFu2X0f7dc-@Rjyl&{7VO{t~9z(P*+)F&?gXMtpMy-q!Z?My-Nj~8yVM2#}xL!s|MXN+gsr!spf5Cg4_jqTxK-aj*Jw@L$=sRX(&vX_U&z1QiGPzuGb3?e^ zcdR@4);>@m55lMv8m3=^dPrG9KF89aD~b(-upY>_Gy2XZ6 z+gtMHUd_Xk$mvO@Qlji7B837K=9{f-GIh7-j(2$t}fBVPzr&$Czr z7PYdhlxi87Rf%~r8q2vc4D8CcC>R*1q2??G(daB8U2ju}J~!{Y^%7>Mh!bS;5;p(W zfWHa+o$n+Q{>k?ye_)&Mz?FUI3si@&D3LJ4yB@9(+yMN@k&T4j$g@81>|~wO%~v*F zS6QygyEY#)G#Zn6|JN$ zyb0cnP$ilMnp&xr%5teJD`QzJRfM`SCQ+$;kF4j|Tvb)Se-Q$0GOenp)uK+z)F!po z5WEF4G<75~ayVJQZo)q1urE)s=6T>VPYXbHVfSV5(#PS29&-CFq+CN5T}hVpglrgo zkP`~Xh8e{uXRGjRI-z$VtF@J3v(*a`h|!o%Ti&_9qm(!J=-bbzQNTH)*jXHIk_m&RWSV&kE?Hp~a5Bj2yiN?LDA}J$)E@ zVQm1VgT_H`t!qSUgXkP*0hje~eNWiwG1$!6=zBK3f6$jzvjjsOs0opGtCT4j^F_n_@mJ+I|D?xaHX!vA^2XRU;k2jA` zN+gmhN2}0iLsFp?p)Cb-SnUPb&gG@tv*x-`Sxg@1B+E$~-+nl)U)`U~kIyEHdN!?W zxfH8He`zj>rKnJPmh*tGV15W^FM=t?(YNLhg>S}Teh#<^5_2TA1hB+`jzMEKnbhg-y|d*j?;OwXKRlU^4^F4`Y*v{zICG^`S&i7hw8fe@WYal&?GT%O z2ID`Xo1SssNg_7yY})#uBg3B5NORPYVzUzZ88XO`fg`MW^3u^Ogn{oePRvMj>^0Xp zf3e5eSBl1Ts@ywjSJ6(*>@+c(8FkgtrbrA%QimoXwF%7~+RL!iKm-$qwFX5%yoXGY z*dWnx(h1$u;xUqS{GVh>tc=D%ItwUJWnzuP+GVT9>p`!NGP#mD%Ba>%s`hAqR^5Aa zy4ZhoGCSHkJ)Iwqr|o>%pi#YAaCPWge<;>X>!{|vRk2UCBcx4?kF%=VJS_mf0K5S5 zS77hsP#U;^F**k5xdsMS` z8kvj}i&;xmDQ#;+=Sbdl+8;g1)u>fac@zhkV0j;F1?n8iW2D!ERO6DMsSj}le_n_< zQB+;mBbG?244nkpq*N(UHBlGSOpk_=_6pK^M#^JMI$l)Mz99S`e;NS(KEhuFo5JD`agBq1AMz5B zC8CC88B!Xq$Z$o#7mhMGdIC-je??Fc+Er)kJm`TH02L zIHKgFRTWZ0LZhM+>$smo>uBb39m3Z-+cM8#xQ-MJ78gieBdNe7$2pI)gqg>jlB6ST z#YICK9Wi>To2ZLvqtl+~8TGPs&9aEq(l6#!n$73!Y(8tJ<5{(sPusR$f2!B$g2l|W z$;U;+77N^soM6I9G-lTYcHY0F^X&of67Z*?Un4i)giD)9eF;epmWB*-Z~=0U6kR0Y z3rFdM48btsyF*8vV$zTEY2GfDu3FBun$J_cSj4!TtEL9C=rXY&Z47BPb@hC~aI>I&?z*15 zRHC07oX?+qhXDLI#yYaT1)D#NC5JRM6b}3liU1+Nia6^6_zVhpf46nx=t>0sLT@%1 z%;LA61ND7{YmrA1th9&cf%yV#u(@DGvvWypuPErJof2K~HYh%#G)X%FU^zE6QT{&PTKWE&}I%9ir{e1Bh04zF6-sBc` z8gZM)Sd)-apr@FtJIyb(^SEJEcNgnS#|ngV7Q=aQqm9aB89A9pX3I!5i!_Utwv9wl zl7V_fv(A1ibM&}}ofg<+8+-IT)*J)3fqPhW8>%m_GWS0Xe|N6Ijce$&HC%lgn4|q0 z5PDdvh!ZR+7C~JiX~Kz!a|EY|TP|v^vsv_~r;;zv9QB-7&0Snp&SDF(aXux%6vPFW zV(#WMH{U;&v;AWkpWVa0{BOfJfUBPX;OP=ELy4!c8aJ44taRbwR0u{vQcU^J-DksvtV z;w-4dX6cvHu@=*l;HybL)JvgW2z7&{=twOwMMKoQf6Ic$@`5(g#l(-bP4=~$!lU0X zs#n0pCxrTQPXWLP*n!;z?98DVV2ipNl3R;NnSp4>kIy|ma|GYj)YZC*tSaa#>oO6{ zj4B%Qg)*Hf%i4$uq6x_bQcx5{PpdBB@;$7{L1*CSSp28J|3x?T{<9bdk87C5T1Oa= zt6={%e{$ln)BhA6-bBI(d#MlOJ1{v$-DND5s7p9<$OIQ!b8cC?W;(Iz_}Jv^tSNPo zOly<67Mi8A*m_J6O^S5W9nOc4`;e)dI5}Km=>+C~{~MIwjHjuF3Kcvm;PL>j%%P_+ z8bB|0Jisi2JnI+|7YN#sPV04*2XxV=kW^U4f3B@pCnHrtyA)FGNzr3vK+A->99B1ppE$vi&mVaIW#M-27#w<_wT{=66gMQGmmy3&Se~`9uVySD3Bh@Gk2cf>ht}B<0rw z@UJ|cbYXf6%PPbL7z8LQa9!`p%%ioUt}8d6mzuFI4|q%=q@#A!Nm-^YI@SzQh-efGR>&8!Z9V01_|? zOqZBD#ca{h`S$NY^;wK#;5F{Bo1SX2j=VVYx>n^|tA8CWJ}nV9Bn8(j#&Ip^i+iRs^H2SkLoA#P%m zTgapY*FZVM27Sy67J$rkRZ8h%{AeAM*sny?nI~NVW7MLwuImk`I+P4;f9I$+STA5l z3GyWtH?ek)?zo%v)r|3ZWzYlv&FbgqDX%mKdjRQ|yJXXT5w#jl|7;`Uzxxn({2H9> ztFIcpdFhJxVwtAYsf($scu7eVC*DL&Bba#aotj=G?SDW3T8x)LK8_SMjQX&A4x6{I z;jprSTvlb_ZsITj)#`utf2R1A9w^fJ05f6`G|-ijV~e5PRJ$0azH{(rC)i#A%@X*7 z)x*6{%havD`P1l|ti&?~&bp4Y8-ZOfEq(FtNczgFFxz8&XDbxm=aw`_H5XIoOr4ns z5S&MylL*w7l1#>DChu+Te?TYv`HtRgbL8YEHp!tsL&9XGMLDJ!f7&!8?GY25V_kKX z6d|oxR^A@UzBoSwVIKx7g1w`cH_U@paJqr`m#VW&2hy4sGGwfsllK?vn<^&^PbtEREe-WWs5uC!R<8?l>m4t2w zIM7_7RIGGZ9U;|N-UFS$S%u9$hv{$9(RP3Sn^;swcZS11ShY}#mA?p`3djiLQg>tx zu2Uxa+8gL!|IgtVIGMuYx1OB&K}1}h7kLPwXDU52D^_}cZU|LG8t=u-5Y=?C>SNC) z4E;Y=Q!sxDe@=cJPCWL4!l;{QCstTeG&*#dh|y6Q)MEI@ynaX5xHS^i4Mhis^#an1 zSdlOrV}lHvS{MEFJ^`CIVYvYPM=L_pH{+zYGvGh#ob_H;K4-uCTl>F3dKuC~;MQM; zS8u}K`peiK{>C>QzU}q;#bCHL%tAI)O@*rFAR;1Se`Y4mCFi~2oTau+byc;?VWVwNz> zS#&HTd6iN6z{Utp#<0GIX4~-UR}r4aI79e@Z>3Q~;D36TPQQ1-Pya#p0N~?)1iyC~ zzV;j6e`4}k!f3Qnt_{~WvOM1uvtAb-;6TKQs5mFiIYcCyVe`ejt(FTlGkta@=oeNy z;K#aYn3D#U4P33@%%Niin<2w>Tmr2kP3x%w^9te4!7lXlYG#IX3 z@*#{;+xFg*D>+g}>+aaBDaBaVRcf0?Rns#xL7#q?lBmB8dI{_pi5_BvrD7X7S`=v2 zpvyqij2cgkbS&hUk}c~>X7h#2&L%P&kNs>q&X3NiI?Ge?i;!6(%-*-f7gRc@0{~us_kMipB|qcEs*Y@mhaU3ygvY!ErGXK*I)limfH3ne+yBXe*%qyxb9S+XTQ$RdI=&@_WOg;<=v~7x3_nn>-7dV zFk4S4dR0BI@2H4KcVd)JPMo%y>iK*&nNKJ46k~f%yL@&|Sl`nfGhPOM3E@A0<#p`- zKSM6x!Y++qzKzvmbkQKoyARXR8(*g zvF`X0$wHQ` z4L3GF{plb6d~9Q~7~{hS_gqS?Jdx|B4|;(Y?EU#UFFohnu-_kSZtq;ab@kfyPxc4H zTc{0HRm{5CClOH*G3T5QA$ae6Y?@{=ot_@=?>(5PYI8wJf1aTam_PA)*@dKpE<5H$ zm>*-mcNzKN1{*ERj%O$C(HmdW{a63Us-s77XLGac_ttj$z2T-0UXmqDZIvAxB9P^I zw!OWx@zP75{?VqXt2VZBdVDBNQ@PbJpR9@^@xnHL8lhhVGXNPPB{0mgeEr6)7e4vo z$6xxP!C-g`e;C$H~%N;;oT$A^c9kB*j$d2^xsY~Q^daK1|5 z_c8tpgkJ%E0_Oh!yFGhT>sSC+UWU|QZKfxsH&|<1b`$#OuX|Ugw}cAEEemm+KPnb&uLrp};vdnMq?Cyq;6@$TGb8WabT6^^1((%#Z?eX~Z zVT{cb+`>#37c{SVVi#P9?InPDpcoF13;T~Ayng@wJ8w*qv&}-_}r?!pBRK!fXAwpRl79twFCwLzX z=F8>c;laV9J9`iBA2v-jTLGVVMwv?Zj^m01{1L`qh}h?D!q>J_n%r-t)#Y@2e|m7| z?Ki%%bLsL6>l>Swwzn@|%k$jDs60jh>)e8B=MpR<*uU@@= z^QF_1Rp_Ls}~xLPj83T*5g~XlK4c&)>*eD9-rj@P@7=roU^<)3R%Yj! z*!~X&z=hTx3T$r};}?|WtI>pI(sVW%pWXk`7ytQh#kS2p|C3+%!p_d_73Vyr3B&Ah z3DG*nlc~un0&(64x3)GK^?LpO&ZWz{)9K{->2xw~ntHxm&QBMM`9zQuf7`Z>v8}Q! z3t3i_S)OG@UiP!1T+8!(kmvc(iR3XwOEGEGsH!SX#Holn5t8A=nF-FEc+K)$gAa98 zFZUiiy!YB$Z@&80@zKGFrgSkZw(pM#`bH~7I9oFg=ZY*V42h}TKR!B;ufFn!<<|D4 z&CG{?acyn1;e2=gh7&oDe>}Q0QoA5EY1GxJGlY;i=Ugv@%#TJJo2n_*Og7dCpq}%F*rIcb+)ugJZbw@&oJD(&m5j7KWcpt?3%<{Zw=F`c8hmY>Q z^3LryUq3w9J5Dh!R*_hI7LNDX0OIco;6RE1@{Qkp-?|k|7*S_-AgM+=j z6ytn#J?U8s|AU(#e^vO~|0B#^h5ffy(c+3-1WPkJt?Qb1?!1+}^9d8Z-aPl&&7Ga? zet*z+-h0)Qy1U2dyJyFknMr4oOi|NL%w}c+n#{~P6K1P-tEwgKmZ^15y1%>CNs23M zMOGXiF>yXQ=hXR-fV1)V|CMjV zLugltl(cQD_wL;`=R=xI$EUZRd*O3euid=a>-7iDdFMSr6=kKutCNEspI+7-Z)MoI zaBVemW|$_`PV3DsGIKhrNY~9hPy1GlcX2+LfI9CYB8%9zN8|C?Yj3{(l`q}9d;87t z+39i8^rZ0Zf5Qd9`8By5w0W|E#D!RW2Iyk3us2@&N;R8JPftz`kH=>xpS^bD`R6v) zw=S2xvhRGrNPg_l^BHoAdOgEb9GHE(p zE|(7u_aA=s!GpVBef#a#?=Bbf<5j=2{%$zk?~W7xf5xS}w7L)jG^W_zzkjEmPS3_C zM~C;vlkw-SU%UCq&CN^K*4Ee8LkK~fIA`AI6k8OWi6!(2AUb^Bb12#B1e)_-iiqHx zb1UMMNtfw1ZQGvBm-7eH$@uos;ohrv@4Wry{Ri(nG}UvhZ=Q9y`TYRkA`s`L+i0rs z?DVv1f9m$6suss*Cr9_Tw|75w{l=|N4TfuLz20!p>lHl_>26!%y+c9KBxa&1sew7? z+$s?>Cqi=0iK>F(obzU42)ZJ)CDl~5tu2~nxqo_k{N~B=(OXAH2e(5Ib#`oYxZ{I5b?1Dx`ux7cOEe{Uc#p&tsf88rrZ`?VXoZMSmTfe@ubLHx2G}_RMz4w4wN+!;UdwhbfnPFmXRR?m;X=)?lC24A{jkT(_O;evuC*ymw`Sju0 z>GAEoy@&4{9~|tRjgL=EZH7pL*~R*f@;zGL%lnAwg(6xqvsl-4Rae#V?YG}J8;?)# zlcz2ze{P)QL^P$?wy|p4sy3sEnyP9sJ(^GFd$aj;@9ga4!ST`l{r$a1`}6s9EJAIz zGB@_@Gu#g&02g;dr)izmRVl^g(c%6{mgSG`-+$+g?VU?IJD09p>G%6vW!YOB4o4eh zuQw8rvdD{~D0`)db0W^IDwDBo>uNqX-wh$}7kSYuieebDyzKV} zywrMS;wsy{`I43E_s#;dFrmhytYB`_Hrjxd97G~O*S$)B|p8wzJdu8iC ze{29;1mb-9E3Ta2+{}F2v}bM8=5@8qMaa$Yd0u8&mgQBoOn^D(gNUga$$1YDW7{?< zrPfSqGi#p^c6`DV{)xYv>XRYsc>;Id6ZWe5_#OdOwFq@B=eJ$C*a5q!$>~D(OfUS- zc<-HWJ{0#A{;=K9`AH$Q7aA?AQ&;T#Z1s~Z$%}%0QoHSaUh@$E-x`dI!h7=AVY>hX zeEkuW#vg+f_~Wtcn>>H=weZJiecf%WK3d<~u g`UrqOaqIsZ0J5O^OGD3xfdBvi07*qoM6N<$f?S1mL;wH) delta 12409 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 literal 12384 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 O0000VY1^m-ap91ih=~Dn6GldWOMakdi3oY=+ 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 diff --git a/ug/wifi-direct/edje/images/loading_96_07.png b/ug/wifi-direct/edje/images/loading_96_07.png index ce8516908448bd76983aed5d58b063e22ebdc87b..8e0c7d458f20387cb668d415a30fa68224f7f753 100644 GIT binary patch literal 14980 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 diff --git a/ug/wifi-direct/edje/images/loading_96_08.png b/ug/wifi-direct/edje/images/loading_96_08.png index a1a5f4985b6a2fb10a0e4aa5f01e25006be9b792..722669fd042a13635a8b1f4578a3d16bc5a86266 100644 GIT binary patch literal 15089 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 literal 12445 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 bNaX(mi4MZ^g&A(A00000NkvXXu0mjfOn+km diff --git a/ug/wifi-direct/edje/images/loading_96_10.png b/ug/wifi-direct/edje/images/loading_96_10.png index e213401b551ffbe5670f2079fc3e13f8c3dc3af9..0c5528c1fa164450d06c993959000822706ae4a2 100644 GIT binary patch delta 14751 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 literal 12189 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 diff --git a/ug/wifi-direct/edje/images/loading_96_11.png b/ug/wifi-direct/edje/images/loading_96_11.png index dd77fa8c8d1374831a815f6fb5934387fab6ef8e..41ef66f3909e6eae13ea8ece9c4ec7df589162fa 100644 GIT binary patch delta 14432 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 KMNUMnLSTa8#X05x literal 12401 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