Merge branch 'master' into tizen_2.1
authorSeungyoun Ju <sy39.ju@samsung.com>
Fri, 29 Mar 2013 05:24:58 +0000 (14:24 +0900)
committerSeungyoun Ju <sy39.ju@samsung.com>
Fri, 29 Mar 2013 05:25:24 +0000 (14:25 +0900)
Change-Id: I7d763c70261f5286bbe66b43d4b7f65d260bc556

65 files changed:
AUTHORS [new file with mode: 0644]
CMakeLists.txt
LICENSE [deleted file]
LICENSE.Flora [new file with mode: 0644]
NOTICE [new file with mode: 0644]
include/mh_common_utility.h
include/mh_view_main.h
include/mobile_hotspot.h
packaging/ug-setting-mobileap-efl.spec
po/ar.po
po/az.po
po/bg.po
po/ca.po
po/cs.po
po/da.po
po/de_DE.po
po/el_GR.po
po/en.po
po/en_PH.po
po/en_US.po
po/es_ES.po
po/es_MX.po
po/et.po
po/eu.po
po/fi.po
po/fr_CA.po
po/fr_FR.po
po/ga.po
po/gl.po
po/hi.po
po/hr.po
po/hu.po
po/hy.po
po/is.po
po/it_IT.po
po/ja_JP.po
po/ka.po
po/kk.po
po/ko_KR.po
po/lt.po
po/lv.po
po/mk.po
po/nb.po
po/nl_NL.po
po/pl.po
po/pt_BR.po
po/pt_PT.po
po/ro.po
po/ru_RU.po
po/sk.po
po/sl.po
po/sr.po
po/sv.po
po/tr_TR.po
po/uk.po
po/uz.po
po/zh_CN.po
po/zh_HK.po
po/zh_SG.po
po/zh_TW.po
src/mh_common_utility.c
src/mh_func_onoff.c
src/mh_main_ug.c
src/mh_view_main.c
src/mh_view_wifi_setup.c

diff --git a/AUTHORS b/AUTHORS
new file mode 100644 (file)
index 0000000..4d93362
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,3 @@
+Hocheol Seo <hocheol.seo at samsung dot com>
+Injun Yang <injun.yang at samsung dot com>
+Seungyoun Ju <sy39.ju at samsung dot com>
index b1b4d78..78d631b 100644 (file)
@@ -16,23 +16,16 @@ SET(SRCS
        src/mh_common_utility.c
 )
 
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+SET(dependents "elementary evas ui-gadget-1 wifi-direct capi-network-tethering capi-network-connection capi-network-wifi capi-telephony-sim notification")
+
 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
        SET(CMAKE_BUILD_TYPE "Release")
 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
 
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
-
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED
-                       elementary
-                       evas
-                       ui-gadget-1
-                       wifi-direct
-                       capi-network-tethering
-                       capi-network-connection
-                       capi-network-wifi
-                       capi-telephony-sim
-               )
+pkg_check_modules(pkgs REQUIRED ${dependents})
 
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} ${flag}")
diff --git a/LICENSE b/LICENSE
deleted file mode 100644 (file)
index 7ccb5b5..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,75 +0,0 @@
-Flora License
-
-Version 1.0, May, 2012
-
-http://www.tizenopensource.org/license
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-"Tizen Certified Platform" shall mean a software platform that complies with the standards set forth in the Compatibility Definition Document and passes the Compatibility Test Suite as defined from time to time by the Tizen Technical Steering Group and certified by the Tizen Association or its designated agent.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work solely as incorporated into a Tizen Certified Platform, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work solely as incorporated into a Tizen Certified Platform to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof pursuant to the copyright license above, in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-  1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-  2. You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-  3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-  4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Flora License to your work
-
-To apply the Flora License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Flora License, Version 1.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.tizenopensource.org/license
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/LICENSE.Flora b/LICENSE.Flora
new file mode 100644 (file)
index 0000000..917b21e
--- /dev/null
@@ -0,0 +1,206 @@
+Flora License
+
+Version 1.0, May, 2012
+
+http://www.tizenopensource.org/license
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction,
+and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by
+the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and
+all other entities that control, are controlled by, or are
+under common control with that entity. For the purposes of
+this definition, "control" means (i) the power, direct or indirect,
+to cause the direction or management of such entity,
+whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
+or more of the outstanding shares, or (iii) beneficial ownership of
+such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity
+exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications,
+including but not limited to software source code, documentation source,
+and configuration files.
+
+"Object" form shall mean any form resulting from mechanical
+transformation or translation of a Source form, including but
+not limited to compiled object code, generated documentation,
+and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form,
+made available under the License, as indicated by a copyright notice
+that is included in or attached to the work (an example is provided
+in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form,
+that is based on (or derived from) the Work and for which the editorial
+revisions, annotations, elaborations, or other modifications represent,
+as a whole, an original work of authorship. For the purposes of this License,
+Derivative Works shall not include works that remain separable from,
+or merely link (or bind by name) to the interfaces of, the Work and
+Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original
+version of the Work and any modifications or additions to that Work or
+Derivative Works thereof, that is intentionally submitted to Licensor
+for inclusion in the Work by the copyright owner or by an individual or
+Legal Entity authorized to submit on behalf of the copyright owner.
+For the purposes of this definition, "submitted" means any form of
+electronic, verbal, or written communication sent to the Licensor or
+its representatives, including but not limited to communication on
+electronic mailing lists, source code control systems, and issue
+tracking systems that are managed by, or on behalf of, the Licensor
+for the purpose of discussing and improving the Work, but excluding
+communication that is conspicuously marked or otherwise designated
+in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity
+on behalf of whom a Contribution has been received by Licensor and
+subsequently incorporated within the Work.
+
+"Tizen Certified Platform" shall mean a software platform that complies
+with the standards set forth in the Compatibility Definition Document
+and passes the Compatibility Test Suite as defined from time to time
+by the Tizen Technical Steering Group and certified by the Tizen
+Association or its designated agent.
+
+2. Grant of Copyright License.  Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the
+Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License.  Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+(except as stated in this section) patent license to make, have made,
+use, offer to sell, sell, import, and otherwise transfer the Work
+solely as incorporated into a Tizen Certified Platform, where such
+license applies only to those patent claims licensable by such
+Contributor that are necessarily infringed by their Contribution(s)
+alone or by combination of their Contribution(s) with the Work solely
+as incorporated into a Tizen Certified Platform to which such
+Contribution(s) was submitted. If You institute patent litigation
+against any entity (including a cross-claim or counterclaim
+in a lawsuit) alleging that the Work or a Contribution incorporated
+within the Work constitutes direct or contributory patent infringement,
+then any patent licenses granted to You under this License for that
+Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution.  You may reproduce and distribute copies of the
+Work or Derivative Works thereof pursuant to the copyright license
+above, in any medium, with or without modifications, and in Source or
+Object form, provided that You meet the following conditions:
+
+  1. You must give any other recipients of the Work or Derivative Works
+     a copy of this License; and
+  2. You must cause any modified files to carry prominent notices stating
+     that You changed the files; and
+  3. You must retain, in the Source form of any Derivative Works that
+     You distribute, all copyright, patent, trademark, and attribution
+     notices from the Source form of the Work, excluding those notices
+     that do not pertain to any part of the Derivative Works; and
+  4. If the Work includes a "NOTICE" text file as part of its distribution,
+     then any Derivative Works that You distribute must include a readable
+     copy of the attribution notices contained within such NOTICE file,
+     excluding those notices that do not pertain to any part of
+     the Derivative Works, in at least one of the following places:
+     within a NOTICE text file distributed as part of the Derivative Works;
+     within the Source form or documentation, if provided along with the
+     Derivative Works; or, within a display generated by the Derivative Works,
+     if and wherever such third-party notices normally appear.
+     The contents of the NOTICE file are for informational purposes only
+     and do not modify the License.
+
+You may add Your own attribution notices within Derivative Works
+that You distribute, alongside or as an addendum to the NOTICE text
+from the Work, provided that such additional attribution notices
+cannot be construed as modifying the License. You may add Your own
+copyright statement to Your modifications and may provide additional or
+different license terms and conditions for use, reproduction, or
+distribution of Your modifications, or for any such Derivative Works
+as a whole, provided Your use, reproduction, and distribution of
+the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+any Contribution intentionally submitted for inclusion in the Work
+by You to the Licensor shall be under the terms and conditions of
+this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify
+the terms of any separate license agreement you may have executed
+with Licensor regarding such Contributions.
+
+6. Trademarks.  This License does not grant permission to use the trade
+names, trademarks, service marks, or product names of the Licensor,
+except as required for reasonable and customary use in describing the
+origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+agreed to in writing, Licensor provides the Work (and each
+Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied, including, without limitation, any warranties or conditions
+of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+PARTICULAR PURPOSE. You are solely responsible for determining the
+appropriateness of using or redistributing the Work and assume any
+risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+whether in tort (including negligence), contract, or otherwise,
+unless required by applicable law (such as deliberate and grossly
+negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special,
+incidental, or consequential damages of any character arising as a
+result of this License or out of the use or inability to use the
+Work (including but not limited to damages for loss of goodwill,
+work stoppage, computer failure or malfunction, or any and all
+other commercial damages or losses), even if such Contributor
+has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+the Work or Derivative Works thereof, You may choose to offer,
+and charge a fee for, acceptance of support, warranty, indemnity,
+or other liability obligations and/or rights consistent with this
+License. However, in accepting such obligations, You may act only
+on Your own behalf and on Your sole responsibility, not on behalf
+of any other Contributor, and only if You agree to indemnify,
+defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason
+of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Flora License to your work
+
+To apply the Flora License to your work, attach the following
+boilerplate notice, with the fields enclosed by brackets "[]"
+replaced with your own identifying information. (Don't include
+the brackets!) The text should be enclosed in the appropriate
+comment syntax for the file format. We also recommend that a
+file or class name and description of purpose be included on the
+same "printed page" as the copyright notice for easier
+identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Flora License, Version 1.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.tizenopensource.org/license
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
diff --git a/NOTICE b/NOTICE
new file mode 100644 (file)
index 0000000..3997999
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,4 @@
+Copyright (c) Samsung Electronics Co., Ltd. All rights reserved.
+Except as noted, this software is licensed under Flora License, Version 1.
+Please, see the LICENSE file for Flora License terms and conditions.
+
index 2e3003b..6af98c4 100644 (file)
@@ -29,15 +29,18 @@ extern "C" {
 
 #define MH_POPUP_TIMEOUT       2.0f
 
-void _prepare_popup(mh_appdata_t *ad, int type, const char *str);
+void _prepare_popup_with_content(int type, Evas_Object *obj);
+void _prepare_popup(int type, const char *str);
 Eina_Bool _create_popup(mh_appdata_t *ad);
+void _destroy_popup(mh_appdata_t *ad);
 Evas_Object *_create_bg(Evas_Object *parent, const char *style);
 Evas_Object *_create_win_layout(mh_appdata_t *ad);
 Evas_Object *_create_naviframe(Evas_Object *parent);
 void _handle_usb_mode_change(keynode_t *key, void *data);
-Eina_Bool _hide_imf(Evas_Object *entry);
 int _get_vconf_hotspot_mode(void);
 Eina_Bool _get_no_of_connected_device(tethering_h handle, int *no, tethering_type_e type);
+Evas_Object *_create_label(Evas_Object *parent, const char *text);
+Evas_Object *_create_slide_title(Evas_Object *parent, const char *text);
 
 #ifdef __cplusplus
 }
index d326fa4..f87084a 100644 (file)
@@ -33,12 +33,6 @@ extern "C" {
 #define MH_KB                  (1000)
 #define MH_MB                  (MH_KB * MH_KB)
 
-#define MH_DEVICE_LIST_NO_NAME "No name"
-#define MH_DEFAULT_DEVICE_NAME "No name"
-
-#define MH_CONNECTED_DEVICE_WILL_BE_DISCONNECTED       "Connected device will be disconnected"
-#define MH_CONSUMES_MORE_BATTERY_POWER                 "Tethering consumes more battery power and increases your data usage. Continue?"
-
 void ap_update_data_onoff(void *data);
 void ap_update_data_device(mh_appdata_t *ad);
 Eina_Bool ap_update_data_packet_usage(mh_appdata_t *ad);
index 1cf8bbd..3fac392 100644 (file)
@@ -85,16 +85,10 @@ extern "C" {
 #define BT_ICON                                "Bluetooth.png"
 #define USB_ICON                       "USB.png"
 
-#define MH_DEFAULT_PASSWORD            "qwertyuiop"
-
 #define DEVICE_NAME_LENGTH_MAX         31
 #define WIFI_PASSPHRASE_LENGTH_MIN     8
 #define WIFI_PASSPHRASE_LENGTH_MAX     63
 #define MH_LABEL_LENGTH_MAX            1024
-#define FONT_SIZE_20                   20
-#define FONT_SIZE_25                   25
-#define FONT_SIZE_30                   30
-#define FONT_SIZE_32                   32
 
 #define _EDJ(obj)                      elm_layout_edje_get(obj)
 
@@ -110,12 +104,12 @@ typedef enum {
        MH_POP_WIFI_ON_CONF,
        MH_POP_BT_ON_CONF,
        MH_POP_USB_ON_CONF,
+       MH_POP_USB_ON_PREVCONN_CONF,
        MH_POP_ENTER_TO_WIFI_SETUP_CONF,
 
        /* One button pop-up */
        MH_POP_INFORMATION,
        MH_POP_USB_CONNECT,
-       MH_POP_WIFI_PASSWORD_SHORT,
 
        /* No button & timeout pop-up */
        MH_POP_INFORMATION_WO_BUTTON,
@@ -150,6 +144,7 @@ typedef struct ap_app_main {
        Elm_Genlist_Item_Class          *usage_itc;
        Elm_Genlist_Item_Class          *dev_itc[TETHERING_TYPE_MAX];
 
+       Elm_Object_Item                 *sp_item[4];
        Elm_Object_Item                 *wifi_item;
        Elm_Object_Item                 *setup_item;
        Elm_Object_Item                 *bt_item;
@@ -162,7 +157,7 @@ typedef struct ap_app_main {
        int                             wifi_state;
        int                             bt_state;
        int                             usb_state;
-       bool                            old_wifi_state;
+       bool                            need_recover_wifi_tethering;
 } mh_main_view_t;
 
 typedef struct {
@@ -173,7 +168,6 @@ typedef struct {
        Evas_Object                     *title_back_btn;
        Evas_Object                     *hide_btn;
        Evas_Object                     *security_btn;
-       Evas_Object                     *pw_layout;
        Evas_Object                     *pw_entry;
 
        Elm_Genlist_Item_Class          *sp_itc;
@@ -183,6 +177,7 @@ typedef struct {
        Elm_Genlist_Item_Class          *pw_itc;
        Elm_Genlist_Item_Class          *name_itc;
 
+       Elm_Object_Item                 *sp_item[2];
        Elm_Object_Item                 *hide_item;
        Elm_Object_Item                 *security_item;
        Elm_Object_Item                 *pw_item;
@@ -227,8 +222,8 @@ typedef struct {
        mh_data_usage_t                 data_statistics;
        mh_clients_t                    clients;
 
-       int                             popup_type;
-       char                            popup_string[MH_LABEL_LENGTH_MAX];
+       enum ug_event                   rotate_state;
+       Ecore_IMF_Input_Panel_State     imf_state;
 } mh_appdata_t;
 
 typedef struct {
index 8474428..de7eb77 100644 (file)
@@ -3,7 +3,7 @@
 
 Name:       ug-setting-mobileap-efl
 Summary:    Tethering UI Gadget Library
-Version:    0.1.158
+Version:    0.1.160
 Release:    1
 Group:      TO_BE/FILLED_IN
 License:    Flora License Version 1.0
@@ -20,6 +20,7 @@ BuildRequires: pkgconfig(capi-network-tethering)
 BuildRequires: pkgconfig(capi-network-connection)
 BuildRequires: pkgconfig(capi-network-wifi)
 BuildRequires: pkgconfig(capi-telephony-sim)
+BuildRequires: pkgconfig(notification)
 
 %description
 Tethering UI Gadget Library
@@ -46,6 +47,17 @@ rm -rf %{buildroot}
 %{_ugdir}/lib/libug-setting-mobile-ap-ug.so
 
 %changelog
+* Mon Jan 28 2013 Seungyoun Ju <sy39.ju@samsung.com> 0.1.160-1
+- Remove unrequired log
+
+* Tue Jan 15 2013 Seungyoun Ju <sy39.ju@samsung.com> 0.1.159-1
+- Fix : When device is rotated, guide text is displayed short time
+- Fix : Security / Hide items are disabled sometimes
+- Translation data is updated
+- Pop-up scenario for USB tethering is implemented
+- IMF is hided by focus out
+- Wi-Fi tethering is enabled without checking enable state
+
 * Fri Dec 07 2012 Seungyoun Ju <sy39.ju@samsung.com> 0.1.158-1
 - New winset is applied and some bugs are fixed
 
index b28b805..68d10cd 100644 (file)
--- a/po/ar.po
+++ b/po/ar.po
@@ -94,6 +94,9 @@ msgstr "توصيل إلى كابل USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "يجب ألا تقل كلمة المرور عن %d أحرف وألا تزيد عن %d حرفا"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "يستهلك التقييد الكثير من طاقة البطارية ويزيد من استخدام البيانات"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "سيتم قطع اتصال الجهاز المتصل"
 
index a022f68..32f9973 100644 (file)
--- a/po/az.po
+++ b/po/az.po
@@ -94,6 +94,9 @@ msgstr "USB kabelini qoş"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Parol minimum %d simvol ehtiva etməlidir və uzunluğu %d simvoldan çox olmamalıdır"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Bağlanma daha çox batareyadan istifadə edir və verilənlərdən istifadənizi artırır"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Qoşulmuş cihazla əlaqə kəsiləcək"
 
index db74f68..428a2a0 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -94,6 +94,9 @@ msgstr "Свързване с USB кабел"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Паролата трябва да съдържа поне %d знака и да не е по-дълга от %d знака"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Привързването изразходва повече енергия от батерията и увеличава потреблението на данни"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Свързаното устройство ще бъде прекъснато"
 
index 9d70a1f..f52d7a1 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -94,6 +94,9 @@ msgstr "Connectar cable USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "La contrasenya ha de contenir al menys %d caràcters i no excedir els %d"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "El tethering consumeix més bateria i augmenta el consum de dades"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Es desconnectarà el dispositiu connectat"
 
index 7eb7e42..5f9a6d2 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -94,6 +94,9 @@ msgstr "Připojte USB kabel"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Heslo musí obsahovat nejméně %d znaků a maximálně %d znaků"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Sdílení připojení spotřebovává více energie z baterie a zvyšuje využívání dat"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Připojené zařízení bude odpojeno"
 
index 732f3b4..df27258 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -94,6 +94,9 @@ msgstr "Tilslut USB-kabel"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Adgangskode skal indeholde mindst %d tegn og må ikke overstige %d tegn"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Internetdeling bruger mere batteri og forøger dit dataforbrug"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Tilsluttet enhed vil blive frakoblet"
 
index ba14c4a..001b5ff 100644 (file)
@@ -94,6 +94,9 @@ msgstr "USB-Kabel anschließen"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Passwort muss mindestens %d, jedoch nicht mehr als %d Zeichen enthalten"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Tethering verbraucht mehr Akkuleistung und erhöht Ihre Datennutzung."
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Das angeschlossene Gerät wird getrennt."
 
index bb3d294..71b21a2 100644 (file)
@@ -94,6 +94,9 @@ msgstr "Συνδέστε το καλώδιο USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Ο κωδικός πρόσβασης πρέπει να περιέχει %d χαρακτήρες τουλάχιστον και να μην ξεπερνά τους %d χαρακτήρες"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Το tethering καταναλώνει περισσότερη ισχύ μπαταρίας και αυξάνει τη χρήση δεδομένων"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Η συνδεδεμένη συσκευή θα αποσυνδεθεί"
 
index 40b7dbe..0dc7261 100644 (file)
--- a/po/en.po
+++ b/po/en.po
@@ -94,6 +94,9 @@ msgstr "Connect USB cable"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Password must contain at least %d characters and not exceed %d characters"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Tethering consumes more battery power and increases your data usage"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Connected device will be disconnected"
 
index a48d50e..b854107 100644 (file)
@@ -94,6 +94,9 @@ msgstr "Connect USB cable"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Password must contain at least %d characters and not exceed %d characters"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Tethering consumes more battery power and increases your data usage"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Connected device will be disconnected"
 
index ec8a127..4c0f29b 100644 (file)
@@ -94,6 +94,9 @@ msgstr "Connect USB cable"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Password must contain at least %d characters and not exceed %d characters"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Tethering consumes more battery power and increases your data usage"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Connected device will be disconnected"
 
index 1979ac0..980b40b 100644 (file)
@@ -94,6 +94,9 @@ msgstr "Conectar el cable USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "La contraseña debe contener al menos %d caracteres y no superar los %d caracteres"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "El anclaje a red consume mucha batería y aumenta el uso de datos"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Se desconectará del dispositivo conectado"
 
index 3255637..cdfe15c 100644 (file)
@@ -94,6 +94,9 @@ msgstr "Conectar cable USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "La contraseña debe contener al menos %d caracteres y no superar los %d caracteres"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "El anclaje consume más batería y aumenta el uso de datos"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Se desconectará del dispositivo conectado"
 
index bdc6070..a8cfe08 100644 (file)
--- a/po/et.po
+++ b/po/et.po
@@ -94,6 +94,9 @@ msgstr "Ühenda USB-kaabel"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Parool peab sisaldama vähemalt %d tähemärki, kuid ei tohi olla pikem kui %d tähemärki"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Modemi kasutamine tarbib rohkem akutoidet ja suurendab andmekasutust"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Ühendatud seadme ühendus katkestatakse"
 
index e3ca08a..9728993 100644 (file)
--- a/po/eu.po
+++ b/po/eu.po
@@ -94,6 +94,9 @@ msgstr "USB kablea konektatu"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Pasahitzak gutxienez %d karaktere izan behar ditu eta ezin ditu %d karaktereak gainditu"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Ainguraketak bateria gehiago kontsumitzen du eta zure datuen erabilera areagotzen du"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Konektatutako gailua deskonektatuko da"
 
index 2c20232..861edf0 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -94,6 +94,9 @@ msgstr "Liitä USB-kaapeli"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Salasanassa on oltava ainakin %d merkkiä eikä se saa olla yli %d merkkiä pitkä"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Yhteyden jakaminen kuluttaa enemmän virtaa ja lisää tietojen käyttöä"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Yhdistetyn laitteen yhteys katkaistaan"
 
index 20f2e98..8bb855b 100644 (file)
@@ -94,6 +94,9 @@ msgstr "Branchez le câble USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Le mot de passe doit contenir au moins %d caractères et ne pas dépasser %d caractères"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Le modem consomme plus d'énergie et augmente l'utilisation des données"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Le périphérique connecté sera déconnecté"
 
index 325f58f..70971c3 100644 (file)
@@ -94,6 +94,9 @@ msgstr "Connecter le câble USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Le mot de passe doit contenir au moins %d caractères et ne pas dépasser %d caractères"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Le modem consomme plus d'énergie et augmente l'utilisation des données"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Le périphérique connecté sera déconnecté"
 
index efbc2c1..7e16b08 100644 (file)
--- a/po/ga.po
+++ b/po/ga.po
@@ -94,6 +94,9 @@ msgstr "Ceangail cábla USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Ní mór %d carachtar ar a laghad a bheith sa phasfhocal agus gan %d carachtar a shárú"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Úsáideann nascaireacht níos mó cumhacht ceallra agus méadaíonn sé úsáid sonraí agat"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Dínascfar an gléas nasctha"
 
index 7fc58fd..95fb573 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -94,6 +94,9 @@ msgstr "Conectar cable USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "O contrasinal ten que ter polo menos %d carácteres e non superar %d carácteres"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "A ancoraxe á rede consume máis batería e incrementa o uso de información"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "O dispositivo conectado desconectarase"
 
index 56201f1..baa7500 100644 (file)
--- a/po/hi.po
+++ b/po/hi.po
@@ -94,6 +94,9 @@ msgstr "USB केबल कनेक्‍ट करें"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "पासवर्ड में कम से कम %d वर्ण होने जरूरी है और %d वर्ण से अधिक नहीं होना चाहिए"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "तेथरिंग बैटरी पॉवर की ज्यादा खपत करता है और आपके डेटा उपयोग को बढ़ाता है"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "कनेक्ट किया गया डिवाइस डिस्कनेक्ट हो जाएगा"
 
index a7eafdf..809f81b 100644 (file)
--- a/po/hr.po
+++ b/po/hr.po
@@ -94,6 +94,9 @@ msgstr "Spoji USB kabel"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Šifra mora sadržavati najmanje %d, a najviše %d znakova"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Dijeljenje povećava potrošnju baterije i količinu prijenosa podataka"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Spojeni uređaj će se odspojiti"
 
index f187193..7eb5827 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -94,6 +94,9 @@ msgstr "Csatlakoztassa az USB-kábelt"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "A jelszónak legalább %d, legfeljebb %d karakterből kell állnia"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Az internetmegosztás használata gyorsan meríti az akkumulátort, és nagyobb adatforgalmat eredményez"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "A csatlakoztatott eszköz le lesz választva"
 
index 209411a..2aa5d6d 100644 (file)
--- a/po/hy.po
+++ b/po/hy.po
@@ -94,6 +94,9 @@ msgstr "Միացնել USB մալուխը"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Գաղտնաբառը պետք է պարունակի առնվազն %d նիշ և չգերազանցի %d նիշը"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Տեղակապումը մարտկոցի ավելի շատ էներգիա է սպառում և ավելացնում է տվյալների օգտագործումը"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Կապակցված սարքը կանջատվի"
 
index 81dcd99..dc56aeb 100644 (file)
--- a/po/is.po
+++ b/po/is.po
@@ -94,6 +94,9 @@ msgstr "Tengjast USB-snúru"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Lykilorðið verður að vera a.m.k. %d stafir og má ekki vera lengra en %d stafir"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Tjóðrun notar meiri orku og eykur gagnanotkun"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Tengt tæki verður aftengt"
 
index 241d82d..1fa28f5 100644 (file)
@@ -94,6 +94,9 @@ msgstr "Collegare cavo USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "La password deve contenere almeno %d caratteri e non superare %d caratteri"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Il tethering aumenta il consumo della batteria e l'utilizzo della connessione dati"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Il dispositivo connesso verrà disconnesso"
 
index 5d8553b..cf54ef4 100644 (file)
@@ -94,6 +94,9 @@ msgstr "USBケーブルを接続してください"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "パスワードの長さは%d文字以上、%d文字以下である必要があります。"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "テザリングはより多くのバッテリーを消費し、データ使用量が増加します。"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "接続中のデバイスを切断します。"
 
index fc58003..d381048 100644 (file)
--- a/po/ka.po
+++ b/po/ka.po
@@ -94,6 +94,9 @@ msgstr "USB კაბელის მიერთება"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "პაროლი უნდა შეიცავდეს მინიმუმ %d და მაქსიმუმ %d სიმბოლოს"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "მობილური ინტერნეტი ხარჯავს უფო მეტ ენერგიას და ზრდის მონაცემთა გამოყენებას"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "დაკავშირებულ მოწყობილობასთან კავშირი შეწყდა"
 
index 9910f62..4a4d2ad 100644 (file)
--- a/po/kk.po
+++ b/po/kk.po
@@ -94,6 +94,9 @@ msgstr "USB кабелін қосу"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Құпиясөзде кемінде %d таңба болуы және %d таңбадан аспауы керек"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Байланыстыру батарея зарядын көп пайдаланып, деректеріңіздің пайдаланылуын арттырады"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Қосылған құрылғы ажыратылады"
 
index 709da38..33e2630 100644 (file)
@@ -94,6 +94,9 @@ msgstr "USB 케이블을 연결하세요"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "비밀번호는 %d자 이상 %d자 이하여야 합니다"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "테더링을 사용하면 배터리가 더 많이 소모되며 데이터 사용량이 증가합니다"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "연결된 기기가 분리됩니다"
 
index 0e78195..278446a 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
@@ -94,6 +94,9 @@ msgstr "Prijungti USB kabelį"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Slaptažodį turi sudaryti ne mažiau kaip %d simboliai (-ių), bet ne daugiau kaip %d simboliai (-ių)"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Kai įjungtas siejimas, suvartojama daugiau akumuliatoriaus energijos ir padidėja duomenų naudojimas"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Prijungtas įrenginys bus atjungtas"
 
index 09a3b9f..8a2fb38 100644 (file)
--- a/po/lv.po
+++ b/po/lv.po
@@ -94,6 +94,9 @@ msgstr "Pievienot USB kabeli"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Parolē ir jābūt vismaz %d rakstzīmēm, bet ne vairāk par %d"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Piesaiste patērē vairāk akumulatora enerģijas un palielina datu lietojumu"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Pievienotā ierīce tiks atvienota"
 
index 23d0839..9a24b86 100644 (file)
--- a/po/mk.po
+++ b/po/mk.po
@@ -94,6 +94,9 @@ msgstr "Приклучете го USB кабелот"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Лозинката мора да содржи најмалку %d, а најмногу %d знаци"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Споделувањето троши повеќе батерија и го зголемува користењето податоци"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Ќе се прекине врската со поврзаниот уред"
 
index eef7967..bace56a 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -94,6 +94,9 @@ msgstr "Koble til USB-kabel"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Passordet må inneholde minst %d tegn og ikke overstige %d tegn"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Internettdeling forbruker mer batteristrøm og øker databruken"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Tilkoblet enhet blir koblet fra"
 
index 18c86e0..9e05eaa 100644 (file)
@@ -94,6 +94,9 @@ msgstr "USB-kabel aansluiten"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Wachtwoord moet ten minste %d tekens bevatten en mag niet langer zijn dan %d tekens"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Tethering verbruikt meer voeding en verhoogt uw gegevensgebruik"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Aangesloten apparaat wordt losgekoppeld"
 
index 7227267..1b0388e 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -94,6 +94,9 @@ msgstr "Podłącz kabel USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Hasło musi zawierać co najmniej %d znaków i nie przekraczać %d znaków"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Router zwiększa zużycie baterii i danych"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Podłączone urządzenie zostanie odłączone"
 
index f76aa36..5df8818 100644 (file)
@@ -94,6 +94,9 @@ msgstr "Conecte o cabo USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "A senha deve conter pelo menos %d caracteres e não exceder %d caracteres"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "O tethering consome mais bateria e aumenta sua utilização de dados"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "O dispositivo conectado será desconectado"
 
index e0a0d2a..e5f1ab2 100644 (file)
@@ -94,6 +94,9 @@ msgstr "Ligar cabo USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "A palavra-passe tem de incluir pelo menos %d caracteres e não exceder %d caracteres"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "A ancoragem consome mais bateria e aumenta a utilização de dados"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "O dispositivo ligado será desligado"
 
index 6c5e039..23cc4e0 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -94,6 +94,9 @@ msgstr "Conectaţi cablul USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Parola trebuie să conţină minimum %d caractere şi nu poate depăşi %d caractere"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Furnizarea accesului la internet consumă mai mult din energia bateriei şi creşte volumul de date utilizat"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Dispozitivul conectat va fi deconectat"
 
index d4ba4d7..269f25f 100644 (file)
@@ -94,6 +94,9 @@ msgstr "Подключите USB-кабель"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Допустимое число символов в пароле: от %d до %d"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "При использовании модема быстро расходуется заряд батареи и увеличивается объем передаваемых данных"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Подключенное устройство будет отключено"
 
index c28961b..ca49c41 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -94,6 +94,9 @@ msgstr "Pripojiť kábel USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Heslo musí obsahovať aspoň %d znakov a nesmie prekročiť %d znakov"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Zdieľanie pripojenia spotrebúva viac energie batérie a zvyšuje používanie dátových prenosov"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Pripojené zariadenie sa odpojí"
 
index abc3b02..70dc1c3 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -94,6 +94,9 @@ msgstr "Priključite kabel USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Geslo mora vsebovati vsaj %d znakov in ne sme presegati %d znakov"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Uporaba telefona kot modema porabi več baterije in poveča porabo prenosa podatkov"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Povezava z napravo bo prekinjena"
 
index c87988f..7178a02 100644 (file)
--- a/po/sr.po
+++ b/po/sr.po
@@ -94,6 +94,9 @@ msgstr "Priključi USB kabl"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Šifra mora da sadrži najmanje %d i najviše %d znakova"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Vezivanje troši više energije i povećava upotrebu podataka"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Povezani uređaj će biti isključen"
 
index 0fb57ad..ee1b88c 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -94,6 +94,9 @@ msgstr "Anslut USB-kabeln"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Lösenord måste innehålla minst %d tecken och inte överstiga %d tecken"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Internetdelning förbrukar mer batteri och ökar dataanvändningen"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Den anslutna enheten kommer att kopplas bort"
 
index c47d662..5c13b41 100644 (file)
@@ -94,6 +94,9 @@ msgstr "USB kablosunu bağlayın"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Şifre en az %d karakter içermeli ve %d karakteri geçmemelidir"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Bağlanma daha fazla pil gücü tüketir ve veri kullanımınızı arttırır"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Bağlı cihazın bağlantısı kesilecek"
 
index d9eaf87..39a0b3d 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -94,6 +94,9 @@ msgstr "Підключити кабель USB"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Пароль має містити щонайменше %d символів і не перевищувати %d символів"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Прив'язка використовує більше заряду акумулятора та збільшує використання даних"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Підключений пристрій буде відключено"
 
index aa2f8f0..c797c2c 100644 (file)
--- a/po/uz.po
+++ b/po/uz.po
@@ -94,6 +94,9 @@ msgstr "USB-kabelni ulash"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "Parol eng kamida %d belgidan iborat bo‘lishi hamda %d belgidan oshmasligi lozim"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "Bog‘lanish batareya quvvatini ko‘proq sarflaydi va ma’lumot ishlatilishini oshiradi"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "Ulangan qurilma uziladi"
 
index 89bd2ad..edf7a6c 100644 (file)
@@ -94,6 +94,9 @@ msgstr "连接 USB 线"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "密码必须至少包含%d个字符,并且不超过%d个字符"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "网络共享消耗更多电池电力并增加您的数据使用量"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "已连接的设备将断开"
 
index 4fd7d6a..8e9d3b7 100644 (file)
@@ -94,6 +94,9 @@ msgstr "連接 USB 線"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "密碼必須包含至少%d個字元,但不可超過%d個字元"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "網路共享會消耗更多電力且增加數據使用量"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "將中斷已連接的裝置"
 
index 02ff314..56e949d 100644 (file)
@@ -94,6 +94,9 @@ msgstr "连结USB缆线"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "密码必须至少包含%d个字符,并且不超过%d个字符"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "网络共享消耗更多电池电力并增加您的数据使用量"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "已连接的设备将断开"
 
index e223725..63b126f 100644 (file)
@@ -94,6 +94,9 @@ msgstr "連接 USB 纜線"
 msgid "IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"
 msgstr "密碼必須包含至少%d個字符,並且不得超過%d個字符"
 
+msgid "IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE"
+msgstr "網路共享會消耗更多電力且增加數據使用量"
+
 msgid "IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"
 msgstr "將中斷連接的裝置"
 
index 84c2d43..b39eea2 100644 (file)
 #include "mh_common_utility.h"
 #include "mobile_hotspot.h"
 
+static mh_popup_type_e popup_type = MH_POPUP_NONE;
+static Evas_Object *popup_content = NULL;
+static char *popup_string = NULL;
+
 static void __one_btn_popup_resp(void *data, Evas_Object *obj, void *event_info)
 {
        __MOBILE_AP_FUNC_ENTER__;
@@ -34,8 +38,8 @@ static void __one_btn_popup_resp(void *data, Evas_Object *obj, void *event_info)
        evas_object_del(ad->popup);
        ad->popup = NULL;
 
-       DBG("popup_type : %d\n", ad->popup_type);
-       switch (ad->popup_type) {
+       DBG("popup_type : %d\n", popup_type);
+       switch (popup_type) {
        case MH_POP_USB_CONNECT:
                _update_usb_item(ad, MH_STATE_NONE);
                vconf_ignore_key_changed(VCONFKEY_SETAPPL_USB_MODE_INT,
@@ -45,16 +49,8 @@ static void __one_btn_popup_resp(void *data, Evas_Object *obj, void *event_info)
        case MH_POP_INFORMATION:
                break;
 
-       case MH_POP_WIFI_PASSWORD_SHORT:
-               if (ad->setup.pw_entry == NULL)
-                       break;
-
-               evas_object_show(ad->setup.pw_entry);
-               elm_object_focus_set(ad->setup.pw_entry, EINA_TRUE);
-               break;
-
        default:
-               DBG("Unknown popup_type : %d\n", ad->popup_type);
+               DBG("Unknown popup_type : %d\n", popup_type);
                break;
        }
 
@@ -75,13 +71,13 @@ static void __alert_popup_resp(void *data, Evas_Object *obj, void *event_info)
        evas_object_del(ad->popup);
        ad->popup = NULL;
 
-       DBG("popup_type : %d\n", ad->popup_type);
-       switch (ad->popup_type) {
+       DBG("popup_type : %d\n", popup_type);
+       switch (popup_type) {
        case MH_POP_INFORMATION_WO_BUTTON:
                break;
 
        default:
-               DBG("Unknown popup_type : %d\n", ad->popup_type);
+               DBG("Unknown popup_type : %d\n", popup_type);
                break;
        }
 
@@ -104,8 +100,8 @@ static void __popup_resp_yes(void *data, Evas_Object *obj, void *event_info)
        evas_object_del(ad->popup);
        ad->popup = NULL;
 
-       DBG("popup_type : %d\n", ad->popup_type);
-       switch (ad->popup_type) {
+       DBG("popup_type : %d\n", popup_type);
+       switch (popup_type) {
        case MH_POP_WIFI_ON_CONF:
                wifi_is_activated(&wifi_state);
                if (wifi_state == true) {
@@ -145,7 +141,7 @@ static void __popup_resp_yes(void *data, Evas_Object *obj, void *event_info)
 
        case MH_POP_USB_ON_CONF:
                if (_get_vconf_usb_state() != VCONFKEY_SYSMAN_USB_AVAILABLE) {
-                       _prepare_popup(ad, MH_POP_USB_CONNECT,
+                       _prepare_popup(MH_POP_USB_CONNECT,
                                        _("IDS_MOBILEAP_POP_CONNECT_USB_CABLE"));
                        _create_popup(ad);
                        vconf_notify_key_changed(VCONFKEY_SETAPPL_USB_MODE_INT,
@@ -153,6 +149,12 @@ static void __popup_resp_yes(void *data, Evas_Object *obj, void *event_info)
                        break;
                }
 
+               _prepare_popup(MH_POP_USB_ON_PREVCONN_CONF,
+                               _("IDS_MOBILEAP_POP_ENABLING_USB_TETHERING_WILL_DISCONNECT_PREVIOUS_USB_CONNECTION"));
+               _create_popup(ad);
+               break;
+
+       case MH_POP_USB_ON_PREVCONN_CONF:
                ret = tethering_enable(ad->handle, TETHERING_TYPE_USB);
                if (ret != TETHERING_ERROR_NONE) {
                        ERR("Error enable usb tethering : %d\n", ret);
@@ -164,16 +166,16 @@ static void __popup_resp_yes(void *data, Evas_Object *obj, void *event_info)
                _update_wifi_item(ad, MH_STATE_PROCESS);
                ret = tethering_disable(ad->handle, TETHERING_TYPE_WIFI);
                if (ret != TETHERING_ERROR_NONE) {
-                       ERR("wifi tethering off is failed : %d\n", ret);
+                       ERR("Wi-Fi tethering off is failed : %d\n", ret);
                        _update_wifi_item(ad, MH_STATE_NONE);
                } else
-                       ad->main.old_wifi_state = true;
+                       ad->main.need_recover_wifi_tethering = true;
 
                mh_draw_wifi_setup_view(ad);
                break;
 
        default:
-               DBG("Unknown popup_type : %d\n", ad->popup_type);
+               DBG("Unknown popup_type : %d\n", popup_type);
                break;
        }
 
@@ -194,8 +196,8 @@ static void __popup_resp_no(void *data, Evas_Object *obj, void *event_info)
        evas_object_del(ad->popup);
        ad->popup = NULL;
 
-       DBG("popup_type : %d\n", ad->popup_type);
-       switch (ad->popup_type) {
+       DBG("popup_type : %d\n", popup_type);
+       switch (popup_type) {
        case MH_POP_WIFI_ON_CONF:
                _update_wifi_item(ad, MH_STATE_NONE);
                break;
@@ -212,11 +214,15 @@ static void __popup_resp_no(void *data, Evas_Object *obj, void *event_info)
                _update_usb_item(ad, MH_STATE_NONE);
                break;
 
+       case MH_POP_USB_ON_PREVCONN_CONF:
+               _update_usb_item(ad, MH_STATE_NONE);
+               break;
+
        case MH_POP_ENTER_TO_WIFI_SETUP_CONF:
                break;
 
        default:
-               DBG("Unknown popup_type : %d\n", ad->popup_type);
+               DBG("Unknown popup_type : %d\n", popup_type);
                break;
        }
 
@@ -237,24 +243,47 @@ static bool _count_connected_clients_cb(tethering_client_h client, void *user_da
        return true;
 }
 
-void _prepare_popup(mh_appdata_t *ad, int type, const char *str)
+void _prepare_popup_with_content(int type, Evas_Object *obj)
+{
+       __MOBILE_AP_FUNC_ENTER__;
+
+       if (obj == NULL) {
+               ERR("param is NULL\n");
+               return;
+       }
+
+       popup_type = type;
+
+       if (popup_content)
+               evas_object_del(popup_content);
+       popup_content = obj;
+
+       if (popup_string) {
+               free(popup_string);
+               popup_string = NULL;
+       }
+
+       __MOBILE_AP_FUNC_EXIT__;
+}
+
+void _prepare_popup(int type, const char *str)
 {
        __MOBILE_AP_FUNC_ENTER__;
 
-       if (ad == NULL || str == NULL) {
-               ERR("param is NULL : ad[%x], str[%x]\n", ad, str);
+       if (str == NULL) {
+               ERR("param is NULL\n");
                return;
        }
 
-       int nLen = 0;
+       popup_type = type;
+       popup_content = NULL;
 
-       nLen = strlen(str);
-       if (sizeof(ad->popup_string) <= nLen)
-               ERR("We should make the message[%s] less than %d",
-                               str, sizeof(ad->popup_string));
+       if (popup_string)
+               free(popup_string);
 
-       ad->popup_type = type;
-       snprintf(ad->popup_string, sizeof(ad->popup_string), "%s", str);
+       popup_string = strndup(str, MH_LABEL_LENGTH_MAX);
+       if (popup_string == NULL)
+               ERR("strndup is failed\n");
 
        __MOBILE_AP_FUNC_EXIT__;
 }
@@ -267,7 +296,13 @@ Eina_Bool _create_popup(mh_appdata_t *ad)
 
        if (ad == NULL) {
                ERR("The param is NULL\n");
-               return 0;
+               if (popup_string) {
+                       free(popup_string);
+                       popup_string = NULL;
+               }
+               popup_content = NULL;
+
+               return EINA_FALSE;
        }
 
        if (ad->popup != NULL) {
@@ -276,14 +311,17 @@ Eina_Bool _create_popup(mh_appdata_t *ad)
                ad->popup = NULL;
        }
 
-       DBG("Create_popup %d\n", ad->popup_type);
-       switch (ad->popup_type) {
+       DBG("Create_popup %d\n", popup_type);
+       switch (popup_type) {
        case MH_POP_WIFI_ON_CONF:
                ad->popup = elm_popup_add(ad->win);
                evas_object_size_hint_weight_set(ad->popup,
                                EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
-               elm_object_text_set(ad->popup, ad->popup_string);
+               if (popup_content == NULL)
+                       elm_object_text_set(ad->popup, popup_string);
+               else
+                       elm_object_content_set(ad->popup, popup_content);
 
                btn = elm_button_add(ad->popup);
                elm_object_style_set(btn, "popup_button/default");
@@ -307,7 +345,10 @@ Eina_Bool _create_popup(mh_appdata_t *ad)
                evas_object_size_hint_weight_set(ad->popup,
                                EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
-               elm_object_text_set(ad->popup, ad->popup_string);
+               if (popup_content == NULL)
+                       elm_object_text_set(ad->popup, popup_string);
+               else
+                       elm_object_content_set(ad->popup, popup_content);
 
                btn = elm_button_add(ad->popup);
                elm_object_style_set(btn, "popup_button/default");
@@ -331,7 +372,10 @@ Eina_Bool _create_popup(mh_appdata_t *ad)
                evas_object_size_hint_weight_set(ad->popup, EVAS_HINT_EXPAND,
                                EVAS_HINT_EXPAND);
 
-               elm_object_text_set(ad->popup, ad->popup_string);
+               if (popup_content == NULL)
+                       elm_object_text_set(ad->popup, popup_string);
+               else
+                       elm_object_content_set(ad->popup, popup_content);
 
                btn = elm_button_add(ad->popup);
                elm_object_style_set(btn, "popup_button/default");
@@ -348,18 +392,21 @@ Eina_Bool _create_popup(mh_appdata_t *ad)
                evas_object_size_hint_weight_set(ad->popup,
                                EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
-               elm_object_text_set(ad->popup, ad->popup_string);
+               if (popup_content == NULL)
+                       elm_object_text_set(ad->popup, popup_string);
+               else
+                       elm_object_content_set(ad->popup, popup_content);
 
                btn = elm_button_add(ad->popup);
                elm_object_style_set(btn, "popup_button/default");
-               elm_object_text_set(btn, S_("IDS_COM_SK_YES"));
+               elm_object_text_set(btn, S_("IDS_COM_SK_OK"));
                elm_object_part_content_set(ad->popup, "button1", btn);
                evas_object_smart_callback_add(btn, "clicked",
                                __popup_resp_yes, (void *)ad);
 
                btn = elm_button_add(ad->popup);
                elm_object_style_set(btn, "popup_button/default");
-               elm_object_text_set(btn, S_("IDS_COM_SK_NO"));
+               elm_object_text_set(btn, S_("IDS_COM_SK_CANCEL"));
                elm_object_part_content_set(ad->popup, "button2", btn);
                evas_object_smart_callback_add(btn, "clicked",
                                __popup_resp_no, (void *)ad);
@@ -368,22 +415,26 @@ Eina_Bool _create_popup(mh_appdata_t *ad)
                break;
 
        case MH_POP_USB_ON_CONF:
+       case MH_POP_USB_ON_PREVCONN_CONF:
                ad->popup = elm_popup_add(ad->win);
                evas_object_size_hint_weight_set(ad->popup,
                                EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
-               elm_object_text_set(ad->popup, ad->popup_string);
+               if (popup_content == NULL)
+                       elm_object_text_set(ad->popup, popup_string);
+               else
+                       elm_object_content_set(ad->popup, popup_content);
 
                btn = elm_button_add(ad->popup);
                elm_object_style_set(btn, "popup_button/default");
-               elm_object_text_set(btn, S_("IDS_COM_SK_YES"));
+               elm_object_text_set(btn, S_("IDS_COM_SK_OK"));
                elm_object_part_content_set(ad->popup, "button1", btn);
                evas_object_smart_callback_add(btn, "clicked",
                                __popup_resp_yes, (void *)ad);
 
                btn = elm_button_add(ad->popup);
                elm_object_style_set(btn, "popup_button/default");
-               elm_object_text_set(btn, S_("IDS_COM_SK_NO"));
+               elm_object_text_set(btn, S_("IDS_COM_SK_CANCEL"));
                elm_object_part_content_set(ad->popup, "button2", btn);
                evas_object_smart_callback_add(btn, "clicked",
                                __popup_resp_no, (void *)ad);
@@ -396,24 +447,10 @@ Eina_Bool _create_popup(mh_appdata_t *ad)
                evas_object_size_hint_weight_set(ad->popup, EVAS_HINT_EXPAND,
                                EVAS_HINT_EXPAND);
 
-               elm_object_text_set(ad->popup, ad->popup_string);
-
-               btn = elm_button_add(ad->popup);
-               elm_object_style_set(btn, "popup_button/default");
-               elm_object_text_set(btn, S_("IDS_COM_POP_CLOSE"));
-               elm_object_part_content_set(ad->popup, "button1", btn);
-               evas_object_smart_callback_add(btn, "clicked",
-                               __one_btn_popup_resp, (void *)ad);
-
-               evas_object_show(ad->popup);
-               break;
-
-       case MH_POP_WIFI_PASSWORD_SHORT:
-               ad->popup = elm_popup_add(ad->win);
-               evas_object_size_hint_weight_set(ad->popup, EVAS_HINT_EXPAND,
-                               EVAS_HINT_EXPAND);
-
-               elm_object_text_set(ad->popup, ad->popup_string);
+               if (popup_content == NULL)
+                       elm_object_text_set(ad->popup, popup_string);
+               else
+                       elm_object_content_set(ad->popup, popup_content);
 
                btn = elm_button_add(ad->popup);
                elm_object_style_set(btn, "popup_button/default");
@@ -430,7 +467,10 @@ Eina_Bool _create_popup(mh_appdata_t *ad)
                evas_object_size_hint_weight_set(ad->popup, EVAS_HINT_EXPAND,
                                EVAS_HINT_EXPAND);
 
-               elm_object_text_set(ad->popup, ad->popup_string);
+               if (popup_content == NULL)
+                       elm_object_text_set(ad->popup, popup_string);
+               else
+                       elm_object_content_set(ad->popup, popup_content);
 
                elm_popup_timeout_set(ad->popup, MH_POPUP_TIMEOUT);
                evas_object_smart_callback_add(ad->popup, "timeout",
@@ -446,7 +486,10 @@ Eina_Bool _create_popup(mh_appdata_t *ad)
                evas_object_size_hint_weight_set(ad->popup,
                                EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
-               elm_object_text_set(ad->popup, ad->popup_string);
+               if (popup_content == NULL)
+                       elm_object_text_set(ad->popup, popup_string);
+               else
+                       elm_object_content_set(ad->popup, popup_content);
 
                btn = elm_button_add(ad->popup);
                elm_object_style_set(btn, "popup_button/default");
@@ -464,28 +507,37 @@ Eina_Bool _create_popup(mh_appdata_t *ad)
 
                evas_object_show(ad->popup);
                break;
+       default:
+               ERR("Unknown popup_type : %d\n", popup_type);
+               break;
        }
 
+       if (popup_string) {
+               free(popup_string);
+               popup_string = NULL;
+       }
+       popup_content = NULL;
+
        __MOBILE_AP_FUNC_EXIT__;
 
-       return TRUE;
+       return EINA_TRUE;
 }
 
 void _destroy_popup(mh_appdata_t *ad)
 {
        __MOBILE_AP_FUNC_ENTER__;
 
-       if (ad == NULL) {
-               ERR("ad is NULL\n");
-               return;
-       }
-
-       if (ad->popup) {
+       if (ad && ad->popup) {
                evas_object_del(ad->popup);
                ad->popup = NULL;
        }
 
-       ad->popup_type = MH_POPUP_NONE;
+       if (popup_string) {
+               free(popup_string);
+               popup_string = NULL;
+       }
+       popup_content = NULL;
+       popup_type = MH_POPUP_NONE;
 
        __MOBILE_AP_FUNC_EXIT__;
 
@@ -613,31 +665,6 @@ void _handle_usb_mode_change(keynode_t *key, void *data)
        }
 }
 
-Eina_Bool _hide_imf(Evas_Object *entry)
-{
-       __MOBILE_AP_FUNC_ENTER__;
-
-       if (entry == NULL) {
-               ERR("Invalid param\n");
-               return EINA_FALSE;
-       }
-
-       Ecore_IMF_Context *context = NULL;
-
-       context = elm_entry_imf_context_get(entry);
-       if (context == NULL) {
-               ERR("context is NULL\n");
-               return EINA_FALSE;
-       }
-       ecore_imf_context_input_panel_hide(context);
-
-       elm_object_focus_set(entry, EINA_FALSE);
-
-       __MOBILE_AP_FUNC_EXIT__;
-
-       return EINA_TRUE;
-}
-
 int _get_vconf_hotspot_mode(void)
 {
        int value = VCONFKEY_MOBILE_HOTSPOT_MODE_NONE;
@@ -662,3 +689,43 @@ Eina_Bool _get_no_of_connected_device(tethering_h handle, int *no, tethering_typ
 
        return TRUE;
 }
+
+Evas_Object *_create_label(Evas_Object *parent, const char *text)
+{
+       Evas_Object *label;
+
+       label = elm_entry_add(parent);
+       if (label == NULL) {
+               ERR("elm_entry_add is failed\n");
+               return NULL;
+       }
+
+       elm_entry_editable_set(label, EINA_FALSE);
+       elm_entry_context_menu_disabled_set(label, EINA_TRUE);
+       elm_object_text_set(label, text);
+
+       evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(label);
+
+       return label;
+}
+
+Evas_Object *_create_slide_title(Evas_Object *parent, const char *text)
+{
+       if (parent == NULL || text == NULL)
+               return NULL;
+
+       Evas_Object *label;
+
+       label = elm_label_add(parent);
+       elm_object_style_set(label, "naviframe_title");
+       elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_AUTO);
+       elm_label_wrap_width_set(label, 1);
+       elm_label_ellipsis_set(label, EINA_TRUE);
+       elm_object_text_set(label, text);
+       evas_object_show(label);
+
+       elm_access_object_unregister(label);
+       return label;
+}
\ No newline at end of file
index 5f39665..118f9a4 100644 (file)
@@ -51,7 +51,7 @@ int _get_vconf_usb_state()
 
 static bool __is_connected_wifi_net(mh_appdata_t *ad)
 {
-       connection_wifi_state_e wifi_state;
+       connection_wifi_state_e wifi_state = CONNECTION_WIFI_STATE_DEACTIVATED;
        int ret;
 
        ret = connection_get_wifi_state(ad->conn_handle, &wifi_state);
@@ -71,7 +71,7 @@ static bool __is_connected_wifi_net(mh_appdata_t *ad)
 
 static bool __is_connected_ethernet_net(mh_appdata_t *ad)
 {
-       connection_ethernet_state_e ethernet_state;
+       connection_ethernet_state_e ethernet_state = CONNECTION_ETHERNET_STATE_DEACTIVATED;
        int ret;
 
        ret = connection_get_ethernet_state(ad->conn_handle, &ethernet_state);
@@ -91,19 +91,22 @@ static bool __is_connected_ethernet_net(mh_appdata_t *ad)
 
 static bool __is_connected_cellular_net(mh_appdata_t *ad)
 {
-       connection_cellular_state_e cellular_state;
-       sim_state_e sim_state;
+       connection_cellular_state_e cellular_state = CONNECTION_CELLULAR_STATE_OUT_OF_SERVICE;
+       sim_state_e sim_state = SIM_STATE_UNAVAILABLE;
        int ret;
 
        /* Check SIM state */
        ret = sim_get_state(&sim_state);
        if (ret != SIM_ERROR_NONE) {
                ERR("sim_get_state() is failed : %d\n", ret);
-               return -1;
+               _prepare_popup(MH_POP_INFORMATION,
+                               _("IDS_MOBILEAP_POP_INSERT_SIM_CARD_AND_RESTART_DEVICE_TO_USE_TETHERING"));
+               _create_popup(ad);
+               return false;
        }
        DBG("SIM State : %d\n", sim_state);
        if (sim_state != SIM_STATE_AVAILABLE) {
-               _prepare_popup(ad, MH_POP_INFORMATION,
+               _prepare_popup(MH_POP_INFORMATION,
                                _("IDS_MOBILEAP_POP_INSERT_SIM_CARD_AND_RESTART_DEVICE_TO_USE_TETHERING"));
                _create_popup(ad);
                return false;
@@ -116,14 +119,14 @@ static bool __is_connected_cellular_net(mh_appdata_t *ad)
        }
 
        if (cellular_state == CONNECTION_CELLULAR_STATE_FLIGHT_MODE) {
-               _prepare_popup(ad, MH_POP_INFORMATION_WO_BUTTON,
+               _prepare_popup(MH_POP_INFORMATION_WO_BUTTON,
                                _("IDS_MOBILEAP_POP_UNABLE_TO_USE_TETHERING_IN_FLIGHT_MODE_TO_USE_TETHERING_DISABLE_FLIGHT_MODE"));
                _create_popup(ad);
                ERR("Cellular network is not connected\n");
                return false;
        } else if (cellular_state != CONNECTION_CELLULAR_STATE_CONNECTED &&
                        cellular_state != CONNECTION_CELLULAR_STATE_AVAILABLE) {
-               _prepare_popup(ad, MH_POP_INFORMATION,
+               _prepare_popup(MH_POP_INFORMATION,
                                _("IDS_MOBILEAP_POP_UNABLE_TO_USE_PACKET_DATA_SERVICE_OUT_OF_COVERAGE"));
                _create_popup(ad);
                ERR("Cellular network is not connected : %d\n", cellular_state);
@@ -136,16 +139,15 @@ static bool __is_connected_cellular_net(mh_appdata_t *ad)
 
 static int __create_wifi_hotspot_on_popup(mh_appdata_t *ad)
 {
-       bool wifi_state;
-       char *str = NULL;
+       char *str;
+       bool wifi_state = false;
 
        wifi_is_activated(&wifi_state);
        if (wifi_state == true || _is_wifi_direct_on() == true)
                str = _("IDS_MOBILEAP_POP_WI_FI_NETWORK_WILL_BE_DISCONNECTED_WI_FI_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE_CONTINUE_Q");
        else
                str = _("IDS_MOBILEAP_POP_WI_FI_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE_CONTINUE_Q");
-
-       _prepare_popup(ad, MH_POP_WIFI_ON_CONF, str);
+       _prepare_popup(MH_POP_WIFI_ON_CONF, str);
        _create_popup(ad);
 
        return 0;
@@ -153,8 +155,10 @@ static int __create_wifi_hotspot_on_popup(mh_appdata_t *ad)
 
 static int __create_bt_tethering_on_popup(mh_appdata_t *ad)
 {
-       _prepare_popup(ad, MH_POP_BT_ON_CONF,
-                       _(MH_CONSUMES_MORE_BATTERY_POWER));
+       char *str;
+
+       str = _("IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE");
+       _prepare_popup(MH_POP_BT_ON_CONF, str);
        _create_popup(ad);
 
        return 0;
@@ -162,21 +166,10 @@ static int __create_bt_tethering_on_popup(mh_appdata_t *ad)
 
 static int __create_usb_tethering_on_popup(mh_appdata_t *ad)
 {
-       char buf[MH_LABEL_LENGTH_MAX] = {0, };
-
-       if (_get_vconf_usb_state() != VCONFKEY_SYSMAN_USB_AVAILABLE) {
-               DBG("USB is not connected\n");
-               _prepare_popup(ad, MH_POP_USB_ON_CONF,
-                               _(MH_CONSUMES_MORE_BATTERY_POWER));
-               _create_popup(ad);
-
-               return 0;
-       }
+       char *str;
 
-       snprintf(buf, sizeof(buf), "%s.<br>%s",
-                       _("IDS_MOBILEAP_POP_ENABLING_USB_TETHERING_WILL_DISCONNECT_PREVIOUS_USB_CONNECTION"),
-                       _(MH_CONSUMES_MORE_BATTERY_POWER));
-       _prepare_popup(ad, MH_POP_USB_ON_CONF, buf);
+       str = _("IDS_MOBILEAP_POP_TETHERING_CONSUMES_MORE_BATTERY_POWER_AND_INCREASES_YOUR_DATA_USAGE");
+       _prepare_popup(MH_POP_USB_ON_CONF, str);
        _create_popup(ad);
 
        return 0;
@@ -308,7 +301,7 @@ static void __wifi_deactivated_cb(wifi_error_e result, void *user_data)
        }
 
        mh_appdata_t *ad = (mh_appdata_t *)user_data;
-       int ret = 0;
+       int ret;
 
        if (result != WIFI_ERROR_NONE) {
                ERR("__wifi_deactivated_cb error : %d\n", result);
@@ -343,6 +336,8 @@ void _enabled_cb(tethering_error_e result, tethering_type_e type, bool is_reques
 
        mh_appdata_t *ad = (mh_appdata_t *)user_data;
 
+       ad->main.need_recover_wifi_tethering = false;
+
        if (!is_requested) {
                if (NULL != ad->popup) {
                        evas_object_del(ad->popup);
@@ -354,7 +349,7 @@ void _enabled_cb(tethering_error_e result, tethering_type_e type, bool is_reques
        }
 
        if (result != TETHERING_ERROR_NONE) {
-               _prepare_popup(ad, MH_POP_INFORMATION,
+               _prepare_popup(MH_POP_INFORMATION,
                                _("IDS_MOBILEAP_POP_UNABLE_TO_USE_TETHERING"));
                _create_popup(ad);
        }
@@ -373,6 +368,11 @@ void _disabled_cb(tethering_error_e result, tethering_type_e type, tethering_dis
 
        mh_appdata_t *ad = (mh_appdata_t *)user_data;
 
+       if (ad->main.need_recover_wifi_tethering == true) {
+               DBG("Wi-Fi tethering will be turned on again\n");
+               return;
+       }
+
        if (cause != TETHERING_DISABLED_BY_REQUEST) {
                DBG("Tethering [%d] is disabled because of [%d]\n", type, cause);
                if (NULL != ad->popup) {
@@ -385,7 +385,7 @@ void _disabled_cb(tethering_error_e result, tethering_type_e type, tethering_dis
        }
 
        if (result != TETHERING_ERROR_NONE) {
-               _prepare_popup(ad, MH_POP_INFORMATION,
+               _prepare_popup(MH_POP_INFORMATION,
                                _("IDS_MOBILEAP_POP_UNABLE_TO_USE_TETHERING"));
                _create_popup(ad);
                _update_main_view(ad);
@@ -448,7 +448,7 @@ int _handle_wifi_onoff_change(mh_appdata_t *ad)
 {
        __MOBILE_AP_FUNC_ENTER__;
 
-       int ret = 0;
+       int ret;
        int connected_wifi_clients = 0;
 
        /* Turn off WiFi hotspot */
@@ -458,7 +458,7 @@ int _handle_wifi_onoff_change(mh_appdata_t *ad)
                        ERR("Getting the number of connected device is failed\n");
                }
                if (connected_wifi_clients > 0) {
-                       _prepare_popup(ad, MH_POP_WIFI_OFF_CONF,
+                       _prepare_popup(MH_POP_WIFI_OFF_CONF,
                                        _("IDS_MOBILEAP_POP_DISABLING_TETHERING_WILL_PREVENT_LINKED_DEVICES_FROM_ACCESSING_THE_INTERNET_CONTINUE_Q"));
                        _create_popup(ad);
                } else {
@@ -511,7 +511,7 @@ int _handle_bt_onoff_change(mh_appdata_t *ad)
        }
 
        if (__create_bt_tethering_on_popup(ad) < 0) {
-               ERR("__create_wifi_hotspot_on_popup fail\n");
+               ERR("__create_bt_tethering_on_popup fail\n");
                return -1;
        }
 
@@ -544,12 +544,10 @@ int _handle_usb_onoff_change(mh_appdata_t *ad)
        }
 
        if (__create_usb_tethering_on_popup(ad) < 0) {
-               ERR("__create_wifi_hotspot_on_popup fail\n");
+               ERR("__create_usb_tethering_on_popup fail\n");
                return -1;
        }
 
-
-
        __MOBILE_AP_FUNC_EXIT__;
 
        return 0;
@@ -584,7 +582,7 @@ int _turn_on_wifi(void)
 bool _is_wifi_direct_on(void)
 {
        int wifi_direct_state = 0;
-       int ret = 0;
+       int ret;
 
        ret = vconf_get_int(VCONFKEY_WIFI_DIRECT_STATE, &wifi_direct_state);
        if (ret < 0) {
@@ -597,7 +595,7 @@ bool _is_wifi_direct_on(void)
 
 int _turn_off_wifi_direct(mh_appdata_t *ad)
 {
-       int ret = 0;
+       int ret;
 
        ret = wifi_direct_initialize();
        if (ret < 0) {
index c934a6e..5096407 100644 (file)
@@ -24,6 +24,7 @@
 #include "mobile_hotspot.h"
 #include "mh_view_main.h"
 #include "mh_func_onoff.h"
+#include "mh_common_utility.h"
 
 static Evas_Object *create_content(mh_appdata_t *ad)
 {
@@ -39,32 +40,41 @@ static Evas_Object *create_content(mh_appdata_t *ad)
 
 static void __set_callbacks(tethering_h handle, void *user_data)
 {
-       tethering_set_enabled_cb(handle, TETHERING_TYPE_USB, _enabled_cb, user_data);
-       tethering_set_enabled_cb(handle, TETHERING_TYPE_WIFI, _enabled_cb, user_data);
-       tethering_set_enabled_cb(handle, TETHERING_TYPE_BT, _enabled_cb, user_data);
+       int ret;
 
-       tethering_set_disabled_cb(handle, TETHERING_TYPE_USB, _disabled_cb, user_data);
-       tethering_set_disabled_cb(handle, TETHERING_TYPE_WIFI, _disabled_cb, user_data);
-       tethering_set_disabled_cb(handle, TETHERING_TYPE_BT, _disabled_cb, user_data);
+       ret = tethering_set_enabled_cb(handle, TETHERING_TYPE_ALL,
+                       _enabled_cb, user_data);
+       if (ret != TETHERING_ERROR_NONE)
+               ERR("tethering_set_enabled_cb [0x%X]\n", ret);
 
-       tethering_set_connection_state_changed_cb(handle, TETHERING_TYPE_USB, _connection_changed_cb, user_data);
-       tethering_set_connection_state_changed_cb(handle, TETHERING_TYPE_WIFI, _connection_changed_cb, user_data);
-       tethering_set_connection_state_changed_cb(handle, TETHERING_TYPE_BT, _connection_changed_cb, user_data);
+       ret = tethering_set_disabled_cb(handle, TETHERING_TYPE_ALL,
+                       _disabled_cb, user_data);
+       if (ret != TETHERING_ERROR_NONE)
+               ERR("tethering_set_disabled_cb [0x%X]\n", ret);
+
+       ret = tethering_set_connection_state_changed_cb(handle,
+                       TETHERING_TYPE_ALL,
+                       _connection_changed_cb, user_data);
+       if (ret != TETHERING_ERROR_NONE)
+               ERR("tethering_set_connection_state_changed_cb [0x%X]\n", ret);
 }
 
 static void __unset_callbacks(tethering_h handle)
 {
-       tethering_unset_enabled_cb(handle, TETHERING_TYPE_USB);
-       tethering_unset_enabled_cb(handle, TETHERING_TYPE_WIFI);
-       tethering_unset_enabled_cb(handle, TETHERING_TYPE_BT);
+       int ret;
 
-       tethering_unset_disabled_cb(handle, TETHERING_TYPE_USB);
-       tethering_unset_disabled_cb(handle, TETHERING_TYPE_WIFI);
-       tethering_unset_disabled_cb(handle, TETHERING_TYPE_BT);
+       ret = tethering_unset_connection_state_changed_cb(handle,
+                       TETHERING_TYPE_ALL);
+       if (ret != TETHERING_ERROR_NONE)
+               ERR("tethering_unset_connection_state_changed_cb[0x%X]\n", ret);
 
-       tethering_unset_connection_state_changed_cb(handle, TETHERING_TYPE_USB);
-       tethering_unset_connection_state_changed_cb(handle, TETHERING_TYPE_WIFI);
-       tethering_unset_connection_state_changed_cb(handle, TETHERING_TYPE_BT);
+       ret = tethering_unset_disabled_cb(handle, TETHERING_TYPE_ALL);
+       if (ret != TETHERING_ERROR_NONE)
+               ERR("tethering_unset_disabled_cb [0x%X]\n", ret);
+
+       ret = tethering_unset_enabled_cb(handle, TETHERING_TYPE_ALL);
+       if (ret != TETHERING_ERROR_NONE)
+               ERR("tethering_unset_enabled [0x%X]\n", ret);
 }
 
 static void *on_create(ui_gadget_h ug, enum ug_mode mode,
@@ -102,7 +112,7 @@ static void *on_create(ui_gadget_h ug, enum ug_mode mode,
        ugd = (mh_ugdata_t *)priv;
        ugd->ad = ad;
        ugd->ug = ug;
-       ad->gadget= ugd;
+       ad->gadget = ugd;
 
        ecore_imf_init();
 
@@ -240,6 +250,47 @@ static void on_message(ui_gadget_h ug, service_h msg,
 {
 }
 
+static void __rotate_changed_cb(mh_appdata_t *ad, enum ug_event rotate_state)
+{
+       if (ad == NULL) {
+               ERR("ad is NULL\n");
+               return;
+       }
+
+       Elm_Object_Item *top_navi_it = NULL;
+       mh_wifi_setting_view_t *st = &ad->setup;
+
+       ad->rotate_state = rotate_state;
+
+       top_navi_it = elm_naviframe_top_item_get(ad->naviframe);
+       if (top_navi_it == NULL) {
+               ERR("elm_naviframe_top_item_get returns NULL\n");
+               return;
+       }
+
+       if (top_navi_it != st->navi_it) {
+               return;
+       }
+
+       if (rotate_state == UG_EVENT_ROTATE_PORTRAIT ||
+                       rotate_state == UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN) {
+               DBG("Naviframe title is shown\n");
+               elm_naviframe_item_title_visible_set(st->navi_it,
+                               EINA_TRUE);
+       } else if (rotate_state == UG_EVENT_ROTATE_LANDSCAPE ||
+                       rotate_state == UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN) {
+               if (ad->imf_state == ECORE_IMF_INPUT_PANEL_STATE_SHOW) {
+                       DBG("Naviframe title is hided\n");
+                       elm_naviframe_item_title_visible_set(st->navi_it,
+                                       EINA_FALSE);
+               }
+       } else {
+               ERR("Unknown rotate_state : %d\n", rotate_state);
+       }
+
+       return;
+}
+
 static void on_event(ui_gadget_h ug, enum ug_event event,
                service_h service, void *priv)
 {
@@ -250,6 +301,9 @@ static void on_event(ui_gadget_h ug, enum ug_event event,
                return;
        }
 
+       mh_ugdata_t *ugd = (mh_ugdata_t *)priv;
+       mh_appdata_t *ad = ugd->ad;
+
        switch (event) {
        case UG_EVENT_LOW_MEMORY:
                DBG("UG_EVENT_LOW_MEMORY\n");
@@ -261,16 +315,14 @@ static void on_event(ui_gadget_h ug, enum ug_event event,
                DBG("UG_EVENT_LANG_CHANGE\n");
                break;
        case UG_EVENT_ROTATE_PORTRAIT:
-               DBG("UG_EVENT_ROTATE_PORTRAIT\n");
-               break;
        case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
-               DBG("UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN\n");
+               DBG("UG_EVENT_ROTATE_PORTRAIT[_UPSIDEDOWN]\n");
+               __rotate_changed_cb(ad, event);
                break;
        case UG_EVENT_ROTATE_LANDSCAPE:
-               DBG("UG_EVENT_ROTATE_LANDSCAPE\n");
-               break;
        case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
-               DBG("UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN\n");
+               DBG("UG_EVENT_ROTATE_LANDSCAPE[_UPSIDEDOWN]\n");
+               __rotate_changed_cb(ad, event);
                break;
        default:
                DBG("default\n");
@@ -300,17 +352,11 @@ static void on_key_event(ui_gadget_h ug, enum ug_key_event event,
 
        switch (event) {
        case UG_KEY_EVENT_END:
-               DBG("UG_KEY_EVENT_END is received  :  %p\n", ad->popup);
-               if (NULL == ad->popup) {
+               DBG("UG_KEY_EVENT_END is received : %p\n", ad->popup);
+               if (NULL == ad->popup)
                        ug_destroy_me(ug);
-                       break;
-               }
-
-               if (ad->popup_type != MH_POP_INFORMATION_WO_BUTTON) {
-                       evas_object_del(ad->popup);
-                       ad->popup = NULL;
-                       ad->popup_type = MH_POPUP_NONE;
-               }
+               else
+                       _destroy_popup(ad);
                break;
 
        default:
index 0b2ce48..badd2b9 100644 (file)
@@ -286,7 +286,7 @@ static void __read_setting(mh_appdata_t *ad)
 
        ret = tethering_wifi_get_ssid(ad->handle, &ssid);
        if (ret != TETHERING_ERROR_NONE || ssid == NULL) {
-               ERR("tethering_wifi_get_ssid is failed : %d %s\n", ret, ssid);
+               ERR("tethering_wifi_get_ssid is failed : %d\n", ret);
                return;
        }
        g_strlcpy(ad->setup.device_name, ssid, sizeof(ad->setup.device_name));
@@ -294,7 +294,7 @@ static void __read_setting(mh_appdata_t *ad)
 
        ret = tethering_wifi_get_passphrase(ad->handle, &passphrase);
        if (ret != TETHERING_ERROR_NONE || passphrase == NULL) {
-               ERR("tethering_wifi_get_ssid is failed : %d %s\n", ret, ssid);
+               ERR("tethering_wifi_get_passphrase is failed : %d\n", ret);
                return;
        }
        g_strlcpy(ad->setup.wifi_passphrase, passphrase,
@@ -312,13 +312,6 @@ static void __read_setting(mh_appdata_t *ad)
        if (ret != TETHERING_ERROR_NONE) {
                ERR("tethering_wifi_get_security_type is failed\n");
        }
-
-       DBG("VCONFKEY_MOBILE_HOTSPOT_MODE : %d\n", ad->main.hotspot_mode);
-       DBG("Device name - %s\n", ad->setup.device_name);
-       DBG("Wifi passphrase- %s\n", ad->setup.wifi_passphrase);
-       DBG("Connected device : %d\n", ad->clients.number);
-       DBG("Visibility: %d\n", ad->setup.visibility);
-       DBG("Security: %d\n", ad->setup.security_type);
        DBG("End of Load setting value \n");
 
        __MOBILE_AP_FUNC_EXIT__;
@@ -452,7 +445,7 @@ void _update_main_view(mh_appdata_t *ad)
 
        if (wifi_state || bt_state) {
                if (ad->main.help_item) {
-                       DBG("Just update genlist\n");
+                       DBG("Just update help label item\n");
                        elm_genlist_item_update(ad->main.help_item);
                        return;
                } else {
@@ -471,10 +464,7 @@ void _update_main_view(mh_appdata_t *ad)
                        ad->main.help_item = item;
                }
        } else {
-               if (!ad->main.help_item) {
-                       DBG("No need to update\n");
-                       return;
-               } else {
+               if (ad->main.help_item) {
                        DBG("Remove help item\n");
                        elm_object_item_del(ad->main.help_item);
                        ad->main.help_item = NULL;
@@ -556,17 +546,17 @@ static void __select_setup_item(void *data, Evas_Object *obj, void *event_info)
        }
 
        if (connected_wifi_clients > 0) {
-               _prepare_popup(ad, MH_POP_ENTER_TO_WIFI_SETUP_CONF,
+               _prepare_popup(MH_POP_ENTER_TO_WIFI_SETUP_CONF,
                                _("IDS_MOBILEAP_POP_CONNECTED_DEVICE_WILL_BE_DISCONNECTED"));
                _create_popup(ad);
        } else {
                _update_wifi_item(ad, MH_STATE_PROCESS);
                ret = tethering_disable(ad->handle, TETHERING_TYPE_WIFI);
                if (ret != TETHERING_ERROR_NONE) {
-                       ERR("wifi tethering off is failed : %d\n", ret);
+                       ERR("Wi-Fi tethering off is failed : %d\n", ret);
                        _update_wifi_item(ad, MH_STATE_NONE);
                } else
-                       ad->main.old_wifi_state = true;
+                       ad->main.need_recover_wifi_tethering = true;
 
                mh_draw_wifi_setup_view(ad);
        }
@@ -1051,7 +1041,7 @@ static char *__gl_get_dev_label(void *data, Evas_Object *obj, const char *part)
                DBG("Device name : %s\n", name);
 
                if (!strcmp(name, "UNKNOWN")) {
-                       return strdup(_(MH_DEVICE_LIST_NO_NAME));
+                       return strdup(S_("IDS_COM_BODY_NO_NAME"));
                }
 
                return name;
@@ -1282,12 +1272,44 @@ static void __gl_realized(void *data, Evas_Object *obj, void *event_info)
 {
        mh_appdata_t *ad = (mh_appdata_t *)data;
        Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       Evas_Object *ao;
+       Evas_Object *btn;
+       char str[MH_LABEL_LENGTH_MAX] = {0, };
+       int i = 0;
 
        if (item == ad->main.wifi_item || item == ad->main.bt_item || item == ad->main.device_item)
                elm_object_item_signal_emit(item, "elm,state,top", "");
        else if (item == ad->main.setup_item || item == ad->main.usage_item || item == ad->main.usb_item)
                elm_object_item_signal_emit(item, "elm,state,bottom", "");
 
+       for (i = 0; i < 4; i++) {
+               if (item == ad->main.sp_item[i])
+                       elm_object_item_access_unregister(item);
+       }
+
+       if (item == ad->main.wifi_item || item == ad->main.bt_item || item == ad->main.usb_item) {
+               ao = elm_object_item_access_object_get(item);
+               btn = elm_object_item_part_content_get(item, "on&off");
+               snprintf(str, sizeof(str), "%s, %s", "On/off button",
+                               (elm_check_state_get(btn) ? "On" : "Off"));
+               elm_access_info_set(ao, ELM_ACCESS_CONTEXT_INFO, str);
+       } else if (item == ad->main.setup_item) {
+               ao = elm_object_item_access_object_get(item);
+               elm_access_info_set(ao, ELM_ACCESS_CONTEXT_INFO, "Item");
+       } else if (item == ad->main.device_item) {
+               ao = elm_object_item_access_object_get(item);
+               snprintf(str, sizeof(str), "%s, %s", "Expandable list",
+                               "Double tap to open list");
+               elm_access_info_set(ao, ELM_ACCESS_CONTEXT_INFO, str);
+       }
+
+       if (ad->main.device_item == elm_genlist_item_parent_get(item)) {
+               if (ad->clients.number == elm_genlist_item_index_get(item) - 9)
+                       elm_object_item_signal_emit(item, "elm,state,bottom", "");
+               else
+                       elm_object_item_signal_emit(item, "elm,state,center", "");
+       }
+
        return;
 }
 
@@ -1296,6 +1318,7 @@ static void __create_inner_contents(mh_appdata_t *ad)
        __MOBILE_AP_FUNC_ENTER__;
 
        Elm_Object_Item *item = NULL;
+       int i = 0;
 
        __read_setting(ad);
        if (ad->main.hotspot_mode != VCONFKEY_MOBILE_HOTSPOT_MODE_NONE)
@@ -1311,6 +1334,7 @@ static void __create_inner_contents(mh_appdata_t *ad)
        item = elm_genlist_item_append(ad->main.genlist, ad->main.sp_itc, NULL,
                        NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
        elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       ad->main.sp_item[i++] = item;
 
        item = elm_genlist_item_append(ad->main.genlist, ad->main.wifi_itc,
                        ad, NULL, ELM_GENLIST_ITEM_NONE,
@@ -1326,6 +1350,7 @@ static void __create_inner_contents(mh_appdata_t *ad)
        item = elm_genlist_item_append(ad->main.genlist, ad->main.sp_itc, NULL,
                        NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
        elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       ad->main.sp_item[i++] = item;
 
        item = elm_genlist_item_append(ad->main.genlist, ad->main.bt_itc,
                        ad, NULL, ELM_GENLIST_ITEM_NONE,
@@ -1351,6 +1376,7 @@ static void __create_inner_contents(mh_appdata_t *ad)
        item = elm_genlist_item_append(ad->main.genlist, ad->main.sp_itc, ad,
                        NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
        elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       ad->main.sp_item[i++] = item;
 
        item = elm_genlist_item_append(ad->main.genlist, ad->main.usage_itc,
                        ad, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
@@ -1363,6 +1389,7 @@ static void __create_inner_contents(mh_appdata_t *ad)
        item = elm_genlist_item_append(ad->main.genlist, ad->main.end_sp_itc, NULL,
                        NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
        elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       ad->main.sp_item[i++] = item;
 
        __MOBILE_AP_FUNC_EXIT__;
        return;
@@ -1419,6 +1446,7 @@ void ap_draw_contents(mh_appdata_t *ad)
        elm_object_style_set(ad->main.back_btn, "naviframe/back_btn/default");
        evas_object_smart_callback_add(ad->main.back_btn, "clicked",
                        __back_btn_cb, ad);
+       elm_object_focus_allow_set(ad->main.back_btn, EINA_FALSE);
 
        elm_naviframe_item_push(ad->naviframe,
                        _("IDS_MOBILEAP_BODY_TETHERING"),
index 9abf482..a9ed253 100644 (file)
@@ -16,7 +16,7 @@
 * limitations under the License.
 *
 */
-
+#include <notification.h>
 #include "mh_view_wifi_setup.h"
 
 static void __back_btn_cb(void *data, Evas_Object *obj, void *event_info);
@@ -24,12 +24,29 @@ static void __gl_realized(void *data, Evas_Object *obj, void *event_info);
 
 static void __input_panel_event_cb(void *data, Ecore_IMF_Context *ctx, int value)
 {
-       if (value == ECORE_IMF_INPUT_PANEL_STATE_SHOW) {
-               DBG("value == ECORE_IMF_INPUT_PANEL_STATE_SHOW\n");
-               elm_object_item_signal_emit(data, "elm,state,sip,shown", "");
-       } else if(value == ECORE_IMF_INPUT_PANEL_STATE_HIDE) {
-               DBG("value == ECORE_IMF_INPUT_PANEL_STATE_HIDE\n");
-               elm_object_item_signal_emit(data, "elm,state,sip,hidden", "");
+       if (data == NULL) {
+               ERR("data is NULL\n");
+               return;
+       }
+
+       mh_appdata_t *ad = (mh_appdata_t *)data;
+       mh_wifi_setting_view_t *st = &ad->setup;
+
+       ad->imf_state = value;
+
+       if (st->navi_it == NULL) {
+               DBG("naviframe item is not pushed yet\n");
+               return;
+       }
+
+       if (value == ECORE_IMF_INPUT_PANEL_STATE_SHOW &&
+                       (ad->rotate_state == UG_EVENT_ROTATE_LANDSCAPE ||
+                        ad->rotate_state == UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN)) {
+               DBG("ECORE_IMF_INPUT_PANEL_STATE_SHOW and Landscape mode\n");
+               elm_naviframe_item_title_visible_set(st->navi_it, EINA_FALSE);
+       } else if (value == ECORE_IMF_INPUT_PANEL_STATE_HIDE) {
+               DBG("ECORE_IMF_INPUT_PANEL_STATE_HIDE\n");
+               elm_naviframe_item_title_visible_set(st->navi_it, EINA_TRUE);
        }
 
        return;
@@ -253,26 +270,12 @@ static Eina_Bool __save_wifi_passphrase(mh_appdata_t *ad)
        mh_wifi_setting_view_t *st = &ad->setup;
        int ret = 0;
 
-       if (g_strcmp0(st->wifi_passphrase, st->wifi_passphrase_new) == 0) {
-               DBG("Password is not changed\n");
-               return EINA_TRUE;
-       }
-
-       if (strlen(st->wifi_passphrase_new) < WIFI_PASSPHRASE_LENGTH_MIN) {
-               DBG("Password is shorter than %d\n", WIFI_PASSPHRASE_LENGTH_MIN);
-               _prepare_popup(ad, MH_POP_WIFI_PASSWORD_SHORT,
-                               _("IDS_ST_BODY_ENTER_PASSWORD_OF_AT_LEAST_8_CHARACTERS"));
-               _create_popup(ad);
-               return EINA_FALSE;
-       }
-
        ret = tethering_wifi_set_passphrase(ad->handle, st->wifi_passphrase_new);
        if (ret != TETHERING_ERROR_NONE) {
                ERR("tethering_wifi_set_passphrase is failed : %d\n", ret);
                return EINA_FALSE;
        }
 
-       DBG("SUCCESS : setting up VCONFKEY_MOBILE_HOTSPOT_WIFI_KEY\n");
        g_strlcpy(st->wifi_passphrase, st->wifi_passphrase_new, sizeof(st->wifi_passphrase));
 
        __MOBILE_AP_FUNC_EXIT__;
@@ -292,27 +295,22 @@ static void __passphrase_maxlength_reached_cb(void *data, Evas_Object *obj,
 
        mh_appdata_t *ad = (mh_appdata_t *)data;
        char buf[MH_LABEL_LENGTH_MAX] = {0, };
+       int ret;
 
-       if (ad->popup != NULL) {
-               ERR("Popup already exists\n");
-               return;
-       }
-
-       if (_hide_imf(ad->setup.pw_entry) == EINA_FALSE) {
-               ERR("_hide_imf is failed\n");
-       }
+       ecore_imf_input_panel_hide();
+       elm_object_focus_set(ad->setup.pw_entry, EINA_FALSE);
 
        if (__save_wifi_passphrase(ad) == EINA_FALSE) {
                ERR("__save_wifi_passphrase is failed\n");
-               return;
        }
 
        snprintf(buf, sizeof(buf),
                        _("IDS_MOBILEAP_POP_PASSWORD_MUST_CONTAIN_AT_LEAST_PD_CHARACTERS_AND_NOT_EXCEED_PD_CHARACTERS"),
                        WIFI_PASSPHRASE_LENGTH_MIN, WIFI_PASSPHRASE_LENGTH_MAX);
 
-       _prepare_popup(ad, MH_POP_INFORMATION_WO_BUTTON, buf);
-       _create_popup(ad);
+       ret = notification_status_message_post(buf);
+       if (ret != NOTIFICATION_ERROR_NONE)
+               ERR("notification_status_message_post() is failed : %d\n", ret);
 
        __MOBILE_AP_FUNC_EXIT__;
 }
@@ -328,14 +326,31 @@ static void __passphrase_activated_cb(void *data, Evas_Object *obj,
        }
 
        mh_appdata_t *ad = (mh_appdata_t *)data;
+       int ret;
+       char *ptr;
+
+       ecore_imf_input_panel_hide();
+       elm_object_focus_set(ad->setup.pw_entry, EINA_FALSE);
+
+       if (strlen(ad->setup.wifi_passphrase_new) < WIFI_PASSPHRASE_LENGTH_MIN) {
+               DBG("Password is shorter than %d\n", WIFI_PASSPHRASE_LENGTH_MIN);
+               ret = notification_status_message_post(_("IDS_ST_BODY_ENTER_PASSWORD_OF_AT_LEAST_8_CHARACTERS"));
+               if (ret != NOTIFICATION_ERROR_NONE)
+                       ERR("notification_status_message_post() is failed : %d\n", ret);
 
-       if (_hide_imf(ad->setup.pw_entry) == EINA_FALSE) {
-               ERR("_hide_imf is failed\n");
+               ptr = elm_entry_utf8_to_markup(ad->setup.wifi_passphrase);
+               if (ptr != NULL) {
+                       elm_entry_entry_set(ad->setup.pw_entry, ptr);
+                       free(ptr);
+               } else {
+                       ERR("elm_entry_utf8_to_markup is failed\n");
+               }
+
+               return;
        }
 
        if (__save_wifi_passphrase(ad) == EINA_FALSE) {
                ERR("__save_wifi_passphrase is failed\n");
-               return;
        }
 
        __MOBILE_AP_FUNC_EXIT__;
@@ -373,15 +388,16 @@ static void __pw_entry_changed_cb(void *data, Evas_Object *obj,
                free(utf8_string);
        }
 
-       if (!elm_object_focus_get(st->pw_layout))
+       if (!elm_object_focus_get(st->pw_entry)) {
                return;
+       }
 
        if (elm_entry_is_empty(st->pw_entry)) {
-               elm_object_signal_emit(st->pw_layout,
-                               "elm,state,eraser,hide", "elm");
+               elm_object_item_signal_emit(st->pw_item,
+                               "elm,state,eraser,hide", "");
        } else {
-               elm_object_signal_emit(st->pw_layout,
-                               "elm,state,eraser,show", "elm");
+               elm_object_item_signal_emit(st->pw_item,
+                               "elm,state,eraser,show", "");
        }
 
        __MOBILE_AP_FUNC_EXIT__;
@@ -403,12 +419,11 @@ static void __pw_entry_focused_cb(void *data, Evas_Object *obj,
        mh_appdata_t *ad = (mh_appdata_t *)data;
        mh_wifi_setting_view_t *st = &ad->setup;
 
-       if (!elm_entry_is_empty(st->pw_entry))
-               elm_object_signal_emit(st->pw_layout,
-                               "elm,state,eraser,show", "elm");
-
-       elm_object_signal_emit(st->pw_layout,
-                       "elm,state,guidetext,hide", "elm");
+       if (!elm_entry_is_empty(st->pw_entry)) {
+               elm_entry_cursor_end_set(st->pw_entry);
+               elm_object_item_signal_emit(st->pw_item,
+                               "elm,state,eraser,show", "");
+       }
 
        __MOBILE_AP_FUNC_EXIT__;
 
@@ -429,12 +444,8 @@ static void __pw_entry_unfocused_cb(void *data, Evas_Object *obj,
        mh_appdata_t *ad = (mh_appdata_t *)data;
        mh_wifi_setting_view_t *st = &ad->setup;
 
-       if (elm_entry_is_empty(st->pw_entry))
-               elm_object_signal_emit(st->pw_layout,
-                               "elm,state,guidetext,show", "elm");
-
-       elm_object_signal_emit(st->pw_layout,
-                       "elm,state,eraser,hide", "elm");
+       elm_object_item_signal_emit(st->pw_item,
+                       "elm,state,eraser,hide", "");
 
        __MOBILE_AP_FUNC_EXIT__;
 
@@ -442,8 +453,7 @@ static void __pw_entry_unfocused_cb(void *data, Evas_Object *obj,
 
 }
 
-static void __pw_layout_eraser_clicked_cb(void *data, Evas_Object *obj,
-               const char *emission, const char *source)
+static void __pw_layout_eraser_clicked_cb(void *data, Evas_Object *obj, void *event_info)
 {
        __MOBILE_AP_FUNC_ENTER__;
 
@@ -463,121 +473,131 @@ static void __pw_layout_eraser_clicked_cb(void *data, Evas_Object *obj,
 
 }
 
-static Evas_Object *__gl_pw_icon_get(void *data, Evas_Object *obj,
-               const char *part)
+static char *__gl_pw_text_get(void *data, Evas_Object *obj, const char *part)
 {
        __MOBILE_AP_FUNC_ENTER__;
 
        if (data == NULL || obj == NULL || part == NULL) {
-               ERR("Invalid param\n");
+               ERR("Invalid parameter\n");
                return NULL;
        }
 
-       if (strcmp(part, "elm.icon") != 0) {
+       if (g_strcmp0(part, "elm.text") != 0) {
                ERR("Invalid part : %s\n", part);
                return NULL;
        }
 
-       static Elm_Entry_Filter_Limit_Size limit_filter_data;
-
-       mh_appdata_t *ad = (mh_appdata_t *)data;
-       mh_wifi_setting_view_t *st = &ad->setup;
-       Evas_Object *entry = NULL;
-       char *ptr = NULL;
-       Ecore_IMF_Context *imf_context;
+       __MOBILE_AP_FUNC_EXIT__;
+       return strdup(_("IDS_MOBILEAP_BODY_PASSWORD"));
+}
 
-       st->pw_layout = elm_layout_add(obj);
-       if (st->pw_layout == NULL) {
-               ERR("elm_layout_add returns NULL\n");
-               return NULL;
-       }
-       elm_layout_theme_set(st->pw_layout, "layout", "editfield", "title");
-       evas_object_size_hint_weight_set(st->pw_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+static Evas_Object *__gl_pw_icon_get(void *data, Evas_Object *obj,
+               const char *part)
+{
+       __MOBILE_AP_FUNC_ENTER__;
 
-       entry = elm_entry_add(st->pw_layout);
-       if (entry == NULL) {
-               ERR("elm_entry_add returns NULL\n");
-               evas_object_del(st->pw_layout);
-               st->pw_layout = NULL;
+       if (data == NULL || obj == NULL || part == NULL) {
+               ERR("Invalid param\n");
                return NULL;
        }
-       st->pw_entry = entry;
 
-       /* Set single line of entry */
-       elm_entry_scrollable_set(entry, EINA_TRUE);
-       elm_entry_single_line_set(entry, EINA_TRUE);
-       elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_PASSWORD);
+       if (g_strcmp0(part, "elm.icon.entry") == 0) {
+               static Elm_Entry_Filter_Limit_Size limit_filter_data;
 
-       /* Set the maximum length filter for passphrase entry */
-       limit_filter_data.max_char_count = 0;
-       limit_filter_data.max_byte_count = WIFI_PASSPHRASE_LENGTH_MAX;
-       elm_entry_markup_filter_append(entry,
-                       elm_entry_filter_limit_size, &limit_filter_data);
+               mh_appdata_t *ad = (mh_appdata_t *)data;
+               mh_wifi_setting_view_t *st = &ad->setup;
+               Evas_Object *entry = NULL;
+               char *ptr = NULL;
+               Ecore_IMF_Context *imf_context;
 
-       DBG("security_type : %d\n", st->security_type);
-       if (st->security_type == TETHERING_WIFI_SECURITY_TYPE_NONE) {
-               ptr = elm_entry_utf8_to_markup(st->wifi_passphrase);
-               if (ptr != NULL) {
-                       elm_entry_entry_set(entry, ptr);
-                       elm_entry_cursor_end_set(entry);
-                       free(ptr);
-               } else {
-                       ERR("elm_entry_utf8_to_markup is failed\n");
+               entry = elm_entry_add(obj);
+               if (entry == NULL) {
+                       ERR("elm_entry_add returns NULL\n");
+                       st->pw_entry = NULL;
+                       return NULL;
                }
 
-               /* Set editable mode */
-               elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
+               /* Set single line of entry */
+               elm_entry_scrollable_set(entry, EINA_TRUE);
+               elm_entry_single_line_set(entry, EINA_TRUE);
+               elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_PASSWORD);
+               elm_entry_select_allow_set(entry, EINA_FALSE);
                elm_entry_context_menu_disabled_set(entry, EINA_TRUE);
-               elm_object_item_disabled_set(st->pw_item, EINA_TRUE);
-       } else {
-               ptr = elm_entry_utf8_to_markup(st->wifi_passphrase_new);
-               if (ptr != NULL) {
-                       elm_entry_entry_set(entry, ptr);
-                       elm_entry_cursor_end_set(entry);
-                       free(ptr);
+
+               /* Set the maximum length filter for passphrase entry */
+               limit_filter_data.max_char_count = 0;
+               limit_filter_data.max_byte_count = WIFI_PASSPHRASE_LENGTH_MAX;
+               elm_entry_markup_filter_append(entry,
+                               elm_entry_filter_limit_size, &limit_filter_data);
+
+               DBG("security_type : %d\n", st->security_type);
+               if (st->security_type == TETHERING_WIFI_SECURITY_TYPE_NONE) {
+                       ptr = elm_entry_utf8_to_markup(st->wifi_passphrase);
+                       if (ptr != NULL) {
+                               elm_entry_entry_set(entry, ptr);
+                               free(ptr);
+                       } else {
+                               ERR("elm_entry_utf8_to_markup is failed\n");
+                       }
+
+                       /* Set editable mode */
+                       elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
+                       elm_object_disabled_set(entry, EINA_TRUE);
                } else {
-                       ERR("elm_entry_utf8_to_markup is failed\n");
+                       ptr = elm_entry_utf8_to_markup(st->wifi_passphrase_new);
+                       if (ptr != NULL) {
+                               elm_entry_entry_set(entry, ptr);
+                               free(ptr);
+                       } else {
+                               ERR("elm_entry_utf8_to_markup is failed\n");
+                       }
                }
-               elm_object_item_disabled_set(st->pw_item, EINA_FALSE);
-       }
-
-       evas_object_smart_callback_add(entry, "maxlength,reached",
-                       __passphrase_maxlength_reached_cb, data);
-       evas_object_smart_callback_add(entry, "activated",
-                       __passphrase_activated_cb, data);
-       evas_object_smart_callback_add(entry, "changed",
-                       __pw_entry_changed_cb, data);
-       evas_object_smart_callback_add(entry, "focused",
-                       __pw_entry_focused_cb, data);
-       evas_object_smart_callback_add(entry, "unfocused",
-                       __pw_entry_unfocused_cb, data);
-
-       imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(entry);
-       if (imf_context)
-               ecore_imf_context_input_panel_event_callback_add(imf_context,
-                               ECORE_IMF_INPUT_PANEL_STATE_EVENT,
-                               __input_panel_event_cb, (void *)st->navi_it);
-
-       evas_object_show(entry);
-
-       elm_object_part_content_set(st->pw_layout, "elm.swallow.content", entry);
-       elm_object_part_text_set(st->pw_layout, "elm.text",
-                       _("IDS_MOBILEAP_BODY_PASSWORD"));
-       elm_object_part_text_set(st->pw_layout, "elm.guidetext",
-                       _("IDS_ST_BODY_ENTER_PASSWORD_OF_AT_LEAST_8_CHARACTERS"));
 
-       if (!elm_entry_is_empty(entry))
-               elm_object_signal_emit(st->pw_layout,
-                               "elm,state,guidetext,hide", "elm");
+               evas_object_smart_callback_add(entry, "maxlength,reached",
+                               __passphrase_maxlength_reached_cb, data);
+               evas_object_smart_callback_add(entry, "activated",
+                               __passphrase_activated_cb, data);
+               evas_object_smart_callback_add(entry, "changed",
+                               __pw_entry_changed_cb, data);
+               evas_object_smart_callback_add(entry, "focused",
+                               __pw_entry_focused_cb, data);
+               evas_object_smart_callback_add(entry, "unfocused",
+                               __pw_entry_unfocused_cb, data);
+
+               imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(entry);
+               if (imf_context == NULL) {
+                       ERR("elm_entry_imf_context_get() is failed\n");
+               } else {
+                       ecore_imf_context_input_panel_event_callback_add(imf_context,
+                                       ECORE_IMF_INPUT_PANEL_STATE_EVENT,
+                                       __input_panel_event_cb, (void *)ad);
+               }
 
-       elm_object_signal_callback_add(st->pw_layout, "elm,eraser,clicked", "elm",
-                       __pw_layout_eraser_clicked_cb, data);
+               elm_object_item_signal_emit(st->pw_item,
+                               "elm,state,rename,hide", "");
+               if (!elm_entry_is_empty(entry)) {
+                       elm_object_item_signal_emit(st->pw_item,
+                                       "elm,state,eraser,hide", "");
+               }
 
+               elm_object_part_text_set(entry, "elm.guide",
+                               S_("IDS_COM_BODY_ENTER_PASSWORD"));
 
+               evas_object_show(entry);
+               st->pw_entry = entry;
 
-       __MOBILE_AP_FUNC_EXIT__;
+               __MOBILE_AP_FUNC_EXIT__;
+               return st->pw_entry;
+       } else if (g_strcmp0(part, "elm.icon.eraser") == 0) {
+               Evas_Object *btn = elm_button_add(obj);
+               elm_object_style_set(btn, "editfield_clear");
+               evas_object_smart_callback_add(btn, "clicked", __pw_layout_eraser_clicked_cb, data);
+               return btn;
+       } else {
+               DBG("Unknown part : %s\n", part);
+       }
 
-       return st->pw_layout;
+       return NULL;
 }
 
 static void __gl_hide_item_sel(void *data, Evas_Object *obj, void *event_info)
@@ -660,8 +680,8 @@ static void __set_genlist_itc(mh_appdata_t *ad)
        ad->setup.security_itc->func.del = NULL;
 
        ad->setup.pw_itc = elm_genlist_item_class_new();
-       ad->setup.pw_itc->item_style = "dialogue/1icon";
-       ad->setup.pw_itc->func.text_get = NULL;
+       ad->setup.pw_itc->item_style = "dialogue/editfield/title";
+       ad->setup.pw_itc->func.text_get = __gl_pw_text_get;
        ad->setup.pw_itc->func.content_get = __gl_pw_icon_get;
        ad->setup.pw_itc->func.state_get = NULL;
        ad->setup.pw_itc->func.del = NULL;
@@ -717,7 +737,6 @@ static void __deconstruct_wifi_setup_view(mh_wifi_setting_view_t *st)
 
        st->hide_btn = NULL;
        st->security_btn = NULL;
-       st->pw_layout = NULL;
        st->pw_entry = NULL;
        st->back_btn = NULL;
        st->genlist = NULL;
@@ -736,27 +755,54 @@ static void __back_btn_cb(void *data, Evas_Object *obj, void *event_info)
 
        mh_appdata_t *ad = (mh_appdata_t *)data;
        mh_wifi_setting_view_t *st = &ad->setup;
+       Eina_Bool imf_state;
        int ret;
+       char *ptr = NULL;
+
+       imf_state = ecore_imf_input_panel_hide();
+       elm_object_focus_set(st->pw_entry, EINA_FALSE);
 
-       if (_hide_imf(st->pw_entry) == EINA_FALSE) {
-               ERR("_hide_imf is failed\n");
+       if (strlen(st->wifi_passphrase_new) < WIFI_PASSPHRASE_LENGTH_MIN) {
+               DBG("Password is shorter than %d\n", WIFI_PASSPHRASE_LENGTH_MIN);
+               ret = notification_status_message_post(_("IDS_ST_BODY_ENTER_PASSWORD_OF_AT_LEAST_8_CHARACTERS"));
+               if (ret != NOTIFICATION_ERROR_NONE)
+                       ERR("notification_status_message_post() is failed : %d\n", ret);
+
+               ptr = elm_entry_utf8_to_markup(st->wifi_passphrase);
+               if (ptr != NULL) {
+                       elm_entry_entry_set(st->pw_entry, ptr);
+                       free(ptr);
+               } else {
+                       ERR("elm_entry_utf8_to_markup is failed\n");
+               }
+
+               return;
        }
 
-       if (__save_wifi_passphrase(ad) == EINA_FALSE) {
-               ERR("__save_wifi_passphrase is failed\n");
+       if (g_strcmp0(st->wifi_passphrase, st->wifi_passphrase_new) != 0) {
+               if (__save_wifi_passphrase(ad) == EINA_FALSE) {
+                       ERR("__save_wifi_passphrase is failed\n");
+               }
+       }
+
+       if (imf_state == EINA_TRUE) {
+               DBG("IMF is hided\n");
                return;
        }
 
-       if (tethering_is_enabled(ad->handle, TETHERING_TYPE_WIFI) == false &&
-                       ad->main.old_wifi_state == true) {
+       if (ad->main.need_recover_wifi_tethering == true) {
+               DBG("Turn on Wi-Fi tethering again\n");
                _update_wifi_item(ad, MH_STATE_PROCESS);
+               if (ad->main.help_item)
+                       elm_genlist_item_update(ad->main.help_item);
+
                ret = tethering_enable(ad->handle, TETHERING_TYPE_WIFI);
                if (ret != TETHERING_ERROR_NONE) {
-                       ERR("wifi tethering on is failed : %d\n", ret);
+                       ERR("Wi-Fi tethering on is failed : %d\n", ret);
                        _update_wifi_item(ad, MH_STATE_NONE);
+                       ad->main.need_recover_wifi_tethering = false;
                }
        }
-       ad->main.old_wifi_state = false;
 
        __deconstruct_wifi_setup_view(st);
 
@@ -768,43 +814,45 @@ static void __back_btn_cb(void *data, Evas_Object *obj, void *event_info)
        __MOBILE_AP_FUNC_EXIT__;
 }
 
-static void __title_back_btn_cb(void *data, Evas_Object *obj, void *event_info)
+static void __gl_realized(void *data, Evas_Object *obj, void *event_info)
 {
        __MOBILE_AP_FUNC_ENTER__;
 
-       if (data == NULL || obj == NULL) {
-               ERR("Invalid param\n");
-               return;
-       }
-
-       mh_appdata_t *ad = (mh_appdata_t *)data;
-
-       if (_hide_imf(ad->setup.pw_entry) == EINA_FALSE) {
-               ERR("_hide_imf is failed\n");
-       }
-
-       if (__save_wifi_passphrase(ad) == EINA_FALSE) {
-               ERR("__save_wifi_passphrase is failed\n");
-               return;
-       }
-
-       __MOBILE_AP_FUNC_EXIT__;
-
-       return;
-}
-
-static void __gl_realized(void *data, Evas_Object *obj, void *event_info)
-{
        mh_appdata_t *ad = (mh_appdata_t *)data;
        mh_wifi_setting_view_t *st = &(ad->setup);
        Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       Evas_Object *ao;
+       Evas_Object *btn;
+       char str[MH_LABEL_LENGTH_MAX] = {0, };
+       int i = 0;
 
-       if (item == st->hide_item)
+       if (item == st->hide_item) {
+               DBG("Hide item is realized\n");
                elm_object_item_signal_emit(item, "elm,state,top", "");
-       else if (item == st->security_item)
+       } else if (item == st->security_item) {
+               DBG("Security item is realized\n");
                elm_object_item_signal_emit(item, "elm,state,center", "");
-       else if (item == st->pw_item)
+       } else if (item == st->pw_item) {
+               DBG("Password item is realized\n");
                elm_object_item_signal_emit(item, "elm,state,bottom", "");
+       } else if (item == st->name_item) {
+               DBG("Name item is realized\n");
+       }
+
+       for (i = 0; i < 2; i++) {
+               if (item == st->sp_item[i])
+                       elm_object_item_access_unregister(item);
+       }
+
+       if (item == st->hide_item || item == st->security_item) {
+               ao = elm_object_item_access_object_get(item);
+               btn = elm_object_item_part_content_get(item, "on&off");
+               snprintf(str, sizeof(str), "%s, %s", "On/off button",
+                               (elm_check_state_get(btn) ? "On" : "Off"));
+               elm_access_info_set(ao, ELM_ACCESS_CONTEXT_INFO, str);
+       }
+
+       __MOBILE_AP_FUNC_EXIT__;
 
        return;
 }
@@ -820,14 +868,16 @@ Evas_Object *__create_genlist(mh_appdata_t *ad)
 
        void *data = (void *)ad;
        mh_wifi_setting_view_t *st = &ad->setup;
-       Evas_Object *genlist = NULL;
-       Elm_Object_Item *item = NULL;
+       Evas_Object *genlist;
+       Elm_Object_Item *item;
+       int i = 0;
 
        genlist = elm_genlist_add(ad->naviframe);
        if (genlist == NULL) {
                ERR("genlist is NULL\n");
                return NULL;
        }
+
        elm_object_style_set(genlist, "dialogue");
        elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
        evas_object_smart_callback_add(genlist, "realized", __gl_realized, ad);
@@ -836,6 +886,7 @@ Evas_Object *__create_genlist(mh_appdata_t *ad)
        item = elm_genlist_item_append(genlist, st->sp_itc, NULL, NULL,
                        ELM_GENLIST_ITEM_NONE, NULL, NULL);
        elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       st->sp_item[i++] = item;
 
        st->hide_item = elm_genlist_item_append(genlist, st->hide_itc, data, NULL,
                        ELM_GENLIST_ITEM_NONE, __gl_hide_item_sel, data);
@@ -843,10 +894,9 @@ Evas_Object *__create_genlist(mh_appdata_t *ad)
        st->security_item = elm_genlist_item_append(genlist, st->security_itc, data, NULL,
                        ELM_GENLIST_ITEM_NONE, __gl_security_item_sel, data);
 
-       DBG("security_type : %d\n", st->security_type);
        st->pw_item = elm_genlist_item_append(genlist, st->pw_itc, data, NULL,
                        ELM_GENLIST_ITEM_NONE, NULL, NULL);
-       elm_genlist_item_select_mode_set(st->pw_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       elm_genlist_item_select_mode_set(st->pw_item, ELM_OBJECT_SELECT_MODE_NONE);
 
        st->name_item = elm_genlist_item_append(genlist, st->name_itc, data, NULL,
                        ELM_GENLIST_ITEM_NONE, NULL, NULL);
@@ -855,6 +905,7 @@ Evas_Object *__create_genlist(mh_appdata_t *ad)
        item = elm_genlist_item_append(genlist, st->end_sp_itc, NULL, NULL,
                        ELM_GENLIST_ITEM_NONE, NULL, NULL);
        elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       st->sp_item[i++] = item;
 
 
        __MOBILE_AP_FUNC_EXIT__;
@@ -862,6 +913,45 @@ Evas_Object *__create_genlist(mh_appdata_t *ad)
        return genlist;
 }
 
+char *__slide_title_access_info_cb(void *data, Evas_Object *obj)
+{
+       Evas_Object *label;
+       Elm_Object_Item *navi_it;
+       Eina_Strbuf *buf;
+       const char *info;
+       char *ret;
+
+       navi_it = (Elm_Object_Item *) data;
+       label = elm_object_item_part_content_get(navi_it, "elm.swallow.title");
+       if (label == NULL)
+               return NULL;
+
+       info = elm_object_text_get(label);
+       if (info == NULL)
+               return NULL;
+
+       buf = eina_strbuf_new();
+       eina_strbuf_append(buf, info);
+
+       ret = eina_strbuf_string_steal(buf);
+       eina_strbuf_free(buf);
+       return ret;
+}
+
+static void __title_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       Evas_Object *label;
+       Elm_Object_Item *navi_it = event_info;
+       if (navi_it == NULL)
+               return;
+
+       label = elm_object_item_part_content_get(navi_it, "elm.swallow.title");
+       if (label == NULL)
+               return;
+
+       elm_label_slide_go(label);
+}
+
 void mh_draw_wifi_setup_view(mh_appdata_t *ad)
 {
        __MOBILE_AP_FUNC_ENTER__;
@@ -872,6 +962,9 @@ void mh_draw_wifi_setup_view(mh_appdata_t *ad)
        }
 
        mh_wifi_setting_view_t *st = &ad->setup;
+       Evas_Object *ao;
+       Evas_Object *label;
+
 
        if (st->genlist != NULL) {
                ERR("Wi-Fi setup view already exists\n");
@@ -892,15 +985,27 @@ void mh_draw_wifi_setup_view(mh_appdata_t *ad)
        elm_object_style_set(st->back_btn, "naviframe/back_btn/default");
        evas_object_smart_callback_add(st->back_btn, "clicked",
                        __back_btn_cb, ad);
+       elm_object_focus_allow_set(st->back_btn, EINA_FALSE);
 
        st->navi_it = elm_naviframe_item_push(ad->naviframe,
-                       _("IDS_MOBILEAP_MBODY_WI_FI_TETHERING_SETTINGS"),
+                       NULL,
                        st->back_btn, NULL, st->genlist, NULL);
 
-       st->title_back_btn = elm_button_add(ad->naviframe);
-       elm_object_style_set(st->title_back_btn, "naviframe/back_btn/default");
-       evas_object_smart_callback_add(st->title_back_btn, "clicked", __title_back_btn_cb, ad);
-       elm_object_item_part_content_set(st->navi_it, "title_prev_btn", st->title_back_btn);
+       /* Slide title */
+       label = _create_slide_title(ad->naviframe, _("IDS_MOBILEAP_MBODY_WI_FI_TETHERING_SETTINGS"));
+       elm_object_item_part_content_set(st->navi_it, "elm.swallow.title", label);
+       evas_object_smart_callback_add(ad->naviframe, "title,clicked", __title_clicked_cb, NULL);
+
+       ao = elm_object_item_access_object_get(st->navi_it);
+       if (ao) {
+               elm_access_info_set(ao, ELM_ACCESS_TYPE, "title");
+               elm_access_info_cb_set(ao, ELM_ACCESS_INFO,
+                               __slide_title_access_info_cb, st->navi_it);
+               elm_object_focus_set(ao, EINA_TRUE);
+       }
+
+       /* Realize genlist item forcely since UIFW doesn't make realize to avoid crash on landscape mode*/
+       elm_genlist_item_update(st->pw_item);
 
        __MOBILE_AP_FUNC_EXIT__;