summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyungKyu Song <hk76.song@samsung.com>2013-02-16 00:01:17 +0900
committerHyungKyu Song <hk76.song@samsung.com>2013-02-16 00:01:17 +0900
commit8f6a01f53915dfc33f36e8da2f4b6fd2d56022fa (patch)
treecca669ad3bbb5c7c15c080b6ca834e1a8eb3d131
parent4d29d73d57a60d04d6eb34f6f5379fae4fae6569 (diff)
downloadug-wifi-efl-tizen_2.0.tar.gz
ug-wifi-efl-tizen_2.0.tar.bz2
ug-wifi-efl-tizen_2.0.zip
-rw-r--r--AUTHORS3
-rw-r--r--CMakeLists.txt57
-rw-r--r--LICENSE.Flora206
-rw-r--r--NOTICE4
-rw-r--r--debian/changelog3291
-rw-r--r--debian/compat1
-rw-r--r--debian/control47
-rw-r--r--debian/dirs1
-rw-r--r--debian/docs2
-rw-r--r--debian/net.wifi-qs.install.in6
-rw-r--r--debian/net.wifi-qs.postinst33
-rwxr-xr-xdebian/rules201
-rw-r--r--debian/wifi-efl-ug.install.in5
-rw-r--r--debian/wifi-efl-ug.postinst6
-rw-r--r--net.wifi-qs.manifest5
-rw-r--r--packaging/wifi-efl-ug.spec89
-rw-r--r--po/CMakeLists.txt34
-rw-r--r--po/ar.po207
-rw-r--r--po/az.po207
-rw-r--r--po/bg.po207
-rw-r--r--po/ca.po207
-rw-r--r--po/cs.po207
-rw-r--r--po/da.po207
-rw-r--r--po/de_DE.po207
-rw-r--r--po/el_GR.po207
-rw-r--r--po/en.po207
-rw-r--r--po/en_PH.po207
-rw-r--r--po/en_US.po207
-rw-r--r--po/es_ES.po207
-rw-r--r--po/es_MX.po207
-rw-r--r--po/es_US.po207
-rw-r--r--po/et.po207
-rw-r--r--po/eu.po207
-rw-r--r--po/fi.po207
-rw-r--r--po/fr_CA.po207
-rw-r--r--po/fr_FR.po207
-rw-r--r--po/ga.po207
-rw-r--r--po/gl.po207
-rw-r--r--po/hi.po207
-rw-r--r--po/hr.po207
-rw-r--r--po/hu.po207
-rw-r--r--po/hy.po207
-rw-r--r--po/is.po207
-rw-r--r--po/it_IT.po207
-rw-r--r--po/ja_JP.po207
-rw-r--r--po/ka.po207
-rw-r--r--po/kk.po207
-rw-r--r--po/ko_KR.po207
-rw-r--r--po/lt.po207
-rw-r--r--po/lv.po207
-rw-r--r--po/mk.po207
-rw-r--r--po/nb.po207
-rw-r--r--po/nl_NL.po207
-rw-r--r--po/pl.po207
-rw-r--r--po/pt_BR.po207
-rw-r--r--po/pt_PT.po207
-rw-r--r--po/ro.po207
-rw-r--r--po/ru_RU.po207
-rw-r--r--po/sk.po207
-rw-r--r--po/sl.po207
-rw-r--r--po/sr.po207
-rw-r--r--po/sv.po207
-rw-r--r--po/tr_TR.po207
-rw-r--r--po/uk.po207
-rw-r--r--po/uz.po207
-rw-r--r--po/zh_CN.po207
-rw-r--r--po/zh_HK.po207
-rw-r--r--po/zh_SG.po207
-rw-r--r--po/zh_TW.po207
-rw-r--r--resources/images/00_EditField_clear.pngbin0 -> 3275 bytes
-rwxr-xr-xresources/images/00_EditField_clear_press.pngbin0 -> 3278 bytes
-rw-r--r--resources/images/00_search_edit_field_bg.pngbin0 -> 3478 bytes
-rw-r--r--resources/images/01_controlbar_icon_delete.pngbin0 -> 393 bytes
-rw-r--r--resources/images/01_controlbar_icon_edit.pngbin0 -> 561 bytes
-rw-r--r--resources/images/01_controlbar_icon_update.pngbin0 -> 776 bytes
-rw-r--r--resources/images/37_wifi_icon_00.pngbin0 -> 3982 bytes
-rw-r--r--resources/images/37_wifi_icon_01.pngbin0 -> 4241 bytes
-rw-r--r--resources/images/37_wifi_icon_02.pngbin0 -> 4491 bytes
-rw-r--r--resources/images/37_wifi_icon_03.pngbin0 -> 3852 bytes
-rw-r--r--resources/images/37_wifi_icon_WPS.pngbin0 -> 797 bytes
-rw-r--r--resources/images/37_wifi_icon_WPS_support AP.pngbin0 -> 3459 bytes
-rw-r--r--resources/images/37_wifi_icon_WPS_support AP_press.pngbin0 -> 3474 bytes
-rw-r--r--resources/images/37_wifi_icon_lock_00.pngbin0 -> 4213 bytes
-rw-r--r--resources/images/37_wifi_icon_lock_01.pngbin0 -> 4349 bytes
-rw-r--r--resources/images/37_wifi_icon_lock_02.pngbin0 -> 4494 bytes
-rw-r--r--resources/images/37_wifi_icon_lock_03.pngbin0 -> 3845 bytes
-rw-r--r--resources/images/37_wifi_icon_searched_00.pngbin0 -> 4503 bytes
-rw-r--r--resources/images/37_wifi_icon_searched_01.pngbin0 -> 4571 bytes
-rw-r--r--resources/images/37_wifi_icon_searched_02.pngbin0 -> 4547 bytes
-rw-r--r--resources/images/37_wifi_icon_searched_03.pngbin0 -> 3813 bytes
-rw-r--r--resources/images/37_wifi_icon_searched_lock_00.pngbin0 -> 4695 bytes
-rw-r--r--resources/images/37_wifi_icon_searched_lock_01.pngbin0 -> 4570 bytes
-rw-r--r--resources/images/37_wifi_icon_searched_lock_02.pngbin0 -> 4357 bytes
-rw-r--r--resources/images/37_wifi_icon_searched_lock_03.pngbin0 -> 3899 bytes
-rw-r--r--resources/images/Q02_Notification__wifi_in_range.pngbin0 -> 3517 bytes
-rw-r--r--sources/libraries/Common/common_datamodel.c749
-rw-r--r--sources/libraries/Common/common_eap_connect.c1493
-rw-r--r--sources/libraries/Common/common_invalid_password.c149
-rw-r--r--sources/libraries/Common/common_ip_info.c851
-rw-r--r--sources/libraries/Common/common_pswd_popup.c365
-rw-r--r--sources/libraries/Common/common_utils.c458
-rw-r--r--sources/libraries/Common/include/common.h94
-rw-r--r--sources/libraries/Common/include/common_datamodel.h102
-rw-r--r--sources/libraries/Common/include/common_eap_connect.h50
-rw-r--r--sources/libraries/Common/include/common_invalid_password.h39
-rw-r--r--sources/libraries/Common/include/common_ip_info.h46
-rw-r--r--sources/libraries/Common/include/common_pswd_popup.h53
-rw-r--r--sources/libraries/Common/include/common_utils.h110
-rw-r--r--sources/libraries/WlanManager/EngineManager/connman-profile-manager.c211
-rw-r--r--sources/libraries/WlanManager/EngineManager/connman-request.c72
-rw-r--r--sources/libraries/WlanManager/EngineManager/connman-response.c92
-rw-r--r--sources/libraries/WlanManager/EngineManager/include/connman-profile-manager.h38
-rw-r--r--sources/libraries/WlanManager/EngineManager/include/connman-request.h39
-rw-r--r--sources/libraries/WlanManager/EngineManager/include/connman-response.h46
-rw-r--r--sources/libraries/WlanManager/wlan-manager/include/wlan_manager.h254
-rw-r--r--sources/libraries/WlanManager/wlan-manager/wlan_manager.c820
-rw-r--r--sources/libraries/appcoreWrapper/appcoreWrapper.c69
-rw-r--r--sources/libraries/appcoreWrapper/include/appcoreWrapper.h38
-rw-r--r--sources/libraries/i18nManager/i18nmanager.c227
-rw-r--r--sources/libraries/i18nManager/include/i18nmanager.h130
-rw-r--r--sources/libraries/settingWrapper/include/wifi-setting.h34
-rw-r--r--sources/libraries/settingWrapper/wifi-setting.c75
-rw-r--r--sources/ui-gadget/CMakeLists.txt56
-rw-r--r--sources/ui-gadget/edcs/custom_editfield.edc442
-rw-r--r--sources/ui-gadget/edcs/wifi_ug_edj_etc.edc33
-rw-r--r--sources/ui-gadget/include/motion_control.h44
-rw-r--r--sources/ui-gadget/include/ug_wifi.h89
-rw-r--r--sources/ui-gadget/include/viewer_list.h74
-rw-r--r--sources/ui-gadget/include/viewer_manager.h85
-rw-r--r--sources/ui-gadget/include/wifi-engine-callback.h35
-rw-r--r--sources/ui-gadget/include/wifi-ui-list-callbacks.h38
-rw-r--r--sources/ui-gadget/include/wifi.h88
-rw-r--r--sources/ui-gadget/include/winset_popup.h54
-rw-r--r--sources/ui-gadget/motion_control.c103
-rw-r--r--sources/ui-gadget/viewers-layout/include/view_detail.h50
-rw-r--r--sources/ui-gadget/viewers-layout/include/view_ime_hidden.h39
-rw-r--r--sources/ui-gadget/viewers-layout/view_detail.c339
-rw-r--r--sources/ui-gadget/viewers-layout/view_ime_hidden.c201
-rw-r--r--sources/ui-gadget/viewers-layout/viewer_manager.c1267
-rw-r--r--sources/ui-gadget/viewers-layout/wifi_viewer_list.c840
-rw-r--r--sources/ui-gadget/wifi-efl-UG.c431
-rw-r--r--sources/ui-gadget/wifi-ui-list-callbacks.c312
-rw-r--r--sources/ui-gadget/wifi-wlan-callbacks.c199
-rw-r--r--sources/ui-gadget/winset_popup.c346
-rw-r--r--sources/wifi-syspopup/CMakeLists.txt56
-rw-r--r--sources/wifi-syspopup/include/wifi-syspopup-engine-callback.h37
-rw-r--r--sources/wifi-syspopup/include/wifi-syspopup.h98
-rw-r--r--sources/wifi-syspopup/net.wifi-qs.xml9
-rw-r--r--sources/wifi-syspopup/viewer-popups/include/view-alerts.h36
-rw-r--r--sources/wifi-syspopup/viewer-popups/include/view-main.h44
-rw-r--r--sources/wifi-syspopup/viewer-popups/view-alerts.c112
-rw-r--r--sources/wifi-syspopup/viewer-popups/view-main.c520
-rw-r--r--sources/wifi-syspopup/wifi-qs.ini2
-rw-r--r--sources/wifi-syspopup/wifi-syspopup-engine-callback.c157
-rw-r--r--sources/wifi-syspopup/wifi-syspopup.c641
-rw-r--r--wifi-efl-ug.manifest5
156 files changed, 28341 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..5564678
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,3 @@
+Sanghoon Cho <sanghoon80.cho@samsung.com>
+Jeongseok Seo <s.seo@samsung.com>
+Sunil Kim <sunil85.kim@samsung.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..cf9d4b4
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,57 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+SET(ENGINE_SOURCES
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/WlanManager/EngineManager/connman-request.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/WlanManager/EngineManager/connman-response.c
+# ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/WlanManager/EngineManager/connman-profile-manager.c
+)
+
+SET(ENGINE_INCLUDES
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/WlanManager/EngineManager/include) #connman
+
+SET(ENGINE_PKGCONFIGS
+ capi-network-wifi
+ network)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED
+ ecore
+ ecore-imf
+ ecore-input
+ appcore-efl
+ elementary
+ glib-2.0
+ utilX
+ ui-gadget-1
+ x11
+ sensor
+ syspopup
+ syspopup-caller
+#engine pkgconfigs
+ ${ENGINE_PKGCONFIGS})
+
+INCLUDE_DIRECTORIES(
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/ui-gadget/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/ui-gadget/viewers-layout/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/wifi-syspopup/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/wifi-syspopup/viewer-popups/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/Common/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/WlanManager/wlan-manager/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/WlanManager/profile-manager/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/gestureManager/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/appcoreWrapper/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/messageDispatcher/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/ug-caller/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/i18nManager/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/LogManager/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/settingWrapper/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/sources/libraries/mobileAPManager/include
+
+#engine includes
+ ${ENGINE_INCLUDES})
+
+ADD_SUBDIRECTORY(po)
+ADD_SUBDIRECTORY(sources/ui-gadget)
+ADD_SUBDIRECTORY(sources/wifi-syspopup)
+
diff --git a/LICENSE.Flora b/LICENSE.Flora
new file mode 100644
index 0000000..9c95663
--- /dev/null
+++ b/LICENSE.Flora
@@ -0,0 +1,206 @@
+Flora License
+
+Version 1.0, May, 2012
+
+http://floralicense.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://floralicense.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
index 0000000..f37f329
--- /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.Flora file for Flora License terms and conditions.
+
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..f5387c9
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,3291 @@
+wifi-efl-ug (0.5.1-31) precise; urgency=low
+
+ * [N_SE-3422] Bug fix
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-31
+
+ -- sunil85.kim <isurit@sunil85.kim> Tue, 12 Feb 2013 22:19:16 +0900
+
+wifi-efl-ug (0.5.1-30) precise; urgency=low
+
+ * [N_SE-24924] Rotate getter bug fix
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-30
+
+ -- sunil85.kim <isurit@sunil85.kim> Tue, 12 Feb 2013 20:01:20 +0900
+
+wifi-efl-ug (0.5.1-29) precise; urgency=low
+
+ * [N_SE-24585] Rotate bug fix
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-29
+
+ -- sunil85.kim <isurit@sunil85.kim> Fri, 08 Feb 2013 04:29:15 +0900
+
+wifi-efl-ug (0.5.1-28) precise; urgency=low
+
+ * Change tethering package name
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-28
+
+ -- sunil85.kim <isurit@sunil85.kim> Thu, 24 Jan 2013 20:43:59 +0900
+
+wifi-efl-ug (0.5.1-27) precise; urgency=low
+
+ * Fix a bug, the idler is not deleted in error case
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-27
+
+ -- Jaehyun Kim <jeik01.kim@samsung.com> Tue, 22 Jan 2013 22:29:40 +0900
+
+wifi-efl-ug (0.5.1-26) precise; urgency=low
+
+ * Modify check button event
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-26
+
+ -- sunil85.kim <isurit@sunil85.kim> Tue, 22 Jan 2013 20:45:38 +0900
+
+wifi-efl-ug (0.5.1-25) precise; urgency=low
+
+ * Fix the naming problem
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-25
+
+ -- sunil85.kim <isurit@sunil85.kim> Thu, 10 Jan 2013 17:44:21 +0900
+
+wifi-efl-ug (0.5.1-24) precise; urgency=low
+
+ * Fix the memory leak bug
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-24
+
+ -- sunil85.kim <isurit@sunil85.kim> Tue, 08 Jan 2013 19:05:57 +0900
+
+wifi-efl-ug (0.5.1-23) precise; urgency=low
+
+ * Fix dialogue group making bug
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-23
+
+ -- sunil85.kim <isurit@sunil85.kim> Tue, 08 Jan 2013 09:12:45 +0900
+
+wifi-efl-ug (0.5.1-22) unstable; urgency=low
+
+ * Change syspopup_launch to aul_launch_app.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-22
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 04 Jan 2013 10:47:32 +0530
+
+wifi-efl-ug (0.5.1-21) unstable; urgency=low
+
+ * Disable connection state change and rssi levl change updation during scan block cases.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-21
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 03 Jan 2013 19:21:59 +0530
+
+wifi-efl-ug (0.5.1-20) unstable; urgency=low
+
+ * Fix password popup not adjusting to different font sizes
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-20
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 03 Jan 2013 20:07:04 +0900
+
+wifi-efl-ug (0.5.1-19) unstable; urgency=low
+
+ * Register imf event cb after navi item is created.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-19
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 03 Jan 2013 11:42:29 +0530
+
+wifi-efl-ug (0.5.1-18) precise; urgency=low
+
+ * Wi-Fi icon update
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-18
+
+ -- sunil85.kim <isurit@sunil85.kim> Thu, 03 Jan 2013 15:11:10 +0900
+
+wifi-efl-ug (0.5.1-17) unstable; urgency=low
+
+ * Set ELM_OBJECT_SELECT_MODE_NONE as the select style for edit field genlist items. (Fix P121218-5357)
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-17
+
+ -- Praveen C <pravin.c@samsung.com> Wed, 02 Jan 2013 17:28:07 +0530
+
+wifi-efl-ug (0.5.1-16) unstable; urgency=low
+
+ * Corrected the eap popup ime ctxt cb.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-16
+
+ -- Praveen C <pravin.c@samsung.com> Wed, 02 Jan 2013 17:09:31 +0530
+
+wifi-efl-ug (0.5.1-15) unstable; urgency=low
+
+ * Fix not updating popup's position when SIP is shown
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-15
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 02 Jan 2013 16:46:41 +0900
+
+wifi-efl-ug (0.5.1-14) precise; urgency=low
+
+ * Modified eap popup entry field event function
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-14
+
+ -- sunil85.kim <isurit@sunil85.kim> Fri, 28 Dec 2012 17:14:34 +0900
+
+wifi-efl-ug (0.5.1-13) unstable; urgency=low
+
+ * Fix double click sound issue.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-13
+
+ -- Praveen C <pravin.c@samsung.com> Mon, 31 Dec 2012 12:23:23 +0530
+
+wifi-efl-ug (0.5.1-12) unstable; urgency=low
+
+ * Add invalid password alert
+ * Revise minor things
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-12
+
+ -- Danny Jeongseok Seo <s.seo@samsung.com> Thu, 27 Dec 2012 10:41:53 +0900
+
+wifi-efl-ug (0.5.1-11) unstable; urgency=low
+
+ * Changed the separator styles.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-11
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 21 Dec 2012 11:32:48 +0530
+
+wifi-efl-ug (0.5.1-10) unstable; urgency=low
+
+ * Fix the check for Wi-Fi Hotspot during powering ON
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-10
+
+ -- Naveen H <naveen.h@samsung.com> Thu, 20 Dec 2012 15:50:56 +0530
+
+wifi-efl-ug (0.5.1-9) unstable; urgency=low
+
+ * Unnecessary elm_win_indicator_mode_set
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-9
+
+ -- Danny Jeongseok Seo <s.seo@samsung.com> Thu, 20 Dec 2012 17:33:06 +0900
+
+wifi-efl-ug (0.5.1-8) precise; urgency=low
+
+ * Fixed making wrong group #2
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-8
+
+ -- sunil85.kim <isurit@sunil85.kim> Tue, 18 Dec 2012 19:41:19 +0900
+
+wifi-efl-ug (0.5.1-7) unstable; urgency=low
+
+ * Make MSCHAPv2 as default auth type for PEAP. (Fix PLM # P121218-3335)
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-7
+
+ -- Praveen C <pravin.c@samsung.com> Wed, 19 Dec 2012 15:50:09 +0530
+
+wifi-efl-ug (0.5.1-6) unstable; urgency=low
+
+ * Added support to remove the "WiFi networks found" from noti tray after the QS is shown.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-6
+
+ -- Praveen C <pravin.c@samsung.com> Mon, 17 Dec 2012 19:10:13 +0530
+
+wifi-efl-ug (0.5.1-5) precise; urgency=low
+
+ * Fixed making wrong group
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-5
+
+ -- isurit <isurit@isurit-pc> Thu, 13 Dec 2012 18:03:07 +0900
+
+wifi-efl-ug (0.5.1-4) unstable; urgency=low
+
+ * Remove the GSList container.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-4
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 14 Dec 2012 12:15:11 +0530
+
+wifi-efl-ug (0.5.1-3) unstable; urgency=low
+
+ * Move the list callbacks from file wifi-ui-list-callbacks.c into wifi_viewer_list.c.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-3
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 14 Dec 2012 10:18:38 +0530
+
+wifi-efl-ug (0.5.1-2) unstable; urgency=low
+
+ * Added support in QS popup to cancel connecting AP.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-2
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 13 Dec 2012 10:23:59 +0530
+
+wifi-efl-ug (0.5.1-1) unstable; urgency=low
+
+ * CAPI migration.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.5.1-1
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 11 Dec 2012 09:51:52 +0530
+
+wifi-efl-ug (0.4.57-43) unstable; urgency=low
+
+ * Show the title buttons when keypad is open. Fix for P121126-0132.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-43
+
+ -- Praveen C <pravin.c@samsung.com> Mon, 10 Dec 2012 10:57:00 +0530
+
+wifi-efl-ug (0.4.57-42) unstable; urgency=low
+
+ * Performace improvement for detail view and eap connect view loading.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-42
+
+ -- Praveen C <pravin.c@samsung.com> Mon, 10 Dec 2012 10:51:40 +0530
+
+wifi-efl-ug (0.4.57-41) unstable; urgency=low
+
+ * Fix layout of custom_editfield
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-41
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 10 Dec 2012 13:23:17 +0900
+
+wifi-efl-ug (0.4.57-40) unstable; urgency=low
+
+ * Fix the port address & number entry display issue.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-40
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 07 Dec 2012 17:04:50 +0530
+
+wifi-efl-ug (0.4.57-39) unstable; urgency=low
+
+ * Fix not working eap_connect in wifi-qs
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-39
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 07 Dec 2012 18:19:05 +0900
+
+wifi-efl-ug (0.4.57-38) unstable; urgency=low
+
+ * Make the list entry items customisable for easy Ux management.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-38
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 07 Dec 2012 10:20:20 +0530
+
+wifi-efl-ug (0.4.57-37) unstable; urgency=low
+
+ * Display key pad for entering ID when EAP connect view/popup is shown. Fix for P121126-0254.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-37
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 04 Dec 2012 19:21:28 +0530
+
+wifi-efl-ug (0.4.57-36) unstable; urgency=low
+
+ * Make PEAP as default EAP method. (Fix for P121204-0327)
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-36
+
+ -- Praveen C <pravin.c@samsung.com> Wed, 05 Dec 2012 15:08:41 +0530
+
+wifi-efl-ug (0.4.57-35) unstable; urgency=low
+
+ * Modify button text in setup_wizard
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-35
+
+ -- Kim sun il <sunil85.kim@samsung.com> Wed, 05 Dec 2012 16:31:20 +0900
+
+wifi-efl-ug (0.4.57-34) unstable; urgency=low
+
+ * Modify using conformant_window as new policy
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-34
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 30 Nov 2012 16:02:28 +0900
+
+wifi-efl-ug (0.4.57-33) unstable; urgency=low
+
+ * Fix conformant problem temporarily
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-33
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 30 Nov 2012 11:59:39 +0900
+
+wifi-efl-ug (0.4.57-32) unstable; urgency=low
+
+ * Create the 'Network list' by group shapes
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-32
+
+ -- Kim sun il <sunil85.kim@samsung.com> Thu, 29 Nov 2012 15:25:27 +0900
+
+wifi-efl-ug (0.4.57-31) unstable; urgency=low
+
+ * Remove the FAST eap method display. (Fix for P121128-0824)
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-31
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 29 Nov 2012 15:08:10 +0530
+
+wifi-efl-ug (0.4.57-30) unstable; urgency=low
+
+ * Implement custom editfield for password and hidden AP popup
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-30
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 28 Nov 2012 19:40:56 +0900
+
+wifi-efl-ug (0.4.57-29) unstable; urgency=low
+
+ * Change content_expand popup style to min_menustyle
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-29
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 23 Nov 2012 18:11:19 +0900
+
+wifi-efl-ug (0.4.57-28) unstable; urgency=low
+
+ * Find hidden network button is wrong highlighted.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-28
+
+ -- Kim sun il <sunil85.kim@samsung.com> Fri, 23 Nov 2012 14:08:14 +0900
+
+wifi-efl-ug (0.4.57-27) unstable; urgency=low
+
+ * Fix entry_eraser signal in password and hidden AP popup
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-27
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 22 Nov 2012 19:54:29 +0900
+
+wifi-efl-ug (0.4.57-26) unstable; urgency=low
+
+ * Update Multi language support #2
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-26
+
+ -- Kim sun il <sunil85.kim@samsung.com> Tue, 20 Nov 2012 13:03:29 +0900
+
+wifi-efl-ug (0.4.57-25) unstable; urgency=low
+
+ * Fix UG destroy_me called two times when destroying UG
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-25
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 19 Nov 2012 16:50:48 +0900
+
+wifi-efl-ug (0.4.57-24) unstable; urgency=low
+
+ * Update Multi language support
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-24
+
+ -- Kim sun il <sunil85.kim@samsung.com> Fri, 16 Nov 2012 17:25:50 +0900
+
+wifi-efl-ug (0.4.57-23) unstable; urgency=low
+
+ * Change UI property(Separator, Ap status color) for winset 3.0
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-23
+
+ -- Kim sun il <sunil85.kim@samsung.com> Fri, 16 Nov 2012 14:29:44 +0900
+
+wifi-efl-ug (0.4.57-22) unstable; urgency=low
+
+ * Modify creating entry in genlist to adjust new winset
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-22
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 15 Nov 2012 19:34:22 +0900
+
+wifi-efl-ug (0.4.57-21) unstable; urgency=low
+
+ * Popup layout problem was solved by using edc
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-21
+
+ -- Kim sun il <sunil85.kim@samsung.com> Thu, 15 Nov 2012 14:40:55 +0900
+
+wifi-efl-ug (0.4.57-20) unstable; urgency=low
+
+ * Fix dead code, return value and references
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-20
+
+ -- Danny Jeongseok Seo <s.seo@samsung.com> Tue, 13 Nov 2012 21:11:56 +0900
+
+wifi-efl-ug (0.4.57-19) unstable; urgency=low
+
+ * Change parent of Forget popup
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-19
+
+ -- Kim sun il <sunil85.kim@samsung.com> Tue, 13 Nov 2012 14:50:06 +0900
+
+wifi-efl-ug (0.4.57-18) unstable; urgency=low
+
+ * Doesn't save bug fix in detail view
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-18
+
+ -- Kim sun il <sunil85.kim@samsung.com> Thu, 08 Nov 2012 17:02:17 +0900
+
+wifi-efl-ug (0.4.57-16) unstable; urgency=low
+
+ * Change wifi-qs and eap-popup style to content_expand again
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-16
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 05 Nov 2012 15:45:58 +0900
+
+wifi-efl-ug (0.4.57-15) unstable; urgency=low
+
+ * Remove conformant object in Wi-Fi UG
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-15
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Sat, 03 Nov 2012 18:02:51 +0900
+
+wifi-efl-ug (0.4.57-14) unstable; urgency=low
+
+ * Rollback wifi-qs and eap-popup style to previous one(menustyle)
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-14
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Sat, 03 Nov 2012 16:37:04 +0900
+
+wifi-efl-ug (0.4.57-13) unstable; urgency=low
+
+ * Change layout for new winset version
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-13
+
+ -- Kim sun il <sunil85.kim@samsung.com> Fri, 02 Nov 2012 15:50:38 +0900
+
+wifi-efl-ug (0.4.57-12) unstable; urgency=low
+
+ * Change button layout for setup wizard UG
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-12
+
+ -- Kim sun il <sunil85.kim@samsung.com> Thu, 01 Nov 2012 19:21:25 +0900
+
+wifi-efl-ug (0.4.57-11) unstable; urgency=low
+
+ * Change UG directory to /usr/ug
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-11
+
+ -- Kim sun il <sunil85.kim@samsung.com> Wed, 31 Oct 2012 18:12:08 +0900
+
+wifi-efl-ug (0.4.57-10) unstable; urgency=low
+
+ * Change UG directory to /opt/usr/ug
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-10
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 30 Oct 2012 13:26:51 +0900
+
+wifi-efl-ug (0.4.57-9) unstable; urgency=low
+
+ * Check the vconf motion key when shake motion.
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-9
+
+ -- Kim sun il <sunil85.kim@samsung.com> Thu, 25 Oct 2012 19:09:13 +0900
+
+wifi-efl-ug (0.4.57-8) unstable; urgency=low
+
+ * Add image file for wifi found notification
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-8
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 25 Oct 2012 11:26:55 +0900
+
+wifi-efl-ug (0.4.57-7) unstable; urgency=low
+
+ * Set max entry length on password popup
+ * Git: magnolia/apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-7
+
+ -- Kim sun il <sunil85.kim@samsung.com> Wed, 24 Oct 2012 15:52:19 +0900
+
+wifi-efl-ug (0.4.57-6) unstable; urgency=low
+
+ * Fix memory leak
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-6
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 23 Oct 2012 10:31:21 +0900
+
+wifi-efl-ug (0.4.57-5) unstable; urgency=low
+
+ * Implement checking invalid IP address and port number
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-5
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 22 Oct 2012 19:05:39 +0900
+
+wifi-efl-ug (0.4.57-4) unstable; urgency=low
+
+ * Install license
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-4
+
+ -- Danny Jeongseok Seo <s.seo@samsung.com> Fri, 12 Oct 2012 13:11:14 +0900
+
+wifi-efl-ug (0.4.57-3) unstable; urgency=low
+
+ * Reset function implemantation in setting view.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug-0.4.57-3
+
+ -- Kim sun il <sunil85.kim@samsung.com> Thu, 11 Oct 2012 17:35:06 +0900
+
+wifi-efl-ug (0.4.57-2) unstable; urgency=low
+
+ * Added landscape mode support for QS popup.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-2
+
+ -- Praveen C <pravin.c@samsung.com> Mon, 08 Oct 2012 17:20:13 +0530
+
+wifi-efl-ug (0.4.57-1) unstable; urgency=low
+
+ * Added input text filter for entry items. (Fix PLM # P120927-6332)
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.57-1
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 05 Oct 2012 18:28:22 +0530
+
+wifi-efl-ug (0.4.56-13) unstable; urgency=low
+
+ * ui update(password popup keyboard layout, Syspopup background transparent)
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.56-13
+
+ -- Kim sun il <sunil85.kim@samsung.com> Wed, 26 Sep 2012 18:33:36 +0900
+
+wifi-efl-ug (0.4.56-12) unstable; urgency=low
+
+ * Replaced the #define strings with STMS strings. #3
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.56-12
+
+ -- Kim sun il <sunil85.kim@samsung.com> Wed, 26 Sep 2012 17:04:53 +0900
+
+wifi-efl-ug (0.4.56-11) unstable; urgency=low
+
+ * Apply SMACK manifest
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.56-11
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 20 Sep 2012 13:46:25 +0900
+
+wifi-efl-ug (0.4.56-10) unstable; urgency=low
+
+ * Add new features to shake motion.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.56-10
+
+ -- Kim sun il <sunil85.kim@samsung.com> Thu, 06 Sep 2012 13:39:57 +0900
+
+wifi-efl-ug (0.4.56-9) unstable; urgency=low
+
+ * "PO" files update.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.56-9
+
+ -- Kim sun il <sunil85.kim@samsung.com> Thu, 30 Aug 2012 16:19:52 +0900
+
+wifi-efl-ug (0.4.56-8) unstable; urgency=low
+
+ * Enable scan button when Wi-Fi power off.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.56-8
+
+ -- Kim sun il <sunil85.kim@samsung.com> Fri, 24 Aug 2012 16:41:16 +0900
+
+wifi-efl-ug (0.4.56-7) unstable; urgency=low
+
+ * Add separator to WPS_Connection view.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.56-7
+
+ -- Kim sun il <sunil85.kim@samsung.com> Fri, 24 Aug 2012 08:45:13 +0900
+
+wifi-efl-ug (0.4.56-6) unstable; urgency=low
+
+ * Replaced the #define strings with STMS strings. #2
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.56-6
+
+ -- Kim sun il <sunil85.kim@samsung.com> Mon, 20 Aug 2012 16:30:57 +0900
+
+wifi-efl-ug (0.4.56-5) unstable; urgency=low
+
+ * Wi-Fi Detail button relocation.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.56-5
+
+ -- Kim sun il <sunil85.kim@samsung.com> Mon, 20 Aug 2012 13:15:35 +0900
+
+wifi-efl-ug (0.4.56-4) unstable; urgency=low
+
+ * Popup_view in Device picker problem has solved.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.56-4
+
+ -- Kim sun il <sunil85.kim@samsung.com> Thu, 16 Aug 2012 18:30:31 +0900
+
+wifi-efl-ug (0.4.56-3) unstable; urgency=low
+
+ * Change sg-wifi-efl package license to 'Flora'
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.56-3
+
+ -- Kim sun il <sunil85.kim@samsung.com> Fri, 10 Aug 2012 14:21:29 +0900
+
+wifi-efl-ug (0.4.56-2) unstable; urgency=low
+
+ * Sveral views add to separators and modify 'seperator' to 'separator'
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.56-2
+
+ -- Kim sun il <sunil85.kim@samsung.com> Thu, 09 Aug 2012 10:34:28 +0900
+
+wifi-efl-ug (0.4.56-1) unstable; urgency=low
+
+ * Added the specific scan(to find hidden aps) back end logic and interface.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.56-1
+
+ -- Praveen C <pravin.c@samsung.com> Wed, 08 Aug 2012 18:06:09 +0900
+
+wifi-efl-ug (0.4.55-13) unstable; urgency=low
+
+ * Wi-Fi UX design has changed not to display "unable to connect" pop-up
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.55-13
+
+ -- Danny Jeongseok Seo <s.seo@samsung.com> Wed, 08 Aug 2012 14:19:33 +0900
+
+wifi-efl-ug (0.4.55-12) unstable; urgency=low
+
+ * Added margin at detail view and eap view and wifi_viewer_listi
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.55-12
+
+ -- Kim sun il <sunil85.kim@samsung.com> Tue, 07 Aug 2012 19:10:40 +0900
+
+wifi-efl-ug (0.4.55-11) unstable; urgency=low
+
+ * Make the new function for motion handling.(refactoring:motion handler #1)
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.55-11
+
+ -- Kim sun il <sunil85.kim@samsung.com> Mon, 06 Aug 2012 21:44:04 +0900
+
+wifi-efl-ug (0.4.55-10) unstable; urgency=low
+
+ * Change the "Scan","Previous","Next","Skip" in setup wizard interface.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.55-10
+
+ -- Kim sun il <sunil85.kim@samsung.com> Fri, 03 Aug 2012 15:46:40 +0900
+
+wifi-efl-ug (0.4.55-9) unstable; urgency=low
+
+ * Implement desktop manifest for wifi-qs.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.55-9
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 31 Jul 2012 20:31:44 +0900
+
+wifi-efl-ug (0.4.55-8) unstable; urgency=low
+
+ * Implement Motion action in Wi-Fi Setting.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.55-8
+
+ -- Kim sun il <sunil85.kim@samsung.com> Mon, 30 Jul 2012 15:10:54 +0900
+
+wifi-efl-ug (0.4.55-7) unstable; urgency=low
+
+ * Disable the Scan button during deactivating / power-off states.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.55-7
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 24 Jul 2012 12:13:51 +0900
+
+wifi-efl-ug (0.4.55-6) unstable; urgency=low
+
+ * Removed the flag mechanism to control the state machine and simpler and efficient way to stop the scan updates is added now.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.55-6
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 20 Jul 2012 11:14:44 +0900
+
+wifi-efl-ug (0.4.55-5) unstable; urgency=low
+
+ * Optimised and refactored the AP list refresh handler.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.55-5
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 20 Jul 2012 10:54:15 +0900
+
+wifi-efl-ug (0.4.55-4) unstable; urgency=low
+
+ * Added 2 new connecting failed cases - CONNECTING_CONNECT_FAIL and CONNECTING_INVALID_KEY.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.55-4
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 20 Jul 2012 10:41:55 +0900
+
+wifi-efl-ug (0.4.55-3) unstable; urgency=low
+
+ * Change define strings to STMS strings, po files permission change.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.55-3
+
+ -- Kim sun il <sunil85.kim@samsung.com> Fri, 20 Jul 2012 09:52:26 +0900
+
+wifi-efl-ug (0.4.55-2) unstable; urgency=low
+
+ * Implement UG managed API
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.55-2
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 18 Jul 2012 19:25:33 +0900
+
+wifi-efl-ug (0.4.55-1) unstable; urgency=low
+
+ * New Wi-Fi NAT BAR updated (updated)
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.55-1
+
+ -- Danny Jeongseok Seo <s.seo@samsung.com> Wed, 18 Jul 2012 14:52:05 +0900
+
+wifi-efl-ug (0.4.54-15) unstable; urgency=low
+
+ * Revised the connecting fail scenarios and identified the error cases where "Unable to connect" message need to be shown in QS popup.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-15
+
+ -- Praveen C <pravin.c@samsung.com> Sat, 14 Jul 2012 11:52:30 +0900
+
+wifi-efl-ug (0.4.54-14) unstable; urgency=low
+
+ * Fix the CCR #25541.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-14
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 13 Jul 2012 21:47:49 +0900
+
+wifi-efl-ug (0.4.54-13) unstable; urgency=low
+
+ * Fix memory leak.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-13
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 13 Jul 2012 20:41:43 +0900
+
+wifi-efl-ug (0.4.54-12) unstable; urgency=low
+
+ * Added "Deactivating Wi-Fi" and progress icon.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-12
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 13 Jul 2012 12:52:26 +0900
+
+wifi-efl-ug (0.4.54-11) unstable; urgency=low
+
+ * Revised the connecting fail scenarios and identified the error cases where "Unable to connect" message need to be shown.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-11
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 12 Jul 2012 22:50:23 +0900
+
+wifi-efl-ug (0.4.54-10) unstable; urgency=low
+
+ * Added the codes to delete the mobile hot spot on, yes/no prompt popup-up when button call back is called.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-10
+
+ -- Praveen C <pravin.c@samsung.com> Wed, 11 Jul 2012 23:46:47 +0900
+
+wifi-efl-ug (0.4.54-9) unstable; urgency=low
+
+ * Fix wifi-qs crash when it's called two times continually.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-9
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 10 Jul 2012 20:32:32 +0900
+
+wifi-efl-ug (0.4.54-8) unstable; urgency=low
+
+ * Remove the password popup when WPS enroll fail message is received.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-8
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 10 Jul 2012 17:43:19 +0900
+
+wifi-efl-ug (0.4.54-7) unstable; urgency=low
+
+ * Added codes to remove the password pop-up and EAP connect view when powered off from Quickpanel.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-7
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 10 Jul 2012 14:45:27 +0900
+
+wifi-efl-ug (0.4.54-6) unstable; urgency=low
+
+ * Fixed the pwdlock app not exiting issue.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-6
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 10 Jul 2012 13:12:43 +0900
+
+wifi-efl-ug (0.4.54-5) unstable; urgency=low
+
+ * Rollback for SetupWizard problem
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-5
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 10 Jul 2012 00:02:52 +0900
+
+wifi-efl-ug (0.4.54-4) unstable; urgency=low
+
+ * Added return after elm_exit inside main.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-4
+
+ -- Praveen C <pravin.c@samsung.com> Mon, 09 Jul 2012 11:12:05 +0900
+
+wifi-efl-ug (0.4.54-3) unstable; urgency=low
+
+ * Enable the list update flag to TRUE during Wi-Fi activating.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-3
+
+ -- Praveen C <pravin.c@samsung.com> Mon, 09 Jul 2012 10:40:30 +0900
+
+wifi-efl-ug (0.4.54-2) unstable; urgency=low
+
+ * Check NULL before print log
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-2
+
+ -- Danny Jeongseok Seo <s.seo@samsung.com> Sat, 07 Jul 2012 19:03:17 +0900
+
+wifi-efl-ug (0.4.54-1) unstable; urgency=low
+
+ * Implement Find hidden AP feature.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.54-1
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 06 Jul 2012 22:10:23 +0900
+
+wifi-efl-ug (0.4.53-9) unstable; urgency=low
+
+ * Fix not showing wifi-qs when called by quickpanel
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.53-9
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 06 Jul 2012 20:32:42 +0900
+
+wifi-efl-ug (0.4.53-8) unstable; urgency=low
+
+ * Change number of QS-Popup display item list 5 to 8.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.53-8
+
+ -- Kim sun il <sunil85.kim@samsung.com> Fri, 06 Jul 2012 13:16:14 +0900
+
+wifi-efl-ug (0.4.53-7) unstable; urgency=low
+
+ * Fix the scan result ui update issue after the password popup is cancelled.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.53-7
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 05 Jul 2012 22:04:56 +0900
+
+wifi-efl-ug (0.4.53-6) unstable; urgency=low
+
+ * Keypad is not displayed when the password popup is shown.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.53-6
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 05 Jul 2012 21:43:37 +0900
+
+wifi-efl-ug (0.4.53-5) unstable; urgency=low
+
+ * Display password popup title.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.53-5
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 05 Jul 2012 21:35:13 +0900
+
+wifi-efl-ug (0.4.53-4) unstable; urgency=low
+
+ * Display "Unable to connect __Device name__" popup when connecting fails.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.53-4
+
+ -- Praveen C <pravin.c@samsung.com> Wed, 04 Jul 2012 23:39:19 +0900
+
+wifi-efl-ug (0.4.53-3) unstable; urgency=low
+
+ * Removed the AP name display item from the EAP connect list.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.53-3
+
+ -- Praveen C <pravin.c@samsung.com> Wed, 04 Jul 2012 20:04:25 +0900
+
+wifi-efl-ug (0.4.53-2) unstable; urgency=low
+
+ * Added a sperator to the end of the eap connect list to display the proxy item completely.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.53-2
+
+ -- Praveen C <pravin.c@samsung.com> Wed, 04 Jul 2012 19:05:47 +0900
+
+wifi-efl-ug (0.4.53-1) unstable; urgency=low
+
+ * Added WPS support for QS popup and refactored the popup code.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.53-1
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 03 Jul 2012 23:03:52 +0900
+
+wifi-efl-ug (0.4.52-12) unstable; urgency=low
+
+ * Fix for AP list is not shown at the first launch in Wi-Fi QS.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.52-12
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 03 Jul 2012 13:46:43 +0900
+
+wifi-efl-ug (0.4.52-11) unstable; urgency=low
+
+ * Fix the default proxy address issue.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.52-11
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 29 Jun 2012 22:35:02 +0900
+
+wifi-efl-ug (0.4.52-10) unstable; urgency=low
+
+ * Fix for "Static IP" toggle item title not displayed problem.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.52-10
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 29 Jun 2012 17:47:54 +0900
+
+wifi-efl-ug (0.4.52-9) unstable; urgency=low
+
+ * Fix the popup scaling issue.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.52-9
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 28 Jun 2012 18:19:38 +0900
+
+wifi-efl-ug (0.4.52-8) unstable; urgency=low
+
+ * Changed the string from "WiFi Activating..." to "Activating WiFi...".
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.52-8
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 28 Jun 2012 12:21:09 +0900
+
+wifi-efl-ug (0.4.52-7) unstable; urgency=low
+
+ * Implemented the launch of EAP connect naviframe view from UG and EAP connect popup from device picker popup.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.52-7
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 28 Jun 2012 10:42:33 +0900
+
+wifi-efl-ug (0.4.52-6) unstable; urgency=low
+
+ * Changed the font color of the text "Connected".
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.52-6
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 28 Jun 2012 10:38:22 +0900
+
+wifi-efl-ug (0.4.52-5) unstable; urgency=low
+
+ * Added title and remaining timer string display to PBC popup.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.52-5
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 26 Jun 2012 16:39:28 +0900
+
+wifi-efl-ug (0.4.52-4) unstable; urgency=low
+
+ * Remove UG option for bundle_back_button_show_force_when_connected
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.52-4
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 25 Jun 2012 20:10:16 +0900
+
+wifi-efl-ug (0.4.52-3) unstable; urgency=low
+
+ * Made some minor improvements to EAP connect popup and datamodel codes.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.52-3
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 21 Jun 2012 19:30:24 +0900
+
+wifi-efl-ug (0.4.52-2) unstable; urgency=low
+
+ * Modify launch time for wifi-qs window
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.52-2
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 21 Jun 2012 19:56:15 +0900
+
+wifi-efl-ug (0.4.52-1) unstable; urgency=low
+
+ * Added EAP details display in the detail view when the device is connected or favourite.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.52-1
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 15 Jun 2012 17:43:10 +0900
+
+wifi-efl-ug (0.4.51-4) unstable; urgency=low
+
+ * Added certificate items to EAP connecting popup.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.51-4
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 12 Jun 2012 15:07:03 +0900
+
+wifi-efl-ug (0.4.51-3) unstable; urgency=low
+
+ * Added provisioning support and the applied the EAP rules.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.51-3
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 12 Jun 2012 12:24:58 +0900
+
+wifi-efl-ug (0.4.51-2) unstable; urgency=low
+
+ * Added checkbox to EAP method and Phase 2 authentication.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.51-2
+
+ -- Praveen C <pravin.c@samsung.com> Mon, 11 Jun 2012 21:05:08 +0900
+
+wifi-efl-ug (0.4.51-1) unstable; urgency=low
+
+ * Added eap connect support from device picker popup AP list.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.51-1
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 08 Jun 2012 10:37:17 +0900
+
+wifi-efl-ug (0.4.50-3) unstable; urgency=low
+
+ * Fix obs build problem for po filename
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.50-3
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 08 Jun 2012 10:04:29 +0900
+
+wifi-efl-ug (0.4.50-2) unstable; urgency=low
+
+ * Implement to use same po(strings) for UG and QS
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.50-2
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 07 Jun 2012 14:48:31 +0900
+
+wifi-efl-ug (0.4.50-1) unstable; urgency=low
+
+ * Fix the Wi-Fi qs launch issue when Wi-Fi is off
+ * Change string Gateway to Gateway address
+ * Tag: wifi-efl-ug_0.4.50-1
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 05 Jun 2012 16:07:35 +0900
+
+wifi-efl-ug (0.4.49) unstable; urgency=low
+
+ * Update strings according to UX document
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.49
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 04 Jun 2012 21:42:44 +0900
+
+wifi-efl-ug (0.4.48) unstable; urgency=low
+
+ * Fix the entry box content dissapearing issue.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.48
+
+ -- Praveen C <pravin.c@samsung.com> Wed, 30 May 2012 19:05:26 +0900
+
+wifi-efl-ug (0.4.47) unstable; urgency=low
+
+ * Update strings according to UX document
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.47
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 29 May 2012 19:42:58 +0900
+
+wifi-efl-ug (0.4.46) unstable; urgency=low
+
+ * Fixed the crash issue which occurs when switching off Wi-Fi while the WPA/WPSK enabled AP is trying to connect with a wrong password.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.46
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 24 May 2012 19:13:46 +0900
+
+wifi-efl-ug (0.4.45) unstable; urgency=low
+
+ * Fixed the crash issue which occurs while changing the EAP method option from SIM to PEAP during EAP connect.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.45
+
+ -- Praveen C <pravin.c@samsung.com> Wed, 23 May 2012 17:00:10 +0900
+
+wifi-efl-ug (0.4.44) unstable; urgency=low
+
+ * Corrected the EAP connect view entry items input layout panel.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.44
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 23 May 2012 14:24:38 +0900
+
+wifi-efl-ug (0.4.43) unstable; urgency=low
+
+ * Corrected popup title display and moved the common functions to common utils file.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.43
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 22 May 2012 16:49:53 +0900
+
+wifi-efl-ug (0.4.42) unstable; urgency=low
+
+ * Added the progress indi icon display while manual scan is in progress.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.42
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 22 May 2012 11:50:53 +0900
+
+wifi-efl-ug (0.4.41) unstable; urgency=low
+
+ * Added the progress indi while an AP is trying to connect.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.41
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 22 May 2012 10:45:57 +0900
+
+wifi-efl-ug (0.4.40) unstable; urgency=low
+
+ * Fixed the WiFi on/off display issue.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.40
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 22 May 2012 09:44:09 +0900
+
+wifi-efl-ug (0.4.39) unstable; urgency=low
+
+ * Applied EAP connect change.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.39
+
+ -- Praveen C <pravin.c@samsung.com> Mon, 21 May 2012 11:23:05 +0900
+
+wifi-efl-ug (0.4.38) unstable; urgency=low
+
+ * Update strings according to UX document
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.38
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Sat, 19 May 2012 16:45:54 +0900
+
+wifi-efl-ug (0.4.37) unstable; urgency=low
+
+ * Applied the AP detail view Ux change.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.37
+
+ -- Praveen C <pravin.c@samsung.com> Fri, 18 May 2012 19:16:49 +0900
+
+wifi-efl-ug (0.4.36) unstable; urgency=low
+
+ * Applied the QS popup device picker new Ux changes.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.36
+
+ -- Praveen C <pravin.c@samsung.com> Thu, 17 May 2012 19:27:57 +0900
+
+wifi-efl-ug (0.4.35) unstable; urgency=low
+
+ * Update strings according to UX document
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.35
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 17 May 2012 17:54:31 +0900
+
+wifi-efl-ug (0.4.34) unstable; urgency=low
+
+ * Implement multi language for several strings
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.34
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 17 May 2012 16:10:03 +0900
+
+wifi-efl-ug (0.4.33) unstable; urgency=low
+
+ * Modify a location of desktop file
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.33
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 15 May 2012 15:45:52 +0900
+
+wifi-efl-ug (0.4.32) unstable; urgency=low
+
+ * Added the policy for QS popup entry layout.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.32
+
+ -- Praveen C <pravin.c@samsung.com> Tue, 08 May 2012 11:18:59 +0530
+
+wifi-efl-ug (0.4.31) unstable; urgency=low
+
+ * Stop updating an ap list while trying to connect
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.31
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 07 May 2012 14:25:19 +0900
+
+wifi-efl-ug (0.4.30) unstable; urgency=low
+
+ * Implement a Wi-Fi UG for Setup Wizard
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.30
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 03 May 2012 17:33:12 +0900
+
+wifi-efl-ug (0.4.29) unstable; urgency=low
+
+ * Fix a crach - EAP connection
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.29
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 03 May 2012 16:56:54 +0900
+
+wifi-efl-ug (0.4.28) unstable; urgency=low
+
+ * Fixed the menu tree Jira issues.
+ * S1-2771 : MAC address display in detailed view.
+ * S1-2773 : Channel Number display in detailed view.
+ * S1-2774 : Proxy port edit menu item in detail view.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.28
+
+ -- Praveen C <pravin.c@samsung.com> Mon, 30 Apr 2012 12:25:40 +0530
+
+wifi-efl-ug (0.4.27) unstable; urgency=low
+
+ * Set background scan mode when pause/resume event is invoked
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.27
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 19 Apr 2012 16:59:02 +0900
+
+wifi-efl-ug (0.4.26) unstable; urgency=low
+
+ * Fix TIZEN_SDK bugs
+ * N_SE-696 : Set only display option to items in dhcp view
+ * N_SE-697 : Modify the button position in staticip view
+ * N_SE-701 : Apply Multi language for forget alert popup
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.26
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 19 Apr 2012 14:16:38 +0900
+
+wifi-efl-ug (0.4.25) unstable; urgency=low
+
+ * Fix a wifi-qs crash - disable to update a view while state is connecting
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.25
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 12 Apr 2012 17:27:19 +0900
+
+wifi-efl-ug (0.4.24) unstable; urgency=low
+
+ * Fix a crash - adding NULL check routine in content_get
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.24
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 09 Apr 2012 11:30:33 +0900
+
+wifi-efl-ug (0.4.23) unstable; urgency=low
+
+ * Fix a button position - EAP view
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.23
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 06 Apr 2012 10:46:20 +0900
+
+wifi-efl-ug (0.4.22) unstable; urgency=low
+
+ * Implement showing alert popup when Wi-Fi is restricted by MDM
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.22
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 04 Apr 2012 20:50:22 +0900
+
+wifi-efl-ug (0.4.21) unstable; urgency=low
+
+ * Fix wifi-qs bug - password check error
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.21
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 28 Mar 2012 11:06:39 +0900
+
+wifi-efl-ug (0.4.20) unstable; urgency=low
+
+ * Fix the header status update
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.20
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 27 Mar 2012 16:27:33 +0900
+
+wifi-efl-ug (0.4.19) unstable; urgency=low
+
+ * Update UI - hidden network view
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.19
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 26 Mar 2012 19:54:53 +0900
+
+wifi-efl-ug (0.4.18) unstable; urgency=low
+
+ * Fix a bug - redrawing separator
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.18
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 23 Mar 2012 17:05:23 +0900
+
+wifi-efl-ug (0.4.17) unstable; urgency=low
+
+ * Fix a crash - come SCAN_IND when a status is off
+ * Fix forget buttion position
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.17
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 22 Mar 2012 17:15:41 +0900
+
+wifi-efl-ug (0.4.16) unstable; urgency=low
+
+ * Modify wifi-qs on/off behavior when called by quickpanel
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.16
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 19 Mar 2012 16:03:11 +0900
+
+wifi-efl-ug (0.4.15) unstable; urgency=low
+
+ * Revise debian/rule and spec files
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.15
+
+ -- Danny Jeongseok Seo <s.seo@samsung.com> Sat, 17 Mar 2012 15:19:25 +0900
+
+wifi-efl-ug (0.4.14) unstable; urgency=low
+
+ * Update alert-3g-syspopup to net-popup
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.14
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 15 Mar 2012 18:26:16 +0900
+
+wifi-efl-ug (0.4.13) unstable; urgency=low
+
+ * Change wifi-qs package name to net.wifi-qs
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.13
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 15 Mar 2012 15:05:41 +0900
+
+wifi-efl-ug (0.4.12) unstable; urgency=low
+
+ * Migrate EFL 1.0
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.12
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 13 Mar 2012 19:32:14 +0900
+
+wifi-efl-ug (0.4.11) unstable; urgency=low
+
+ * Apply deprecating the editfield elementary
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.11
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 02 Mar 2012 14:49:15 +0900
+
+wifi-efl-ug (0.4.10) unstable; urgency=low
+
+ * Fix the crash - deregister ime callback
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.10
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 21 Feb 2012 14:32:03 +0900
+
+wifi-efl-ug (0.4.9) unstable; urgency=low
+
+ * Apply the elementary API change as EFL migration
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.9
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 14 Feb 2012 19:19:42 +0900
+
+wifi-efl-ug (0.4.8) unstable; urgency=low
+
+ * Show a popup when wifi is restricted by a security policy
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.8
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 07 Feb 2012 17:08:12 +0900
+
+wifi-efl-ug (0.4.7) unstable; urgency=low
+
+ * Fix a bug for updating list enable/disable when an item is clicked during activating
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.7
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 02 Feb 2012 20:05:07 +0900
+
+wifi-efl-ug (0.4.6) unstable; urgency=low
+
+ * Modify the Wi-Fi QS
+ * 1. Change to enable showing AP list when the wifi state is connecting
+ * 2. Show the alert popup when AP is connected
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.6
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 02 Feb 2012 13:33:14 +0900
+
+wifi-efl-ug (0.4.5) unstable; urgency=low
+
+ * Fix genlist update bug in detail view
+ * Fix the crash - doesn't initialize the variable
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.5
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 26 Jan 2012 21:24:55 +0900
+
+wifi-efl-ug (0.4.4) unstable; urgency=low
+
+ * Fix the status update bug - after fail of WPS connection
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.4
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 11 Jan 2012 19:55:01 +0900
+
+wifi-efl-ug (0.4.3) unstable; urgency=low
+
+ * Fix the problem - not updating proxy value
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.3
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 09 Jan 2012 16:39:16 +0900
+
+wifi-efl-ug (0.4.2) unstable; urgency=low
+
+ * Implement UI effect when it's connected
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.2
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 09 Jan 2012 11:17:17 +0900
+
+wifi-efl-ug (0.4.1) unstable; urgency=low
+
+ * Refactory code(Wi-Fi UG/QS)
+ * - supporting data/view model
+ * - implement WPS and EAP
+ * - implement multi language
+ * - fix memory leak
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.4.1
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 04 Jan 2012 15:47:05 +0900
+
+wifi-efl-ug (0.3.19) unstable; urgency=low
+
+ * Implement mulit language
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.19
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 02 Jan 2012 21:52:18 +0900
+
+wifi-efl-ug (0.3.18) unstable; urgency=low
+
+ * Re-build package
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.18
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 26 Dec 2011 14:49:22 +0900
+
+wifi-efl-ug (0.3.17) unstable; urgency=low
+
+ * Release wifi-efl-ug_0.3.17
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.17
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 26 Dec 2011 10:52:07 +0900
+
+wifi-efl-ug (0.3.16) unstable; urgency=low
+
+ * Fix to handle Wi-Fi unsupport error
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.16
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 23 Dec 2011 20:07:44 +0900
+
+wifi-efl-ug (0.3.15) unstable; urgency=low
+
+ * Remove unnecessay ifdef codes
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.15
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 19 Dec 2011 14:57:51 +0900
+
+wifi-efl-ug (0.3.14) unstable; urgency=low
+
+ * Fix handling for moblie-hotspot status error
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.14
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 19 Dec 2011 14:20:43 +0900
+
+wifi-efl-ug (0.3.13) unstable; urgency=low
+
+ * Implement showing a popup when activating Wi-Fi
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.13
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 14 Dec 2011 15:54:52 +0900
+
+wifi-efl-ug (0.3.12) unstable; urgency=low
+
+ * Release wifi-efl-ug_0.3.12
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.12
+
+ -- Danny Jeongseok Seo <s.seo@samsung.com> Tue, 13 Dec 2011 22:19:51 +0900
+
+wifi-efl-ug (0.3.11) unstable; urgency=low
+
+ * Release wifi-efl-ug_0.3.11
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.11
+
+ -- Danny Jeongseok Seo <s.seo@samsung.com> Tue, 13 Dec 2011 22:10:15 +0900
+
+wifi-efl-ug (0.3.10) unstable; urgency=low
+
+ * Release wifi-efl-ug_0.3.10
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.10
+
+ -- Danny Jeongseok Seo <s.seo@samsung.com> Tue, 13 Dec 2011 21:50:13 +0900
+
+wifi-efl-ug (0.3.9) unstable; urgency=low
+
+ * Release wifi-efl-ug_0.3.9
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.9
+
+ -- Jeongseok Seo <s.seo@samsung.com> Tue, 13 Dec 2011 21:44:52 +0900
+
+wifi-efl-ug (0.3.8) unstable; urgency=low
+
+ * Fix the return value for power off
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.8
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 09 Dec 2011 18:14:31 +0900
+
+wifi-efl-ug (0.3.7) unstable; urgency=low
+
+ * Implement to be able to turn on Wi-Fi When mobile hotspot is on
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.7
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 08 Dec 2011 15:24:57 +0900
+
+wifi-efl-ug (0.3.6) unstable; urgency=low
+
+ * Release wifi-efl-ug_0.3.6
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.6
+
+ -- Jeongseok Seo <s.seo@samsung.com> Mon, 05 Dec 2011 23:30:36 +0900
+
+wifi-efl-ug (0.3.5) unstable; urgency=low
+
+ * Fix crash of calling evas_object_del() with NULL parameter
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.5
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 05 Dec 2011 22:04:53 +0900
+
+wifi-efl-ug (0.3.4) unstable; urgency=low
+
+ * Release wifi-efl-ug_0.3.4
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.4
+
+ -- Jeongseok Seo <s.seo@samsung.com> Sat, 03 Dec 2011 14:16:19 +0900
+
+wifi-efl-ug (0.3.3) unstable; urgency=low
+
+ * Implement showing the noti if Wi-Fi is not supported
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.3
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 02 Dec 2011 20:25:15 +0900
+
+wifi-efl-ug (0.3.2) unstable; urgency=low
+
+ * Update the boilerplate
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.2
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 02 Dec 2011 13:55:22 +0900
+
+wifi-efl-ug (0.3.1) unstable; urgency=low
+
+ * Migrate from DNET to connman
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.3.1
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 29 Nov 2011 13:47:39 +0900
+
+wifi-efl-ug (0.2.41) unstable; urgency=low
+
+ * Fix unnecessary include which has been eliminated in libnetwork
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.41
+
+ -- Jeongseok Seo <s.seo@samsung.com> Mon, 28 Nov 2011 22:04:31 +0900
+
+wifi-efl-ug (0.2.40) unstable; urgency=low
+
+ * Modify the button position in password view
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.40
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 23 Nov 2011 19:47:16 +0900
+
+wifi-efl-ug (0.2.39) unstable; urgency=low
+
+ * Apply new genlist API policy of elm_genlist_item_data_set
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.39
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 23 Nov 2011 19:31:39 +0900
+
+wifi-efl-ug (0.2.38) unstable; urgency=low
+
+ * Wi-Fi UG/QS error popups are adjusted by new policy
+ * ERR_UNKNOWN_METHOD
+ * ERR_CONNECTION_EXIST
+ * ERR_CONNECTION_IN_PROGRESS
+ * ERR_CONNECTION_TIMEOUT
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.38
+
+ -- Jeongseok Seo <s.seo@samsung.com> Thu, 17 Nov 2011 18:41:44 +0900
+
+wifi-efl-ug (0.2.37) unstable; urgency=low
+
+ * Add a dependency for syspopup-caller-dev package
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.37
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 23 Nov 2011 14:48:43 +0900
+
+wifi-efl-ug (0.2.36) unstable; urgency=low
+
+ * Some Errors of libnetwork APIs have been changed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.36
+
+ -- Jeongseok Seo <s.seo@samsung.com> Thu, 17 Nov 2011 13:34:06 +0900
+
+wifi-efl-ug (0.2.35) unstable; urgency=low
+
+ * Applied the ticker noti for wifi connection error
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.35
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 16 Nov 2011 14:50:29 +0900
+
+wifi-efl-ug (0.2.34) unstable; urgency=low
+
+ * Re-factors connected AP information
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.34
+
+ -- Jeongseok Seo <s.seo@samsung.com> Mon, 14 Nov 2011 11:23:10 +0900
+
+wifi-efl-ug (0.2.33) unstable; urgency=low
+
+ * Applied the new controlbar policy for scan button
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.33
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 14 Nov 2011 17:00:38 +0900
+
+wifi-efl-ug (0.2.32) unstable; urgency=low
+
+ * Fixed not updating DHCP IP inform
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.32
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 11 Nov 2011 14:26:39 +0900
+
+wifi-efl-ug (0.2.31) unstable; urgency=low
+
+ * Wi-Fi scan button on control bar
+ * Elimination of "select network" when Wi-Fi is OFF
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.31
+
+ -- Jeongseok Seo <s.seo@samsung.com> Thu, 10 Nov 2011 20:59:23 +0900
+
+wifi-efl-ug (0.2.30) unstable; urgency=low
+
+ * Removed Auto IP item in detail view
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.30
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 09 Nov 2011 15:00:02 +0900
+
+wifi-efl-ug (0.2.29) unstable; urgency=low
+
+ * Applied the password showing option
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.29
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 08 Nov 2011 20:24:39 +0900
+
+wifi-efl-ug (0.2.28) unstable; urgency=low
+
+ * Fixed IP setting problem in detail view
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.28
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 04 Nov 2011 18:35:57 +0900
+
+wifi-efl-ug (0.2.27) unstable; urgency=low
+
+ * Modified handling the connection error response
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.27
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 03 Nov 2011 13:40:35 +0900
+
+wifi-efl-ug (0.2.26) unstable; urgency=low
+
+ * Fixed BS when back from static IP view
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.26
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 26 Oct 2011 13:48:23 +0900
+
+wifi-efl-ug (0.2.25) unstable; urgency=low
+
+ * Added background layout for the static IP view
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.25
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 25 Oct 2011 16:35:46 +0900
+
+wifi-efl-ug (0.2.24) unstable; urgency=low
+
+ * Applied the fake icon for the radio button
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.24
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 24 Oct 2011 20:46:35 +0900
+
+wifi-efl-ug (0.2.23) unstable; urgency=low
+
+ * Removed scan type(parameter) from net_scan_wifi()
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.23
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 19 Oct 2011 15:41:51 +0900
+
+wifi-efl-ug (0.2.22) unstable; urgency=low
+
+ * Updated the boiler plate
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.22
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 19 Oct 2011 14:40:19 +0900
+
+wifi-efl-ug (0.2.21) unstable; urgency=low
+
+ * Fixed sorting problem after connected/disconnected
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.21
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 19 Oct 2011 11:14:51 +0900
+
+wifi-efl-ug (0.2.20) unstable; urgency=low
+
+ * Changed the navigationbar elementary to naviframe
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.20
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 17 Oct 2011 16:37:37 +0900
+
+wifi-efl-ug (0.2.19) unstable; urgency=low
+
+ * Removed all custom edj
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.19
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 14 Oct 2011 16:48:04 +0900
+
+wifi-efl-ug (0.2.18) unstable; urgency=low
+
+ * Fixed dbus pending call crash
+ * Modified displaying the status for net-client events.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.18
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 12 Oct 2011 15:48:25 +0900
+
+wifi-efl-ug (0.2.17) unstable; urgency=low
+
+ * Update connection error popup
+ * Applied system-popup modification for bundle.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.17
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 07 Oct 2011 11:48:52 +0900
+
+wifi-efl-ug (0.2.16) unstable; urgency=low
+
+ * Update UI for auto connect fail case
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.16
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 06 Oct 2011 15:09:10 +0900
+
+wifi-efl-ug (0.2.15) unstable; urgency=low
+
+ * Fixed wrong state update caused by adding state update ind
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.15
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 04 Oct 2011 19:58:24 +0900
+
+wifi-efl-ug (0.2.14) unstable; urgency=low
+
+ * Applied showing auto join status
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.14
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 30 Sep 2011 17:36:06 +0900
+
+wifi-efl-ug (0.2.13) unstable; urgency=low
+
+ * Fixed not showing Wi-Fi QS in allshare when the state was wifi-off
+ * Fixed not updating the state when click the item during searching
+ * Removed libui-bgimage dependency
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.13
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 29 Sep 2011 20:08:17 +0900
+
+wifi-efl-ug (0.2.12) unstable; urgency=low
+
+ * Added Hidden AP function
+ * Fixed remaining scan list when trying wifi power off by quick panel
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.12
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 27 Sep 2011 11:45:41 +0900
+
+wifi-efl-ug (0.2.11) unstable; urgency=low
+
+ * Fixed proxy setting problem
+ * Applied cancel connecting
+ * Added error handling - NET_ERR_UNKNOWN_METHOD, NET_ERR_CONNECTION_ABORTED
+ * Fixed stopping with searching state
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.11
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 16 Sep 2011 14:40:16 +0900
+
+wifi-efl-ug (0.2.10) unstable; urgency=low
+
+ * Modified to enable refreshing ui when scan failed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.10
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 01 Sep 2011 19:58:51 +0900
+
+wifi-efl-ug (0.2.9) unstable; urgency=low
+
+ * Applied the setting reset
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.9
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 11 Aug 2011 17:08:06 +0900
+
+wifi-efl-ug (0.2.8) unstable; urgency=low
+
+ * Removed the callback for language change
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.8
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 05 Aug 2011 09:33:11 +0900
+
+wifi-efl-ug (0.2.7) unstable; urgency=low
+
+ * Removed the icon button in case of No AP found
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.7
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 02 Aug 2011 20:23:52 +0900
+
+wifi-efl-ug (0.2.6) unstable; urgency=low
+
+ * Fixed mobilehotspot vconf value
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.6
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 29 Jul 2011 11:33:09 +0900
+
+wifi-efl-ug (0.2.5) unstable; urgency=low
+
+ * Fixed setting AP Mac address
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.5
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 26 Jul 2011 17:29:28 +0900
+
+wifi-efl-ug (0.2.4) unstable; urgency=low
+
+ * Fixed system popup problem for checking mobile AP state
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.4
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 25 Jul 2011 21:57:21 +0900
+
+wifi-efl-ug (0.2.3) unstable; urgency=low
+
+ * Re - Removed mobilehotspot dependency
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.3
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 25 Jul 2011 21:20:10 +0900
+
+wifi-efl-ug (0.2.2) unstable; urgency=low
+
+ * Removed mobilehotspot dependency
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.2
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 25 Jul 2011 20:33:36 +0900
+
+wifi-efl-ug (0.2.1) unstable; urgency=low
+
+ * fixed dimming window problem and password popup title
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.1
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 22 Jul 2011 17:18:21 +0900
+
+wifi-efl-ug (0.2.0) unstable; urgency=low
+
+ * fixed elm_widget() check error
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.2.0
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 20 Jul 2011 17:13:13 +0900
+
+wifi-efl-ug (0.1.99) unstable; urgency=low
+
+ * replaced bool to Eina_Bool.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.99
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 18 Jul 2011 11:50:21 +0900
+
+wifi-efl-ug (0.1.98) unstable; urgency=low
+
+ * applied the boilerplate.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.98
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 15 Jul 2011 14:49:36 +0900
+
+wifi-efl-ug (0.1.97) unstable; urgency=low
+
+ * applied the vconf change for moblie ap.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.97
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 13 Jul 2011 14:09:23 +0900
+
+wifi-efl-ug (0.1.96) unstable; urgency=low
+
+ * fixed IP valid check problem.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.96
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 11 Jul 2011 10:05:14 +0900
+
+wifi-efl-ug (0.1.95) unstable; urgency=low
+
+ * rebuiled
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.95
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 04 Jul 2011 20:06:28 +0900
+
+wifi-efl-ug (0.1.94) unstable; urgency=low
+
+ * 1. applied hiding the navigationbar panel in case of no button.
+ * 2. fixed displaying the white screen when tapped the forget button.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.94
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 04 Jul 2011 11:54:32 +0900
+
+wifi-efl-ug (0.1.93) unstable; urgency=low
+
+ * apply the new policy for option header alignment.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.93
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Thu, 30 Jun 2011 11:38:54 +0900
+
+wifi-efl-ug (0.1.92) unstable; urgency=low
+
+ * apply the popup for scan fail.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.92
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 29 Jun 2011 15:49:41 +0900
+
+wifi-efl-ug (0.1.91) unstable; urgency=low
+
+ * refactorying wifi-ug
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.91
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 28 Jun 2011 15:00:59 +0900
+
+wifi-efl-ug (0.1.90) unstable; urgency=low
+
+ * fixed vconf state update prob. in wifi-qs
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.90
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Fri, 24 Jun 2011 16:59:01 +0900
+
+wifi-efl-ug (0.1.89) unstable; urgency=low
+
+ * apply modified wifid client library
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.89
+
+ -- Misun Kim <ms0123.kim@samsung.com> Tue, 21 Jun 2011 16:23:33 +0900
+
+wifi-efl-ug (0.1.88) unstable; urgency=low
+
+ * Fixed forget prob.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.88
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Wed, 15 Jun 2011 10:45:38 +0900
+
+wifi-efl-ug (0.1.87) unstable; urgency=low
+
+ * Update to follow the edje deb update.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.87
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Mon, 13 Jun 2011 11:01:11 +0900
+
+wifi-efl-ug (0.1.86) unstable; urgency=low
+
+ * Fixed state not changed after cancel connecting.
+ * Fixed H0100127263, H0100127539
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.86
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 31 May 2011 20:50:33 +0900
+
+wifi-efl-ug (0.1.85) lucid; urgency=low
+
+ * rollback
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.85
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 31 May 2011 20:37:51 +0900
+
+wifi-efl-ug (0.1.84) lucid; urgency=low
+
+ * Fixed state not changed after cancel connecting.
+ * Fixed H0100127263, H0100127539
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.84
+
+ -- Sanghoon Cho <sanghoon80.cho@samsung.com> Tue, 31 May 2011 19:39:02 +0900
+
+wifi-efl-ug (0.1.83) unstable; urgency=low
+
+ * vconf value memory/wifi/wifi_qs_exit change with -i option
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.83
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 25 May 2011 16:35:18 +0900
+
+wifi-efl-ug (0.1.82) unstable; urgency=low
+
+ * vconf value memory/wifi/wifi_qs_exit change with -i option
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.82
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 25 May 2011 16:17:12 +0900
+
+wifi-efl-ug (0.1.81) unstable; urgency=low
+
+ * Fix UG to update AP list after wlan_client_request_scan`s return
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.81
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 23 May 2011 21:36:00 +0900
+
+wifi-efl-ug (0.1.80) unstable; urgency=low
+
+ * set NULL to freed manager_object in view_main_header_destroy function
+ * Fix crash [56600] [56999] [56611]
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.80
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 23 May 2011 11:38:15 +0900
+
+wifi-efl-ug (0.1.79) unstable; urgency=low
+
+ * desktop fixed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.79
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 20 May 2011 13:41:04 +0900
+
+wifi-efl-ug (0.1.78) unstable; urgency=low
+
+ * H0100126393
+ * H0100126638
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.78
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 19 May 2011 17:38:12 +0900
+
+wifi-efl-ug (0.1.77) unstable; urgency=low
+
+ * ui-gadget layout remove code add
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.77
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 17 May 2011 09:32:57 +0900
+
+wifi-efl-ug (0.1.76) unstable; urgency=low
+
+ * layout manager destroy add
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.76
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 17 May 2011 09:08:41 +0900
+
+wifi-efl-ug (0.1.75) unstable; urgency=low
+
+ * message dispatcher refine
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.75
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 16 May 2011 15:06:03 +0900
+
+wifi-efl-ug (0.1.74) unstable; urgency=low
+
+ * H0100126409
+ * H0100126411
+ * H0100123560
+ * H0100126284
+ * add wifi_exit function to on_destroy as wifid fixed its problem
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.74
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 16 May 2011 09:33:44 +0900
+
+wifi-efl-ug (0.1.73) unstable; urgency=low
+
+ * H0100122530
+ * H0100124908
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.73
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 03 May 2011 17:26:39 +0900
+
+wifi-efl-ug (0.1.72) unstable; urgency=low
+
+ * Fix wlan_manager_connect_with_password
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.72
+
+ -- Taesoo Jun <steve.jun@samsung.com> Sun, 01 May 2011 19:25:59 +0900
+
+wifi-efl-ug (0.1.71) unstable; urgency=low
+
+ * password view launched to the AP which doesn`t required
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.71
+
+ -- Taesoo Jun <steve.jun@samsung.com> Sun, 01 May 2011 18:55:59 +0900
+
+wifi-efl-ug (0.1.70) unstable; urgency=low
+
+ * password view launched to the AP which doesn`t required
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.70
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 29 Apr 2011 16:25:59 +0900
+
+wifi-efl-ug (0.1.69) unstable; urgency=low
+
+ * H0100124879
+ * H0100125637
+ * H0100125649
+ * H0100126216
+ * H0100123004
+ * H0100123928
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.69
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 29 Apr 2011 15:05:32 +0900
+
+wifi-efl-ug (0.1.68) unstable; urgency=low
+
+ * NFC Support
+ * Remove some of deprecated wifid API
+ * H0100123262
+ * Static IP Back button problem fix
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.68
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 28 Apr 2011 10:55:06 +0900
+
+wifi-efl-ug (0.1.67) unstable; urgency=low
+
+ * Matched with changed Mobile-AP
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.67
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 25 Apr 2011 16:30:08 +0900
+
+wifi-efl-ug (0.1.66) unstable; urgency=low
+
+ * NBeat applied
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.66
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 21 Apr 2011 17:59:44 +0900
+
+wifi-efl-ug (0.1.65) unstable; urgency=low
+
+ * fix parent
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.65
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 15 Apr 2011 17:14:43 +0900
+
+wifi-efl-ug (0.1.64) unstable; urgency=low
+
+ * Syspopup BS fix
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.64
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 15 Apr 2011 15:01:51 +0900
+
+wifi-efl-ug (0.1.63) unstable; urgency=low
+
+ * deb.com.samsung.wifi-qs -> com.samsung.wifi-qs
+ * blue-screen related crash fixed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.63
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 12 Apr 2011 17:22:03 +0900
+
+wifi-efl-ug (0.1.62) unstable; urgency=low
+
+ * button position fix for both theme
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.62
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 21 Mar 2011 19:59:47 +0900
+
+wifi-efl-ug (0.1.61) unstable; urgency=low
+
+ * H0100122875
+ * H0100123004
+ * H0100123021
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.61
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 21 Mar 2011 09:21:12 +0900
+
+wifi-efl-ug (0.1.60) unstable; urgency=low
+
+ * arch i386 add
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.60
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 16 Mar 2011 17:49:33 +0900
+
+wifi-efl-ug (0.1.59) unstable; urgency=low
+
+ * add syspopup, UI-bgimage
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.59
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 16 Mar 2011 17:29:59 +0900
+
+wifi-efl-ug (0.1.58) unstable; urgency=low
+
+ * NBeat UX applied
+ * Wi-Fi UI Gadget and Wi-Fi System popup has same source repository
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.1.58
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 16 Mar 2011 15:56:32 +0900
+
+wifi-efl-ug (0.0.120) unstable; urgency=low
+
+ * H0100122533
+ * H0100122470
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.120
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 14 Mar 2011 09:10:56 +0900
+
+wifi-efl-ug (0.0.119) unstable; urgency=low
+
+ * H0100121941
+ * 53425
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.119
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 07 Mar 2011 10:55:32 +0900
+
+wifi-efl-ug (0.0.118) unstable; urgency=low
+
+ * H0100120872
+ * profile saving for "OFF Proxy" bug fix
+ * Elm_Segment API which is deprecated removed
+ * add test code for WPS
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.118
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 03 Mar 2011 08:43:44 +0900
+
+wifi-efl-ug (0.0.117) unstable; urgency=low
+
+ * H0100121927
+ * H0100120883
+ * H0100120885
+ * H0100120888
+ * H0100121936
+ * H0100121934
+ * H0100121927
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.117
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 02 Mar 2011 12:13:31 +0900
+
+wifi-efl-ug (0.0.116) unstable; urgency=low
+
+ * connecting fail feature matching with wifid
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.116
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 25 Feb 2011 14:34:08 +0900
+
+wifi-efl-ug (0.0.115) unstable; urgency=low
+
+ * H0100120890
+ * H0100120872
+ * H0100120883
+ * H0100120885
+ * H0100120888
+ * H0100118727
+ * profile-manager refine
+ * detailview refine
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.115
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 23 Feb 2011 16:10:47 +0900
+
+wifi-efl-ug (0.0.114) unstable; urgency=low
+
+ * Profile related code refine
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.114
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 21 Feb 2011 13:26:27 +0900
+
+wifi-efl-ug (0.0.113) unstable; urgency=low
+
+ * H0100119704
+ * searching layout refine
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.113
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 17 Feb 2011 14:01:59 +0900
+
+wifi-efl-ug (0.0.112) unstable; urgency=low
+
+ * H0100119462
+ * H0100120612
+ * wifi API re-addition
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.112
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 17 Feb 2011 11:18:34 +0900
+
+wifi-efl-ug (0.0.111) unstable; urgency=low
+
+ * revert wifid API change
+ * NULL check code refine
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.111
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 15 Feb 2011 11:07:46 +0900
+
+wifi-efl-ug (0.0.110) unstable; urgency=low
+
+ * match with wifid
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.110
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 11 Feb 2011 17:15:51 +0900
+
+wifi-efl-ug (0.0.109) unstable; urgency=low
+
+ * Fix these problem related
+ ** H0100120107
+ * detailview code refine
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.109
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 09 Feb 2011 16:53:51 +0900
+
+wifi-efl-ug (0.0.108) unstable; urgency=low
+
+ * Fix these problem related
+ * H0100117132
+ * H0100119462
+ * H0100119704
+ * H0100119772
+ * H0100120286
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.108
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 08 Feb 2011 14:41:34 +0900
+
+wifi-efl-ug (0.0.107) unstable; urgency=low
+
+ * new vconf add
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.107
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 01 Feb 2011 11:29:50 +0900
+
+wifi-efl-ug (0.0.106) unstable; urgency=low
+
+ * remove code refine
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.106
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 27 Jan 2011 17:42:51 +0900
+
+wifi-efl-ug (0.0.105) unstable; urgency=low
+
+ * memory management code added
+ * control file refine
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.105
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 27 Jan 2011 15:44:58 +0900
+
+wifi-efl-ug (0.0.104) unstable; urgency=low
+
+ * reupload
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.104
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 25 Jan 2011 14:34:39 +0900
+
+wifi-efl-ug (0.0.103) unstable; urgency=low
+
+ * reupload
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.103
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 25 Jan 2011 14:27:30 +0900
+
+wifi-efl-ug (0.0.102) unstable; urgency=low
+
+ * navigation with END key
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.102
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 25 Jan 2011 13:52:52 +0900
+
+wifi-efl-ug (0.0.101) unstable; urgency=low
+
+ * popup related bug fix
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.101
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 24 Jan 2011 15:26:27 +0900
+
+wifi-efl-ug (0.0.100) unstable; urgency=low
+
+ * popup policy had adopted
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.100
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 24 Jan 2011 14:04:35 +0900
+
+wifi-efl-ug (0.0.99) unstable; urgency=low
+
+ * Program termination code refined
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.99
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 24 Jan 2011 10:12:24 +0900
+
+wifi-efl-ug (0.0.98) unstable; urgency=low
+
+ * reupload
+ * scroller problem avoid
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.98
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 21 Jan 2011 11:02:31 +0900
+
+wifi-efl-ug (0.0.97) unstable; urgency=low
+
+ * more checking code added
+ * some color problem fixed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.97
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 21 Jan 2011 09:22:56 +0900
+
+wifi-efl-ug (0.0.96) unstable; urgency=low
+
+ * scroller related fixed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.96
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 20 Jan 2011 17:31:24 +0900
+
+wifi-efl-ug (0.0.95) unstable; urgency=low
+
+ * dialogue item dragged bug fixed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.95
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 20 Jan 2011 14:46:12 +0900
+
+wifi-efl-ug (0.0.94) unstable; urgency=low
+
+ * fixed print type
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.94
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 19 Jan 2011 18:11:30 +0900
+
+wifi-efl-ug (0.0.93) unstable; urgency=low
+
+ * directory structure changed
+ * some check code bug fixed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.93
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 19 Jan 2011 17:59:52 +0900
+
+wifi-efl-ug (0.0.92) unstable; urgency=low
+
+ * match with EFL update
+ * add dialoguegroup test code
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.92
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 12 Jan 2011 14:35:13 +0900
+
+wifi-efl-ug (0.0.91) unstable; urgency=low
+
+ * UI refresh bug after DISCONNECTION_IND fixed
+ * UI refresh bug after HIDDEN_SCAN_OK
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.91
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 10 Jan 2011 15:47:30 +0900
+
+wifi-efl-ug (0.0.90) unstable; urgency=low
+
+ * GUI changed : use Button(reveal type)
+ * Wi-Fi on/off string -> Wi-Fi
+ * edc fixed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.90
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 06 Jan 2011 17:27:07 +0900
+
+wifi-efl-ug (0.0.89) unstable; urgency=low
+
+ * comman implementation code implement
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.89
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 05 Jan 2011 09:20:42 +0900
+
+wifi-efl-ug (0.0.88) unstable; urgency=low
+
+ * unused EFL struct removed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.88
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 04 Jan 2011 11:09:37 +0900
+
+wifi-efl-ug (0.0.87) unstable; urgency=low
+
+ * profile check code (boolean is_profile) add to check profile EAP
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.87
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 03 Jan 2011 12:49:03 +0900
+
+wifi-efl-ug (0.0.86) unstable; urgency=low
+
+ * Activating stop bug after mobile-ap off fixed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.86
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 30 Dec 2010 14:46:18 +0900
+
+wifi-efl-ug (0.0.85) unstable; urgency=low
+
+ * build-option changed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.85
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 24 Dec 2010 11:26:33 +0900
+
+wifi-efl-ug (0.0.84) unstable; urgency=low
+
+ * profile related api reduced
+ * CMakeList changed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.84
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 23 Dec 2010 18:12:36 +0900
+
+wifi-efl-ug (0.0.83) unstable; urgency=low
+
+ * fix build-error
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.83
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 23 Dec 2010 09:32:20 +0900
+
+wifi-efl-ug (0.0.82) unstable; urgency=low
+
+ * i18n -> gettext changed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.82
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 23 Dec 2010 08:35:50 +0900
+
+wifi-efl-ug (0.0.81) unstable; urgency=low
+
+ * scanning by user/engine not applicaion (scan_request and scan_ind handling implemented)
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.81
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 22 Dec 2010 15:13:59 +0900
+
+wifi-efl-ug (0.0.80) unstable; urgency=low
+
+ * fixed encryption bug
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.80
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 21 Dec 2010 14:34:56 +0900
+
+wifi-efl-ug (0.0.65) unstable; urgency=low
+
+ * animation and profile related problem fixed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.65
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 20 Dec 2010 09:55:09 +0900
+
+wifi-efl-ug (0.0.64) unstable; urgency=low
+
+ * scan related problem fixed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.64
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 17 Dec 2010 14:23:31 +0900
+
+wifi-efl-ug (0.0.63) unstable; urgency=low
+
+ * Fix disconnection ok/indication related bug
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.63
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 09 Dec 2010 11:29:04 +0900
+
+wifi-efl-ug (0.0.62) unstable; urgency=low
+
+ * removed edje_edit
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.62
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 07 Dec 2010 20:15:14 +0900
+
+wifi-efl-ug (0.0.61) unstable; urgency=low
+
+ * reupload
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.61
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 07 Dec 2010 20:07:58 +0900
+
+wifi-efl-ug (0.0.60) unstable; urgency=low
+
+ * scan ind/ok/cancel related code added
+ * support back-button-disable
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.60
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 07 Dec 2010 20:02:45 +0900
+
+wifi-efl-ug (0.0.59) unstable; urgency=low
+
+ * fix
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.59
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 02 Dec 2010 20:55:08 +0900
+
+wifi-efl-ug (0.0.58) unstable; urgency=low
+
+ * fix
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.58
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 02 Dec 2010 20:36:11 +0900
+
+wifi-efl-ug (0.0.57) unstable; urgency=low
+
+ * reupload
+ * Refactoring works
+ * Korean language add
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.57
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 02 Dec 2010 12:23:20 +0900
+
+wifi-efl-ug (0.0.56) unstable; urgency=low
+
+ * Refactoring works
+ * Korean language add
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.56
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 02 Dec 2010 09:53:20 +0900
+
+wifi-efl-ug (0.0.55) unstable; urgency=low
+
+ * fix elm_check -> elm_toggle
+ * fix rules file to import pkg
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.55
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Sat, 20 Nov 2010 14:20:46 +0900
+
+wifi-efl-ug (0.0.54) unstable; urgency=low
+
+ * Resource added
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.54
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 17 Nov 2010 22:06:33 +0900
+
+wifi-efl-ug (0.0.53) unstable; urgency=low
+
+ * Fix layout related problems
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.53
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 17 Nov 2010 21:20:01 +0900
+
+wifi-efl-ug (0.0.52) unstable; urgency=low
+
+ * AP-List repainting works when it is placed on the top of the scroller
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.52
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 17 Nov 2010 16:08:02 +0900
+
+wifi-efl-ug (0.0.51) unstable; urgency=low
+
+ * profile delete bug fix
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.51
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 16 Nov 2010 10:53:43 +0900
+
+wifi-efl-ug (0.0.50) unstable; urgency=low
+
+ * Fix implicit function declaration bugs
+ * Code cleans
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.50
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 15 Nov 2010 10:59:51 +0900
+
+wifi-efl-ug (0.0.49) unstable; urgency=low
+
+ * REREUPLOAD BY BUILD-TEAM`S TAG CHECK ALGORIGHM FAILURE
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.49
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 12 Nov 2010 16:44:59 +0900
+
+wifi-efl-ug (0.0.48) unstable; urgency=low
+
+ * Reupload by build-team`s tag check fail
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.48
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 12 Nov 2010 14:48:24 +0900
+
+wifi-efl-ug (0.0.47) unstable; urgency=low
+
+ * Removed strip rule in debian/rule
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.47
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 12 Nov 2010 09:46:07 +0900
+
+wifi-efl-ug (0.0.46) unstable; urgency=low
+
+ * Remove test code
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.46
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 11 Nov 2010 09:40:52 +0900
+
+wifi-efl-ug (0.0.45) unstable; urgency=low
+
+ * Fix unclicked problem
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.45
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 11 Nov 2010 09:36:31 +0900
+
+wifi-efl-ug (0.0.44) unstable; urgency=low
+
+ * Fix focus on related
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.44
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 10 Nov 2010 16:34:12 +0900
+
+wifi-efl-ug (0.0.43) unstable; urgency=low
+
+ * Layout changes
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.43
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 10 Nov 2010 15:18:01 +0900
+
+wifi-efl-ug (0.0.42) unstable; urgency=low
+
+ * Fix Layout bug when on/off
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.42
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 09 Nov 2010 10:17:46 +0900
+
+wifi-efl-ug (0.0.41) unstable; urgency=low
+
+ * Others AP is disabled
+ * fixed the problem to call modifyProfile function when every back from detailview
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.41
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 09 Nov 2010 09:42:37 +0900
+
+wifi-efl-ug (0.0.40) unstable; urgency=low
+
+ * Removed graphic bug related with bottom_header
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.40
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 08 Nov 2010 12:04:10 +0900
+
+wifi-efl-ug (0.0.39) unstable; urgency=low
+
+ * reupload rejected package by 2010 NOV 08`s binary problem
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.39
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 08 Nov 2010 09:10:18 +0900
+
+wifi-efl-ug (0.0.38) unstable; urgency=low
+
+ * libui-window dependency removed
+ * UI-Gadget bundle reader added
+ * i18n-manager for Multilanguage support added
+ * UI-Gadget test code added
+ * input-panel for proxy fixed to show NUMBERONLY or IP
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.38
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 05 Nov 2010 09:05:46 +0900
+
+wifi-efl-ug (0.0.37) unstable; urgency=low
+
+ * Vertification code for IP:PORT added
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.37
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 28 Oct 2010 13:26:37 +0900
+
+wifi-efl-ug (0.0.36) unstable; urgency=low
+
+ * Connected AP is always takes top
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.36
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 27 Oct 2010 16:13:51 +0900
+
+wifi-efl-ug (0.0.35) unstable; urgency=low
+
+ * change signal weight by -90 -> -80
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.35
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 26 Oct 2010 19:40:45 +0900
+
+wifi-efl-ug (0.0.34) unstable; urgency=low
+
+ * Disconnection_Indicatior message handler fix
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.34
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 26 Oct 2010 15:26:42 +0900
+
+wifi-efl-ug (0.0.33) unstable; urgency=low
+
+ * Fix message by Mrs. Kim mi-seon`s request
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.33
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 22 Oct 2010 14:10:43 +0900
+
+wifi-efl-ug (0.0.32) unstable; urgency=low
+
+ * Match with changed engine API
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.32
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 22 Oct 2010 10:08:28 +0900
+
+wifi-efl-ug (0.0.31) unstable; urgency=low
+
+ * Reupload by tag mistake
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.31
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 20 Oct 2010 17:14:00 +0900
+
+wifi-efl-ug (0.0.30) unstable; urgency=low
+
+ * Reupload by name mistake
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.29
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 20 Oct 2010 17:12:08 +0900
+
+wifi-efl-ug (0.0.29) unstable; urgency=low
+
+ * Remove unused function
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.29
+
+ -- Jongmin Lee <jm105.lee@samsung.com> Wed, 20 Oct 2010 17:08:17 +0900
+
+wifi-efl-ug (0.0.27) unstable; urgency=low
+
+ * packaging
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.27
+
+ -- Jongmin Lee <jm105.lee@samsung.com> Thu, 07 Oct 2010 20:49:12 +0900
+
+wifi-efl-ug (0.0.26) unstable; urgency=low
+
+ * Partly debug popup disabled
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.26
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 29 Sep 2010 18:20:28 +0900
+
+wifi-efl-ug (0.0.25) unstable; urgency=low
+
+ * Detail view layout changed
+ * default gateway is 0.0.0.0:80
+ * Hidden and WPA Sup. is partly disabled
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.25
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 27 Sep 2010 16:51:47 +0900
+
+wifi-efl-ug (0.0.24) unstable; urgency=low
+
+ * Show Hidden AP directly by clicking Others
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.24
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 15 Sep 2010 15:28:05 +0900
+
+wifi-efl-ug (0.0.23) unstable; urgency=low
+
+ * New icon showing is Applied
+ * Fix crash bug when enter Others
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.23
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 15 Sep 2010 13:57:48 +0900
+
+wifi-efl-ug (0.0.22) unstable; urgency=low
+
+ * Fix hidden network with empty name
+ * Fix miss-used popup api
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.22
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 15 Sep 2010 11:33:40 +0900
+
+wifi-efl-ug (0.0.21) unstable; urgency=low
+
+ * Fix unallocated popup object used bug fixed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.21
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 14 Sep 2010 13:45:52 +0900
+
+wifi-efl-ug (0.0.20) unstable; urgency=low
+
+ * Reupload
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.20
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 13 Sep 2010 19:17:05 +0900
+
+wifi-efl-ug (0.0.19) unstable; urgency=low
+
+ * Repacakging by wifid-client`s upload
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.19
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 13 Sep 2010 17:35:42 +0900
+
+wifi-efl-ug (0.0.18) unstable; urgency=low
+
+ * add uploader
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.18
+
+ -- Jongmin Lee <jm105.lee@samsung.com> Fri, 10 Sep 2010 23:02:16 +0900
+
+wifi-efl-ug (0.0.17) unstable; urgency=low
+
+ * repackage
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.17
+
+ -- Jongmin Lee <jm105.lee@samsung.com> Fri, 10 Sep 2010 22:55:52 +0900
+
+wifi-efl-ug (0.0.16) unstable; urgency=low
+
+ * Fix password view shown bug which already saved its profile
+ * Fix applicaion crash when wrong password entered
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.16
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Wed, 08 Sep 2010 21:28:19 +0900
+
+wifi-efl-ug (0.0.15) unstable; urgency=low
+
+ * Beat UI dialogue list works
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.15
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Mon, 06 Sep 2010 22:03:27 +0900
+
+wifi-efl-ug (0.0.14) unstable; urgency=low
+
+ * Fix can not connect to AP by right button push
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.14
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Fri, 03 Sep 2010 11:29:46 +0900
+
+wifi-efl-ug (0.0.13) unstable; urgency=low
+
+ * Fix initial connection error bug
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.13
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Fri, 03 Sep 2010 09:04:55 +0900
+
+wifi-efl-ug (0.0.12) unstable; urgency=low
+
+ * Reupload by debian/rule clean failure
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.12
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Fri, 03 Sep 2010 08:26:02 +0900
+
+wifi-efl-ug (0.0.11) unstable; urgency=low
+
+ * Beat UX fitting work
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.11
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Thu, 02 Sep 2010 18:11:12 +0900
+
+wifi-efl-ug (0.0.10) unstable; urgency=low
+
+ * Others item have no black point on his right
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.10
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Tue, 31 Aug 2010 21:30:59 +0900
+
+wifi-efl-ug (0.0.9) unstable; urgency=low
+
+ * remove vconf wifi-state checking
+ * add back button, partly
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.9
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Tue, 31 Aug 2010 17:25:18 +0900
+
+wifi-efl-ug (0.0.8) unstable; urgency=low
+
+ * Connection bug fix
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.8
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Fri, 27 Aug 2010 15:04:15 +0900
+
+wifi-efl-ug (0.0.7) unstable; urgency=low
+
+ * Others`s view implemented
+ * Known bugs are removed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.7
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Thu, 26 Aug 2010 12:51:27 +0900
+
+wifi-efl-ug (0.0.6) unstable; urgency=low
+
+ * Global valuable removal
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.6
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Wed, 25 Aug 2010 15:36:48 +0900
+
+wifi-efl-ug (0.0.5) unstable; urgency=low
+
+ * Remove more global value
+ * some known UI releated bug fixed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.5
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Mon, 23 Aug 2010 13:54:14 +0900
+
+wifi-efl-ug (0.0.4) unstable; urgency=low
+
+ * Resource added
+ * Some known bug fixed
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.4
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Fri, 20 Aug 2010 15:04:52 +0900
+
+wifi-efl-ug (0.0.2) unstable; urgency=low
+
+ * First version of UI Gadget of Wi-Fi
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.2
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Wed, 18 Aug 2010 15:27:01 +0900
+
+wifi-efl-ug (0.0.1) unstable; urgency=low
+
+ * Initial Release.
+ * Git: apps/home/ug-wifi-efl
+ * Tag: wifi-efl-ug_0.0.1
+
+ -- shyeon.kim <shyeon.kim@samsung.com> Mon, 16 Aug 2010 09:29:32 +0900
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+5
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..6287e96
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,47 @@
+Source: wifi-efl-ug
+Section: net
+Priority: extra
+Maintainer: Sanghoon Cho <sanghoon80.cho@samsung.com>, Danny Jeongseok Seo <s.seo@samsung.com>, Praveen C <pravin.c@samsung.com>
+Uploaders: Sanghoon Cho <sanghoon80.cho@samsung.com>, Danny Jeongseok Seo <s.seo@samsung.com>, Praveen C <pravin.c@samsung.com>
+Build-Depends: debhelper (>= 5),
+ libappcore-efl-dev,
+ libelm-dev,
+ libglib2.0-dev,
+ libslp-utilx-dev,
+ libslp-setting-dev,
+ libui-gadget-dev,
+ libedje-dev,
+ libslp-sensor-dev,
+ libnetwork-dev,
+ libcapi-network-wifi-dev,
+ syspopup-dev,
+ syspopup-caller-dev
+Standards-Version: 3.7.2
+
+Package: wifi-efl-ug
+Section: net
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Wi-Fi UI Gadget
+
+Package: wifi-efl-ug-dbg
+Section: net-debug
+Architecture: any
+Depends: wifi-efl-ug
+Description: Wi-Fi UI Gadget (dbg)
+
+Package: net.wifi-qs
+Section: application
+Architecture: any
+XB-Generate-Docs: no
+XB-Public-Package: no
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Wi-Fi System popup
+
+Package: net.wifi-qs-dbg
+Section: debug
+Architecture: any
+XB-Generate-Docs: no
+XB-Public-Package: no
+Depends: net.wifi-qs
+Description: Wi-Fi System popup (dbg)
diff --git a/debian/dirs b/debian/dirs
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/debian/dirs
@@ -0,0 +1 @@
+
diff --git a/debian/docs b/debian/docs
new file mode 100644
index 0000000..7a77580
--- /dev/null
+++ b/debian/docs
@@ -0,0 +1,2 @@
+CMakeCache.txt
+CMakeLists.txt
diff --git a/debian/net.wifi-qs.install.in b/debian/net.wifi-qs.install.in
new file mode 100644
index 0000000..e7d7663
--- /dev/null
+++ b/debian/net.wifi-qs.install.in
@@ -0,0 +1,6 @@
+/usr/bin/wifi-qs
+/usr/share/applications/net.wifi-qs.desktop
+/usr/share/process-info/wifi-qs.ini
+/usr/share/icon/*
+/usr/share/locale/*
+
diff --git a/debian/net.wifi-qs.postinst b/debian/net.wifi-qs.postinst
new file mode 100644
index 0000000..837f41e
--- /dev/null
+++ b/debian/net.wifi-qs.postinst
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+if [ ${USER} = "root" ]
+then
+ vconftool set -t int memory/wifi/wifi_qs_exit 0 -g 6519 -i
+ vconftool set -t int db/wifi/enable_quick_start 1 -g 6519 -i
+
+
+ # Change file owner
+ # 1. libraries
+ # 2. executables
+# chown 5000:5000 /usr/bin/wifi-qs
+ # 3. configurations
+# chown 5000:5000 /usr/share/edje/wifi-qs*
+# chown 5000:5000 /usr/share/locale/en_GB/LC_MESSAGES/wifi.mo
+# chown 5000:5000 /usr/share/locale/en_US/LC_MESSAGES/wifi.mo
+# chown 5000:5000 /usr/share/locale/ja/LC_MESSAGES/wifi.mo
+# chown 5000:5000 /usr/share/locale/ko/LC_MESSAGES/wifi.mo
+# chown 5000:5000 /usr/share/locale/zh_CN/LC_MESSAGES/wifi.mo
+fi
+
+# Change file permissions
+# 1. libraries
+# 2. executables
+#chmod 700 /usr/bin/wifi-qs
+# 3. configurations
+#chmod 644 /usr/share/edje/wifi-qs*
+#chmod 644 /usr/share/locale/en_GB/LC_MESSAGES/wifi.mo
+#chmod 644 /usr/share/locale/en_US/LC_MESSAGES/wifi.mo
+#chmod 644 /usr/share/locale/ja/LC_MESSAGES/wifi.mo
+#chmod 644 /usr/share/locale/ko/LC_MESSAGES/wifi.mo
+#chmod 644 /usr/share/locale/zh_CN/LC_MESSAGES/wifi.mo
+
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..adea4cc
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,201 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+CFLAGS += -Wall -g
+LDFLAGS += -Wall -pie
+PREFIX ?= /usr/ug
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2
+endif
+
+CFLAGS += -fPIC
+LDFLAGS += -Wl,--rpath=$(PREFIX)/lib -Wl,--hash-style=both -Wl,--as-needed
+
+
+configure: configure-stamp
+configure-stamp:
+ dh_testdir
+ # Add here commands to configure the package.
+ CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" cmake . -DCMAKE_INSTALL_PREFIX=$(PREFIX)
+ touch configure-stamp
+
+build: build-stamp
+
+build-stamp: configure-stamp
+ dh_testdir
+
+ # Add here commands to compile the package.
+ $(MAKE)
+ for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
+ cat $$f > $${f%.in}; \
+ sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \
+ sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \
+ done
+ #docbook-to-man debian/wifi-efl-ug.sgml > wifi-efl-ug.1
+
+ touch $@
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) clean
+ rm -rf CMakeCache.txt
+ rm -rf CMakeFiles
+ rm -rf cmake_install.cmake
+ rm -rf Makefile
+ rm -rf install_manifest.txt
+ rm -rf sources/ui-gadget/CMakeCache.txt
+ rm -rf sources/ui-gadget/CMakeFiles
+ rm -rf sources/ui-gadget/cmake_install.cmake
+ rm -rf sources/ui-gadget/Makefile
+ rm -rf sources/ui-gadget/install_manifest.txt
+ rm -rf sources/ui-gadget/edcs/*.edj
+ rm -rf sources/ui-gadget/po/CMakeCache.txt
+ rm -rf sources/ui-gadget/po/CMakeFiles
+ rm -rf sources/ui-gadget/po/cmake_install.cmake
+ rm -rf sources/ui-gadget/po/Makefile
+ rm -rf sources/ui-gadget/po/install_manifest.txt
+ rm -rf sources/ui-gadget/po/*.mo
+
+ rm -rf sources/wifi-syspopup/CMakeCache.txt
+ rm -rf sources/wifi-syspopup/CMakeFiles
+ rm -rf sources/wifi-syspopup/cmake_install.cmake
+ rm -rf sources/wifi-syspopup/Makefile
+ rm -rf sources/wifi-syspopup/install_manifest.txt
+ rm -rf sources/wifi-syspopup/net.wifi-qs.desktop
+
+ rm -rf sources/wifi-syspopup/po/CMakeFiles
+ rm -rf sources/wifi-syspopup/po/Makefile
+ rm -rf sources/wifi-syspopup/po/cmake_install.cmake
+
+ rm -rf *.so
+ rm -rf *.edj
+
+ rm -rf debian/*.install
+
+ rm -f ../wifi-efl-ug_*.deb
+ rm -f ../wifi-efl-ug-*.deb
+ rm -f ../wifi-efl-ug_*.changes
+ rm -f ../wifi-efl-ug_*.dsc
+ rm -f ../wifi-efl-ug_*.changes
+ rm -f ../wifi-efl-ug_*.tar.gz
+
+ rm -f ../net.wifi-qs_*.deb
+ rm -f ../net.wifi-qs-*.deb
+
+ dh_clean
+
+dev_clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) clean
+ rm -rf CMakeCache.txt
+ rm -rf CMakeFiles
+ rm -rf cmake_install.cmake
+ rm -rf Makefile
+ rm -rf install_manifest.txt
+ rm -rf sources/ui-gadget/CMakeCache.txt
+ rm -rf sources/ui-gadget/CMakeFiles
+ rm -rf sources/ui-gadget/cmake_install.cmake
+ rm -rf sources/ui-gadget/Makefile
+ rm -rf sources/ui-gadget/install_manifest.txt
+ rm -rf sources/ui-gadget/edcs/*.edj
+ rm -rf sources/ui-gadget/po/CMakeCache.txt
+ rm -rf sources/ui-gadget/po/CMakeFiles
+ rm -rf sources/ui-gadget/po/cmake_install.cmake
+ rm -rf sources/ui-gadget/po/Makefile
+ rm -rf sources/ui-gadget/po/install_manifest.txt
+ rm -rf sources/ui-gadget/po/*.mo
+
+ rm -rf sources/wifi-syspopup/CMakeCache.txt
+ rm -rf sources/wifi-syspopup/CMakeFiles
+ rm -rf sources/wifi-syspopup/cmake_install.cmake
+ rm -rf sources/wifi-syspopup/Makefile
+ rm -rf sources/wifi-syspopup/install_manifest.txt
+ rm -rf sources/wifi-syspopup/net.wifi-qs.desktop
+ rm -rf sources/wifi-syspopup/edcs/*.edj
+
+ rm -rf po/CMakeCache.txt
+ rm -rf po/CMakeFiles
+ rm -rf po/cmake_install.cmake
+ rm -rf po/Makefile
+ rm -rf po/install_manifest.txt
+ rm -rf po/*.mo
+
+ rm -rf *.so
+ rm -rf *.edj
+
+ rm -rf debian/*.install
+
+ touch cscope.a
+ rm cscop*.*
+ rm -f sources/cscope.*
+ rm -f sources/ui-gadget/cscope.*
+ rm -f sources/wifi-syspopup/cscope.*
+
+ rm -f tag*
+ rm -f sources/tag*
+ rm -f sources/ui-gadget/tag*
+ rm -f sources/wifi-syspopup/tag*
+
+ rm -f ../wifi-efl-ug*
+ rm -f ../net.wifi-qs_*
+ rm -f ../net.wifi-qs-dbg*
+ rm -f ../wifi-syspopup_*
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/tmp.
+ $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+# dh_installchangelogs
+# dh_installdocs
+# dh_installexamples
+ dh_install --sourcedir=debian/tmp
+ dh_installman
+ dh_link
+ dh_strip --dbg-package=wifi-efl-ug-dbg
+ dh_compress
+ dh_fixperms
+# dh_perl
+ dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/debian/wifi-efl-ug.install.in b/debian/wifi-efl-ug.install.in
new file mode 100644
index 0000000..ac4b02b
--- /dev/null
+++ b/debian/wifi-efl-ug.install.in
@@ -0,0 +1,5 @@
+/usr/ug/lib/libug-wifi-efl-UG.so.0.1.0
+/usr/ug/lib/libug-wifi-efl-UG.so
+/usr/ug/res/locale/*
+/usr/ug/res/images/wifi-efl-UG/*
+
diff --git a/debian/wifi-efl-ug.postinst b/debian/wifi-efl-ug.postinst
new file mode 100644
index 0000000..ead844c
--- /dev/null
+++ b/debian/wifi-efl-ug.postinst
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+if [ ${USER} = "root" ]
+then
+ vconftool set -t int memory/wifi/ug_run_state 3 -i -g 6519
+fi
diff --git a/net.wifi-qs.manifest b/net.wifi-qs.manifest
new file mode 100644
index 0000000..97e8c31
--- /dev/null
+++ b/net.wifi-qs.manifest
@@ -0,0 +1,5 @@
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>
diff --git a/packaging/wifi-efl-ug.spec b/packaging/wifi-efl-ug.spec
new file mode 100644
index 0000000..912529e
--- /dev/null
+++ b/packaging/wifi-efl-ug.spec
@@ -0,0 +1,89 @@
+Name: wifi-efl-ug
+Summary: Wi-Fi UI Gadget
+Version: 0.5.1_31
+Release: 1
+Group: App/Network
+License: Flora License
+Source0: %{name}-%{version}.tar.gz
+BuildRequires: cmake
+BuildRequires: pkgconfig(ecore)
+BuildRequires: pkgconfig(ecore-imf)
+BuildRequires: pkgconfig(ecore-input)
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(utilX)
+BuildRequires: pkgconfig(ui-gadget-1)
+BuildRequires: pkgconfig(x11)
+BuildRequires: pkgconfig(sensor)
+BuildRequires: pkgconfig(syspopup)
+BuildRequires: pkgconfig(syspopup-caller)
+BuildRequires: pkgconfig(capi-network-wifi)
+BuildRequires: pkgconfig(network)
+BuildRequires: gettext-tools
+BuildRequires: edje-tools
+Requires(post): /sbin/ldconfig
+Requires(post): /usr/bin/vconftool
+requires(postun): /sbin/ldconfig
+
+%description
+Wi-Fi UI Gadget
+
+%package -n net.wifi-qs
+Summary: Wi-Fi System popup
+Requires: %{name} = %{version}
+Requires(post): /usr/bin/vconftool
+
+%description -n net.wifi-qs
+Wi-Fi System popup
+
+%prep
+%setup -q
+
+%define PREFIX /usr/ug
+
+
+%build
+#LDFLAGS+="-Wl,--rpath=%{PREFIX}/lib -Wl,--as-needed"
+cmake . -DCMAKE_INSTALL_PREFIX=%{PREFIX}
+
+make %{?_smp_mflags}
+
+
+%install
+%make_install
+
+#License
+mkdir -p %{buildroot}%{_datadir}/license
+cp LICENSE.Flora %{buildroot}%{_datadir}/license/wifi-efl-ug
+cp LICENSE.Flora %{buildroot}%{_datadir}/license/net.wifi-qs
+
+%post
+/sbin/ldconfig
+
+vconftool set -t int memory/wifi/ug_run_state 3 -i -g 6519
+
+%post -n net.wifi-qs
+vconftool set -t int memory/wifi/wifi_qs_exit 0 -g 6519 -i
+vconftool set -t int db/wifi/enable_quick_start 1 -g 6519 -i
+
+%postun -p /sbin/ldconfig
+
+
+%files
+%manifest wifi-efl-ug.manifest
+%{PREFIX}/lib/libug-wifi-efl-UG.so
+%attr(644,-,-) %{PREFIX}/lib/libug-wifi-efl-UG.so.0.1.0
+%{PREFIX}/res/edje/wifi-efl-UG/*.edj
+%{PREFIX}/res/images/wifi-efl-UG/*.png
+%{PREFIX}/res/locale/*/LC_MESSAGES/*.mo
+%{_datadir}/license/wifi-efl-ug
+
+%files -n net.wifi-qs
+%manifest net.wifi-qs.manifest
+%{_bindir}/wifi-qs
+%{_datadir}/packages/net.wifi-qs.xml
+%{_datadir}/process-info/wifi-qs.ini
+%{_datadir}/icon/*.png
+%{_datadir}/locale/*/LC_MESSAGES/*.mo
+%{_datadir}/license/net.wifi-qs
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
new file mode 100644
index 0000000..6537f70
--- /dev/null
+++ b/po/CMakeLists.txt
@@ -0,0 +1,34 @@
+# for i18n
+
+SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de_DE.po el_GR.po en.po en_PH.po en_US.po es_ES.po es_MX.po eu.po et.po fi.po fr_CA.po fr_FR.po ga.po gl.po hi.po hr.po hu.po hy.po is.po it_IT.po ja_JP.po ka.po kk.po ko_KR.po lt.po lv.po mk.po nb.po nl_NL.po pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_SG.po zh_TW.po)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+SET(WIFI_UG_PROJECT_NAME "ug-wifi-efl-UG")
+SET(WIFI_QS_PROJECT_NAME "wifi-qs")
+
+FOREACH(pofile ${POFILES})
+ SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+ MESSAGE("PO: ${pofile}")
+ GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+ GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+ SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${moFile}
+ COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+ DEPENDS ${absPofile}
+ )
+
+ # install for UG
+ INSTALL(FILES ${moFile}
+ DESTINATION /usr/ug/res/locale/${lang}/LC_MESSAGES RENAME ${WIFI_UG_PROJECT_NAME}.mo)
+
+ # install for QS
+ INSTALL(FILES ${moFile}
+ DESTINATION /usr/share/locale/${lang}/LC_MESSAGES RENAME ${WIFI_QS_PROJECT_NAME}.mo)
+
+ SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/po/ar.po b/po/ar.po
new file mode 100644
index 0000000..6fd9d77
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "تم التوصيل"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "جاري التوصيل"
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "ثابت IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "جاري تنشيط Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "تجاهل"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "عنوان IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "قناع الشبكة الفرعية"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "إخطارات الشبكة"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Open"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "آمن"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "عنوان MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "منفذ الوكيل"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "ممتاز"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "جيدة"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "بحث"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "شبكات Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "جاري الفصل..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "IP ديناميكي"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "بلا APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "نوع الأمن"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "شبكة مخفية"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "جاري إلعاء تنشيط Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "قيد البحث"
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "اختيار شبكة"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "أسلوب EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "عنوان البوابة"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "أدخل كلمة المرور"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "شهادة CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "غير محدد"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "شهادة المستخدم"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "الهوية"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "هوية مجهولة"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "إدخال الهوية"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "إدخال هوية مجهولة"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "أدخل كلمة السر"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "عرض كلمة المرور"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "عنوان التفويض"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "قوة الإشارة"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "البوابة"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "جاري إلغاء التفعيل..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "لا يوجد أمان"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "اختيار شبكة"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "ضعيفة"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS متوفر"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "جار الحصول على عنوان IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "القناة"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "إخطاري عند توفر شبكة مفتوحة"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "إضافة شبكة Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "شبكة SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "الاتصال التلقائي بهذه الشبكة سيتم تعطيله. متابعة؟"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "مصادقة المرحلة الثانية"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "توصيل"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "اضغط WPS في نقطة وصول Wi-Fi خلال %d دقيقة"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "غير معروف"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "أدخل SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "كلمة المرور"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "التزويد"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "اتصال زر WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "العثور على الشبكة المخفية"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "اضغط علي WPS في نقطة وصول Wi-Fi لديك خلال دقيقتين"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "إلغاء"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "إدخال الهوية"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "أدخل كلمة المرور"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "إخطار عند العثور على شبكة Wi-Fi"
+
diff --git a/po/az.po b/po/az.po
new file mode 100644
index 0000000..7aa4bee
--- /dev/null
+++ b/po/az.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Qoşuldu"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "qoşulur"
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statik İP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi aktivləşdirilir..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Unut"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP ünvanı"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Şəbəkə altı qoruyucusu"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Şəbəkə bildirişi"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Aç"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Qorunur"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC ünvanı"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proksi portu"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Əla"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Yaxşı"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Axtarın"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi şəbəkələri"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Bağlantı kəsilir"
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dinamik IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "APs yoxdur"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Təhlükəsizlik növü"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Gizli şəbəkə"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi söndürülür..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Axtarır..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Şəbəkə seç"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP metodu"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Giriş ünvanı"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Kodu daxil et"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA sertifikatı"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Təyin edilməyib"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "İstifadəçi sertifikatı"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Kimlik"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonim kimlik"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Eyniliyi daxil edin"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Anonim eyniliyi daxil et"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Parol daxil edin"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Parolu göstərin"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Giriş modulu ünvanı"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Signal gücləndirilsin"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Şlüz"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Söndürülür..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Qeyritəhlükəsiz"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Şəbəkə seç"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Zəif"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS mümkündür"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "IP ünvanı əldə edilir..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Açıq şəbəkə mövcud olduqda məni xəbərdar edin"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Wi-Fi şəbəkəsi əlavə edin"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Şəbəkə SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Bu şəbəkəyə avtomatik bağlanma qeyri-aktiv ediləcək. Davam edilsin?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Mərhələ 2 əslliyin yoxlanması"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Qoşul"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "%d dəqiqə ərzində Wi-Fi giriş nöqtəsində WPS düyməsini bas"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Naməlum"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "SSİD daxil edin"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Şifrə"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Təminat"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS düymə bağlantısı"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Gizli şəbəkləri tap"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "2 dəqiqə ərzində Wi-Fi giriş nöqtənizdə WPS basın"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Ləğv et"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Eyniliyinizi daxil edin"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Kodu daxil et"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Wi-Fi şəbəkəsi tapılanda xəbər verin"
+
diff --git a/po/bg.po b/po/bg.po
new file mode 100644
index 0000000..a71972b
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Свързан"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Свързване..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Статичен IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Активиране на Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Забравяне"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP адрес"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Подмрежова маска"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Мрежово уведомяване"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Отваряне"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Защитено"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC адрес"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Порт за прокси"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Отлично"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Добър"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Сканиране"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi мрежи"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Изключване..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Динамичен IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Няма AP"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Тип на защита"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Скрита мрежа"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Деактивиране на Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Търсене..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Избери мрежа"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Метод EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Адрес на шлюз"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Въвеждане на парола"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Сертификат CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Неопределен"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Сертификат потр."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Самоличност"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Анонимна самоличност"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Въведете самоличност"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Въведете анонимна самоличност"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Въвеждане на парола"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Показване на паролата"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Адрес на прокси"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Сила на сигнала"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Шлюз"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Деактивиране..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Няма защита"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Избери мрежа"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Слаб"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS е налична"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Получаване на IP адрес..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Канал"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Уведоми ме, когато е достъпна отворена мрежа"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Добавяне на Wi-Fi мрежа"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID мрежа"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Автоматичното свързване с тази мрежа ще бъде деактивирано. Продължаване?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Удостоверяване с фаза 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Свързване"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Натиснете WPS на Wi-Fi точката за достъп в рамките на %d минути"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Няма информация"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Въвеждане на SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Парола"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Предвиждане"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Връзка с WPS бутон"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Намери скрита мрежа"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Натиснете WPS на Wi-Fi точката за достъп в рамките на 2 минути"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Отказ"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Въведете вашата самоличност"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Въвеждане на парола"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Уведомяване, когато е намерена Wi-Fi мрежа"
+
diff --git a/po/ca.po b/po/ca.po
new file mode 100644
index 0000000..d09359c
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Connectat"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Connectant..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "IP estàtica"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Activant Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Oblidar"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Adreça IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Màscara de subxarxa"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Notificació de xarxa"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Obrir"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Protegit"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Adreça MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Port de servidor intermediari"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Excel·lent"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Bo"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Escanejar"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Xarxes Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Desconnectant..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "IP dinàmica"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Sense punts d'accés"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Tipus de seguretat"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Xarxa oculta"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Desactivant Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Cercant..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Seleccionar xarxa"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Mètode EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Adreça passarel·la"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Introduir contrasenya"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certificat CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Sense especificar"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Certificat usuari"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identitat"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Identitat anònima"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Introduir identitat"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Introduir identitat anònima"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Introduir la contrasenya"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Mostrar contrasenya"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Adreça de proxy"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Intensitat del senyal"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Passarel·la"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Desactivant..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "No hi ha seguretat"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Seleccionar xarxa"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Feble"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS disponible"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "S'està obtenint l'adreça IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Canal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Avisar-me quan una xarxa oberta estigui disponible"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Afegir xarxa Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID de xarxa"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Es deshabilitarà la connexió automàtica a aquesta xarxa. Continuar?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Autenticació de fase 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Connectar"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Premi WPS al seu punt d'accés Wi-Fi en %d minuts"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Desconegut"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Introdueixi SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Contrasenya"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Provisió"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Connexió de botó WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Cercar xarxa oculta"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Premi WPS al seu punt d'accés Wi-Fi en 2 minuts"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Introduir la seva identitat"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Introduir contrasenya"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Notificar quan es trobi una xarxa Wi-Fi"
+
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 0000000..5f78170
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Připojeno"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Připojování..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Pevná adresa IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Probíhá aktivace Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Odstranit"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP adresa"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Maska podsítě"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Oznámení sítě"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Otevřít"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Zabezpečeno"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC adresa"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Port serveru proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Výtečně"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Dobrý"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Hledat"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Sítě Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Odpojování..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dynamická IP adresa"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Žádné APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Typ zabezpečení"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Skrytá síť"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Probíhá deaktivace Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Hledání..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Vybrat síť"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Metoda EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Adresa brány"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Zadejte heslo"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certifikát CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Nespecifikováno"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Uživ. certifikát"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Totožnost"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonymní identita"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Zadejte identitu"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Zadejte anonymní identitu"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Zadejte heslo"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Zobrazit heslo"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Adresa proxy"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Intenzita signálu"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Brána"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Deaktivace..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Bez zabezpečení"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Vybrat síť"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Slabý"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS je k dispozici"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Získávání adresy IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanál"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Upozornit na otevřenou síť"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Přidat síť Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID sítě"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automatické připojení k této síti bude vypnuto. Chcete pokračovat?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Ověření fáze 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Připojit"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Stiskněte do %d minut tlačítko WPS na přístupovém bodu Wi-Fi"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Neznámé"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Zadat SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Heslo"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Zajištění"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Připojení pomocí tlačítka WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Najít skrytou síť"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Stiskněte do 2 minut tlačítko WPS na přístupovém bodu Wi-Fi"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Zrušit"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Zadejte identitu"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Zadejte heslo"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Upozornit při nalezení sítě Wi-Fi"
+
diff --git a/po/da.po b/po/da.po
new file mode 100644
index 0000000..42be067
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Forbundet"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Opretter forbindelse..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statisk IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Aktiverer Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Glem"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP-adresse"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Subnet-maske"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Netværksbesked"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Åben"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Sikret"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC-adresse"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proxy-port"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Fremragende"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "God"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Scanning"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi-netværk"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Afbryder..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dynamisk IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Ingen APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Sikkerhedstype"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Skjult netværk"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Deaktiverer Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Søger ..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Vælg netværk"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP-metode"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Gateway-adresse"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Angiv adgangskode"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA-certifikat"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Ikke specificeret"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Brugercertifikat"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identitet"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonym identitet"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Indtast identitet"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Indtast anonym identitet"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Indtast adgangskode"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Vis adgangskode"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proxy-adresse"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Signalstyrke"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Deaktiverer..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Ingen sikkerhed"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Vælg netværk"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Svag"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS tilgængelig"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Henter IP-adresse ..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Giv mig besked, når et åbent netværk er tilgængeligt"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Tilføj Wi-Fi-netværk"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Netværks-SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automatisk forbindelse til dette netværk deaktiveres. Vil du fortsætte?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Fase 2-godkendelse"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Tilslut"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Tryk på WPS på dit Wi-Fi-adgangspunkt inden for %d minutter"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Ukendt"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Angiv SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Adgangskode"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Anskaffelse"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS-knap forbundet"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Find skjult netværk"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Tryk på WPS på dit Wi-Fi-adgangspunkt inden for 2 minutter"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Annuller"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Indtast din identitet"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Angiv adgangskode"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Giv mig besked, når der er fundet et Wi-Fi-netværk"
+
diff --git a/po/de_DE.po b/po/de_DE.po
new file mode 100644
index 0000000..305aefa
--- /dev/null
+++ b/po/de_DE.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Verbunden"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Verbindung wird hergestellt..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statische IP-Adresse"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "WLAN wird aktiviert..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Entfernen"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP-Adresse"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Subnetzmaske"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Netzbenachrichtigung"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Offen"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Gesichert"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC-Adresse"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proxy-Port"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Exzellent"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Gut"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Suchen"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "WLAN"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Verbindung wird getrennt..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dynamische IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Keine APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Sicherheitstyp"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Verborgenes Netz"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "WLAN wird deaktiviert..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Suche läuft..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Netz auswählen"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP-Methode"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Gateway-Adresse"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Passwort eingeben"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA-Zertifikat"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Nicht angegeben"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Nutzerzertifikat"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identität"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonyme Identität"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Identität eingeben"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Anonyme Identität eingeben"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Passwort eingeben"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Passwort anzeigen"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proxy-Adresse"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Signalstärke"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Wird deaktiviert..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Keine Sicherheit"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Netz auswählen"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Schwach"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS verfügbar"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "IP-Adresse wird abgerufen..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Sender"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Benachrichtigen, wenn ein offenes Netzwerk verfügbar ist"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "WLAN hinzufügen"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Netz-SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automatische Verbindung zu diesem Netzwerk wird deaktiviert. Fortfahren?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Phase 2-Authentifizierung"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Verbinden"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Drücken Sie die WPS-Taste an Ihrem WLAN-Zugangspunkt innerhalb von %d Minuten."
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Unbekannt"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "SSID eingeben"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Passwort"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Bereitstellung"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS-Tastenverbindung"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Verborgenes Netz suchen"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Drücken Sie die WPS-Taste an Ihrem WLAN-Zugangspunkt innerhalb von 2 Minuten."
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Abbruch"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Ihre Identität eingeben"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Passwort eingeben"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Benachrichtigen, wenn WLAN-Netzwerk gefunden wurde"
+
diff --git a/po/el_GR.po b/po/el_GR.po
new file mode 100644
index 0000000..b4ff0bf
--- /dev/null
+++ b/po/el_GR.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Συνδέθηκε"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Σύνδεση..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Στατικό IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Ενεργοποίηση Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Εξαίρεσε"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Διεύθυνση IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Μάσκα υποδικτύου"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Ειδοποίηση δικτύου"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Άνοιγμα"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Ασφαλές"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Διεύθυνση MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Θύρα proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Τέλεια"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Καλό"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Σάρωση"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Δίκτυα Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Αποσύνδεση..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Δυναμικό IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Δεν υπάρχουν AP"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Τύπος ασφαλείας"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Κρυφό δίκτυο"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Απενεργοποίηση Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Αναζήτηση..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Επιλογή δικτύου"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Μέθοδος EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Διεύθυνση πύλης"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Εισαγωγή κωδικού"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Πιστοποιητικό CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Ακαθόριστο"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Πιστοπ. χρήστη"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Ταυτότητα"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Άγνωστη ταυτότητα"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Εισαγάγετε ταυτότητα"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Εισαγάγετε άγνωστη ταυτότητα"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Εισαγωγή κωδικού πρόσβασης"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Εμφάνιση κωδικού πρόσβασης"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Διεύθ.διακ.μεσολάβ."
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Ισχύς σήματος"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Πύλη"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Απενεργοποίηση.."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Καμία ασφάλεια"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Επιλογή δικτύου"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Ασθενές"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "Υπάρχει διαθέσιμο WPS"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Γίνεται λήψη διεύθυνσης IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Κανάλι"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Να ειδοποιούμαι όταν υπάρχει διαθέσιμο ανοικτό δίκτυο"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Προσθήκη δικτύου Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID δικτύου"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Η αυτόματη σύνδεση σε αυτό το δίκτυο θα απενεργοποιηθεί. Συνέχεια;"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "2η φάση ελέγχου ταυτότητας"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Σύνδεση"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Πιέστε το WPS του σημείου πρόσβασης Wi-Fi εντός %d λεπτών"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Άγνωστο"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Εισαγωγή στο SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Κωδικός πρόσβασης"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Παροχή"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Σύνδεση κουμπιού WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Εύρεση κρυφού δικτύου"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Πιέστε το WPS του σημείου πρόσβασης Wi-Fi εντός 2 λεπτών"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Ακύρωση"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Εισαγάγετε την ταυτότητά σας"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Εισαγωγή κωδικού"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Να ειδοποιούμαι, όταν εντοπίζεται δίκτυο Wi-Fi"
+
diff --git a/po/en.po b/po/en.po
new file mode 100644
index 0000000..808f049
--- /dev/null
+++ b/po/en.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Connected"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Connecting..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Static IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Activating Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Forget"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP address"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Subnet mask"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Network notification"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Open"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Secured"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC address"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proxy port"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Excellent"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Good"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Scan"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi networks"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Disconnecting..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dynamic IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "No APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Security type"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Hidden network"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Deactivating Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Searching..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Select network"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP method"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Gateway address"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Enter password"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA certificate"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Unspecified"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "User certificate"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identity"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonymous identity"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Enter identity"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Enter anonymous identity"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Input password"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Show password"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proxy address"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Signal strength"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Deactivating..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "No security"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Select network"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Weak"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS available"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Obtaining IP address..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Channel"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Notify me when an open network is available"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Add Wi-Fi network"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Network SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automatic connection to this network will be disabled. Continue?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Phase 2 authentication"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Connect"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Press WPS on your Wi-Fi access point within %d minutes"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Enter SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Password"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Provisioning"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS button connection"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Find hidden network"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Press WPS on your Wi-Fi access point within 2 minutes"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Enter your identity"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Enter password"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Notify when Wi-Fi network is found"
+
diff --git a/po/en_PH.po b/po/en_PH.po
new file mode 100644
index 0000000..808f049
--- /dev/null
+++ b/po/en_PH.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Connected"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Connecting..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Static IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Activating Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Forget"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP address"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Subnet mask"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Network notification"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Open"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Secured"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC address"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proxy port"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Excellent"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Good"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Scan"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi networks"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Disconnecting..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dynamic IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "No APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Security type"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Hidden network"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Deactivating Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Searching..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Select network"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP method"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Gateway address"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Enter password"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA certificate"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Unspecified"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "User certificate"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identity"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonymous identity"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Enter identity"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Enter anonymous identity"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Input password"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Show password"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proxy address"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Signal strength"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Deactivating..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "No security"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Select network"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Weak"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS available"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Obtaining IP address..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Channel"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Notify me when an open network is available"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Add Wi-Fi network"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Network SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automatic connection to this network will be disabled. Continue?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Phase 2 authentication"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Connect"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Press WPS on your Wi-Fi access point within %d minutes"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Enter SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Password"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Provisioning"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS button connection"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Find hidden network"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Press WPS on your Wi-Fi access point within 2 minutes"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Enter your identity"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Enter password"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Notify when Wi-Fi network is found"
+
diff --git a/po/en_US.po b/po/en_US.po
new file mode 100644
index 0000000..808f049
--- /dev/null
+++ b/po/en_US.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Connected"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Connecting..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Static IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Activating Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Forget"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP address"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Subnet mask"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Network notification"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Open"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Secured"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC address"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proxy port"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Excellent"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Good"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Scan"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi networks"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Disconnecting..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dynamic IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "No APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Security type"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Hidden network"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Deactivating Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Searching..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Select network"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP method"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Gateway address"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Enter password"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA certificate"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Unspecified"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "User certificate"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identity"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonymous identity"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Enter identity"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Enter anonymous identity"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Input password"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Show password"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proxy address"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Signal strength"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Deactivating..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "No security"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Select network"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Weak"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS available"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Obtaining IP address..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Channel"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Notify me when an open network is available"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Add Wi-Fi network"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Network SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automatic connection to this network will be disabled. Continue?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Phase 2 authentication"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Connect"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Press WPS on your Wi-Fi access point within %d minutes"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Unknown"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Enter SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Password"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Provisioning"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS button connection"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Find hidden network"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Press WPS on your Wi-Fi access point within 2 minutes"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Enter your identity"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Enter password"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Notify when Wi-Fi network is found"
+
diff --git a/po/es_ES.po b/po/es_ES.po
new file mode 100644
index 0000000..6aa3c7b
--- /dev/null
+++ b/po/es_ES.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Conectado"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Conectando..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "IP estática"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Activando Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Cancelar"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Dirección IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Máscara de subred"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Notificación de red"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Abierta"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Protegido"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Dirección MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Puerto Proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Excelente"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Buena"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Buscar"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Redes Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Desconectando..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "IP dinámica"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "No hay AP"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Tipo de seguridad"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Red oculta"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Desactivando Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Buscando..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Seleccionar red"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Método EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Dirección de puerta de enlace"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Introducir contraseña"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certificado CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Sin especificar"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Certific usuario"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identidad"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Identidad anónima"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Introducir identidad"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Introducir identidad anónima"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Introducir contraseña"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Mostrar contraseña"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Dirección de proxy"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Intensidad de la señal"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Puerta de enlace"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Desactivando..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Sin seguridad"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Seleccionar red"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Débil"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS disponible"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Obteniendo dirección IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Canal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Notificarme cuando hay disponible una red abierta"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Añadir red Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Red SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "La conexión automática a esta red se desactivará. ¿Continuar?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Autenticación de fase 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Conectar"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Pulse WPS de su punto de acceso Wi-Fi en %d minutos"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Introducir SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Contraseña"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Suministro"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Conexión del botón de WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Buscar red oculta"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Pulse WPS en su punto de acceso Wi-Fi en un tiempo estimado de 2 minutos"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Introducir su identidad"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Introducir contraseña"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Notificar cuando se encuentre una red Wi-Fi"
+
diff --git a/po/es_MX.po b/po/es_MX.po
new file mode 100644
index 0000000..6b2afa6
--- /dev/null
+++ b/po/es_MX.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Conectado"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Conectando..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "IP estática"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Activando Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Olvidar"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Dirección IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Máscara de subred"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Notificación de red"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Abierta"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Protegida"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Dirección MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Puerto proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Excelente"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Buena"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Buscar"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Redes Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Desconectando..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "IP dinámica"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "No hay AP"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Tipo de seguridad"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Red oculta"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Desactivando Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Buscando..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Seleccionar red"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Método EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Dirección de puerta de enlace"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Introducir contraseña"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certificado de CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Sin especificar"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Certific usuario"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identidad"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Identidad anónima"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Ingresar identidad"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Ingresar identidad anónima"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Introducir contraseña"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Mostrar contraseña"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Dirección de PROXY"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Intensidad de la señal"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Puerta de enlace"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Desactivando…"
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Sin seguridad"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Seleccionar red"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Débil"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS disponible"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Obteniendo dirección IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Canal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Notificar cuando esté disponible una red abierta"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Añadir red Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Red SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "La conexión automática a esta red se desactivará. ¿Continuar?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Autenticación de fase de 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Conectar"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Pulse WPS de su punto de acceso Wi-Fi en %d minutos"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Introducir SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Contraseña"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Aprovisionamiento"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Conexión del botón de WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Buscar red oculta"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Presione WPS en el punto de acceso Wi-Fi en 2 minutos"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Ingresar su identidad"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Introducir contraseña"
+
+msgid "IDS_WIFI_POP_ENTER_PS_AGAIN_KOR"
+msgstr "Introducir %s nuevamente"
+
diff --git a/po/es_US.po b/po/es_US.po
new file mode 100644
index 0000000..9040153
--- /dev/null
+++ b/po/es_US.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Conectado"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Conectando..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "IP estática"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Activando Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Olvidar"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Dirección IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Máscara de subred"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Notificación de red"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Abierta"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Protegida"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Dirección MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Puerto proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Excelente"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Buena"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Buscar"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Redes Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Desconectando..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "IP dinámica"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "No hay AP"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Tipo de seguridad"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Red oculta"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Desactivando Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Buscando..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Seleccionar red"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Método EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Dirección de puerta de enlace"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Introducir contraseña"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certificado de CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Sin especificar"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Certific usuario"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identidad"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Identidad anónima"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Ingresar identidad"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Ingresar identidad anónima"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Introducir contraseña"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Mostrar contraseña"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Dirección de PROXY"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Intensidad de la señal"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Puerta de enlace"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Desactivando…"
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Sin seguridad"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Seleccionar red"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Débil"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS disponible"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Obteniendo dirección IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Canal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Notificar cuando esté disponible una red abierta"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Añadir red Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Red SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "La conexión automática a esta red se desactivará. ¿Continuar?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Autenticación de fase de 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Conectar"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Pulse WPS de su punto de acceso Wi-Fi en %d minutos"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Desconocido"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Introducir SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Contraseña"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Aprovisionamiento"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Conexión del botón de WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Buscar red oculta"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Presione WPS en el punto de acceso Wi-Fi en 2 minutos"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Ingresar su identidad"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Introducir contraseña"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Notificar cuando no se encuentra una red Wi-Fi"
+
diff --git a/po/et.po b/po/et.po
new file mode 100644
index 0000000..61840f2
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Ühendatud"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Ühendamine..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Staatiline IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi aktiveerimine..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Unusta"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP-aadress"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Alamvõrgumask"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Võrguteade"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Ava"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Turvatud"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC-aadress"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Puhverserveri port"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Võrratu"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Hea"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Otsi"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi võrgud"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Ühenduse katkestamine..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dünaamiline IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "APs-id puuduvad"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Turvalisuse tüüp"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Peidetud võrk"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi desaktiveerimine..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Otsimine..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Vali võrk"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP-meetod"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Lüüsi aadress"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Sisestage parool"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Sertifitseerimiskeskuse sertifikaat"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Määramata"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Kasutaja sert."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Tunnus"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonüümne tunnus"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Sisestage tunnus"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Sisestage anonüümne tunnus"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Sisestage parool"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Kuva parool"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Puhverserveri aadress"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Levitugevus"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Lüüs"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Desaktiveerimine..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Turvalisus puudub"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Vali võrk"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Nõrk"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS on saadaval"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "IP-aadressi hankimine..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Teavita mind, kui avatud võrk on saadaval"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Lisa Wi-Fi võrk"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Võrgu SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Selle võrgu automaatühendus keelatakse. Kas jätkata?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "2. faasi autentimine"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Ühenda"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Vajutage %d minuti jooksul WPS-nuppu oma Wi-Fi pääsupunktil"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Tundmatu"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Sisesta SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Parool"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Ettevalmistamine"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS-i nupuga ühendus"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Otsi peidetud võrku"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Vajutage 2 minuti jooksul WPS-nuppu oma Wi-Fi pääsupunktil"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Tühista"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Sisestage oma tunnus"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Sisestage parool"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Teavita, kui Wi-Fi võrk on leitud"
+
diff --git a/po/eu.po b/po/eu.po
new file mode 100644
index 0000000..eeadb99
--- /dev/null
+++ b/po/eu.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Konektatuta"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Konektatzen"
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "IP estatikoa"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fia aktibatzen..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Ahaztu"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP helbidea"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Azpi-sareko maskara"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Sarearen jakinarazpena"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Ireki"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Babestua"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC helbidea"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proxy ataka"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Bikain"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Ona"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Eskaneatzea"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi sareak"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Deskonektatzen"
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "IP dinamikoa"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "APs-ik ez"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Segurtasun mota"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Sare ezkutua"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fia desaktibatzen..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Bilatzen"
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Sarea aukeratu"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP metodoa"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Atebidearen helbidea"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Pasahitza idatzi"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA ziurtagiria"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Zehaztu gabe"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Erabiltzailearen ziurtag."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identitatea"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Identitate anonimoa"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Sartu identitatea"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Sartu identitate anonimoa"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Sartu pasahitza"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Erakutsi pasahitza"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proxy helbidea"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Seinalearen intentsitatea"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Atebidea"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Desaktibatzen..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Segurtasunik ez"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Sarea aukeratu"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Ahula"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS eskuragarri"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "IP helbidea lortzen..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanala"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Jakinarazi sare ireki bat eskuragarri dagoenean"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Gehitu Wi-Fi sarea"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Sarearen SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Sare honetarako konexio automatikoa ezgaituko da. Jarraitu?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "2. fasearen egiaztapena"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Konektatu"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Sakatu WPS Wi-Fi sargunean %d minutu igaro baino lehen"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Ezezaguna"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "SSIDa idatzi"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Pasahitza"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Hornitzea"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS botoi konexioa"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Aurkitu sare gordea"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Sakatu WPS Wi-Fi sargunean 2 minutu igaro baino lehen"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Ezeztatu"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Sartu zure identitatea"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Pasahitza idatzi"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Jakinarazi Wi-Fi sarea aurkitzen denean"
+
diff --git a/po/fi.po b/po/fi.po
new file mode 100644
index 0000000..4b48ee0
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Yhdistetty"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Yhdistetään..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Staattinen IP-osoite"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi otetaan käyttöön..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Unohda"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP-osoite"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Aliverkon peite"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Verkkoilmoitus"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Avoin"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Suojattu"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC-osoite"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Välityspalvelimen portti"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Erinomainen"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Hyvä"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Hae"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi-verkot"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Yhteyttä katkaistaan..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dynaaminen IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Ei yhteyspisteitä"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Suojaustyyppi"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Piilotettu verkko"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi poistetaan käytöstä..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Etsitään..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Valitse verkko"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP-menetelmä"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Yhdyskäytävän osoite"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Kirjoita salasana"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA-varmenne"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Määrittelemätön"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Käyttäjävarmenne"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Käyttäjätiedot"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Nimettömät käyttäjätiedot"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Anna käyttäjätiedot"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Anna nimettömät käyttäjätiedot"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Anna salasana"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Näytä salasana"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Välityspalvelimen osoite"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Signaalinvoimakkuus"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Yhdyskäytävä"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Kytketään pois päältä..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Ei suojausta"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Valitse verkko"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Heikko"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS käytettävissä"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Haetaan IP-osoitetta..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanava"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Ilmoita, kun avoin verkko on käytettävissä"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Lisää Wi-Fi-verkko"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Verkon nimi (SSID)"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automaattinen yhteyden muodostaminen tähän verkkoon poistetaan käytöstä. Jatketaanko?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Vaiheen 2 todennus"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Yhdistä"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Paina Wi-Fi-yhteyspisteesi WPS-painiketta %d minuutin kuluessa"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Tuntematon"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Anna SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Salasana"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Valmistelu"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS-painikeyhteys"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Etsi piilotettu verkko"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Paina Wi-Fi-yhteyspisteesi WPS-painiketta 2 minuutin kuluessa"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Peruuta"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Anna käyttäjätiedot"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Kirjoita salasana"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Ilmoita, kun Wi-Fi-verkko löytyy"
+
diff --git a/po/fr_CA.po b/po/fr_CA.po
new file mode 100644
index 0000000..8c82ed7
--- /dev/null
+++ b/po/fr_CA.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Connecté"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Connexion ..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "IP statique"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Activation wifi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Oublier"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Adresse IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Masque de sous-réseau"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Notification du réseau"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Ouvrir"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Sécurisé"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Adresse MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Port proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Excellent"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Bon"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Rechercher"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Réseaux Wifi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Déconnexion ..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "IP dynamique"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Aucun PA"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Type de sécurité"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Réseau masqué"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Désactivation wifi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Recherche..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Sélectionner un réseau"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Méthode EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Adresse de passerelle"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Saisir le mot de passe"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certificat de l'AC"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Non défini"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Certif. utilisat"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identité"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonyme"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Indiquer une identité"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Indiquer une identité anonyme"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Saisissez le mot de passe"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Afficher le mot de passe"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Adresse du serveur mandataire"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Force du signal"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Passerelle"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Désactivation..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Pas de sécurité"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Sélectionner un réseau"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Faible"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS disponible"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Obtention de l'adresse IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Chaine"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "M'avertir quand un réseau ouvert est disponible"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Ajouter un réseau wifi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID du réseau"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "La connexion automatique à ce réseau va être désactivée. Continuer ?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Authentification Phase 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Connexion"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Appuyez sur le bouton WPS de votre point d'accès wifi dans %d minutes"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Entrer SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Mot de passe"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Préparation"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Connexion wifi protégée"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Rechercher le réseau masqué"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Appuyez sur le bouton WPS de votre point d'accès Wifi d'ici 2 minutes pour l'activer"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Indiquer votre identité"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Saisir le mot de passe"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "M'avertir lorsqu'un réseau Wifi est détecté"
+
diff --git a/po/fr_FR.po b/po/fr_FR.po
new file mode 100644
index 0000000..6300823
--- /dev/null
+++ b/po/fr_FR.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Connecté"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Connexion..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "IP statique"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Activation Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Oublier"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Adresse IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Masque de sous-réseau"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Notification réseau"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Ouvert"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Sécurisé"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Adresse MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Port proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Excellent"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Correct"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Analyser"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Réseaux Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Déconnexion..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "IP dynamique"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Aucun AP"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Type de sécurité"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Réseau masqué"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Désactivation Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Recherche..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Sélectionner un réseau"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Méthode EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Adresse de passerelle"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Saisir le mot de passe"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certificat CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Non défini"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Certif. utilisat."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identité"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonyme"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Indiquer une identité"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Indiquer une identité anonyme"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Entrez le mot de passe"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Afficher le mot de passe"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Adresse de proxy"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Force du signal"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Passerelle"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Désactivation..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Pas de sécurité"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Sélectionner un réseau"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Faible"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS disponible"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Obtention de l'adresse IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Canal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "M'avertir quand un réseau ouvert est disponible"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Ajouter un réseau Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID du réseau"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "La connexion automatique à ce réseau va être désactivée. Continuer ?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Authentification Phase 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Connexion"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Appuyez sur la touche WPS de votre point d'accès Wi-Fi sous %d minutes"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Inconnu"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Entrer SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Mot de passe"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Préparation"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Connexion Touche WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Rechercher réseau masqué"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Appuyez sur la touche WPS de votre point d'accès Wi-Fi dans 2 minutes"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Indiquer votre identité"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Saisir le mot de passe"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "M'avertir lorsqu'un réseau Wi-Fi est détecté"
+
diff --git a/po/ga.po b/po/ga.po
new file mode 100644
index 0000000..8b578dd
--- /dev/null
+++ b/po/ga.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Nasctha"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Ag nascadh..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "IP Statach"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi á chur i ngníomh..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Dearmad"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Seoladh IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Masc folíonra"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Fógra líonra"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Oscailte"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Slán"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Seoladh MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Seachphort"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Sármhaith"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Maith"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Scan"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Líonraí Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Ag dínascadh..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "IP Dinimiciúil"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Níl AP ann"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Cineál slándála"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Líonra folaithe"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi á dhíghníomhachtú..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Ag cuardach..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Roghnaigh líonra"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Modh EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Seoladh geata"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Iontráil pasfhocal"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Deimhniú CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Neamhshonraithe"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Deimhniú úsáideora"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Aitheantas"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Aitheantas gan ainm"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Iontráil aitheantas"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Iontráil aitheantas gan ainm"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Iontráil pasfhocal"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Taispeáin pasfhocal"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Seoladh seachfhreastalaí"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Neart comhartha"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Geata"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Ag díghníomhachtú..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Níl slándáil ann"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Roghnaigh líonra"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Lag"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS atá ar fáil"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Seoladh IP á fháil..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Cainéal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Cuir in iúl dom nuair a bhíonn líonra ar oscailt ar fáil"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Cuir líonra Wi-Fi leis"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID Líonra"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Déanfar díchumasú ar an nasc uathoibríoch chuig an líonra seo. Ar aghaidh?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Fíordheimhniú chéim 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Nasc"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Brúigh WPS ar do phointe rochtana Wi-Fi laistigh de %d nóiméad"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Anaithnid"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Iontráil SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Pasfhocal"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Soláthar"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Cnaipe naisc WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Aimsigh líonra folaithe"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Brúigh WPS ar do phointe rochtana Wi-Fi laistigh de 2 nóiméad"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Cealaigh"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Iontráil d'aitheantas"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Iontráil pasfhocal"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Cuir in iúl dom ar aimsiú líonra Wi-Fi"
+
diff --git a/po/gl.po b/po/gl.po
new file mode 100644
index 0000000..20b0b3e
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Conectado"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Conectando..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "IP estática"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Activando Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Ignorar"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Enderezo IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Máscara de subrede"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Notificación de rede"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Abrir"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Protexida"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Enderezo MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Porto do proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Excelente"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Bo"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Buscar"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Redes Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Desconectando..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "IP dinámica"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Non hai APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Tipo de seguridade"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Rede oculta"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Desactivando Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Buscando..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Seleccionar rede"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Método EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Enderezo de pasarela"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Introduza o contrasinal"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certificado CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Non especificado"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Certificado usua."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identidade"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Identidade anónima"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Introducir identidade"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Introducir identidade anónima"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Introducir contrasinal"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Mostrar contrasinal"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Enderezo proxy"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Intensidade do sinal"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Pasarela"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Desactivando..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Sen seguridade"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Seleccionar rede"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Débil"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "Permite que WPS estea dispoñible"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Obtendo enderezo IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Canle"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Avisarme cando estea dispoñible unha rede aberta"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Engadir rede Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID de redes"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "A conexión automática a esta rede vaise desactivar. Continuar?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Autenticación da fase 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Conectar"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Pulsa no botón WPS no punto de acceso Wi-Fi dentro de %d minutos"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Descoñecido"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Introducir SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Contrasinal"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Aprovisionamento"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Conexión do botón WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Buscar rede oculta"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Pulsa no botón WPS no teu punto de acceso da Wi-Fi dentro de 2 minutos"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Introducir a túa identidade"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Introduza o contrasinal"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Notificar cando se atope unha rede Wi-Fi"
+
diff --git a/po/hi.po b/po/hi.po
new file mode 100644
index 0000000..60a6281
--- /dev/null
+++ b/po/hi.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "जोड़ा गया"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "जोड़ा जा रहा है…"
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "स्थिर आईपी"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi सक्रिय हो रहा है..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "भूल जाएँ"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP पता"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "सबनेट मास्क"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "नेटवर्क नोटिफ़िकेशन"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "खोलें"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "सुरक्षित"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC पते"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "प्रॉक्‍सी पोर्ट"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "उत्तम"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "अच्छा"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "स्‍कैन"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi नेटवर्क्स"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "डिस्कनेक्ट हो रहा है..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "डायनामिक आईपी"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "APs नहीं"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "सुरक्षा प्रकार"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "छुपा नेटवर्क"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi निष्क्रिय हो रहा है…"
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "खोज रहा है..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "नेटवर्क चुनें"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP विधि"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "गेटवे पता"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "पासवर्ड प्रविष्ट करें"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA प्रमाणपत्र"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "अनिर्दिष्‍ट"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "उपभोक्ता प्रमाणपत्र"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "पहचानें"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "अज्ञात पहचान"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "पहचान दर्ज करें"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "अज्ञात पहचान दर्ज करें"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "पासवर्ड इनपुट करें"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "पासवर्ड दिखाएँ"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "प्रॉक्‍सी पता"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "संकेत सामर्थ्य"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "गेटवे"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "निष्क्रिय हो रहा है…"
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "कोई सुरक्षा नहीं"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "नेटवर्क चुनें"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "दुर्बल"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS उपलब्‍ध"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "IP पता मिल रहा है..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "चैनल"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "ज़ब ओपन नेटवर्क उपलब्‍ध हो तो मुझे सूचित करें"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "WI-FI नेटवर्क जोड़ें"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "नेटवर्क SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "इस नेटवर्क के साथ स्वचालित कनेक्शन अक्षम हो जाएगा। जारी रखें?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "फ़ेज 2 प्रमाणीकरण"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "जोड़ें"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "%d मिनटों के अंदर आप के वाई-फाई अभिगम पॉइंट पर डब्ल्यूपीएस दबाएँ"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "अज्ञात"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "एसएसआईडी प्रविष्ट करें"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "पासवर्ड"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "प्रावधान"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS बटन कनेक्‍शन"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "छुपा नेटवर्क ढूँढें"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "2 मिनटों के अंदर आप के Wi-Fi ऍक्सेस पॉइंट पर WPS दबाएँ"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "रद्द"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "एसएसआईडी"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "अपनी पहचान दर्ज करें"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "पासवर्ड प्रविष्ट करें"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Wi-Fi नेटवर्क के प्राप्त होने पर सूचित करें"
+
diff --git a/po/hr.po b/po/hr.po
new file mode 100644
index 0000000..1845652
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Spojeno"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Spajanje..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statički IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "WiFi uključivanje..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Zaboravi"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP adresa"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Maska podmreže"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Obavijest o mreži"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Otvorena"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Zaštićeno"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC adresa"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proxy ulaz"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Odličan"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Signal dobar"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Traženje"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi mreže"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Odspajanje..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dinamički IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Nema AP"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Vrsta sigurnosti"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Skrivena mreža"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "WiFi isključivanje..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Pretraživanje..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Odaberite mrežu"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP način"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Adresa pristupnika"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Unesite šifru"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA certifikat"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Neodređeno"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Korisnič. potvrda"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identitet"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonimni identitet"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Unesi identitet"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Unesi anonimni identitet"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Unesite šifru"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Prikaži šifru"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proxy adresa"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Jačina signala"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Isključivanje..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Nema zaštite"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Odaberite mrežu"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Slaba"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS dostupan"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Preuzimanje IP adrese..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Postaja"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Obavijesti o dostupnim otvorenim mrežama"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Dodaj Wi-Fi mrežu"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID mreže"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Isključiti će se automatsko spajanje na tu mrežu. Nastaviti?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "2. faza autorizacije"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Spoji"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Pritisnite WPS na Wi-Fi pristupnoj točki u roku od %d minute"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Unesite SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Šifra"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Preuzimanje"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Spajanje WPS tipkom"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Traži skrivenu mrežu"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Pritisnite WPS na Wi-Fi pristupnoj točki u roku od 2 min"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Prekid"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Unesi svoj identitet"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Unesite šifru"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Obavijesti kad je Wi-Fi mreža pronađena"
+
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 0000000..732ecfb
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Csatlakoztatva"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Kapcsolódás..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statikus IP-cím"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi aktiválása..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Elfelejt"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP-cím"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Alhálózati maszk"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "1. DNS"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "2. DNS"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Hálózati értesítés"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Nincs"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Titkosított"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC-cím"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proxy port"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Kiváló"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Jó"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Keresés"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi hálózatok"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Szétkapcsolás..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dinamikus IP-cím kiosztás"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Nincs AP"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Biztonság típusa"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Rejtett hálózat"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi deaktiválása..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Keresés..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Hálózatválasztás"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP módszer"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Átjárócím"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Írja be a jelszót"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Hitelesítésszolgáltatói tanúsítvány"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Nincs megadva"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Felh. tanúsítv."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Azonosító"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Névtelen azonosító"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Identitás megadása"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Név nélküli identitás megadása"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Adja meg a jelszót"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Jelszó megjelenítése"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proxy címe"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Jelerősség"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Átjáró"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Deaktiválás..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Nincs biztonság"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Hálózatválasztás"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Gyenge"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS elérhető"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "IP-cím lekérése..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Csatorna"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Értesítsen, ha elérhető egy nyitott hálózat"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Wi-Fi-hálózat hozzáadása"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Hálózat neve (SSID)"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Ezzel letiltja az automatikus kapcsolódást ehhez a hálózathoz. Folytatja?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Phase 2 hitelesítés"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Kapcsolódás"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "%d percen belül nyomja meg a Wi-Fi hozzáférési pont WPS gombját"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Ismeretlen"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Adja meg az SSID-t"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Jelszó"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Előkészítés"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS gombos kapcsolódás"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Rejtett hálózat keresése"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "2 percen belül nyomja meg a Wi-Fi hozzáférési pont WPS gombját"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Mégse"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Adja meg az identitását"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Írja be a jelszót"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Értesítsen, ha Wi-Fi hálózatot talál"
+
diff --git a/po/hy.po b/po/hy.po
new file mode 100644
index 0000000..e79bef0
--- /dev/null
+++ b/po/hy.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Միացված է"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Միացում..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Ստատիկ IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi-ի ակտիվացում..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Մոռանալ"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP հասցե"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Ենթացանցի դիմակ"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Ցանցային ծանուցում"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Բացել"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Ապահով"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC հասցե"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Պրոքսիի պորտ"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Գերազանց"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Լավ"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Զննել"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi ցանցեր"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Անջատվում է..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Դինամիկ IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Ոչ մի APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Անվտանգության տեսակ"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Թաքցված ցանց"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi-ի ապաակտիվացում..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Որոնում է..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Ընտրել ցանցը"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP եղանակ"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Ուղեմուտի հասցե"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Մուտքագրեք գաղտնաբառը"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA վկայական"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Սահմանված չէ"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Օգտվողի վկայական"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Ինքնություն"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Անանուն ինքնություն"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Մուտքագրել ինքնությունը"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Մուտքագրել անանուն ինքնությունը"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Ներածեք գաղտնաբառ"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Ցույց տալ գաղտնաբառը"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Պրոքսիի հասցե"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Ազդանշանի"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Մուտք"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Ապաակտիվացում..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Անվտանգության բացակայություն"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Ընտրել ցանցը"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Թույլ"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS-ը հասանելի է"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Ստացվում է IP հասցե..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Ալիք"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Ծանուցել բացված ցանցի մատչելիության դեպքում"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Ավելացնել Wi-Fi ցանց"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Ցանցի SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Ինքնամիացումն այս ցանցին կկասեցվի: Շարունակե՞լ:"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Փուլ 2 նույնականացում"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Միանալ"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Սեղմեք Ձեր Wi-Fi մուտքի կետի WPS-ը %d րոպե"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Անհայտ"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Մուտքագրեք SSID-ն"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Գաղտնաբառ"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Աշխատանքին նախապատրաստում"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS կոճակի միացում"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Փնտրել թաքնված ցանց"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Սեղմեք Ձեր Wi-Fi մուտքի կետի WPS-ը 2 րոպե"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Չեղարկել"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Մուտքագրեք Ձեր ինքնությունը"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Մուտքագրեք գաղտնաբառը"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Ծանուցել, երբ Wi-Fi ցանց է գտնվում"
+
diff --git a/po/is.po b/po/is.po
new file mode 100644
index 0000000..0e1a3b6
--- /dev/null
+++ b/po/is.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Tengt"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Verið er að tengjast..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Kyrrlegar IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Kveiki á Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Gleyma"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP vistfang"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Undirkerfi"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Kerfistilkynning"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Opna"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Öruggt"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC-vistfang"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Tengi fyrir staðgengilnetþjón"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Frábært"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Gott"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Skanna"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi net"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Verið er að aftengja..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Breytileg IP-tala"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Engir APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Gerð öryggis"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Ósýnilegt net"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Slekk á Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Verið er að leita..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Velja símkerfi"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP-aðferð"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Vistfang gáttar"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Rita aðgangsorð"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA-skírteini"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Ótilgreint"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Notandavottorð"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Auðkenni"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Nafnlaust"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Sláðu inn auðkenni"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Sláðu inn nafnlaust auðkenni"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Tilgreina lykilorð"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Sýna lykilorð"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Vistfang staðgengilsnetþjóns"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Styrkleiki merkis"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gátt"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Slekk..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Ekkert öryggi"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Velja símkerfi"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Lítill"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS til staðar"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Sæki IP-tölu..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Stöð"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Tilkynna um opið kerfi"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Bæta við Wi-Fi neti"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID netkerfis"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Það verður slökkt á sjálfvirkri tengingu við þetta netkerfi. Viltu halda áfram?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "2. stigs sannprófun"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Tengjast"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Ýttu á Nettengingu á Wi-Fi aðgangsstaðnum innan %d mínútna"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Óþekkt"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Tilgreinið SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Aðgangsorð"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Úthlutun"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Nettengingarhnappur"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Finna falið net"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Ýttu á WPS á Wi-Fi aðgangsstaðnum innan 2 mínútna"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Hætta v."
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Sláðu inn þitt auðkenni"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Rita aðgangsorð"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Tilkynna þegar Wi-Fi net finnst"
+
diff --git a/po/it_IT.po b/po/it_IT.po
new file mode 100644
index 0000000..342038f
--- /dev/null
+++ b/po/it_IT.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Connesso"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Connessione..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "IP statico"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Attivazione Wi-Fi in corso"
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Rimuovi"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Indirizzo IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Maschera di sottorete"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Notifica di rete"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Non protetta"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Protetto"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Indirizzo MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Porta"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Eccellente"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Buono"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Scansione"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Reti Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Disconnessione..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "IP dinamico"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Nessuna rete Wi-Fi"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Tipo protezione"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Rete nascosta"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Disattivazione Wi-Fi in corso"
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Ricerca..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Selezione rete"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Metodo EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Indirizzo gateway"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Inserisci password"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certificato CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Non specificato"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Certific. utente"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identità"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Identità anonima"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Inserisci identità"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Inserisci identità anonima"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Inserisci password"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Mostra password"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Indirizzo proxy"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Potenza del segnale"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Disattivazione..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Nessuna protezione"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Selezione rete"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Debole"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "Disponibile WPS"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Ottenimento indirizzo IP in corso..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Canale"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Notifica reti Wi-Fi disponibili"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Aggiungi rete Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID di rete"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "La connessione automatica a questa rete sarà disattivata. Continuare?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Autenticazione fase 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Connetti"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Premere WPS sul punto di accesso Wi-Fi entro %d minuti"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Sconosciuto"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Inserisci SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Password"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Provisioning"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Connessione tasto WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Trova rete nascosta"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Premi WPS sul punto di accesso Wi-Fi entro 2 minuti"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Annulla"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Inserisci l'identità"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Inserisci password"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Notifica al rilevamento della rete Wi-Fi"
+
diff --git a/po/ja_JP.po b/po/ja_JP.po
new file mode 100644
index 0000000..ee2d05f
--- /dev/null
+++ b/po/ja_JP.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "接続しました。"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "接続中..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "静的​IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi​を​起動中..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "切断"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP​アドレス"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "サブネット​マスク"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "ネットワーク​通知"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "オープン"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "セキュリティ保護"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC​アドレス"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "プロキシ​ポート"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "とても​良い"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "強"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "スキャン"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi​ネットワーク"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "切断中..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "ダイナミックIP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "APs​が​ありません。"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "セキュリティタイプ"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "非表示​ネットワーク"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi​を​無効​に​して​います..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "検索中..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "ネットワーク​を​選択​"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP​方法"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "ゲートウェイ​アドレス"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "パスワード​を​入力"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA​証明書"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "設定なし"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "ユーザー​証明書"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "ID"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "匿名​ID"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "ID​を​入力"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "匿名​ID​を​入力"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "パスワード​を​入力"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "パスワード​を​表示"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "プロキシ​アドレス"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "電波​強度"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "ゲートウェイ"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "解除​中..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "セキュリティ保護なし"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "ネットワーク​を​選択"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "弱い"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS利用可能"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "IPアドレスを取得中..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "チャンネル"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "オープンネットワークが利用できる時に通知"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Wi-Fiネットワークを追加"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "ネットワークSSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "この​ネットワーク​への​自動接続​を​無効​に​します。​続行​しますか?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "フェーズ2​認証"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "接続"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "%d分​以内​に​Wi-Fi​アクセス​ポイント​の​WPS​ボタン​を​押して​ください。"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "不明"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "SSID​を​入力​"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "パスワード"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "プロビジョニング"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS​ボタン​接続"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "非表示​ネットワーク​を​検索"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "2分以内にWi-FiアクセスポイントのWPSボタンを押してください。"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "キャンセル"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "あなた​の​ID​を​入力"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "パスワード​を​入力"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Wi-Fi​ネット​ワーク​を​検出​する​と​通知"
+
diff --git a/po/ka.po b/po/ka.po
new file mode 100644
index 0000000..102e610
--- /dev/null
+++ b/po/ka.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "დაკავშირებულია"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "უკავშირდება..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "სტატიკური IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "აქტიურდება Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "დავიწყება"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP მისამართი"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "ქვექსელის ნიღაბი"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "ქსელის შეტყობინება"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "გახსნა"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "დაცული"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC მისამართი"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "პროქსი სერვერის პორტი"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "ბრწყინვალეა"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "კარგი"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "სკანირება"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi ქსელები"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "გამორთვა..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "დინამიკური IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "APs არ არის"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "დაცვის ტიპი"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "დაფარული ქსელი"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "თავიდან აქტიურდება Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "იძებნება..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "ქსელის შერჩევა"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP მეთოდი"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "გასასვლელის მისამართი"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "პაროლის შეყვანა"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA სერთიფიკატი"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "დაუზუსტებელი"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "მომხ. სერთიფიკატი"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "პირადობა"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "ანონიმური პირადობა"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "შეიყვანეთ საიდენტიფიკაციო ინფორმაცია"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "შეიყვანეთ ანონიმური საიდენტიფიკაციო ინფორმაცია"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "ჩაწერეთ პაროლი"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "გამოჩნდეს პაროლი"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "პროქსი სერვერის მისამართი"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "სიგნალის სიძლიერე"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "გასასვლელი"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "გამორთვა..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "არაა უსაფრთხო"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "ქსელის შერჩევა"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "სუსტი"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS მისაწვდომია"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "მიმდინარეობს IP მისამართის მიღება..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "არხი"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "მსურს მივიღო შეტყობინება, როცა ღია ქსელი მისაწვდომი იქნება"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Wi-Fi ქსელის დამატება"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID ქსელი"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "ამ ქსელთან ავტომატური დაკავშირება გამოირთვება. განაგრძობთ?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "ფაზა 2-ის ავტორიზაცია"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "დაკავშირება"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "მაქსიმუმ %d წუთში დააჭირეთ WPS–ს თქვენი Wi-Fi წვდომის წერტილზე"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "უცნობი"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "SSID შეტანა"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "პაროლი"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "მომზადება"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS ღილაკით დაკავშირება"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "ფარული ქსელის ძებნა"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "მაქსიმუმ 2 წუთში დააჭირეთ WPS-ს თქვენს Wi-Fi წვდომის წერტილზე"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "გაუქმება"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "შეიყვანეთ თქვენი საიდენტიფიკაციო ინფორმაცია"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "პაროლის შეყვანა"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "შეტყობინება მოვიდეს, როდესაც მოიძებნება Wi-Fi ქსელი"
+
diff --git a/po/kk.po b/po/kk.po
new file mode 100644
index 0000000..9e6300f
--- /dev/null
+++ b/po/kk.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Қосылды"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Қосылуда..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Статикалық IP-мекен-жай"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi белсендірілуде..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Ұмыту"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP-мекен-жай"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Бағыныңқы желі енгізу бүркеніші"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Желілік мәлімдеме"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Ашу"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Қауіпсіз"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC мекенжайы"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Порт прокси"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Өте жақсы"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Жақсы"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Қарап шығу"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi желілері"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Ажырату"
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Динамикалық IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Ешқандай APs жоқ"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Қорғаныс түрі"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Жасырын желі"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi сөндірілуде..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Іздеуде...."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Желі таңдау"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP әдісі"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Ену нүктесінің адресі"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Кілтсөз енгізіңіз"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA Сертификаты"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Анықталмаған"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Пайдал-шы куәлігі"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Тұлғалық"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Анонимді тұлғалық"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Идентификаторды енгізу"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Анонимді идентификаторды енгізу"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Құпиясөз енгізу"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Құпиясөзді көрсету"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Прокси адресі"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Дабыл күші"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Өшірілуде.."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Қауіпсіздік жоқ"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Желі таңдау"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Әлсіз"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS қол жетімді"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "IP мекенжайы алынуда..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Арна"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Ашық желі қол жетімді болғанда маған хабарлаңыз"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Wi-Fi желісін қосу"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Желілік SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Бұл желіге автоматты қосылу өшіріледі. Жалғастыру керек пе?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "2-кезең аутентификациясы"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Қосу"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Wi-Fi қатынас нүктесіндегі WPS пернесін %d минут ішінде басыңыз"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Белгісіз"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "SSID нөмірін енгізу"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Кілтсөз"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Қамтамасыз ету"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS түймесімен қосылу"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Жасырын желіні табу"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Wi-Fi кіру нүктесіндегі WPS пернесін 2 минут ішінде басыңыз"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Тоқтату"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Идентификаторды енгізу"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Кілтсөз енгізіңіз"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Wi-Fi желісі табылғанда хабарлау"
+
diff --git a/po/ko_KR.po b/po/ko_KR.po
new file mode 100644
index 0000000..42e9be4
--- /dev/null
+++ b/po/ko_KR.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "연결되었습니다"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "연결 중..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "고정 IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi 실행 중..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "저장 안 함"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP 주소"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "서브넷 마스크"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "네트워크 알림"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "공개"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "보안"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC 주소"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "프록시 포트"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "매우 좋음"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "좋음"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "검색"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi 네트워크"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "연결을 끊는 중..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "유동 IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "APs가 없습니다"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "보안 형식"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "허용되지 않은 네트워크"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi 연결을 끊는 중..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "검색 중..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "네트워크를 선택하세요"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP 방식"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "게이트웨이 주소"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "비밀번호를 입력하세요"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA 인증서"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "설정 안 함"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "사용자 인증서"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "ID"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "익명 ID"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "ID를 입력하세요"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "익명 ID를 입력하세요"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "비밀번호를 입력하세요"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "비밀번호 표시"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "프록시 주소"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "신호 세기"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "게이트웨이"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "해제 중..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "보안기능 없음"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "네트워크 선택"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "약함"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS 사용 가능"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "IP 주소 불러오는 중..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "채널"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "공개 네트워크를 사용할 수 있을 때 알려줍니다"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Wi-Fi 네트워크 추가"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "네트워크 SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "이 네트워크로 자동 연결이 해제됩니다. 계속할까요?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "2단계 인증"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "연결"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Wi-Fi 액세스 포인트에서 %d분 안에 WPS 버튼을 누르세요"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "알 수 없음"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "SSID를 입력하세요"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "비밀번호"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "설정 준비"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS 버튼 연결"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "숨겨진 네트워크 검색"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Wi-Fi 액세스 포인트에서 WPS 버튼을 2분 안에 누르세요"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "취소"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "ID를 입력하세요"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "비밀번호를 입력하세요"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Wi-Fi 네트워크가 검색되면 알려줍니다"
+
diff --git a/po/lt.po b/po/lt.po
new file mode 100644
index 0000000..01dcd9c
--- /dev/null
+++ b/po/lt.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Prisijungta"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Jungiamasi..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statinis IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Aktyvinama „Wi-Fi“..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Pamiršti"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP adresas"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Potinklio maskuotė"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "1 DNS"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "2 DNS"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Tinklo pranešimas"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Atidaryti"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Apsaugota"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC adresas"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proxy prievadas"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Puiku"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Geras"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Skenuoti"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "„Wi-Fi“ tinklai"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Atjungiama..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dinaminis IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Nėra APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Saugos tipas"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Paslėptasis tinklas"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Išjungiama „Wi-Fi“..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Ieškoma..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Rinktis tinklą"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP būdas"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Šliuzo adresas"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Įvesti slaptažodį"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA sertifikatas"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Nenurodytas"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Naud. sertifik."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Tapatybė"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonimas"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Įveskite tapatybę"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Įveskite anonimišką tapatybę"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Įveskite slaptažodį"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Rodyti slaptažodį"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proxy serverio adresas"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Signalo stiprumas"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Šliuzas"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Išjungiama..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Nėra apsaugos"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Rinktis tinklą"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Silpnas"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "Prieinamas WPS"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Gaunamas IP adresas..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanalas"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Pranešti man, kai atsiras atviras tinklas"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Pridėti „Wi-Fi“ tinklą"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Tinklo SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automatinis jungimasis prie šio tinklo bus išjungtas. Tęsti?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "2 fazės patvirtinimas"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Jungtis"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Paspauskite WPS mygtuką „Wi-Fi“ prieigos taške per %d min."
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Nežinomas"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Įvesti SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Slaptažodis"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Teikimas"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS mygtuko ryšys"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Rasti paslėptą tinklą"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Per 2 min. paspauskite WPS mygtuką „Wi-Fi“ prieigos taške"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Atšaukti"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Įveskite savo tapatybę"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Įvesti slaptažodį"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Pranešti aptikus „Wi-Fi“ tinklą"
+
diff --git a/po/lv.po b/po/lv.po
new file mode 100644
index 0000000..56e7db9
--- /dev/null
+++ b/po/lv.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Savienots"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Savieno..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statiska IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Aktivizē Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Aizmirst"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP adrese"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Apakštīkla maska"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Tīkla paziņojums"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Atvērt"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Aizsargāts"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC adrese"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Starpniekservera ports"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Izcili"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Labs"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Meklēt"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi tīkli"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Atvieno..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dinamiskais IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Nav APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Drošības veids"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Paslēpts tīkls"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Deaktivizē Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Meklē..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Izvēlieties tīklu"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP metode"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Vārtejas adrese"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Ievadiet paroli"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA sertifikāts"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Nav norādīts"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Liet.sertifikāts"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identitāte"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonīma identitāte"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Ievadiet identitāti"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Ievadiet anonīmu identitāti"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Ievadīt paroli"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Rādīt paroli"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Starpniekservera adrese"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Signāla stiprums"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Vārteja"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Deaktivizē..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Bez drošības"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Izvēlieties tīklu"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Vājš"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS ir pieejams"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Iegūst IP adresi..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanāls"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Brīdināt mani, ja ir pieejams atvērtais tīkls"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Pievienot Wi-Fi tīklu"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Tīkla SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automātiskais savienojums ar šo tīklu tiks deaktivizēts. Vai turpināt?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "2. fāzes autentifikācija"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Savienot"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "%d minūšu laikā uz Wi-Fi piekļuves punkta nospiediet WPS"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Nezināms"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Ievadiet SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Parole"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Nodrošināšana"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS pogas savienojums"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Atrast slēptu tīklu"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "2 minūšu laikā Wi-Fi piekļuves punktā nospiediet WPS"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Atcelt"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Ievadiet savu identitāti"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Ievadiet paroli"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Paziņot, kad ir atrasts Wi-Fi tīkls"
+
diff --git a/po/mk.po b/po/mk.po
new file mode 100644
index 0000000..a4a9efe
--- /dev/null
+++ b/po/mk.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Поврзано"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Поврзување..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Статичен IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Се активира Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Заборави"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP адреса"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Подмрежна маска"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Мрежно известување"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Отвори"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Обезбедено"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC-адреса"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Порт за прокси"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Одлично"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Добро"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Скенирај"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Мрежи Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Врската се прекинува..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Динамичен IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Нема APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Тип на сигурност"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Скриена мрежа"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Се исклучува Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Пребарување..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Избери мрежа"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Начин за EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Адреса на порта"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Внесете лозинка"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA сертификат"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Неодредено"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Кор. сертификат"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Идентитет"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Анонимен идентитет"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Внесете идентитет"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Внесете анонимен идентитет"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Внесете лозинка"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Прикажи лозинка"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Адреса на прокси"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Јачина на сигналот"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Порта"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Се исклучува..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Без сигурност"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Избери мрежа"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Слаб"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "Достапно е WPS"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Се добива IP-адреса..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Станица"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Извести ме кога е достапна отворена мрежа"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Додај мрежа Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Мрежен SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Автоматското поврзување со оваа мрежа ќе се исклучи. Продолжи?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Потврдување, 2 фаза"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Поврзи"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Притиснете WPS на пристапната точка за Wi-Fi во рок од %d минути"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Непознато"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Внесете SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Лозинка"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Пружање"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Поврзување со копче WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Најди скриена мрежа"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Притиснете WPS на пристапната точка за Wi-Fi во рок од 2 минути"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Откажи"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Внесете го својот идентитет"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Внесете лозинка"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Извести ме кога ќе се најде Wi-Fi мрежа"
+
diff --git a/po/nb.po b/po/nb.po
new file mode 100644
index 0000000..178221e
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Tilkoblet"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Kobler til..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statisk IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Aktiverer Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Glem"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP-adresse"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Subnettmaske"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Nettverksvarsel"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Åpen"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Sikret"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC-adresse"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proxy-port"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Supert"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "God"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Skann"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi-nettverk"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Kobler fra..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dynamisk IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Ingen AP-er"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Sikkerhetstype"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Skjult nettverk"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Deaktiverer Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Søker..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Velg nettverk"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP-metode"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Gateway-adresse"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Angi passord"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA-sertifikat"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Uspesifisert"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Brukersertifikat"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identitet"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonym identitet"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Angi identitet"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Angi anonym identitet"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Skriv inn passord"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Vis passord"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proxy-adresse"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Signalstyrke"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Deaktiverer..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Ingen sikkerhet"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Velg nettverk"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Svak"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS tilgjengelig"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Henter IP-adresse..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Varsle meg når et åpent nettverk er tilgjengelig"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Legg til Wi-Fi-nettverk"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Nettverks-SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automatisk tilkobling til dette nettverket vil bli deaktivert. Fortsette?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Fase 2 godkjenning"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Koble til"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Trykk på WPS på Wi-Fi-tilgangspunktet innen %d minutter"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Ukjent"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Angi SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Passord"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Tilgang"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS-knapptilkobling"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Finn skjult nettverk"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Trykk på WPS på Wi-Fi-tilgangspunktet innen 2 minutter"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Angi din identitet"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Angi passord"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Varsle når Wi-Fi-nettverk blir funnet"
+
diff --git a/po/nl_NL.po b/po/nl_NL.po
new file mode 100644
index 0000000..5d01ffb
--- /dev/null
+++ b/po/nl_NL.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Verbonden"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Verbinden..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Vast IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi activeren..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Vergeten"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP-adres"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Subnetmasker"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Netwerkmelding"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Open"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Beveiligd"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC-adres"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Poort proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Uitstekend"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Goed"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Scannen"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi-netwerken"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Verbinding verbreken..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dynamische IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Geen AP’s"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Beveiligingstype"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Verborgen netwerk"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi deactiveren..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Zoeken..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Netwerk kiezen"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP-methode"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Gateway-adres"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Wachtwoord invoeren"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA-certificaat"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Niet-gespecificeerd"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Gebr.certificaat"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identiteit"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonieme identiteit"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Identiteit opgeven"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Anonieme identiteit opgeven"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Wachtwoord ingeven"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Wachtwoord tonen"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proxyadres"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Signaalsterkte"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Uitschakelen..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Geen beveiliging"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Netwerk kiezen"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Zwak"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS beschikbaar"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "IP-adres ophalen..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanaal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Melden wanneer open netwerk beschikbaar is"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Wi-Fi-netwerk toevoegen"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Netwerk-SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automatische verbinding met dit netwerk wordt uitgeschakeld. Doorgaan?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Verificatie fase 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Verbinden"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Druk binnen %d minuten op WPS op uw Wi-Fi-toegangspunt"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Onbekend"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Geef SSID in"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Wachtwoord"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Voorziening"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Verbinding WPS-knop"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Verborgen netwerk zoeken"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Druk binnen 2 minuten op WPS op uw Wi-Fi-toegangspunt"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Annuleer"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Uw identiteit opgeven"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Wachtwoord invoeren"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Melden wanneer een Wi-Fi-netwerk is gevonden"
+
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 0000000..1861578
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Połączono"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Łączenie..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statyczny adres IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Włączanie Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Zapomnij"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Adres IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Maska podsieci"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Powiadomienie o sieci"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Otwarta"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Zabezpieczona"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Adres MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Port serwera proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Doskonale"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Dobry"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Skanuj"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Sieci Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Rozłączanie..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dynamiczny adres IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Brak APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Typ zabezpieczeń"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Ukryta sieć"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wyłączanie Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Wyszukiwanie..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Wybór sieci"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Metoda EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Adres bramy"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Wpisz hasło"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certyfikat CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Nieokreślony"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Certyfikat użytk."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Tożsamość"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Tożsamość anonimowa"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Wprowadź tożsamość"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Wprowadź tożsamość anonimową"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Wprowadź hasło"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Wyświetl hasło"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Adres serwera proxy"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Moc sygnału"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Brama"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Wyłączanie..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Brak zabezpieczeń"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Wybór sieci"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Słaba"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "Funkcja WPS dostępna"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Uzyskiwanie adresu IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanał"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Powiadamiaj o dostępności otwartej sieci"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Dodaj sieć Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID sieci"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automatyczne połączenie z tą siecią zostanie wyłączone. Kontynuować?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Etap 2 uwierzytelniania"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Połącz"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Naciśnij przycisk WPS punktu dostępu do sieci Wi-Fi w ciągu %d minut"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Nieznana"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Podaj numer SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Hasło"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Zastrzeganie"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Autom. łączenie WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Znajdź ukrytą sieć"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Naciśnij przycisk WPS punktu dostępu do sieci Wi-Fi w ciągu 2 min"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Anuluj"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Wprowadź swoją tożsamość"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Wpisz hasło"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Powiadamiaj o znalezieniu sieci Wi-Fi"
+
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644
index 0000000..735729e
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Conectado"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Conectando..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "IP fixo"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Ativando Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Esquecer"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Endereço IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Máscara de subrede"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Notificação de rede"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Aberta"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Protegida"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Endereço MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Porta do proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Excelente"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Bom"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Pesquisar"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Redes Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Desconectando..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "IP dinâmico"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Nenhum APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Tipo de segurança"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Rede oculta"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Desativando Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Procurando..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Selecione rede"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Método EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Endereço do gateway"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Insira senha"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certificado de CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Não especificado"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Certif. utilizad."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identidade"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Identidade anônima"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Inserir identidade"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Inserir identidade anônima"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Senha de entrada"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Exibir senha"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Endereço proxy"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Potência do sinal"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Desativando…"
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Sem segurança"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Selecione rede"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Fraco"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS disponível"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Obtendo endereço IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Canal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Notificar-me quando estiver disponível uma rede aberta"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Adicionar rede Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID de rede"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "A conexão automática a esta rede será desativada. Continuar?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Autenticação de fase de 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Conectar"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Pressione WPS no seu ponto de acesso Wi-Fi dentro de %d minutos"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Inserir SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Senha"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Provisionamento"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Conexão de botão WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Localizar rede oculta"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Pressione o botão WPS em seu ponto de acesso Wi-Fi dentro de 2 minutos"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Inserir sua identidade"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Insira senha"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Notifique quando uma rede Wi-Fi é encontrada"
+
diff --git a/po/pt_PT.po b/po/pt_PT.po
new file mode 100644
index 0000000..ca6a1a7
--- /dev/null
+++ b/po/pt_PT.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Ligado"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "A ligar..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "IP estático"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "A activar Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Esquecer"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Endereço IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Máscara de sub-rede"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Notificação de rede"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Aberta"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Seguro"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Endereço MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Porta de proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Excelente"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Bom"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Procurar dispositivos"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Redes Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "A desligar..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "IP dinâmico"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Nenhuns APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Tipo de segurança"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Rede oculta"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "A desactivar Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "A procurar..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Seleccionar rede"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Método EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Endereço de gateway"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Introduzir palavra-passe"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certificado de CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Não especificado"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Certif. utilizad."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identidade"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Identidade anónima"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Introduzir identidade"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Introduzir identidade anónima"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Introduzir palavra-passe"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Mostrar palavra-passe"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Endereço proxy"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Potência do sinal"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "A desactivar..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Sem segurança"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Seleccionar rede"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Fraca"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS disponível"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "A obter endereço IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Canal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Notificar-me quando estiver disponível uma rede aberta"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Adicionar rede Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID de rede"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "A ligação automática a esta rede será desactivada. Continuar?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Autenticação de fase 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Ligar"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Prima WPS no seu ponto de acesso Wi-Fi dentro de %d minutos"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Desconhecido"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Introduzir SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Palavra-passe"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Aprovisionamento"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Ligação de botão WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Localizar rede oculta"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Prima WPS no seu ponto de acesso Wi-Fi dentro de 2 minutos"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Introduza a sua identidade"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Introduzir palavra-passe"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Notificar quando for encontrada rede Wi-Fi"
+
diff --git a/po/ro.po b/po/ro.po
new file mode 100644
index 0000000..eee73f6
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Conectat"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Conectare"
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "IP static"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Se activează Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Revocare"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Adresă IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Mască subreţea"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Notificare reţea"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Deschidere"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Securizat"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Adresă MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Port proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Excelent"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Bun"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Căutare"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Reţele Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Deconectare"
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Adresă IP dinamică"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Niciun AP"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Tip de securitate"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Reţea ascunsă"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Se dezactivează Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Căutare..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Selectare reţea"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Metodă EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Adresă gateway"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Introduceţi parola"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certificat CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Nespecificat"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Certif. utiliz."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identitate"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Identitate anonimă"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Introducere identitate"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Introducere identitate anonimă"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Introduceţi parola"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Afişare parolă"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Adresă proxy"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Putere semnal"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Dezactivare..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Fără securitate"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Selectare reţea"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Slabă"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS disponibil"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Se obţine adresa IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Canal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Notificare disponibilitate reţea deschisă"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Adăugare reţea Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID reţea"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Va fi dezactivată conectarea automată la această reţea. Continuaţi?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Autentificare în faza 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Conectare"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Apăsaţi pe WPS pe punctul dvs. de acces Wi-Fi în interval de %d minute"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Necunoscut"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Introducere SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Parolă"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Asigurare acces"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Buton conexiune WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Găsire reţea ascunsă"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Apăsaţi pe WPS pe punctul de acces Wi-Fi în interval de 2 minute"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Anulare"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Introduceţi identitatea dvs."
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Introduceţi parola"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Notificare la găsirea reţelei Wi-Fi"
+
diff --git a/po/ru_RU.po b/po/ru_RU.po
new file mode 100644
index 0000000..47efe45
--- /dev/null
+++ b/po/ru_RU.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Подключено"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Подключение..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Статический IP-адрес"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Активация Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Забыть"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP-адрес"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Маска подсети"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Уведомление о сетях"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Открытый"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Защищенная"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC-адрес"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Порт прокси"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Супер"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Хороший"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Поиск"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Сети Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Отключение..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Динамический IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Нет точек доступа"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Тип защиты"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Скрытая сеть"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Выключение Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Поиск..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Выбор сети"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Метод EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Адрес шлюза"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Введите пароль"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Сертификат"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Не указано"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Сертиф. пользов."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Удостоверение"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Анонимный пользователь"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Введите удостоверение"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Введите анонимное удостоверение"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Введите пароль"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Показать пароль"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Адрес прокси"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Уровень сигнала"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Шлюз"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Выключение..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Нет защиты"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Выбор сети"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Слабый"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "Доступен протокол WPS"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Получение IP-адреса..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Канал"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Уведомлять при наличии общедоступной сети"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Добавить сеть Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID сети"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Автоматическое подключение к этой сети будет отключено. Продолжить?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Проверка подлинности этапа 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Подключиться"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Нажмите кнопку WPS на точке доступа Wi-Fi в течение %d мин."
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Неизвестно"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Введите SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Пароль"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Подготовка"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Подключение кнопки WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Найти скрытую сеть"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Нажмите кнопку WPS на точке доступа Wi-Fi в течение 2 мин"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Отмена"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Введите свое удостоверение"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Введите пароль"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Уведомлять об обнаружении сети Wi-Fi"
+
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 0000000..3d98a13
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Pripojené"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Pripájanie..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Pevná adresa IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Aktivuje sa Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Zabudnúť"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "Adresa IP"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Maska podsiete"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Sieťové oznámenie"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Otvoriť"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Zabezpečené"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Adresa MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Port proxy servera"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Výborné"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Dobrý"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Vyhľadať"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Siete Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Odpájanie..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dynamická IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Žiadne prístupové body"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Typ zabezpečenia"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Skrytá sieť"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Deaktivuje sa Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Hľadanie..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Vybrať sieť"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Metóda EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Adresa brány"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Zadajte heslo"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certifikát certifikačného úradu"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Nešpecifik."
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Použ. certifikát"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identita"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonymná identita"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Zadajte identitu"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Zadajte anonymnú identitu"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Zadajte heslo"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Zobraziť heslo"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Adresa proxy"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Intenzita signálu"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Brána"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Deaktivácia..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Žiadne zabezpečenie"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Vybrať sieť"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Slabá"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS je k dispozícii"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Získava sa adresa IP..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanál"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Upozorniť pri dostupnosti otvorenej siete"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Pridať sieť Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID siete"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automatické pripojenie na túto sieť bude zakázané. Pokračovať?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Overovanie fázy 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Pripojiť"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Do %d minút stlačte tlačidlo WPS na prístupovom bode Wi-Fi"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Neznáme"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Zadajte SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Heslo"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Poskytovanie prístupu"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Pripojenie tlačidlom WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Hľadať skrytú sieť"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Do 2 minút stlačte tlačidlo WPS na prístupovom bode Wi-Fi"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Zrušiť"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Zadajte vašu identitu"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Zadajte heslo"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Oznámiť, keď sa nájde sieť Wi-Fi"
+
diff --git a/po/sl.po b/po/sl.po
new file mode 100644
index 0000000..1ba80f2
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Povezano"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Povezujem..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statični IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Vklapljanje Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Pozabi"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP naslov"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Maska podomrežja"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Obvestilo o omrežju"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Odprto omrežje"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Zaščiteno"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "Naslov MAC"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Vrata strežnika proxy"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Čudovito"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Dober"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Preišči"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Omrežja Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Prekinjam"
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dinamični IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Brez Aps"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Vrsta zaščite"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Skrito omrežje"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Izklapljanje Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Iščem"
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Izberi omrežje"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Način EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Naslov prehoda"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Vnesite geslo"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Certifikat CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Ni določeno"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Uporab.certifikat"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identiteta"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonimna identiteta"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Vnesite identiteto"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Vnesite anonimno identiteto"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Vnesite geslo"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Prikaži geslo"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Naslov strežnika proxy"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Moč signala"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Prehod"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Izključujem..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Ni zaščite"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Izberi omrežje"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Šibko"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS je na voljo"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Pridobivanje naslova IP ..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Obvesti me, ko bo na voljo odprto omrežje"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Dodaj omrežje Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID omrežja"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Samodejna povezava v to omrežje bo onemogočena. Nadaljujem?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Faza 2 overitve"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Poveži"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Pritisnite WPS na dostopni točki Wi-Fi v %d minutah"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Neznano"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Vnesite SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Geslo"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Omogočanje uporabe"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "Povezava gumba WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Poišči skrito omrežje"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Pritisnite WPS na dostopni točki Wi-Fi v 2 minutah"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Prekliči"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Vnesite svojo identiteto"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Vnesite geslo"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Obvestilo, ko je najdeno omrežje Wi-Fi"
+
diff --git a/po/sr.po b/po/sr.po
new file mode 100644
index 0000000..8e3f722
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Povezan"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Povezivanje..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statička IP adresa"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Aktivira se Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Zaboravi"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP adresa"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Maska podmreže"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Obaveštenje putem mreže"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Otvori"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Obezbeđeno"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC adresa"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Port proksija"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Odlično"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Dobar"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Skeniraj"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi mreže"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Prekidanje veze..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dinamička IP adresa"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Nema pristupnih tačaka"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Tip bezbednosti"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Skrivena mreža"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Deaktivira se Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Pretraga..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Izaberi mrežu"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP način"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Adresa mrežnog prolaza"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Unesi šifru"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA sertifikat"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Neodređeno"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Korisnički sert."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identitet"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonimnost"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Unesi identitet"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Unesi anonimnost"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Unesi šifru"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Prikaži šifru"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Adresa proksija"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Jačina signala"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Mrežni prolaz"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Deaktivacija..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Nema bezbednosti"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Izaberi mrežu"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Slabo"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS je dostupan"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Pribavljanje IP adrese..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Obavesti me kada bude dostupna neka otvorena mreža"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Dodaj Wi-Fi mrežu"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID mreže"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automatsko priključivanje na ovu mrežu će biti onemogućeno. Nastavak?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Autentikacija faze 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Poveži se"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Pritisni WPS dugme na Wi-Fi pristupnoj tački u roku od %d minuta"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Nepoznato"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Unesi SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Šifra"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Pribavljanje"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS dugme veza"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Nađi skrivenu mrežu"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Pritisni WPS dugme na Wi-Fi pristupnoj tački u roku od 2 minuta"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Poništi"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Unesi svoj identitet"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Unesi šifru"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Obavesti me kada se pronađe Wi-Fi mreža"
+
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..f9388f4
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Ansluten"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Ansluter..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statisk IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Aktiverar Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Glöm"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP-adress"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Nätmask"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Nätverksmeddelande"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Öppen"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Skyddad"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC-adress"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proxyport"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Utmärkt"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Bra"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Sök"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi-nätverk"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Kopplar från..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dynamisk IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Inga APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Säkerhetstyp"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Dolt nät"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Avaktiverar Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Söker..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Välj nät"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP-metod"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Gateway-adress"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Ange lösenord"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA-certifikat"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Ospecificerad"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Användarcert."
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identitet"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonym identitet"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Ange identitet"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Ange anonym identitet"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Ange lösenord"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Visa lösenord"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proxy-adress"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Signalstyrka"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Gateway"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Deaktiverar..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Ingen säkerhet"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Välj nätverk"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Svag"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS är tillgängligt"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Hämtar IP-adress..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Meddela mig när ett öppet nätverk är tillgängligt"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Lägg till Wi-Fi-nätverk"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Nätverks-SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Automatisk anslutning till det här nätverket avaktiveras. Fortsätta?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Fas 2-autentisering"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Anslut"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Tryck på WPS på Wi-Fi-åtkomstpunkten inom %d minuter"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Okänd"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Ange SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Lösenord"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Åtkomst"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS-knappsanslutning"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Hitta dolt nätverk"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Tryck på WPS på Wi-Fi-åtkomstpunkten inom 2 minuter"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Ange din identitet"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Ange lösenord"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Meddela mig när ett Wi-Fi-nätverk hittats"
+
diff --git a/po/tr_TR.po b/po/tr_TR.po
new file mode 100644
index 0000000..ba5106a
--- /dev/null
+++ b/po/tr_TR.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Bağlantı kuruldu"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Bağlanılıyor..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statik IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi etkinleştiriliyor..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Unut"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP adresi"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Alt ağ maskesi"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Ağ bildirimi"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Aç"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Güvenli"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC adresi"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proxy portu"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Harika..!!"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "İyi"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Tara"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi ağları"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Bağlantı kesiliyor..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dinamik IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "AP Yok"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Güvenlik tipi"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Gizli ağ"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi devre dışı bırakılıyor..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Aranıyor..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Şebeke seçimi"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP yöntemi"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Ağ geçidi adresi"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Şifreyi girin"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA Sertifika"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Belirsiz"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Kullanıcı srtfksı"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Kimlik"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "İsimsiz kimlik"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Kimlik girin"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "İsimsiz kimlik girin"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Şifre giriniz"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Parolayı göster"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proxy adresi"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Sinyal kuvveti"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Ağ geçidi"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Devreden çıkartılıyor..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Güvenlik yok"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Şebeke seçimi"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Zayıf"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS uygun"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "IP adresi alınıyor..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Açık ağ mevcut olduğunda bana bildir"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Wi-Fi ağı ekle"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "SSID Ağı"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Bu ağa otomatik bağlantı devre dışı bırakılacak. Devam edilsin mi?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Faz 2 yetkilendirmesi"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Bağlan"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "%d dakika içinde Wi-Fi erişim noktanızdaki WPS düğmesine basın"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Bilinmeyen"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "SSID girin"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Şifre"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Hazırlanıyor"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS düğmesi bağlantısı"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Gizli ağ bul"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "2 dakika içinde Wi-Fi erişim noktanızdaki WPS düğmesine basın"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "İptal"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Kimliğinizi girin"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Şifreyi girin"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Wi-Fi ağı bulunduğunda bildir"
+
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 0000000..a408ce9
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "З'єднано"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "З'єднання..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Статична IP-адреса"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Активація Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Забути"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP-адреса"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Маска підмережі"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Сповіщення мережі"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Відкрита"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Захищені"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC-адреса"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Порт проксі"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "Відмінно"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Хороший"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Сканувати"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Мережі Wi-Fi"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Роз'єднання..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Динамічна IP-адреса"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "Немає APs"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Тип захисту"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Прихована мережа"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Деактивація Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Пошук..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Вибрати мережу"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "Метод EAP"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Адреса шлюзу"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Введіть пароль"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "Сертифікат CA"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Не визначено"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "Серт. користувача"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Ідентифікація"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Анонімна ідентифікація"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Введіть ідентифікатор"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Введіть анонімний ідентифікатор"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Введіть пароль"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Показати пароль"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Адреса проксі"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Потужність сигналу"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Шлюз"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "Деактивація..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Немає безпеки"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Вибрати мережу"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Слабкий"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS доступно"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "Отримання IP-адреси..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Канал"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Сповістити про доступність відкритої мережі"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Додати мережу Wi-Fi"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Мережа SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Автоматичне підключення до цієї мережі буде вимкнено. Продовжити?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Аутентифікація фази 2"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "З'єднати"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Натисніть кнопку WPS на точці доступу Wi-Fi протягом %d хвилин"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Невідомо"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "Ввести SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Пароль"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Підготовка"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "З’єднання з використанням кнопки WPS"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Пошук прихованої мережі"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Натисніть кнопку WPS на точці доступу Wi-Fi протягом 2 хвилин"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Скасув."
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Введіть свій ідентифікатор"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Введіть пароль"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Сповіщати в разі знаходження мережі Wi-Fi"
+
diff --git a/po/uz.po b/po/uz.po
new file mode 100644
index 0000000..0e40a55
--- /dev/null
+++ b/po/uz.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "Ulangan"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "Ulanmoqda..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "Statik IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi faollashtirilmoqda..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "Unutish"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP-manzil"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "Tagtarmoq maskasi"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "Tarmoq bildirishnomasi"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "Ochish"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "Himoyalangan"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC manzili"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "Proksi porti"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "A’lo"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "Yaxshi"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "Qidirish"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi tarmoqlar"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "Uzilmoqda..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "Dinamik IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "APs yo‘q"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "Xavfsizlik turi"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "Yashirin tarmoq"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "Wi-Fi o‘chirilmoqda..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "Qidirilmoqda..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "Tarmoq tanlang"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP uslub"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "Shluz manzili"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "Parol kiriting"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA sertifikati"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "Aniqlanmagan"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "User certificate"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "Identifikatsiya"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "Anonim identifikatsiya"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "Identifikatsiyani kiriting"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "Anonim identifikatsiyani kiriting"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "Parol kiriting"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "Parol ko‘rsatilsin"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "Proksi manzili"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "Signal quvvati"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "Shluz"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "O‘chirilmoqda..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "Xavfsizlik yo‘q"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "Tarmoq tanlash"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "Kuchsiz"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS mavjud"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "IP-manzillar olinmoqda..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "Kanal"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "Ochiq tarmoqdan foydalanish mumkin bo‘lganda, menga xabar berilsin"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "Wi-Fi tarmoq qo‘shish"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "Tarmoq SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "Ushbu tarmoqqa avtomatik ulanish o‘chiriladi. Davom ettirilsinmi?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "Bosqich 2 tekshiruvi"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "Ulanish"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "Wi-Fi kirishda WPSni %d daqiqa bosib turing"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "Noma’lum"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "SSID kiriting"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "Parol"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "Initsializatsiyalash"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS tugma ulanishi"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "Yashirin tarmoqni topish"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "Wi-Fi kirishda WPSni 2 daqiqa bosib turing"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "Bekor q."
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "Identifikatsiyani kiriting"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "Parol kiriting"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "Wi-Fi tarmoq topilganda, menga yordam berilsin"
+
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644
index 0000000..6add198
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "已连接"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "连接中..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "静态IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "正在激活Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "忘记"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP 地址"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "子网时标"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "网络通知"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "开放"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "安全"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC 地址"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "代理服务器端口"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "棒极了"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "好"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "扫描"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi网络"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "正在断开..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "动态 IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "没有Ap"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "安全类型"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "隐藏的网络"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "正在取消Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "正在搜索"
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "选择网络"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP 方法"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "网关地址"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "输入密码"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA 证书"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "不明确的"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "用户证书"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "身份"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "匿名身份"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "输入 ID"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "输入匿名 ID"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "输入密码"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "显示密码"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "代理服务器地址"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "信号强度"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "网关"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "正在取消..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "不安全"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "选择网络"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "弱"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS可用"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "正在获取 IP 地址…"
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "频道"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "开放网络可用时通知我"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "添加 Wi-Fi 网络"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "网络 SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "自动连接到此网络将被禁用。继续吗?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "阶段2认证"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "连接"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "%d分钟内在Wi-Fi接入点按下WPS钮。"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "输入 SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "密码"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "配置"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS按钮连接"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "寻找隐藏的网络"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "在 2 分钟内按下您 Wi-Fi 接入点上的 WPS"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "输入您的 ID"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "输入密码"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "当找到 Wi-Fi 网络时通知"
+
diff --git a/po/zh_HK.po b/po/zh_HK.po
new file mode 100644
index 0000000..e54fc06
--- /dev/null
+++ b/po/zh_HK.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "已連接"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "連接中..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "靜態 IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "正在啟動 Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "忘記"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP 位址"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "子網絡範圍"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "網絡通知"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "開啟"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "安全"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC 地址"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "代理伺服器端口"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "極佳"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "良好"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "掃描"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi 網絡"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "正在中斷連接..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "動態 IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "沒有接入點"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "安全類型"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "隱藏網絡"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "正在關閉 WiFi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "正在搜尋..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "選擇網絡"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP 方法"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "網關地址"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "輸入密碼"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA 證書"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "未指定"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "用戶證書"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "身份"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "匿名身份"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "輸入身分"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "輸入匿名身分"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "輸入密碼"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "顯示密碼"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "代理伺服器位址"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "訊號強度"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "網關"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "正在關閉..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "不安全"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "選擇網絡"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "弱"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS 可用"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "正在取得 IP 地址..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "頻道"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "有開放網路時通知我"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "新增 WiFi 網絡"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "網絡 SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "自動連接此網絡將會關閉。繼續嗎?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "階段 2 認證"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "連接"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "在%d分鐘內按下Wi-Fi接入點的WPS"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "輸入 SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "密碼"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "配置"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS按鍵連接"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "尋找隱藏網絡"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "請在 2分鐘內按下 Wi-Fi 接入點的 WPS"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "輸入您的身分"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "輸入密碼"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "當找到 Wi-Fi 網絡時通知"
+
diff --git a/po/zh_SG.po b/po/zh_SG.po
new file mode 100644
index 0000000..21864b4
--- /dev/null
+++ b/po/zh_SG.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "已连接"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "连接中…"
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "静止IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "正在激活 Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "忘记"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP地址"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "子网时标"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "网络通知"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "开启文件"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "安全"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC 地址"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "代理服务器端口"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "棒极了"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "好"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "扫描"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi网络"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "正在中断连接…"
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "动态 IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "没有Aps"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "安全类型"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "隐藏的网络"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "正在取消 Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "搜寻中…"
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "选择网络"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP 方法"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "网关地址"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "输入密码"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA 证书"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "不明确的"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "用户证书"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "身份"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "匿名身份"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "输入 ID"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "输入匿名 ID"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "输入密码"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "显示密码"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "代理主机地址"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "信号强度"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "网关"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "取消中…"
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "不安全"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "选择网络"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "弱"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "WPS可用"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "正在获取 IP 地址…"
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "频道"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "开放网络可用时通知我"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "添加 Wi-Fi 网络"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "网络 SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "自动连接到此网络将被禁用。继续吗?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "阶段2认证"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "连接"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "%d分钟内在Wi-Fi接入点按下WPS"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "输入 SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "密码"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "配置"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS按钮连接"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "找到隐藏网络"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "在 2 分钟内按下您 Wi-Fi 接入点上的 WPS"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "输入您的 ID"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "输入密码"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "当找到WLAN网络时通知"
+
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644
index 0000000..fa19b38
--- /dev/null
+++ b/po/zh_TW.po
@@ -0,0 +1,207 @@
+msgid "IDS_WIFI_BODY_CONNECTED"
+msgstr "已連線"
+
+msgid "IDS_WIFI_BODY_CONNECTING_ING"
+msgstr "連線中..."
+
+msgid "IDS_WIFI_BODY_STATIC_IP"
+msgstr "靜態 IP"
+
+msgid "IDS_WIFI_POP_ACTIVATING_WI_FI_ING"
+msgstr "正在啟動 Wi-Fi..."
+
+msgid "IDS_WIFI_SK_FORGET"
+msgstr "清除"
+
+msgid "IDS_WIFI_BODY_IP_ADDRESS"
+msgstr "IP 位址"
+
+msgid "IDS_WIFI_BODY_SUBNET_MASK"
+msgstr "子網路遮罩"
+
+msgid "IDS_WIFI_BODY_DNS_1"
+msgstr "DNS 1"
+
+msgid "IDS_WIFI_BODY_DNS_2"
+msgstr "DNS 2"
+
+msgid "IDS_ST_BODY_NETWORK_NOTIFICATION"
+msgstr "網路通知"
+
+msgid "IDS_WIFI_POP_OPEN"
+msgstr "開啟"
+
+msgid "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY"
+msgstr "安全"
+
+msgid "IDS_WIFI_BODY_MAC_ADDRESS"
+msgstr "MAC 位址"
+
+msgid "IDS_WIFI_BODY_PROXY_PORT"
+msgstr "代理伺服器連接埠"
+
+msgid "IDS_ST_BODY_EXCELLENT"
+msgstr "棒極了"
+
+msgid "IDS_ST_BODY_GOOD_M_STRENGTH"
+msgstr "良好"
+
+msgid "IDS_ST_BODY_SCAN"
+msgstr "掃描"
+
+msgid "IDS_ST_BODY_WI_FI_NETWORKS"
+msgstr "Wi-Fi無線網路"
+
+msgid "IDS_WIFI_BODY_DISCONNECTING_ING"
+msgstr "正在中斷連線..."
+
+msgid "IDS_WIFI_BODY_DYNAMIC_IP"
+msgstr "動態 IP"
+
+msgid "IDS_WIFI_BODY_NO_APS"
+msgstr "沒有接入點"
+
+msgid "IDS_WIFI_BODY_SECURITY_TYPE"
+msgstr "安全性類型"
+
+msgid "IDS_WIFI_HEADER_HIDDEN_NETWORK"
+msgstr "隱藏網路"
+
+msgid "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING"
+msgstr "正在停用 Wi-Fi..."
+
+msgid "IDS_WIFI_POP_SEARCHING_ING"
+msgstr "正在搜尋..."
+
+msgid "IDS_WIFI_POP_SELECT_NETWORK"
+msgstr "選擇網路"
+
+msgid "IDS_WIFI_BODY_EAP_METHOD"
+msgstr "EAP 方法"
+
+msgid "IDS_WIFI_BODY_EAP"
+msgstr "EAP"
+
+msgid "IDS_WIFI_BODY_GATEWAY_ADDRESS"
+msgstr "閘道位址"
+
+msgid "IDS_WIFI_BODY_ENTER_PASSWORD"
+msgstr "輸入密碼"
+
+msgid "IDS_WIFI_BODY_CA_CERTIFICATE"
+msgstr "CA 憑證"
+
+msgid "IDS_WIFI_BODY_UNSPECIFIED"
+msgstr "未指定"
+
+msgid "IDS_WIFI_BODY_USER_CERTIFICATE_ABB"
+msgstr "使用者憑證"
+
+msgid "IDS_WIFI_BODY_IDENTITY"
+msgstr "使用者"
+
+msgid "IDS_WIFI_BODY_ANONYMOUS_IDENTITY"
+msgstr "匿名使用者"
+
+msgid "IDS_WIFI_BODY_ENTER_IDENTITY"
+msgstr "輸入身分"
+
+msgid "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY"
+msgstr "輸入匿名身分"
+
+msgid "IDS_CST_BODY_INPUT_PASSWORD"
+msgstr "輸入密碼"
+
+msgid "IDS_ST_BODY_SHOW_PASSWORD"
+msgstr "顯示密碼"
+
+msgid "IDS_WIFI_HEADER_PROXY_ADDRESS"
+msgstr "代理伺服器位址"
+
+msgid "IDS_WIFI_BODY_SIGNAL_STRENGTH"
+msgstr "訊號強度"
+
+msgid "IDS_WIFI_BODY_GATEWAY"
+msgstr "閘道"
+
+msgid "IDS_WIFI_BODY_SECURITYTYPE_WEP"
+msgstr "WEP"
+
+msgid "IDS_ST_POP_DEACTIVATING_ING"
+msgstr "正在停用..."
+
+msgid "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY"
+msgstr "不設置安全性"
+
+msgid "IDS_WIFI_HEADER_SELECT_NETWORK"
+msgstr "選擇網路"
+
+msgid "IDS_WIFI_BODY_WEAK_M_STRENGTH"
+msgstr "弱"
+
+msgid "IDS_ST_BODY_WPS_AVAILABLE"
+msgstr "取得 WPS"
+
+msgid "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING"
+msgstr "正在取得 IP 位址..."
+
+msgid "IDS_WIFI_BODY_CHANNEL"
+msgstr "頻道"
+
+msgid "IDS_ST_BODY_NOTIFY_ME_WHEN_AN_OPEN_NETWORK_IS_AVAILABLE"
+msgstr "有可用的開放網路時通知我"
+
+msgid "IDS_ST_BODY_ADD_WI_FI_NETWORK"
+msgstr "新增 Wi-Fi 網路"
+
+msgid "IDS_ST_BODY_NETWORK_SSID"
+msgstr "網路 SSID"
+
+msgid "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG"
+msgstr "自動連接到這個網路將被關閉。繼續?"
+
+msgid "IDS_COM_BODY_PHASE_2_AUTHENTICATION"
+msgstr "第 2 階段認證"
+
+msgid "IDS_WIFI_BODY_CONNECT"
+msgstr "連線"
+
+msgid "IDS_WIFI_POP_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_PD_MINUTES"
+msgstr "在%d分鐘內按下你的Wi - Fi WPS存取點"
+
+msgid "IDS_WIFI_BODY_UNKNOWN"
+msgstr "未知"
+
+msgid "IDS_WIFI_BODY_ENTER_SSID"
+msgstr "輸入 SSID"
+
+msgid "IDS_WIFI_HEADER_PASSWORD"
+msgstr "密碼"
+
+msgid "IDS_WIFI_BODY_PROVISIONING"
+msgstr "佈建"
+
+msgid "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION"
+msgstr "WPS 網路設定"
+
+msgid "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK"
+msgstr "尋找隱藏的網路"
+
+msgid "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES"
+msgstr "請在 2 分鐘內於 Wi-Fi 按下 WPS 存取點"
+
+msgid "IDS_WIFI_BUTTON_CANCEL"
+msgstr "取消"
+
+msgid "IDS_WIFI_BODY_SSID"
+msgstr "SSID"
+
+msgid "IDS_WIFI_BODY_ENTER_YOUR_IDENTITY"
+msgstr "輸入身分"
+
+msgid "IDS_WIFI_HEADER_ENTER_PASSWORD"
+msgstr "輸入密碼"
+
+msgid "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND"
+msgstr "找到 Wi-Fi 網路時通知"
+
diff --git a/resources/images/00_EditField_clear.png b/resources/images/00_EditField_clear.png
new file mode 100644
index 0000000..0244344
--- /dev/null
+++ b/resources/images/00_EditField_clear.png
Binary files differ
diff --git a/resources/images/00_EditField_clear_press.png b/resources/images/00_EditField_clear_press.png
new file mode 100755
index 0000000..fe9d9cc
--- /dev/null
+++ b/resources/images/00_EditField_clear_press.png
Binary files differ
diff --git a/resources/images/00_search_edit_field_bg.png b/resources/images/00_search_edit_field_bg.png
new file mode 100644
index 0000000..c7837fa
--- /dev/null
+++ b/resources/images/00_search_edit_field_bg.png
Binary files differ
diff --git a/resources/images/01_controlbar_icon_delete.png b/resources/images/01_controlbar_icon_delete.png
new file mode 100644
index 0000000..e460e2c
--- /dev/null
+++ b/resources/images/01_controlbar_icon_delete.png
Binary files differ
diff --git a/resources/images/01_controlbar_icon_edit.png b/resources/images/01_controlbar_icon_edit.png
new file mode 100644
index 0000000..c1e8909
--- /dev/null
+++ b/resources/images/01_controlbar_icon_edit.png
Binary files differ
diff --git a/resources/images/01_controlbar_icon_update.png b/resources/images/01_controlbar_icon_update.png
new file mode 100644
index 0000000..fe731e3
--- /dev/null
+++ b/resources/images/01_controlbar_icon_update.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_00.png b/resources/images/37_wifi_icon_00.png
new file mode 100644
index 0000000..2ce395a
--- /dev/null
+++ b/resources/images/37_wifi_icon_00.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_01.png b/resources/images/37_wifi_icon_01.png
new file mode 100644
index 0000000..902ff9f
--- /dev/null
+++ b/resources/images/37_wifi_icon_01.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_02.png b/resources/images/37_wifi_icon_02.png
new file mode 100644
index 0000000..a641f4a
--- /dev/null
+++ b/resources/images/37_wifi_icon_02.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_03.png b/resources/images/37_wifi_icon_03.png
new file mode 100644
index 0000000..5331e29
--- /dev/null
+++ b/resources/images/37_wifi_icon_03.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_WPS.png b/resources/images/37_wifi_icon_WPS.png
new file mode 100644
index 0000000..50b1633
--- /dev/null
+++ b/resources/images/37_wifi_icon_WPS.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_WPS_support AP.png b/resources/images/37_wifi_icon_WPS_support AP.png
new file mode 100644
index 0000000..1d025cb
--- /dev/null
+++ b/resources/images/37_wifi_icon_WPS_support AP.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_WPS_support AP_press.png b/resources/images/37_wifi_icon_WPS_support AP_press.png
new file mode 100644
index 0000000..bb04bcb
--- /dev/null
+++ b/resources/images/37_wifi_icon_WPS_support AP_press.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_lock_00.png b/resources/images/37_wifi_icon_lock_00.png
new file mode 100644
index 0000000..d2233c8
--- /dev/null
+++ b/resources/images/37_wifi_icon_lock_00.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_lock_01.png b/resources/images/37_wifi_icon_lock_01.png
new file mode 100644
index 0000000..0385d7b
--- /dev/null
+++ b/resources/images/37_wifi_icon_lock_01.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_lock_02.png b/resources/images/37_wifi_icon_lock_02.png
new file mode 100644
index 0000000..dfa0c74
--- /dev/null
+++ b/resources/images/37_wifi_icon_lock_02.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_lock_03.png b/resources/images/37_wifi_icon_lock_03.png
new file mode 100644
index 0000000..72b13b5
--- /dev/null
+++ b/resources/images/37_wifi_icon_lock_03.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_searched_00.png b/resources/images/37_wifi_icon_searched_00.png
new file mode 100644
index 0000000..f5df464
--- /dev/null
+++ b/resources/images/37_wifi_icon_searched_00.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_searched_01.png b/resources/images/37_wifi_icon_searched_01.png
new file mode 100644
index 0000000..23979f7
--- /dev/null
+++ b/resources/images/37_wifi_icon_searched_01.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_searched_02.png b/resources/images/37_wifi_icon_searched_02.png
new file mode 100644
index 0000000..df2d69d
--- /dev/null
+++ b/resources/images/37_wifi_icon_searched_02.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_searched_03.png b/resources/images/37_wifi_icon_searched_03.png
new file mode 100644
index 0000000..e0044a1
--- /dev/null
+++ b/resources/images/37_wifi_icon_searched_03.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_searched_lock_00.png b/resources/images/37_wifi_icon_searched_lock_00.png
new file mode 100644
index 0000000..347eeea
--- /dev/null
+++ b/resources/images/37_wifi_icon_searched_lock_00.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_searched_lock_01.png b/resources/images/37_wifi_icon_searched_lock_01.png
new file mode 100644
index 0000000..a24ecc5
--- /dev/null
+++ b/resources/images/37_wifi_icon_searched_lock_01.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_searched_lock_02.png b/resources/images/37_wifi_icon_searched_lock_02.png
new file mode 100644
index 0000000..638c00f
--- /dev/null
+++ b/resources/images/37_wifi_icon_searched_lock_02.png
Binary files differ
diff --git a/resources/images/37_wifi_icon_searched_lock_03.png b/resources/images/37_wifi_icon_searched_lock_03.png
new file mode 100644
index 0000000..3f4df5f
--- /dev/null
+++ b/resources/images/37_wifi_icon_searched_lock_03.png
Binary files differ
diff --git a/resources/images/Q02_Notification__wifi_in_range.png b/resources/images/Q02_Notification__wifi_in_range.png
new file mode 100644
index 0000000..957d352
--- /dev/null
+++ b/resources/images/Q02_Notification__wifi_in_range.png
Binary files differ
diff --git a/sources/libraries/Common/common_datamodel.c b/sources/libraries/Common/common_datamodel.c
new file mode 100644
index 0000000..5432a0b
--- /dev/null
+++ b/sources/libraries/Common/common_datamodel.c
@@ -0,0 +1,749 @@
+/*
+* Wi-Fi UG
+*
+* Copyright 2012 Samsung Electronics Co., Ltd
+
+* Licensed under the Flora License, Version 1.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+
+* http://www.tizenopensource.org/license
+
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#include "common.h"
+#include "common_datamodel.h"
+
+
+struct view_datamodel_basic_info {
+ char *profile_name; /* Profile name */
+ char *ap_name; /* AP name */
+ wlan_security_mode_type_t security_mode; /* Security mode */
+ unsigned int signal_strength; /* Signal strength */
+ unsigned int channel_freq; /* channel frequency */
+ boolean is_favourite; /* Favourite */
+ char wps_support;
+};
+
+struct view_datamodel_ip_info {
+ char *profile_name; /* Profile name */
+ net_ip_config_type_t ip_and_dns_type;
+ char* proxy_addr;
+ char* ip;
+ char* subnet;
+ char* gateway;
+ char* dns1;
+ char* dns2;
+
+ char* MAC_address; /* MAC address */
+};
+
+struct view_datamodel_eap_info {
+ char *profile_name; /* Profile name */
+ char *ap_name; /* AP name */
+ wlan_eap_type_t eap_method; /* EAP method */
+ int eap_provision; /* Provisioning */
+ wlan_eap_auth_type_t auth_type; /* EAP phase 2 Authentication */
+ char *user_id; /* User id */
+ char *anonymous_id; /* Anonymous id */
+ char *ca_cert; /* CA certificate */
+ char *user_cert; /* User certificate */
+ char *pswd;
+};
+
+static void view_detail_datamodel_init_default_profile(net_profile_info_t *profile_info)
+{
+ if (profile_info) {
+ wlan_eap_info_t *eap_sec_info = &(profile_info->ProfileInfo.Wlan.security_info.authentication.eap);
+ eap_sec_info->eap_type = WLAN_SEC_EAP_TYPE_PEAP;
+ eap_sec_info->eap_auth = WLAN_SEC_EAP_AUTH_NONE;
+ }
+ return;
+}
+
+view_datamodel_basic_info_t *view_basic_detail_datamodel_create(const char *profile_name)
+{
+ __COMMON_FUNC_ENTER__;
+ view_datamodel_basic_info_t *data_object = NULL;
+ net_profile_info_t *profile_info = g_malloc0(sizeof(net_profile_info_t));
+ assertm_if(NULL == profile_name, "NULL!!");
+ view_detail_datamodel_init_default_profile(profile_info);
+ if (!connman_profile_manager_profile_info_get(profile_name, profile_info)) {
+ ERROR_LOG(UG_NAME_ERR, "Fatal Could not get the profile info!!!");
+ g_free(profile_info);
+ return NULL;
+ }
+
+ data_object = g_malloc0(sizeof(view_datamodel_basic_info_t));
+ assertm_if(NULL == data_object, "NULL!!");
+
+ data_object->profile_name = g_strdup(profile_name);
+ data_object->channel_freq = profile_info->ProfileInfo.Wlan.frequency;
+ data_object->ap_name = g_strdup(profile_info->ProfileInfo.Wlan.essid);
+ data_object->signal_strength = profile_info->ProfileInfo.Wlan.Strength;
+ data_object->security_mode = profile_info->ProfileInfo.Wlan.security_info.sec_mode;
+ data_object->is_favourite = profile_info->Favourite;
+ data_object->wps_support = profile_info->ProfileInfo.Wlan.security_info.wps_support;
+
+ INFO_LOG(UG_NAME_NORMAL, "Profile name : %s", data_object->profile_name);
+ INFO_LOG(UG_NAME_NORMAL, "ap name : %s", data_object->ap_name);
+ INFO_LOG(UG_NAME_NORMAL, "Signal strength : %u", data_object->signal_strength);
+ INFO_LOG(UG_NAME_NORMAL, "Security mode : %u", data_object->security_mode);
+ INFO_LOG(UG_NAME_NORMAL, "Channel Freq : %u", data_object->channel_freq);
+ INFO_LOG(UG_NAME_NORMAL, "WPS Support : %d", data_object->wps_support);
+
+ g_free(profile_info);
+ profile_info = NULL;
+
+ __COMMON_FUNC_EXIT__;
+
+ return data_object;
+}
+
+view_datamodel_ip_info_t *view_detail_datamodel_ip_info_create(const char *profile_name)
+{
+ __COMMON_FUNC_ENTER__;
+ view_datamodel_ip_info_t *data_object = NULL;
+ net_profile_info_t *profile_info = g_malloc0(sizeof(net_profile_info_t));
+ assertm_if(NULL == profile_name, "NULL!!");
+ view_detail_datamodel_init_default_profile(profile_info);
+ if (!connman_profile_manager_profile_info_get(profile_name, profile_info)) {
+ ERROR_LOG(UG_NAME_ERR, "Fatal Could not get the profile info!!!");
+ /* Lets continue and create a default data object */
+ }
+
+ data_object = g_malloc0(sizeof(view_datamodel_ip_info_t));
+ assertm_if(NULL == data_object, "NULL!!");
+
+ data_object->profile_name = g_strdup(profile_name);
+ data_object->ip_and_dns_type = profile_info->ProfileInfo.Wlan.net_info.IpConfigType;
+ if (strlen(profile_info->ProfileInfo.Wlan.net_info.ProxyAddr) <= 0) {
+ data_object->proxy_addr = NULL;
+ } else {
+ data_object->proxy_addr = g_strdup(profile_info->ProfileInfo.Wlan.net_info.ProxyAddr);
+ }
+
+ data_object->ip = g_strdup(inet_ntoa(profile_info->ProfileInfo.Wlan.net_info.IpAddr.Data.Ipv4));
+ data_object->subnet = g_strdup(inet_ntoa(profile_info->ProfileInfo.Wlan.net_info.SubnetMask.Data.Ipv4));
+ data_object->gateway = g_strdup(inet_ntoa(profile_info->ProfileInfo.Wlan.net_info.GatewayAddr.Data.Ipv4));
+ data_object->dns1 = g_strdup(inet_ntoa(profile_info->ProfileInfo.Wlan.net_info.DnsAddr[0].Data.Ipv4));
+ data_object->dns2 = g_strdup(inet_ntoa(profile_info->ProfileInfo.Wlan.net_info.DnsAddr[1].Data.Ipv4));
+ data_object->MAC_address = g_strdup(profile_info->ProfileInfo.Wlan.bssid);
+
+ INFO_LOG(UG_NAME_NORMAL, "Profile name : %s", data_object->profile_name);
+ INFO_LOG(UG_NAME_NORMAL, "ip_and_dns_type : %d", data_object->ip_and_dns_type);
+ INFO_LOG(UG_NAME_NORMAL, "ip : %s", data_object->ip);
+ INFO_LOG(UG_NAME_NORMAL, "subnet : %s", data_object->subnet);
+ INFO_LOG(UG_NAME_NORMAL, "gateway : %s", data_object->gateway);
+ INFO_LOG(UG_NAME_NORMAL, "dns1 : %s", data_object->dns1);
+ INFO_LOG(UG_NAME_NORMAL, "dns2 : %s", data_object->dns2);
+ if (data_object->proxy_addr)
+ INFO_LOG(UG_NAME_NORMAL, "proxy addr : %s", data_object->proxy_addr);
+ INFO_LOG(UG_NAME_NORMAL, "MAC addr : %s", data_object->MAC_address);
+
+ g_free(profile_info);
+ profile_info = NULL;
+
+ __COMMON_FUNC_EXIT__;
+
+ return data_object;
+}
+
+view_datamodel_eap_info_t *view_detail_datamodel_eap_info_create(const char *profile_name)
+{
+ __COMMON_FUNC_ENTER__;
+ view_datamodel_eap_info_t *data_object = NULL;
+ net_profile_info_t *profile_info = g_malloc0(sizeof(net_profile_info_t));
+ assertm_if(NULL == profile_name, "NULL!!");
+ view_detail_datamodel_init_default_profile(profile_info);
+ if (!connman_profile_manager_profile_info_get(profile_name, profile_info)) {
+ ERROR_LOG(UG_NAME_ERR, "Fatal Could not get the profile info!!!");
+ /* Lets continue and create a default data object */
+ }
+
+ /* The EAP info data object would be created only if the device is remembered / connected */
+ data_object = g_malloc0(sizeof(view_datamodel_eap_info_t));
+ assertm_if(NULL == data_object, "NULL!!");
+
+ data_object->profile_name = g_strdup(profile_name);
+ data_object->ap_name = g_strdup(profile_info->ProfileInfo.Wlan.essid);
+
+ /* If the device is connected / remembered only then create and fill the eap_details structure */
+ wlan_eap_info_t *eap_sec_info = &(profile_info->ProfileInfo.Wlan.security_info.authentication.eap);
+ data_object->eap_method = eap_sec_info->eap_type;
+ data_object->eap_provision = 0; /* This is not yet supported by libnet. So setting it to 0. */
+ data_object->auth_type = eap_sec_info->eap_auth;
+
+ if (strlen(eap_sec_info->username))
+ data_object->user_id = g_strdup(eap_sec_info->username);
+
+ data_object->anonymous_id = NULL; /* This is not yet supported by libnet. So setting it to NULL. */
+
+ if (strlen(eap_sec_info->password))
+ data_object->pswd = g_strdup(eap_sec_info->password);
+
+ if (strlen(eap_sec_info->ca_cert_filename))
+ data_object->ca_cert = g_strdup(eap_sec_info->ca_cert_filename);
+
+ if (strlen(eap_sec_info->client_cert_filename))
+ data_object->user_cert = g_strdup(eap_sec_info->client_cert_filename);
+
+ INFO_LOG(UG_NAME_NORMAL, "Profile name : %s", data_object->profile_name);
+ INFO_LOG(UG_NAME_NORMAL, "EAP method : %u", data_object->eap_method);
+ INFO_LOG(UG_NAME_NORMAL, "Provisioning : %u", data_object->eap_provision);
+ INFO_LOG(UG_NAME_NORMAL, "Auth type : %u", data_object->auth_type);
+ INFO_LOG(UG_NAME_NORMAL, "Id : %s", data_object->user_id);
+ INFO_LOG(UG_NAME_NORMAL, "Anonymous id : %s", data_object->anonymous_id);
+ INFO_LOG(UG_NAME_NORMAL, "Password : %s", data_object->pswd );
+ INFO_LOG(UG_NAME_NORMAL, "CA certificate : %s", data_object->ca_cert);
+ INFO_LOG(UG_NAME_NORMAL, "User certificate : %s", data_object->user_cert);
+
+ g_free(profile_info);
+ profile_info = NULL;
+
+ __COMMON_FUNC_EXIT__;
+
+ return data_object;
+}
+
+void view_basic_detail_datamodel_destroy(view_datamodel_basic_info_t *data_object)
+{
+ __COMMON_FUNC_ENTER__;
+
+ assertm_if(NULL == data_object, "NULL!!");
+
+ g_free(data_object->profile_name);
+ g_free(data_object->ap_name);
+ g_free(data_object);
+ data_object = NULL;
+
+ __COMMON_FUNC_EXIT__;
+
+ return;
+}
+
+void view_detail_datamodel_ip_info_destroy(view_datamodel_ip_info_t *data_object)
+{
+ __COMMON_FUNC_ENTER__;
+
+ assertm_if(NULL == data_object, "NULL!!");
+
+ g_free(data_object->profile_name);
+ g_free(data_object->proxy_addr);
+ g_free(data_object->ip);
+ g_free(data_object->subnet);
+ g_free(data_object->gateway);
+ g_free(data_object->dns1);
+ g_free(data_object->dns2);
+ g_free(data_object->MAC_address);
+ g_free(data_object);
+ data_object = NULL;
+
+ __COMMON_FUNC_EXIT__;
+
+ return;
+}
+
+void view_detail_datamodel_eap_info_destroy(view_datamodel_eap_info_t *data_object)
+{
+ __COMMON_FUNC_ENTER__;
+
+ assertm_if(NULL == data_object, "NULL!!");
+
+ g_free(data_object->profile_name);
+ g_free(data_object->ap_name);
+ g_free(data_object->user_id);
+ g_free(data_object->anonymous_id);
+ g_free(data_object->pswd);
+ g_free(data_object->ca_cert);
+ g_free(data_object->user_cert);
+ g_free(data_object);
+ data_object = NULL;
+
+ __COMMON_FUNC_EXIT__;
+
+ return;
+}
+
+boolean view_detail_datamodel_save_ip_info_if_modified(const view_datamodel_ip_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+
+ boolean changed = FALSE;
+ net_profile_info_t *profile_info = g_malloc0(sizeof(net_profile_info_t));
+ assertm_if(NULL == profile_info, "NULL!!");
+ view_detail_datamodel_init_default_profile(profile_info);
+ if (!connman_profile_manager_profile_info_get(data_object->profile_name, profile_info)) {
+ ERROR_LOG(UG_NAME_ERR, "Fatal Could not get the profile info!!!");
+ g_free(profile_info);
+ return FALSE;
+ }
+
+ if (data_object->ip_and_dns_type != profile_info->ProfileInfo.Wlan.net_info.IpConfigType) {
+ profile_info->ProfileInfo.Wlan.net_info.IpConfigType = data_object->ip_and_dns_type;
+ changed = TRUE;
+ }
+
+ if (data_object->proxy_addr == NULL) {
+ if (profile_info->ProfileInfo.Wlan.net_info.ProxyMethod != NET_PROXY_TYPE_DIRECT) {
+ profile_info->ProfileInfo.Wlan.net_info.ProxyMethod = NET_PROXY_TYPE_DIRECT;
+ changed = TRUE;
+ }
+ } else if (g_strcmp0(data_object->proxy_addr, profile_info->ProfileInfo.Wlan.net_info.ProxyAddr) != 0) {
+ profile_info->ProfileInfo.Wlan.net_info.ProxyMethod = NET_PROXY_TYPE_MANUAL;
+ g_strlcpy(profile_info->ProfileInfo.Wlan.net_info.ProxyAddr, data_object->proxy_addr, WLAN_PROXY_LEN_MAX);
+ changed = TRUE;
+ }
+
+ if (data_object->ip_and_dns_type == NET_IP_CONFIG_TYPE_STATIC) {
+ char *temp_str = NULL;
+
+ temp_str = inet_ntoa(profile_info->ProfileInfo.Wlan.net_info.IpAddr.Data.Ipv4);
+ if (g_strcmp0(data_object->ip, temp_str) != 0) {
+ INFO_LOG(UG_NAME_NORMAL, "IP : %s", temp_str);
+
+ if (inet_aton(data_object->ip, &(profile_info->ProfileInfo.Wlan.net_info.IpAddr.Data.Ipv4)) == 0) {
+ INFO_LOG(UG_NAME_NORMAL, "Failed inet_aton");
+
+ return FALSE;
+ }
+
+ changed = TRUE;
+ }
+
+ temp_str = inet_ntoa(profile_info->ProfileInfo.Wlan.net_info.SubnetMask.Data.Ipv4);
+ if (g_strcmp0(data_object->subnet, temp_str) != 0) {
+ INFO_LOG(UG_NAME_NORMAL, "Subnet : %s", temp_str);
+
+ if (inet_aton(data_object->subnet, &(profile_info->ProfileInfo.Wlan.net_info.SubnetMask.Data.Ipv4)) == 0) {
+ INFO_LOG(UG_NAME_NORMAL, "Failed inet_aton");
+
+ return FALSE;
+ }
+
+ changed = TRUE;
+ }
+
+ temp_str = inet_ntoa(profile_info->ProfileInfo.Wlan.net_info.GatewayAddr.Data.Ipv4);
+ if (g_strcmp0(data_object->gateway, temp_str) != 0) {
+ INFO_LOG(UG_NAME_NORMAL, "Gateway : %s", temp_str);
+
+ if (inet_aton(data_object->gateway, &(profile_info->ProfileInfo.Wlan.net_info.GatewayAddr.Data.Ipv4)) == 0) {
+ INFO_LOG(UG_NAME_NORMAL, "Failed inet_aton");
+
+ return FALSE;
+ }
+
+ changed = TRUE;
+ }
+
+ temp_str = inet_ntoa(profile_info->ProfileInfo.Wlan.net_info.DnsAddr[0].Data.Ipv4);
+ if (g_strcmp0(data_object->dns1, temp_str) != 0) {
+ INFO_LOG(UG_NAME_NORMAL, "DNS1 : %s", temp_str);
+
+ if (inet_aton(data_object->dns1, &(profile_info->ProfileInfo.Wlan.net_info.DnsAddr[0].Data.Ipv4)) == 0) {
+ INFO_LOG(UG_NAME_NORMAL, "Failed inet_aton");
+
+ return FALSE;
+ }
+
+ profile_info->ProfileInfo.Wlan.net_info.DnsCount = 1;
+ changed = TRUE;
+ }
+
+ temp_str = inet_ntoa(profile_info->ProfileInfo.Wlan.net_info.DnsAddr[1].Data.Ipv4);
+ if (g_strcmp0(data_object->dns2, temp_str) != 0) {
+ INFO_LOG(UG_NAME_NORMAL, "DNS2 : %s", temp_str);
+
+ if (inet_aton(data_object->dns2, &(profile_info->ProfileInfo.Wlan.net_info.DnsAddr[1].Data.Ipv4)) == 0) {
+ INFO_LOG(UG_NAME_NORMAL, "Failed inet_aton");
+
+ return FALSE;
+ }
+
+ profile_info->ProfileInfo.Wlan.net_info.DnsCount = 2;
+ changed = TRUE;
+ }
+
+ INFO_LOG(UG_NAME_NORMAL, "DNS count : %d", profile_info->ProfileInfo.Wlan.net_info.DnsCount);
+ }
+
+ if (changed == TRUE)
+ wlan_manager_profile_modify_by_device_info(profile_info);
+
+ g_free(profile_info);
+
+ return changed;
+}
+
+boolean view_detail_datamodel_save_eap_info_if_modified(const view_datamodel_eap_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+
+ boolean changed = FALSE;
+ net_profile_info_t *profile_info = g_malloc0(sizeof(net_profile_info_t));
+ assertm_if(NULL == profile_info, "NULL!!");
+ view_detail_datamodel_init_default_profile(profile_info);
+ if (!connman_profile_manager_profile_info_get(data_object->profile_name, profile_info)) {
+ ERROR_LOG(UG_NAME_ERR, "Fatal Could not get the profile info!!!");
+ g_free(profile_info);
+ return FALSE;
+ }
+
+ wlan_eap_info_t *eap_sec_info = &(profile_info->ProfileInfo.Wlan.security_info.authentication.eap);
+ if (data_object->eap_method != eap_sec_info->eap_type) {
+ eap_sec_info->eap_type = data_object->eap_method;
+ changed = TRUE;
+ }
+
+ if (data_object->auth_type != eap_sec_info->eap_auth) {
+ eap_sec_info->eap_auth = data_object->auth_type;
+ changed = TRUE;
+ }
+
+ if (g_strcmp0(data_object->user_id, eap_sec_info->username)) {
+ g_strlcpy(eap_sec_info->username, data_object->user_id, NETPM_WLAN_USERNAME_LEN);
+ changed = TRUE;
+ }
+
+ if (g_strcmp0(data_object->pswd, eap_sec_info->password)) {
+ g_strlcpy(eap_sec_info->password, data_object->pswd, NETPM_WLAN_PASSWORD_LEN);
+ changed = TRUE;
+ }
+
+ if (changed) {
+ INFO_LOG(UG_NAME_NORMAL, "EAP type : %d", eap_sec_info->eap_type);
+ INFO_LOG(UG_NAME_NORMAL, "EAP auth : %d", eap_sec_info->eap_auth);
+ INFO_LOG(UG_NAME_NORMAL, "User name : %s", eap_sec_info->username);
+ INFO_LOG(UG_NAME_NORMAL, "Password : %s", eap_sec_info->password);
+
+ wlan_manager_profile_modify_by_device_info(profile_info);
+ }
+
+ g_free(profile_info);
+
+ return changed;
+}
+
+int view_detail_datamodel_ip_and_dns_type_set(view_datamodel_ip_info_t *data_object, const IP_TYPES type)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ data_object->ip_and_dns_type = type;
+ return TRUE;
+}
+
+int view_detail_datamodel_proxy_address_set(view_datamodel_ip_info_t *data_object, const char* proxy)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+
+ g_free(data_object->proxy_addr);
+ if(proxy)
+ data_object->proxy_addr = g_strdup(proxy);
+ else
+ data_object->proxy_addr = NULL;
+
+ return TRUE;
+}
+
+int view_detail_datamodel_static_ip_address_set(view_datamodel_ip_info_t *data_object, const char* addr)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ if(NULL != addr) {
+ DEBUG_LOG(UG_NAME_NORMAL, "* set as [%s]", addr);
+ g_free(data_object->ip);
+ data_object->ip = g_strdup(addr);
+ }
+ return TRUE;
+}
+
+int view_detail_datamodel_static_gateway_address_set(view_datamodel_ip_info_t *data_object, const char* addr)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ if(NULL != addr) {
+ g_free(data_object->gateway);
+ data_object->gateway = g_strdup(addr);
+ }
+ return TRUE;
+}
+
+int view_detail_datamodel_static_subnet_mask_set(view_datamodel_ip_info_t *data_object, const char* addr)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ if(NULL != addr) {
+ g_free(data_object->subnet);
+ data_object->subnet = g_strdup(addr);
+ }
+ return TRUE;
+}
+
+int view_detail_datamodel_static_dns1_address_set(view_datamodel_ip_info_t *data_object, const char* addr)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ if(NULL != addr) {
+ g_free(data_object->dns1);
+ data_object->dns1 = g_strdup(addr);
+ }
+ return TRUE;
+}
+
+int view_detail_datamodel_static_dns2_address_set(view_datamodel_ip_info_t *data_object, const char* addr)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ if (NULL != addr) {
+ g_free(data_object->dns2);
+ data_object->dns2 = g_strdup(addr);
+ }
+ return TRUE;
+}
+
+int view_detail_datamodel_eap_ap_name_set(view_datamodel_eap_info_t *data_object, const char *ssid)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ g_free(data_object->ap_name);
+ data_object->ap_name = g_strdup(ssid);
+ return TRUE;
+}
+
+int view_detail_datamodel_eap_method_set(view_datamodel_eap_info_t *data_object, const wlan_eap_type_t eap_method)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ data_object->eap_method = eap_method;
+ return TRUE;
+}
+
+int view_detail_datamodel_eap_provision_set(view_datamodel_eap_info_t *data_object, const int provision)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ data_object->eap_provision = provision;
+ return TRUE;
+}
+
+int view_detail_datamodel_eap_auth_set(view_datamodel_eap_info_t *data_object, const wlan_eap_auth_type_t auth_type)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ data_object->auth_type = auth_type;
+ return TRUE;
+}
+
+int view_detail_datamodel_eap_user_id_set(view_datamodel_eap_info_t *data_object, const char* user_id)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ g_free(data_object->user_id);
+ data_object->user_id = g_strdup(user_id);
+ return TRUE;
+}
+
+int view_detail_datamodel_eap_anonymous_id_set(view_datamodel_eap_info_t *data_object, const char* anonymous_id)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ g_free(data_object->anonymous_id);
+ data_object->anonymous_id = g_strdup(anonymous_id);
+ return TRUE;
+}
+
+int view_detail_datamodel_eap_pswd_set(view_datamodel_eap_info_t *data_object, const char* pswd)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ g_free(data_object->pswd);
+ data_object->pswd = g_strdup(pswd);
+ return TRUE;
+}
+
+int view_detail_datamodel_eap_ca_cert_set(view_datamodel_eap_info_t *data_object, const char* ca_cert)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ g_free(data_object->ca_cert);
+ data_object->ca_cert = g_strdup(ca_cert);
+ return TRUE;
+}
+
+int view_detail_datamodel_eap_user_cert_set(view_datamodel_eap_info_t *data_object, const char* user_cert)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ g_free(data_object->user_cert);
+ data_object->user_cert = g_strdup(user_cert);
+ return TRUE;
+}
+
+IP_TYPES view_detail_datamodel_ip_and_dns_type_get(view_datamodel_ip_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return data_object->ip_and_dns_type;
+}
+
+char *view_detail_datamodel_static_ip_address_get(view_datamodel_ip_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return g_strdup(data_object->ip);
+}
+
+char *view_detail_datamodel_static_gateway_address_get(view_datamodel_ip_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return g_strdup(data_object->gateway);
+}
+
+char *view_detail_datamodel_static_subnet_mask_get(view_datamodel_ip_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return g_strdup(data_object->subnet);
+}
+
+char *view_detail_datamodel_static_dns1_address_get(view_datamodel_ip_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return g_strdup(data_object->dns1);
+}
+
+char *view_detail_datamodel_static_dns2_address_get(view_datamodel_ip_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return g_strdup(data_object->dns2);
+}
+
+char* view_detail_datamodel_proxy_address_get(view_datamodel_ip_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ if (data_object->proxy_addr)
+ return g_strdup(data_object->proxy_addr);
+ else
+ return NULL;
+}
+
+char* view_detail_datamodel_MAC_addr_get(view_datamodel_ip_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ char* ret = g_strdup(data_object->MAC_address);
+ return ret;
+}
+#if 0
+int view_detail_datamodel_channel_freq_get(view_datamodel_ip_info_t *data_object)
+{
+ view_detail_datamodel_t *data_object = (view_detail_datamodel_t *)mvc_object;
+ assertm_if(NULL == data_object, "NULL!!");
+ switch (data_object->channel_freq) {
+ default:
+ case 2412:
+ return 1;
+ case 2417:
+ return 2;
+ case 2422:
+ return 3;
+ case 2427:
+ return 4;
+ case 2432:
+ return 5;
+ case 2437:
+ return 6;
+ case 2442:
+ return 7;
+ case 2447:
+ return 8;
+ case 2452:
+ return 9;
+ case 2457:
+ return 10;
+ case 2462:
+ return 11;
+ }
+ return 0;
+}
+#endif
+
+wlan_eap_type_t view_detail_datamodel_eap_method_get(view_datamodel_eap_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return data_object->eap_method;
+}
+
+int view_detail_datamodel_eap_provision_get(view_datamodel_eap_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return data_object->eap_provision;
+}
+
+wlan_eap_auth_type_t view_detail_datamodel_eap_auth_get(view_datamodel_eap_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return data_object->auth_type;
+}
+
+char *view_detail_datamodel_user_id_get(view_datamodel_eap_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return g_strdup(data_object->user_id);
+}
+
+char *view_detail_datamodel_anonymous_id_get(view_datamodel_eap_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return g_strdup(data_object->anonymous_id);
+}
+
+char *view_detail_datamodel_pswd_get(view_datamodel_eap_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return g_strdup(data_object->pswd);
+}
+
+char *view_detail_datamodel_ca_cert_get(view_datamodel_eap_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return g_strdup(data_object->ca_cert);
+}
+
+char *view_detail_datamodel_user_cert_get(view_datamodel_eap_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return g_strdup(data_object->user_cert);
+}
+
+char *view_detail_datamodel_eap_ap_name_get(view_datamodel_eap_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return g_strdup(data_object->ap_name);
+}
+
+char *view_detail_datamodel_basic_info_profile_name_get(view_datamodel_basic_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return g_strdup(data_object->profile_name);
+}
+
+char *view_detail_datamodel_ap_name_get(view_datamodel_basic_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return g_strdup(data_object->ap_name);
+}
+
+unsigned int view_detail_datamodel_sig_strength_get(view_datamodel_basic_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return data_object->signal_strength;
+}
+
+unsigned int view_detail_datamodel_sec_mode_get(view_datamodel_basic_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return data_object->security_mode;
+}
+
+char view_detail_datamodel_wps_support_get(view_datamodel_basic_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return data_object->wps_support;
+}
+
+boolean view_detail_datamodel_is_favourite_get(view_datamodel_basic_info_t *data_object)
+{
+ assertm_if(NULL == data_object, "NULL!!");
+ return data_object->is_favourite;
+}
diff --git a/sources/libraries/Common/common_eap_connect.c b/sources/libraries/Common/common_eap_connect.c
new file mode 100644
index 0000000..2b5c81e
--- /dev/null
+++ b/sources/libraries/Common/common_eap_connect.c
@@ -0,0 +1,1493 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "common.h"
+#include "common_eap_connect.h"
+#include "i18nmanager.h"
+#include "common_utils.h"
+#include "common_ip_info.h"
+
+#define EAP_CONNECT_POPUP "popup_view"
+
+#define MAX_EAP_PROVISION_NUMBER 3
+
+#define EAP_METHOD_EXP_MENU_ID 0
+#define EAP_PROVISION_EXP_MENU_ID 1
+#define EAP_AUTH_TYPE_EXP_MENU_ID 2
+
+static bool g_eap_id_show_keypad = FALSE;
+static Elm_Genlist_Item_Class g_eap_type_itc;
+static Elm_Genlist_Item_Class g_eap_type_sub_itc;
+static Elm_Genlist_Item_Class g_eap_provision_itc;
+static Elm_Genlist_Item_Class g_eap_provision_sub_itc;
+static Elm_Genlist_Item_Class g_eap_auth_itc;
+static Elm_Genlist_Item_Class g_eap_auth_sub_itc;
+static Elm_Genlist_Item_Class g_eap_ca_cert_itc;
+static Elm_Genlist_Item_Class g_eap_user_cert_itc;
+static Elm_Genlist_Item_Class g_eap_entry_itc;
+
+typedef enum {
+ EAP_SEC_TYPE_UNKNOWN = 0,
+ EAP_SEC_TYPE_PEAP,
+ EAP_SEC_TYPE_TLS,
+ EAP_SEC_TYPE_TTLS,
+ EAP_SEC_TYPE_SIM,
+ EAP_SEC_TYPE_AKA,
+ EAP_SEC_TYPE_FAST,
+ EAP_SEC_TYPE_NULL
+} eap_type_t;
+
+typedef enum {
+ EAP_SEC_AUTH_NONE = 0,
+ EAP_SEC_AUTH_PAP,
+ EAP_SEC_AUTH_MSCHAP,
+ EAP_SEC_AUTH_MSCHAPV2,
+ EAP_SEC_AUTH_GTC,
+ EAP_SEC_AUTH_MD5,
+ EAP_SEC_AUTH_NULL
+} eap_auth_t;
+
+typedef struct {
+ char depth;
+ char *name;
+ Elm_Genlist_Item_Type flags;
+} _Expand_List_t;
+
+struct eap_info_list {
+ wifi_ap_h ap;
+ Elm_Object_Item *pswd_item;
+};
+
+static const _Expand_List_t list_eap_type[] = {
+ {1, "UNKNOWN", ELM_GENLIST_ITEM_NONE},
+ {1, "PEAP", ELM_GENLIST_ITEM_NONE},
+ {1, "TLS", ELM_GENLIST_ITEM_NONE},
+ {1, "TTLS", ELM_GENLIST_ITEM_NONE},
+ {1, "SIM", ELM_GENLIST_ITEM_NONE},
+ {1, "AKA", ELM_GENLIST_ITEM_NONE},
+#ifndef DISABLE_FAST_EAP_METHOD
+ {1, "FAST", ELM_GENLIST_ITEM_NONE},
+#endif
+ {1, NULL, ELM_GENLIST_ITEM_NONE}
+};
+
+static const _Expand_List_t list_eap_auth[] = {
+ {1, "NONE", ELM_GENLIST_ITEM_NONE},
+ {1, "PAP", ELM_GENLIST_ITEM_NONE},
+ {1, "MSCHAP", ELM_GENLIST_ITEM_NONE},
+ {1, "MSCHAPV2", ELM_GENLIST_ITEM_NONE},
+ {1, "GTC", ELM_GENLIST_ITEM_NONE},
+ {1, "MD5", ELM_GENLIST_ITEM_NONE},
+ {1, NULL, ELM_GENLIST_ITEM_NONE}
+};
+
+static Evas_Object *radio_main = NULL;
+
+struct common_eap_connect_data {
+ int expandable_list_index;
+
+ Elm_Object_Item *eap_type_item;
+ Elm_Object_Item *eap_provision_item;
+ Elm_Object_Item *eap_auth_item;
+ Elm_Object_Item *eap_ca_cert_item;
+ Elm_Object_Item *eap_user_cert_item;
+ Elm_Object_Item *eap_id_item;
+ Elm_Object_Item *eap_anonyid_item;
+ Elm_Object_Item *eap_pw_item;
+ Evas_Object *popup;
+
+ Evas_Object *genlist;
+ Eina_Bool eap_done_ok;
+ Evas_Object *win;
+ const char *str_pkg_name;
+ wifi_ap_h ap;
+ ip_info_list_t *ip_info_list;
+ Evas_Object* navi_frame;
+
+ int visible_area_width;
+ int visible_area_height;
+};
+
+static void _gl_eap_provision_sel(void *data, Evas_Object *obj, void *event_info);
+static void _gl_eap_auth_sel(void *data, Evas_Object *obj, void *event_info);
+static void _create_and_update_list_items_based_on_rules(eap_type_t new_type, common_eap_connect_data_t *eap_data);
+static void _delete_eap_entry_items(common_eap_connect_data_t *eap_data);
+static eap_type_t __common_eap_connect_popup_get_eap_type(wifi_ap_h ap);
+static eap_auth_t __common_eap_connect_popup_get_auth_type(wifi_ap_h ap);
+static wifi_eap_type_e __common_eap_connect_popup_get_wlan_eap_type(eap_type_t eap_type);
+static wifi_eap_auth_type_e __common_eap_connect_popup_get_wlan_auth_type(eap_auth_t auth_type);
+
+static void _gl_editbox_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ elm_genlist_item_selected_set(item, FALSE);
+}
+
+static void _gl_eap_type_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *) data;
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ Eina_Bool expanded = EINA_FALSE;
+ if (item)
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+
+ expanded = elm_genlist_item_expanded_get(item);
+ if (expanded == FALSE) {
+ eap_data->expandable_list_index = EAP_METHOD_EXP_MENU_ID;
+ }
+
+ /* Expand/Contract the sub items list */
+ elm_genlist_item_expanded_set(item, !expanded);
+}
+
+static void _gl_eap_type_sub_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *) data;
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ Elm_Object_Item *parent_item = elm_genlist_item_parent_get(item);
+
+ eap_type_t pre_index = __common_eap_connect_popup_get_eap_type(eap_data->ap);
+ eap_type_t selected_item_index = elm_genlist_item_index_get(item) - elm_genlist_item_index_get(parent_item);
+
+ DEBUG_LOG( UG_NAME_NORMAL, "previous index = %d; selected index = %d;", pre_index, selected_item_index);
+
+ /* Contract the sub items list */
+ elm_genlist_item_expanded_set(parent_item, EINA_FALSE);
+
+ if (pre_index != selected_item_index) {
+// selected_item_index = __common_eap_connect_popup_get_eap_type(__common_eap_connect_popup_get_wlan_eap_type(selected_item_index));
+ _create_and_update_list_items_based_on_rules(selected_item_index, data);
+ wifi_eap_type_e type;
+ wifi_ap_set_eap_type(eap_data->ap, __common_eap_connect_popup_get_wlan_eap_type(selected_item_index));
+ wifi_ap_get_eap_type(eap_data->ap, &type);
+ DEBUG_LOG( UG_NAME_NORMAL, "set to new index = %d", type);
+ elm_genlist_item_update(parent_item);
+ } else {
+ DEBUG_LOG( UG_NAME_NORMAL, "pre_index == selected_item_index[%d]", selected_item_index);
+ }
+}
+
+static void _gl_eap_provision_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *) data;
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ Eina_Bool expanded = EINA_FALSE;
+ if (item)
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+
+ expanded = elm_genlist_item_expanded_get(item);
+ if (expanded == FALSE) {
+ eap_data->expandable_list_index = EAP_PROVISION_EXP_MENU_ID;
+ }
+
+ /* Expand/Contract the sub items list */
+ elm_genlist_item_expanded_set(item, !expanded);
+}
+
+static void _gl_eap_provision_sub_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ Elm_Object_Item *parent_item = elm_genlist_item_parent_get(item);
+
+ /* TODO: Set the EAP provision. No CAPI available now. */
+
+ /* Contract the sub items list */
+ elm_genlist_item_expanded_set(parent_item, EINA_FALSE);
+
+ elm_genlist_item_update(parent_item);
+}
+
+static void _gl_eap_auth_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *) data;
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ Eina_Bool expanded = EINA_FALSE;
+ if (item)
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+
+ expanded = elm_genlist_item_expanded_get(item);
+ if (expanded == FALSE) {
+ eap_data->expandable_list_index = EAP_AUTH_TYPE_EXP_MENU_ID;
+ }
+ /* Expand/Contract the sub items list */
+ elm_genlist_item_expanded_set(item, !expanded);
+}
+
+static void _gl_eap_auth_sub_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *) data;
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ Elm_Object_Item *parent_item = elm_genlist_item_parent_get(item);
+ eap_auth_t selected_item_index = elm_genlist_item_index_get(item) - elm_genlist_item_index_get(parent_item) - 1;
+
+ wifi_ap_set_eap_auth_type(eap_data->ap, __common_eap_connect_popup_get_wlan_auth_type(selected_item_index));
+
+ /* Contract the sub items list */
+ elm_genlist_item_expanded_set(parent_item, EINA_FALSE);
+
+ elm_genlist_item_update(parent_item);
+}
+
+static char *_gl_eap_type_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *)data;
+ eap_type_t sel_sub_item_id = __common_eap_connect_popup_get_eap_type(eap_data->ap);
+ DEBUG_LOG(UG_NAME_NORMAL, "current selected subitem = %d", sel_sub_item_id);
+
+ if (!strcmp(part, "elm.text.1")) {
+ return g_strdup(list_eap_type[sel_sub_item_id].name);
+ } else if (!strcmp(part, "elm.text.2")) {
+ return g_strdup(sc(eap_data->str_pkg_name, I18N_TYPE_EAP_method));
+ }
+
+ return NULL;
+}
+
+static char *_gl_eap_subtext_get(void *data, Evas_Object *obj, const char *part)
+{
+ wlan_eap_type_t eap_type = (wlan_eap_type_t)elm_radio_state_value_get(data);
+ if (!strcmp(part, "elm.text")) {
+ return g_strdup(list_eap_type[eap_type].name);
+ }
+
+ return NULL;
+}
+
+static Evas_Object *_gl_eap_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.swallow.icon")) {
+ return data;
+ }
+
+ return NULL;
+}
+
+static void _gl_eap_type_sub_menu_item_del(void *data, Evas_Object *obj)
+{
+ evas_object_unref(data);
+}
+
+static char *_gl_eap_provision_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *)data;
+ int sel_sub_item_id = 0;
+
+ /* TODO: Fetch the EAP provision. No CAPI available now. */
+
+ DEBUG_LOG(UG_NAME_NORMAL, "current selected subitem = %d", sel_sub_item_id);
+
+ if (!strcmp(part, "elm.text.1")) {
+ return g_strdup_printf("%d", sel_sub_item_id);
+ } else if (!strcmp(part, "elm.text.2")) {
+ return g_strdup(sc(eap_data->str_pkg_name, I18N_TYPE_Provisioning));
+ }
+
+ return NULL;
+}
+
+static char *_gl_eap_provision_subtext_get(void *data, Evas_Object *obj, const char *part)
+{
+ if (!strcmp(part, "elm.text")) {
+ return g_strdup_printf("%d", (int)elm_radio_state_value_get(data));
+ }
+
+ return NULL;
+}
+
+static Evas_Object *_gl_eap_provision_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.swallow.icon")) {
+ return data;
+ }
+
+ return NULL;
+}
+
+static void _gl_eap_provision_sub_menu_item_del(void *data, Evas_Object *obj)
+{
+ evas_object_unref(data);
+}
+
+static char *_gl_eap_auth_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *)data;
+ eap_auth_t sel_sub_item_id = __common_eap_connect_popup_get_auth_type(eap_data->ap);
+ if (!strcmp(part, "elm.text.1")) {
+ return g_strdup(list_eap_auth[sel_sub_item_id].name);
+ } else if (!strcmp(part, "elm.text.2")) {
+ return g_strdup(sc(eap_data->str_pkg_name, I18N_TYPE_Phase_2_authentication));
+ }
+
+ return NULL;
+}
+
+static char *_gl_eap_auth_subtext_get(void *data, Evas_Object *obj, const char *part)
+{
+ wlan_eap_auth_type_t eap_auth = (wlan_eap_auth_type_t)elm_radio_state_value_get(data);
+ if (!strcmp(part, "elm.text")) {
+ return g_strdup(list_eap_auth[eap_auth].name);
+ }
+
+ return NULL;
+}
+
+static Evas_Object *_gl_eap_auth_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.swallow.icon")) {
+ return data;
+ }
+
+ return NULL;
+}
+
+static void _gl_eap_auth_sub_menu_item_del(void *data, Evas_Object *obj)
+{
+ evas_object_unref(data);
+}
+
+static char *_gl_eap_ca_cert_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *)data;
+ if (!strcmp(part, "elm.text.2")) {
+ return g_strdup(sc(eap_data->str_pkg_name, I18N_TYPE_Ca_Certificate));
+ } else if (!strcmp(part, "elm.text.1")) {
+ return g_strdup(sc(eap_data->str_pkg_name, I18N_TYPE_Unspecified));
+ }
+
+ return NULL;
+}
+
+static char *_gl_eap_user_cert_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *)data;
+ if (!strcmp(part, "elm.text.2")) {
+ return g_strdup(sc(eap_data->str_pkg_name, I18N_TYPE_User_Certificate));
+ } else if (!strcmp(part, "elm.text.1")) {
+ return g_strdup(sc(eap_data->str_pkg_name, I18N_TYPE_Unspecified));
+ }
+
+ return NULL;
+}
+
+static void _gl_eap_entry_cursor_changed_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ if (data == NULL)
+ return;
+
+ common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+
+ if (entry_info) {
+ g_free(entry_info->entry_txt);
+ entry_info->entry_txt = NULL;
+
+ char *entry_text = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+
+ if (entry_text != NULL && entry_text[0] != '\0')
+ entry_info->entry_txt = g_strdup(elm_entry_entry_get(obj));
+
+ g_free(entry_text);
+ }
+}
+
+static void _gl_eap_entry_changed_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ if (obj == NULL)
+ return;
+
+ if (elm_object_focus_get(data)) {
+ if (elm_entry_is_empty(obj))
+ elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+ else
+ elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+ }
+}
+
+static void _gl_eap_entry_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ if (!elm_entry_is_empty(obj))
+ elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+ elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void _gl_eap_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ INFO_LOG(UG_NAME_NORMAL, "_gl_eap_entry_unfocused_cb entered");
+
+ if (elm_entry_is_empty(obj))
+ elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+ else {
+ elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+ }
+
+ elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+}
+
+static void _gl_eap_entry_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ elm_entry_entry_set(data, "");
+}
+
+static Evas_Object *_gl_eap_entry_item_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ if (g_strcmp0(part, "elm.icon")) {
+ return NULL;
+ }
+
+ common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+ if (!entry_info)
+ return NULL;
+
+ Evas_Object *layout = NULL;
+ Evas_Object *entry = NULL;
+ char *title = NULL;
+ char *guide_txt = NULL;
+ char *accepted = NULL;
+ Eina_Bool hide_entry_txt = EINA_FALSE;
+ Elm_Input_Panel_Layout panel_type = ELM_INPUT_PANEL_LAYOUT_URL;
+
+ Elm_Entry_Filter_Limit_Size limit_filter_data;
+
+ layout = elm_layout_add(obj);
+ elm_layout_theme_set(layout, "layout", "editfield", "title");
+
+ entry = elm_entry_add(layout);
+ elm_entry_scrollable_set(entry, EINA_TRUE);
+ elm_entry_single_line_set(entry, EINA_TRUE);
+ elm_object_part_content_set(layout, "elm.swallow.content", entry);
+
+ switch (entry_info->entry_id)
+ {
+ case ENTRY_TYPE_USER_ID:
+ title = entry_info->title_txt;
+ guide_txt = entry_info->guide_txt;
+ break;
+ case ENTRY_TYPE_ANONYMOUS_ID:
+ title = entry_info->title_txt;
+ guide_txt = entry_info->guide_txt;
+ break;
+ case ENTRY_TYPE_PASSWORD:
+ title = entry_info->title_txt;
+ guide_txt = entry_info->guide_txt;
+ hide_entry_txt = EINA_TRUE;
+ break;
+ default:
+ return NULL;
+ }
+ elm_object_part_text_set(layout, "elm.text", title);
+ elm_object_part_text_set(layout, "elm.guidetext", guide_txt);
+ elm_entry_password_set(entry, hide_entry_txt);
+ if (entry_info->entry_txt && (strlen(entry_info->entry_txt) > 0)) {
+ elm_entry_entry_set(entry, entry_info->entry_txt);
+ elm_object_signal_emit(layout, "elm,state,guidetext,hide", "elm");
+ }
+ elm_entry_input_panel_layout_set(entry, panel_type);
+ limit_filter_data.max_char_count = 32;
+ elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data);
+
+ Elm_Entry_Filter_Accept_Set digits_filter_data;
+ memset(&digits_filter_data, 0, sizeof(Elm_Entry_Filter_Accept_Set));
+ digits_filter_data.accepted = accepted;
+ elm_entry_markup_filter_append(entry, elm_entry_filter_accept_set, &digits_filter_data);
+
+ Ecore_IMF_Context *imf_ctxt = elm_entry_imf_context_get(entry);
+ if (imf_ctxt) {
+ ecore_imf_context_input_panel_event_callback_add(imf_ctxt, ECORE_IMF_INPUT_PANEL_STATE_EVENT, entry_info->input_panel_cb, entry_info->input_panel_cb_data);
+ DEBUG_LOG(UG_NAME_NORMAL, "set the imf ctxt cbs");
+ }
+
+ evas_object_smart_callback_add(entry, "cursor,changed", _gl_eap_entry_cursor_changed_cb, entry_info);
+ evas_object_smart_callback_add(entry, "changed", _gl_eap_entry_changed_cb, layout);
+ evas_object_smart_callback_add(entry, "focused", _gl_eap_entry_focused_cb, layout);
+ evas_object_smart_callback_add(entry, "unfocused", _gl_eap_entry_unfocused_cb, layout);
+ elm_object_signal_callback_add(layout, "elm,eraser,clicked", "elm", _gl_eap_entry_eraser_clicked_cb, entry);
+ evas_object_show(entry);
+
+ if (ENTRY_TYPE_USER_ID == entry_info->entry_id) {
+ if (TRUE == g_eap_id_show_keypad) {
+ elm_object_focus_set(entry, EINA_TRUE);
+ g_eap_id_show_keypad = FALSE;
+ }
+ }
+ entry_info->layout = layout;
+ return layout;
+}
+
+static void _gl_eap_entry_item_del(void *data, Evas_Object *obj)
+{
+ common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+ if (entry_info == NULL)
+ return;
+
+ if (entry_info->entry_txt)
+ g_free(entry_info->entry_txt);
+
+ if (entry_info->input_panel_cb) {
+ Evas_Object *entry = common_utils_entry_layout_get_entry(entry_info->layout);
+ Ecore_IMF_Context *imf_ctxt = elm_entry_imf_context_get(entry);
+ if (imf_ctxt) {
+ ecore_imf_context_input_panel_event_callback_del(imf_ctxt, ECORE_IMF_INPUT_PANEL_STATE_EVENT, entry_info->input_panel_cb);
+ }
+ }
+
+ g_free(entry_info);
+}
+
+static void _gl_exp(void *data, Evas_Object *obj, void *event_info)
+{
+ Evas_Object *radio;
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *)data;
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ Elm_Object_Item *sub_item = NULL;
+ Evas_Object *gl = elm_object_item_widget_get(item);
+ if (gl == NULL) {
+ ERROR_LOG(UG_NAME_NORMAL, "gl is NULL");
+ return;
+ }
+
+ evas_object_focus_set(gl, EINA_TRUE);
+
+ int i = 0;
+ eap_type_t eap_type;
+ eap_auth_t auth_type;
+ INFO_LOG(UG_NAME_RESP, "depth = %d", eap_data->expandable_list_index);
+ switch (eap_data->expandable_list_index) {
+ case EAP_METHOD_EXP_MENU_ID:
+ i = EAP_SEC_TYPE_PEAP;
+ eap_type = __common_eap_connect_popup_get_eap_type(eap_data->ap);
+ while(list_eap_type[i].name != NULL) {
+ radio = common_utils_create_radio_button(obj, i);
+ elm_radio_group_add(radio, radio_main);
+ evas_object_ref(radio);
+ if (i == eap_type)
+ elm_radio_value_set(radio, i);
+ sub_item = elm_genlist_item_append(gl, &g_eap_type_sub_itc, (void*)radio, item, list_eap_type[i].flags, _gl_eap_type_sub_sel, eap_data);
+#ifdef DISABLE_FAST_EAP_METHOD
+ if (!g_strcmp0(list_eap_type[i].name, "FAST")) {
+ elm_object_item_disabled_set(sub_item, TRUE);
+ }
+#endif
+ i++;
+ }
+ break;
+ case EAP_PROVISION_EXP_MENU_ID:
+ while(i <= MAX_EAP_PROVISION_NUMBER) {
+ radio = common_utils_create_radio_button(obj, i);
+ elm_radio_group_add(radio, radio_main);
+ evas_object_ref(radio);
+ if (i == 0) /* TODO: Fetch the EAP provision. CAPI not available now. */
+ elm_radio_value_set(radio, i);
+ elm_genlist_item_append(gl, &g_eap_provision_sub_itc, (void*)radio, item, ELM_GENLIST_ITEM_NONE, _gl_eap_provision_sub_sel, eap_data);
+ i++;
+ }
+ break;
+ case EAP_AUTH_TYPE_EXP_MENU_ID:
+ auth_type = __common_eap_connect_popup_get_auth_type(eap_data->ap);
+ while(list_eap_auth[i].name != NULL) {
+ radio = common_utils_create_radio_button(obj, i);
+ elm_radio_group_add(radio, radio_main);
+ evas_object_ref(radio);
+ if (i == auth_type)
+ elm_radio_value_set(radio, i);
+ elm_genlist_item_append(gl, &g_eap_auth_sub_itc, (void*)radio, item, list_eap_auth[i].flags, _gl_eap_auth_sub_sel, eap_data);
+ i++;
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+static void _gl_con(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+ elm_genlist_item_subitems_clear(item);
+}
+
+static void __common_eap_connect_popup_init_item_class(void *data)
+{
+ g_eap_type_itc.item_style = "dialogue/2text.2/expandable";
+ g_eap_type_itc.func.text_get = _gl_eap_type_text_get;
+ g_eap_type_itc.func.content_get = NULL;
+ g_eap_type_itc.func.state_get = NULL;
+ g_eap_type_itc.func.del = NULL;
+
+ g_eap_type_sub_itc.item_style = "dialogue/1text.1icon.2/expandable2";
+ g_eap_type_sub_itc.func.text_get = _gl_eap_subtext_get;
+ g_eap_type_sub_itc.func.content_get = _gl_eap_content_get;
+ g_eap_type_sub_itc.func.state_get = NULL;
+ g_eap_type_sub_itc.func.del = _gl_eap_type_sub_menu_item_del;
+
+ g_eap_provision_itc.item_style = "dialogue/2text.2/expandable";
+ g_eap_provision_itc.func.text_get = _gl_eap_provision_text_get;
+ g_eap_provision_itc.func.content_get = NULL;
+ g_eap_provision_itc.func.state_get = NULL;
+ g_eap_provision_itc.func.del = NULL;
+
+ g_eap_provision_sub_itc.item_style = "dialogue/1text.1icon.2/expandable2";
+ g_eap_provision_sub_itc.func.text_get = _gl_eap_provision_subtext_get;
+ g_eap_provision_sub_itc.func.content_get = _gl_eap_provision_content_get;
+ g_eap_provision_sub_itc.func.state_get = NULL;
+ g_eap_provision_sub_itc.func.del = _gl_eap_provision_sub_menu_item_del;
+
+ g_eap_auth_itc.item_style = "dialogue/2text.2/expandable";
+ g_eap_auth_itc.func.text_get = _gl_eap_auth_text_get;
+ g_eap_auth_itc.func.content_get = NULL;
+ g_eap_auth_itc.func.state_get = NULL;
+ g_eap_auth_itc.func.del = NULL;
+
+ g_eap_auth_sub_itc.item_style = "dialogue/1text.1icon.2/expandable2";
+ g_eap_auth_sub_itc.func.text_get = _gl_eap_auth_subtext_get;
+ g_eap_auth_sub_itc.func.content_get = _gl_eap_auth_content_get;
+ g_eap_auth_sub_itc.func.state_get = NULL;
+ g_eap_auth_sub_itc.func.del = _gl_eap_auth_sub_menu_item_del;
+
+ g_eap_ca_cert_itc.item_style = "dialogue/2text.2";
+ g_eap_ca_cert_itc.func.text_get = _gl_eap_ca_cert_text_get;
+ g_eap_ca_cert_itc.func.content_get = NULL;
+ g_eap_ca_cert_itc.func.state_get = NULL;
+ g_eap_ca_cert_itc.func.del = NULL;
+
+ g_eap_user_cert_itc.item_style = "dialogue/2text.2";
+ g_eap_user_cert_itc.func.text_get = _gl_eap_user_cert_text_get;
+ g_eap_user_cert_itc.func.content_get = NULL;
+ g_eap_user_cert_itc.func.state_get = NULL;
+ g_eap_user_cert_itc.func.del = NULL;
+
+ g_eap_entry_itc.item_style = "dialogue/1icon";
+ g_eap_entry_itc.func.text_get = NULL;
+ g_eap_entry_itc.func.content_get = _gl_eap_entry_item_content_get;
+ g_eap_entry_itc.func.state_get = NULL;
+ g_eap_entry_itc.func.del = _gl_eap_entry_item_del;
+}
+
+static void __common_eap_connect_imf_ctxt_evnt_cb(void *data, Ecore_IMF_Context *ctx, int value)
+{
+ if (!data)
+ return;
+
+ if (value == ECORE_IMF_INPUT_PANEL_STATE_SHOW) {
+ DEBUG_LOG(UG_NAME_NORMAL, "Key pad is now open");
+ elm_object_item_signal_emit(data, "elm,state,sip,shown", "");
+ } else if (value == ECORE_IMF_INPUT_PANEL_STATE_HIDE) {
+ DEBUG_LOG(UG_NAME_NORMAL, "Key pad is now close");
+ elm_object_item_signal_emit(data, "elm,state,sip,hidden", "");
+ }
+}
+
+static void __common_eap_connect_imf_ctxt_evnt_resize_cb(void *data, Ecore_IMF_Context *ctx, int value)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (!data)
+ return;
+
+ if (value == ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW)
+ return;
+
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *)data;
+ Evas_Object *box = elm_object_content_get(eap_data->popup);
+
+ __common_popup_size_get(ctx, &eap_data->visible_area_width, &eap_data->visible_area_height);
+ evas_object_size_hint_min_set(box, eap_data->visible_area_width * elm_config_scale_get(),
+ eap_data->visible_area_height * elm_config_scale_get());
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void __common_eap_view_set_imf_ctxt_evnt_cb(common_eap_connect_data_t *eap_data)
+{
+ if (!eap_data)
+ return;
+
+ Elm_Object_Item *navi_it = elm_naviframe_top_item_get(eap_data->navi_frame);
+
+ if (!navi_it)
+ return;
+
+ if (eap_data->eap_id_item)
+ common_utils_set_edit_box_imf_panel_evnt_cb(eap_data->eap_id_item, __common_eap_connect_imf_ctxt_evnt_cb, navi_it);
+ if (eap_data->eap_anonyid_item)
+ common_utils_set_edit_box_imf_panel_evnt_cb(eap_data->eap_anonyid_item, __common_eap_connect_imf_ctxt_evnt_cb, navi_it);
+ if (eap_data->eap_pw_item)
+ common_utils_set_edit_box_imf_panel_evnt_cb(eap_data->eap_pw_item, __common_eap_connect_imf_ctxt_evnt_cb, navi_it);
+}
+
+static void __common_eap_popup_set_imf_ctxt_evnt_cb(common_eap_connect_data_t *eap_data)
+{
+ if (!eap_data)
+ return;
+
+ if (eap_data->eap_id_item)
+ common_utils_set_edit_box_imf_panel_evnt_cb(eap_data->eap_id_item, __common_eap_connect_imf_ctxt_evnt_resize_cb, eap_data);
+ if (eap_data->eap_anonyid_item)
+ common_utils_set_edit_box_imf_panel_evnt_cb(eap_data->eap_anonyid_item, __common_eap_connect_imf_ctxt_evnt_resize_cb, eap_data);
+ if (eap_data->eap_pw_item)
+ common_utils_set_edit_box_imf_panel_evnt_cb(eap_data->eap_pw_item, __common_eap_connect_imf_ctxt_evnt_resize_cb, eap_data);
+}
+
+/*
+ * This creates EAP type, Auth type, CA certificate, User certificate, User Id, Anonymous Id and Password items.
+ */
+
+static void _create_and_update_list_items_based_on_rules(eap_type_t new_type, common_eap_connect_data_t *eap_data)
+{
+ __COMMON_FUNC_ENTER__;
+ Evas_Object* view_list = eap_data->genlist;
+ Elm_Object_Item *insert_after_item = NULL;
+ eap_type_t pre_type;
+
+ if (NULL == eap_data->eap_type_item) {
+ /* Create EAP method/type */
+ pre_type = EAP_SEC_TYPE_SIM;
+ eap_data->eap_type_item = elm_genlist_item_append(view_list, &g_eap_type_itc, eap_data, NULL, ELM_GENLIST_ITEM_TREE, _gl_eap_type_sel, eap_data);
+ } else {
+ pre_type = __common_eap_connect_popup_get_eap_type(eap_data->ap);
+ }
+
+ switch (new_type) {
+ case EAP_SEC_TYPE_PEAP:
+ case EAP_SEC_TYPE_TLS:
+ case EAP_SEC_TYPE_TTLS:
+ if (EAP_SEC_TYPE_UNKNOWN == pre_type || EAP_SEC_TYPE_SIM == pre_type || EAP_SEC_TYPE_AKA == pre_type) {
+ insert_after_item = eap_data->eap_type_item;
+ } else if (EAP_SEC_TYPE_FAST == pre_type) {
+ elm_object_item_del(eap_data->eap_provision_item);
+ eap_data->eap_provision_item = NULL;
+ }
+ break;
+ case EAP_SEC_TYPE_SIM:
+ case EAP_SEC_TYPE_AKA:
+ if (EAP_SEC_TYPE_PEAP == pre_type || EAP_SEC_TYPE_TLS == pre_type || EAP_SEC_TYPE_TTLS == pre_type) {
+ _delete_eap_entry_items(eap_data);
+ } else if (EAP_SEC_TYPE_FAST == pre_type) {
+ elm_object_item_del(eap_data->eap_provision_item);
+ eap_data->eap_provision_item = NULL;
+ _delete_eap_entry_items(eap_data);
+ }
+ break;
+ case EAP_SEC_TYPE_FAST:
+ /* Add EAP provision */
+ eap_data->eap_provision_item = elm_genlist_item_insert_after(view_list, &g_eap_provision_itc, eap_data, NULL, eap_data->eap_type_item, ELM_GENLIST_ITEM_TREE, _gl_eap_provision_sel, eap_data);
+ DEBUG_LOG(UG_NAME_NORMAL, "current selected provision = %d", 0); // TODO: Fetch the EAP provision. CAPI not yet available.
+ if (EAP_SEC_TYPE_UNKNOWN == pre_type || EAP_SEC_TYPE_SIM == pre_type || EAP_SEC_TYPE_AKA == pre_type) {
+ insert_after_item = eap_data->eap_provision_item;
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (insert_after_item) {
+ common_utils_entry_info_t *edit_box_details;
+
+ /* Add EAP phase2 authentication */
+ eap_data->eap_auth_item = elm_genlist_item_insert_after(view_list, &g_eap_auth_itc, eap_data, NULL, insert_after_item, ELM_GENLIST_ITEM_TREE, _gl_eap_auth_sel, eap_data);
+
+ /* Add CA certificate */
+ eap_data->eap_ca_cert_item = elm_genlist_item_insert_after(view_list, &g_eap_ca_cert_itc, eap_data, NULL, eap_data->eap_auth_item, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(eap_data->eap_ca_cert_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ /* Add User certificate */
+ eap_data->eap_user_cert_item = elm_genlist_item_insert_after(view_list, &g_eap_user_cert_itc, eap_data, NULL, eap_data->eap_ca_cert_item, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(eap_data->eap_user_cert_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ /* Add EAP ID */
+ edit_box_details = g_new0(common_utils_entry_info_t, 1);
+ edit_box_details->entry_id = ENTRY_TYPE_USER_ID;
+ edit_box_details->title_txt = sc(eap_data->str_pkg_name, I18N_TYPE_Identity);
+ edit_box_details->guide_txt = sc(eap_data->str_pkg_name, I18N_TYPE_Enter_Identity);
+ eap_data->eap_id_item = elm_genlist_item_insert_after(view_list, &g_eap_entry_itc, edit_box_details, NULL, eap_data->eap_user_cert_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+ elm_genlist_item_select_mode_set(eap_data->eap_id_item, ELM_OBJECT_SELECT_MODE_NONE);
+ g_eap_id_show_keypad = FALSE;
+
+ /* Add EAP Anonymous Identity */
+ edit_box_details = g_new0(common_utils_entry_info_t, 1);
+ edit_box_details->entry_id = ENTRY_TYPE_ANONYMOUS_ID;
+ edit_box_details->title_txt = sc(eap_data->str_pkg_name, I18N_TYPE_Anonymous_Identity);
+ edit_box_details->guide_txt = sc(eap_data->str_pkg_name, I18N_TYPE_Enter_Anonymous_Identity);
+ eap_data->eap_anonyid_item = elm_genlist_item_insert_after(view_list, &g_eap_entry_itc, edit_box_details, NULL, eap_data->eap_id_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+ elm_genlist_item_select_mode_set(eap_data->eap_anonyid_item, ELM_OBJECT_SELECT_MODE_NONE);
+
+ /* Add EAP Password */
+ edit_box_details = g_new0(common_utils_entry_info_t, 1);
+ edit_box_details->entry_id = ENTRY_TYPE_PASSWORD;
+ edit_box_details->title_txt = sc(eap_data->str_pkg_name, I18N_TYPE_Password);
+ edit_box_details->guide_txt = sc(eap_data->str_pkg_name, I18N_TYPE_Enter_password);
+ eap_data->eap_pw_item = elm_genlist_item_insert_after(view_list, &g_eap_entry_itc, edit_box_details, NULL, eap_data->eap_anonyid_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+ elm_genlist_item_select_mode_set(eap_data->eap_pw_item, ELM_OBJECT_SELECT_MODE_NONE);
+
+ if (eap_data->popup) { /* Popup */
+ __common_eap_popup_set_imf_ctxt_evnt_cb(eap_data);
+ } else { /* View */
+ __common_eap_view_set_imf_ctxt_evnt_cb(eap_data);
+ }
+ }
+ __COMMON_FUNC_EXIT__;
+}
+
+void _delete_eap_entry_items(common_eap_connect_data_t *eap_data)
+{
+ __COMMON_FUNC_ENTER__;
+ elm_object_item_del(eap_data->eap_auth_item);
+ eap_data->eap_auth_item = NULL;
+ elm_object_item_del(eap_data->eap_ca_cert_item);
+ eap_data->eap_ca_cert_item = NULL;
+ elm_object_item_del(eap_data->eap_user_cert_item);
+ eap_data->eap_user_cert_item = NULL;
+ elm_object_item_del(eap_data->eap_id_item);
+ eap_data->eap_id_item = NULL;
+ elm_object_item_del(eap_data->eap_anonyid_item);
+ eap_data->eap_anonyid_item = NULL;
+ elm_object_item_del(eap_data->eap_pw_item);
+ eap_data->eap_pw_item = NULL;
+ __COMMON_FUNC_EXIT__;
+}
+
+static Evas_Object* _create_list(Evas_Object* parent, void *data)
+{
+ __COMMON_FUNC_ENTER__;
+ assertm_if(NULL == parent, "NULL!!");
+
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *)data;
+ const char* parent_view_name = evas_object_name_get(parent);
+ Evas_Object* view_list = NULL;
+
+ __common_eap_connect_popup_init_item_class(eap_data);
+ eap_data->eap_done_ok = FALSE;
+ eap_data->genlist = view_list = elm_genlist_add(parent);
+
+ if (g_strcmp0(EAP_CONNECT_POPUP, parent_view_name) != 0) {
+ elm_object_style_set(view_list, "dialogue");
+ common_utils_add_dialogue_separator(view_list, "dialogue/separator.2");
+ }
+
+ evas_object_size_hint_weight_set(view_list, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(view_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ if (!radio_main) {
+ radio_main = elm_radio_add(view_list);
+ elm_radio_state_value_set(radio_main, 0);
+ elm_radio_value_set(radio_main, 0);
+ }
+
+ /* Set default values. eap type = PEAP, auth type = MSCHAPv2 */
+ wifi_ap_set_eap_type(eap_data->ap, WIFI_EAP_TYPE_PEAP);
+ wifi_ap_set_eap_auth_type(eap_data->ap, WIFI_EAP_AUTH_TYPE_MSCHAPV2);
+
+ /* Create the entry items */
+ _create_and_update_list_items_based_on_rules(EAP_SEC_TYPE_PEAP, eap_data);
+
+ evas_object_smart_callback_add(view_list, "expanded", _gl_exp, eap_data);
+ evas_object_smart_callback_add(view_list, "contracted", _gl_con, view_list);
+
+ __COMMON_FUNC_EXIT__;
+ return view_list;
+}
+
+static void __common_eap_connect_cleanup(common_eap_connect_data_t *eap_data)
+{
+ if (eap_data != NULL) {
+ ip_info_remove(eap_data->ip_info_list);
+ eap_data->ip_info_list = NULL;
+ evas_object_del(eap_data->genlist);
+ wifi_ap_destroy(eap_data->ap);
+ eap_data->ap = NULL;
+ evas_object_del(radio_main);
+ radio_main = NULL;
+ if (NULL == eap_data->navi_frame) {
+ evas_object_del(eap_data->popup);
+ /* Lets enable the scan updates */
+ wlan_manager_enable_scan_result_update();
+ }
+ g_free(eap_data);
+
+ }
+}
+
+static void __common_eap_connect_destroy(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *) data;
+ __common_eap_connect_cleanup(eap_data);
+ __COMMON_FUNC_EXIT__;
+}
+
+static void __common_eap_connect_done_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *)data;
+
+ if(eap_data->eap_done_ok == TRUE) {
+ return;
+ }
+ eap_data->eap_done_ok = TRUE;
+
+ char* str_id = NULL;
+ char* str_pw = NULL;
+
+ wifi_eap_type_e eap_type;
+
+ wifi_ap_set_eap_ca_cert_file(eap_data->ap, "");
+ wifi_ap_set_eap_client_cert_file(eap_data->ap, "");
+ wifi_ap_set_eap_private_key_info(eap_data->ap, "", "");
+
+ wifi_ap_get_eap_type(eap_data->ap, &eap_type);
+ switch (eap_type) {
+ case WIFI_EAP_TYPE_PEAP:
+ case WIFI_EAP_TYPE_TTLS:
+ str_id = common_utils_get_list_item_entry_txt(eap_data->eap_id_item);
+ if (!str_id || strlen(str_id) <= 0) {
+ common_utils_show_info_ok_popup(eap_data->win, eap_data->str_pkg_name, EAP_CHECK_YOUR_ID_STR);
+ eap_data->eap_done_ok = FALSE;
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ str_pw = common_utils_get_list_item_entry_txt(eap_data->eap_pw_item);
+ if (!str_pw || strlen(str_pw) <= 0) {
+ common_utils_show_info_ok_popup(eap_data->win, eap_data->str_pkg_name, EAP_CHECK_YOUR_PASWD_STR);
+ eap_data->eap_done_ok = FALSE;
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ char *temp_str = common_utils_get_list_item_entry_txt(eap_data->eap_anonyid_item);
+ /* TODO: Set the anonymous id. CAPI not yet available. */
+ g_free(temp_str);
+
+ wifi_ap_set_eap_passphrase(eap_data->ap, str_id, str_pw);
+ break;
+
+ case WIFI_EAP_TYPE_TLS:
+// g_strlcpy(p_conn_info->security_info.authentication.eap.username, str_id, NETPM_WLAN_USERNAME_LEN);
+// g_strlcpy(p_conn_info->security_info.authentication.eap.password, str_pw, NETPM_WLAN_USERNAME_LEN);
+ wifi_ap_set_eap_ca_cert_file(eap_data->ap, "/mnt/ums/Certification/ca2.pem");
+ wifi_ap_set_eap_client_cert_file(eap_data->ap, "/mnt/ums/Certification/user2.pem");
+ wifi_ap_set_eap_private_key_info(eap_data->ap, "/mnt/ums/Certification/user2.prv", "wifi");
+ break;
+
+ case WIFI_EAP_TYPE_SIM:
+ case WIFI_EAP_TYPE_AKA:
+ break;
+
+ default:
+ /* This case should never occur */
+ ERROR_LOG(UG_NAME_NORMAL, "Err!");
+ break;
+ }
+
+ /* Before we proceed to make a connection, lets save the entered IP data */
+ ip_info_save_data(eap_data->ip_info_list);
+
+ int ret = wlan_manager_connect_with_wifi_info(eap_data->ap);
+ if (WLAN_MANAGER_ERR_NONE != ret) {
+ ERROR_LOG(UG_NAME_NORMAL, "EAP connect request failed!!! Err = %d", ret);
+ }
+
+ if (eap_data->navi_frame) {
+ eap_view_close(eap_data);
+ } else {
+ __common_eap_connect_destroy(eap_data, NULL, NULL);
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static Eina_Bool __common_eap_connect_show_ime(void *data)
+{
+ Elm_Object_Item *list_entry_item = (Elm_Object_Item *)data;
+ if (!list_entry_item)
+ return ECORE_CALLBACK_CANCEL;
+
+ common_utils_entry_info_t *entry_info = elm_object_item_data_get(list_entry_item);
+ Evas_Object *lyt = entry_info->layout;
+ Evas_Object *entry = common_utils_entry_layout_get_entry(lyt);
+ if (!lyt || !entry)
+ return ECORE_CALLBACK_CANCEL;
+
+ g_eap_id_show_keypad = TRUE;
+ elm_genlist_item_update(list_entry_item);
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static Eina_Bool __common_eap_connect_load_ip_info_list_cb(void *data)
+{
+ common_eap_connect_data_t *eap_data = (common_eap_connect_data_t *)data;
+ Elm_Object_Item *navi_it = NULL;
+ Evas_Object *list = NULL;
+
+ if (!eap_data)
+ return ECORE_CALLBACK_CANCEL;
+
+ if (eap_data->navi_frame) {
+ Evas_Object *layout = NULL;
+ navi_it = elm_naviframe_top_item_get(eap_data->navi_frame);
+ layout = elm_object_item_part_content_get(navi_it, "elm.swallow.content");
+ list = elm_object_part_content_get(layout, "elm.swallow.content");
+ eap_data->ip_info_list = ip_info_append_items(eap_data->ap, eap_data->str_pkg_name, list, __common_eap_connect_imf_ctxt_evnt_cb, navi_it);
+ } else {
+ Evas_Object *box = elm_object_content_get(eap_data->popup);
+ Eina_List *box_childs = elm_box_children_get(box);
+ list = eina_list_nth(box_childs, 0);
+ eap_data->ip_info_list = ip_info_append_items(eap_data->ap, eap_data->str_pkg_name, list, __common_eap_connect_imf_ctxt_evnt_resize_cb, eap_data);
+ }
+
+ /* Add a separator */
+ common_utils_add_dialogue_separator(list, "dialogue/separator");
+
+ ecore_idler_add(__common_eap_connect_show_ime, eap_data->eap_id_item);
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+common_eap_connect_data_t *create_eap_connect_view(Evas_Object *win_main, Evas_Object *navi_frame, const char *pkg_name, wifi_device_info_t *device_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (!win_main || !device_info || !pkg_name)
+ return NULL;
+
+ common_eap_connect_data_t *eap_data = g_new0(common_eap_connect_data_t, 1);
+ eap_data->str_pkg_name = pkg_name;
+ eap_data->win = win_main;
+
+ /* Clone the WiFi AP handle */
+ wifi_ap_clone(&(eap_data->ap), device_info->ap);
+
+ /* Create eap connect view */
+ Elm_Object_Item* navi_it;
+ Evas_Object* button_back;
+ Evas_Object *connect_button;
+ Evas_Object *layout;
+ Evas_Object *list = NULL;
+
+ eap_data->navi_frame = navi_frame;
+
+ layout = common_utils_create_layout(navi_frame);
+ /* Create an EAP connect view list */
+ list = _create_list(layout, eap_data);
+ elm_object_part_content_set(layout, "elm.swallow.content", list);
+ navi_it = elm_naviframe_item_push(navi_frame, device_info->ssid, NULL, NULL, layout, NULL);
+ evas_object_data_set(navi_frame, SCREEN_TYPE_ID_KEY, (void *)VIEW_MANAGER_VIEW_TYPE_EAP);
+
+ /* Tool bar Connect button */
+ connect_button = elm_button_add(navi_frame);
+ elm_object_style_set(connect_button, "naviframe/toolbar/default");
+ elm_object_text_set(connect_button, sc(pkg_name, I18N_TYPE_Connect));
+ evas_object_smart_callback_add(connect_button, "clicked", __common_eap_connect_done_cb, eap_data);
+ elm_object_item_part_content_set(navi_it, "toolbar_button1", connect_button);
+
+ /* Tool bar Back button */
+ button_back = elm_object_item_part_content_get(navi_it, "prev_btn");
+ evas_object_smart_callback_add(button_back, "clicked", __common_eap_connect_destroy, eap_data);
+
+ /* Append ip info items and add a seperator */
+ ecore_idler_add(__common_eap_connect_load_ip_info_list_cb, eap_data);
+
+ /* Title Connect button */
+ connect_button = elm_button_add(navi_frame);
+ elm_object_style_set(connect_button, "naviframe/toolbar/default");
+ elm_object_text_set(connect_button, sc(pkg_name, I18N_TYPE_Connect));
+ evas_object_smart_callback_add(connect_button, "clicked", __common_eap_connect_done_cb, eap_data);
+ elm_object_item_part_content_set(navi_it, "title_toolbar_button1", connect_button);
+
+ /* Title Back button */
+ button_back = elm_button_add(navi_frame);
+ elm_object_style_set(button_back, "naviframe/back_btn/default");
+ evas_object_smart_callback_add(button_back, "clicked", (Evas_Smart_Cb)eap_view_close, eap_data);
+ elm_object_item_part_content_set(navi_it, "title_prev_btn", button_back);
+
+ /* Register imf event cbs */
+ __common_eap_view_set_imf_ctxt_evnt_cb(eap_data);
+
+ __COMMON_FUNC_EXIT__;
+
+ return eap_data;
+}
+
+common_eap_connect_data_t *create_eap_connect_popup(Evas_Object *win_main, const char *pkg_name, wifi_device_info_t *device_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ Evas_Object *list = NULL;
+ if (!win_main || !device_info || !pkg_name)
+ return NULL;
+
+ common_eap_connect_data_t *eap_data = g_new0(common_eap_connect_data_t, 1);
+ eap_data->str_pkg_name = pkg_name;
+ eap_data->win = win_main;
+
+ /* Clone the WiFi AP handle */
+ wifi_ap_clone(&(eap_data->ap), device_info->ap);
+
+ /* Create eap connect popup */
+ Evas_Object *popup;
+ Evas_Object *box;
+ Evas_Object *btn;
+ int rotate_angle;
+ int visible_area_height;
+ int visible_area_width;
+
+ /* Lets disable the scan updates so that the UI is not refreshed un necessarily */
+ wlan_manager_disable_scan_result_update();
+
+ eap_data->popup = popup = elm_popup_add(win_main);
+ elm_object_style_set(popup, "min_menustyle");
+ elm_object_part_text_set(popup, "title,text", device_info->ssid);
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ btn = elm_button_add(popup);
+ elm_object_text_set(btn, sc(pkg_name, I18N_TYPE_Connect));
+ elm_object_part_content_set(popup, "button1", btn);
+ evas_object_smart_callback_add(btn, "clicked", __common_eap_connect_done_cb, eap_data);
+
+ btn = elm_button_add(popup);
+ elm_object_text_set(btn, sc(pkg_name, I18N_TYPE_Cancel));
+ elm_object_part_content_set(popup, "button2", btn);
+ evas_object_smart_callback_add(btn, "clicked", __common_eap_connect_destroy, eap_data);
+
+ /* Create and add a box into the layout. */
+ box = elm_box_add(popup);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(box, EVAS_HINT_FILL, 0.0);
+
+ rotate_angle = common_utils_get_rotate_angle(APPCORE_RM_UNKNOWN);
+
+ __common_popup_size_get(NULL ,&visible_area_width, &visible_area_height);
+ evas_object_size_hint_min_set(box, visible_area_width * elm_config_scale_get(), visible_area_height * elm_config_scale_get());
+ evas_object_name_set(box, EAP_CONNECT_POPUP);
+
+ /* Create an EAP connect view list */
+ list = _create_list(box, eap_data);
+
+ /* Append ip info items and add a seperator */
+ ecore_idler_add(__common_eap_connect_load_ip_info_list_cb, eap_data);
+
+
+ /* Pack the list into the box */
+ elm_box_pack_end(box, list);
+ elm_object_content_set(popup, box);
+ evas_object_show(list);
+ evas_object_show(box);
+ evas_object_show(popup);
+
+ __COMMON_FUNC_EXIT__;
+
+ return eap_data;
+}
+
+static wifi_eap_type_e __common_eap_connect_popup_get_wlan_eap_type(eap_type_t eap_type)
+{
+ wifi_eap_type_e wlan_eap_type = WLAN_SEC_EAP_TYPE_PEAP;
+ switch (eap_type) {
+ case EAP_SEC_TYPE_PEAP:
+ wlan_eap_type = WIFI_EAP_TYPE_PEAP;
+ break;
+ case EAP_SEC_TYPE_TLS:
+ wlan_eap_type = WIFI_EAP_TYPE_TLS;
+ break;
+ case EAP_SEC_TYPE_TTLS:
+ wlan_eap_type = WIFI_EAP_TYPE_TTLS;
+ break;
+ case EAP_SEC_TYPE_SIM:
+ wlan_eap_type = WIFI_EAP_TYPE_SIM;
+ break;
+ case EAP_SEC_TYPE_AKA:
+ wlan_eap_type = WIFI_EAP_TYPE_AKA;
+ break;
+#ifndef DISABLE_FAST_EAP_METHOD
+ /* Replace 6 with WLAN_SEC_EAP_TYPE_FAST, when libnet supports WLAN_SEC_EAP_TYPE_FAST enum */
+ case EAP_SEC_TYPE_FAST:
+ wlan_eap_type = 6;
+#endif
+ default:
+ /* This case should never occur */
+ ERROR_LOG(UG_NAME_NORMAL, "Err!");
+ break;
+ }
+ return wlan_eap_type;
+}
+
+static wifi_eap_auth_type_e __common_eap_connect_popup_get_wlan_auth_type(eap_auth_t auth_type)
+{
+ wifi_eap_auth_type_e wlan_auth_type = WIFI_EAP_AUTH_TYPE_NONE;
+ switch (auth_type) {
+ case EAP_SEC_AUTH_NONE:
+ wlan_auth_type = WIFI_EAP_AUTH_TYPE_NONE;
+ break;
+ case EAP_SEC_AUTH_PAP:
+ wlan_auth_type = WIFI_EAP_AUTH_TYPE_PAP;
+ break;
+ case EAP_SEC_AUTH_MSCHAP:
+ wlan_auth_type = WIFI_EAP_AUTH_TYPE_MSCHAP;
+ break;
+ case EAP_SEC_AUTH_MSCHAPV2:
+ wlan_auth_type = WIFI_EAP_AUTH_TYPE_MSCHAPV2;
+ break;
+ case EAP_SEC_AUTH_GTC:
+ wlan_auth_type = WIFI_EAP_AUTH_TYPE_GTC;
+ break;
+ case EAP_SEC_AUTH_MD5:
+ wlan_auth_type = WIFI_EAP_AUTH_TYPE_MD5;
+ break;
+ default:
+ /* This case should never occur */
+ ERROR_LOG(UG_NAME_NORMAL, "Err!");
+ break;
+ }
+ return wlan_auth_type;
+}
+
+static eap_type_t __common_eap_connect_popup_get_eap_type(wifi_ap_h ap)
+{
+ wifi_eap_type_e wlan_eap_type = 0;
+ int ret = wifi_ap_get_eap_type(ap, &wlan_eap_type);
+ if (WIFI_ERROR_OPERATION_FAILED == ret) {
+ ret = wifi_ap_set_eap_type(ap, WIFI_EAP_TYPE_PEAP); // Set to default
+ }
+
+ if (WIFI_ERROR_NONE != ret) {
+ ERROR_LOG(UG_NAME_ERR, "Unable to get the eap type. err = %d", ret);
+ return EAP_SEC_TYPE_UNKNOWN;
+ }
+ INFO_LOG(UG_NAME_NORMAL, "WiFi EAP type = %d", wlan_eap_type);
+ switch (wlan_eap_type) {
+ case WIFI_EAP_TYPE_PEAP: /**< EAP PEAP type */
+ return EAP_SEC_TYPE_PEAP;
+
+ case WIFI_EAP_TYPE_TLS: /**< EAP TLS type */
+ return EAP_SEC_TYPE_TLS;
+
+ case WIFI_EAP_TYPE_TTLS: /**< EAP TTLS type */
+ return EAP_SEC_TYPE_TTLS;
+
+ case WIFI_EAP_TYPE_SIM: /**< EAP SIM type */
+ return EAP_SEC_TYPE_SIM;
+
+ case WIFI_EAP_TYPE_AKA: /**< EAP AKA type */
+ return EAP_SEC_TYPE_AKA;
+
+#ifndef DISABLE_FAST_EAP_METHOD
+ /* Replace 6 with WLAN_SEC_EAP_TYPE_FAST, when libnet supports WLAN_SEC_EAP_TYPE_FAST enum */
+ case 6:
+ return EAP_SEC_TYPE_FAST;
+#endif
+
+ default:
+ return EAP_SEC_TYPE_PEAP;
+ }
+ return EAP_SEC_TYPE_PEAP;
+}
+
+static eap_auth_t __common_eap_connect_popup_get_auth_type(wifi_ap_h ap)
+{
+ wifi_eap_auth_type_e wlan_auth_type = 0;
+ int ret = wifi_ap_get_eap_auth_type(ap, &wlan_auth_type);
+ if (WIFI_ERROR_OPERATION_FAILED == ret) {
+ ret = wifi_ap_set_eap_auth_type(ap, EAP_SEC_AUTH_NONE); // Set to default
+ }
+
+ if (WIFI_ERROR_NONE != ret) {
+ ERROR_LOG(UG_NAME_ERR, "Unable to get the eap auth type. err = %d", ret);
+ return EAP_SEC_AUTH_NONE;
+ }
+ INFO_LOG(UG_NAME_NORMAL, "WiFi EAP auth type = %d", wlan_auth_type);
+
+ switch (wlan_auth_type) {
+ case WIFI_EAP_AUTH_TYPE_NONE: /**< EAP phase2 authentication none */
+ return EAP_SEC_AUTH_NONE;
+
+ case WIFI_EAP_AUTH_TYPE_PAP: /**< EAP phase2 authentication PAP */
+ return EAP_SEC_AUTH_PAP;
+
+ case WIFI_EAP_AUTH_TYPE_MSCHAP: /**< EAP phase2 authentication MSCHAP */
+ return EAP_SEC_AUTH_MSCHAP;
+
+ case WIFI_EAP_AUTH_TYPE_MSCHAPV2: /**< EAP phase2 authentication MSCHAPv2 */
+ return EAP_SEC_AUTH_MSCHAPV2;
+
+ case WIFI_EAP_AUTH_TYPE_GTC: /**< EAP phase2 authentication GTC */
+ return EAP_SEC_AUTH_GTC;
+
+ case WIFI_EAP_AUTH_TYPE_MD5: /**< EAP phase2 authentication MD5 */
+ return EAP_SEC_AUTH_MD5;
+
+ default:
+ return EAP_SEC_AUTH_NONE;
+ }
+ return EAP_SEC_AUTH_NONE;
+}
+
+/* This creates Auth type, ID, Anonymous Id and Password items
+ * This function should be called after creating the EAP type item
+ */
+eap_info_list_t *eap_info_append_items(wifi_ap_h ap, Evas_Object* view_list, const char *str_pkg_name, imf_ctxt_panel_cb_t input_panel_cb, void *input_panel_cb_data)
+{
+ __COMMON_FUNC_ENTER__;
+ eap_type_t eap_type;
+ eap_auth_t auth_type;
+ char *temp_str = NULL;
+ Eina_Bool append_continue = TRUE;
+ eap_info_list_t *eap_info_list_data = NULL;
+ if (!view_list || !str_pkg_name || !ap) {
+ ERROR_LOG(UG_NAME_ERR, "Invalid params passed!");
+ return NULL;
+ }
+
+ eap_info_list_data = g_new0(eap_info_list_t, 1);
+
+ eap_info_list_data->ap = ap;
+ eap_type = __common_eap_connect_popup_get_eap_type(ap);
+ auth_type = __common_eap_connect_popup_get_auth_type(ap);
+ common_utils_add_dialogue_separator(view_list, "dialogue/separator.2");
+
+ common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_EAP_method), list_eap_type[eap_type].name);
+
+ switch (eap_type) {
+ case EAP_SEC_TYPE_UNKNOWN:
+ case EAP_SEC_TYPE_PEAP:
+ case EAP_SEC_TYPE_TLS:
+ case EAP_SEC_TYPE_TTLS:
+ break;
+ case EAP_SEC_TYPE_FAST:
+ /* Add EAP provision */
+ /* TODO: Fetch EAP provisioning. CAPI not available. */
+ temp_str = g_strdup("");
+ common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Provisioning), temp_str);
+ g_free(temp_str);
+ temp_str = NULL;
+ break;
+ case EAP_SEC_TYPE_SIM:
+ case EAP_SEC_TYPE_AKA:
+ default:
+ append_continue = FALSE;
+ break;
+ }
+
+ if (append_continue) {
+ common_utils_entry_info_t *edit_box_details;
+
+ /* Add EAP phase2 authentication */
+ common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Phase_2_authentication), list_eap_auth[auth_type].name);
+
+ /* Add CA certificate */
+ temp_str = NULL;
+ wifi_ap_get_eap_ca_cert_file(ap, &temp_str);
+ temp_str = temp_str? temp_str : g_strdup(sc(str_pkg_name, I18N_TYPE_Unspecified));
+ common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Ca_Certificate), temp_str);
+ g_free(temp_str);
+
+ /* Add User certificate */
+ temp_str = NULL;
+ wifi_ap_get_eap_client_cert_file(ap, &temp_str);
+ temp_str = temp_str? temp_str : g_strdup(sc(str_pkg_name, I18N_TYPE_Unspecified));
+ common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_User_Certificate),temp_str);
+ g_free(temp_str);
+
+ /* Add EAP ID */
+ bool is_paswd_set;
+ temp_str = NULL;
+ wifi_ap_get_eap_passphrase(ap, &temp_str, &is_paswd_set);
+ common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Identity), temp_str);
+ g_free(temp_str);
+
+ /* Add EAP Anonymous Identity */
+ /* TODO: Fetch the anonymous user id. CAPI not available. */
+ temp_str = g_strdup("");
+ common_utils_add_2_line_txt_disabled_item(view_list, "dialogue/2text.2", sc(str_pkg_name, I18N_TYPE_Anonymous_Identity), temp_str);
+ g_free(temp_str);
+
+ /* Add EAP Password */
+ g_eap_entry_itc.item_style = "dialogue/1icon";
+ g_eap_entry_itc.func.text_get = NULL;
+ g_eap_entry_itc.func.content_get = _gl_eap_entry_item_content_get;
+ g_eap_entry_itc.func.state_get = NULL;
+ g_eap_entry_itc.func.del = _gl_eap_entry_item_del;
+
+ /* TODO: Fetch the password. CAPI not available. */
+ if (is_paswd_set)
+ temp_str = g_strdup("XXXXX");
+ else
+ temp_str = g_strdup("");
+
+ edit_box_details = g_new0(common_utils_entry_info_t, 1);
+ edit_box_details->entry_id = ENTRY_TYPE_PASSWORD;
+ edit_box_details->title_txt = sc(str_pkg_name, I18N_TYPE_Password);
+ edit_box_details->entry_txt = temp_str;
+ edit_box_details->input_panel_cb = input_panel_cb;
+ edit_box_details->input_panel_cb_data = input_panel_cb_data;
+ eap_info_list_data->pswd_item = elm_genlist_item_append(view_list, &g_eap_entry_itc, edit_box_details, NULL, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+ elm_genlist_item_select_mode_set(eap_info_list_data->pswd_item, ELM_OBJECT_SELECT_MODE_NONE);
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return eap_info_list_data;
+}
+
+void eap_info_save_data(eap_info_list_t *eap_info_list_data)
+{
+ if (!eap_info_list_data) {
+ ERROR_LOG(UG_NAME_ERR, "Invalid params passed!");
+ return;
+ }
+ char *txt = common_utils_get_list_item_entry_txt(eap_info_list_data->pswd_item);
+ DEBUG_LOG(UG_NAME_NORMAL, "Password [%s]", txt);
+
+ wifi_ap_set_eap_passphrase(eap_info_list_data->ap, NULL, txt);
+ g_free(txt);
+}
+
+void eap_info_remove(eap_info_list_t *eap_info_list_data)
+{
+ if (!eap_info_list_data) {
+ ERROR_LOG(UG_NAME_ERR, "Invalid params passed!");
+ return;
+ }
+
+ elm_object_item_del(eap_info_list_data->pswd_item);
+ eap_info_list_data->pswd_item = NULL;
+ g_free(eap_info_list_data);
+}
+
+void eap_view_close(common_eap_connect_data_t *eap_data)
+{
+ if (NULL == eap_data)
+ return;
+
+ Evas_Object *nf = eap_data->navi_frame;
+ __common_eap_connect_cleanup(eap_data);
+ elm_naviframe_item_pop(nf);
+}
+
+void eap_view_rotate_popup(common_eap_connect_data_t *eap_data, int rotate_angle)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (NULL == eap_data || NULL == eap_data->popup)
+ return;
+
+ Evas_Object *box = elm_object_content_get(eap_data->popup);
+ __common_popup_size_get(NULL, &eap_data->visible_area_width, &eap_data->visible_area_height);
+ evas_object_size_hint_min_set(box, eap_data->visible_area_width * elm_config_scale_get(), eap_data->visible_area_height* elm_config_scale_get());
+
+ __COMMON_FUNC_EXIT__;
+}
diff --git a/sources/libraries/Common/common_invalid_password.c b/sources/libraries/Common/common_invalid_password.c
new file mode 100644
index 0000000..00a07f1
--- /dev/null
+++ b/sources/libraries/Common/common_invalid_password.c
@@ -0,0 +1,149 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <wifi.h>
+#include <dbus/dbus.h>
+#include <dbus/dbus-glib-lowlevel.h>
+
+#include "common.h"
+#include "common_invalid_password.h"
+
+#define SUPPLICANT_INTERFACE "fi.w1.wpa_supplicant1"
+#define SUPPLICANT_INTERFACE_SIGNAL_FILTER \
+ "type='signal',interface='fi.w1.wpa_supplicant1.Interface'"
+
+static gboolean invalid_key = FALSE;
+static DBusConnection *connection = NULL;
+
+static void __common_pop_invalid_password(void)
+{
+ invalid_key = TRUE;
+
+ ERROR_LOG(UG_NAME_NORMAL, "Invalid password");
+}
+
+static DBusHandlerResult __common_check_invalid_password(
+ DBusConnection* connection, DBusMessage* message, void* user_data)
+{
+ DBusMessageIter iter, dict, entry, value;
+ const char *key;
+ const char *state;
+ static char old_state[30] = { 0, };
+
+ if (dbus_message_is_signal(message,
+ SUPPLICANT_INTERFACE ".Interface", "PropertiesChanged") != TRUE)
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+ if (dbus_message_iter_init(message, &iter) == FALSE)
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+ if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_ARRAY)
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+ dbus_message_iter_recurse(&iter, &dict);
+ while (dbus_message_iter_get_arg_type(&dict) == DBUS_TYPE_DICT_ENTRY) {
+ dbus_message_iter_recurse(&dict, &entry);
+ if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_STRING)
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+ dbus_message_iter_get_basic(&entry, &key);
+ dbus_message_iter_next(&entry);
+
+ if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_VARIANT)
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+ dbus_message_iter_recurse(&entry, &value);
+
+ if (g_strcmp0(key, "State") == 0) {
+ dbus_message_iter_get_basic(&value, &state);
+ if (state == NULL)
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+
+ if (g_strcmp0(old_state, "4way_handshake") == 0 &&
+ g_strcmp0(state, "disconnected") == 0)
+ __common_pop_invalid_password();
+
+ g_strlcpy(old_state, state, 30);
+ }
+
+ dbus_message_iter_next(&dict);
+ }
+
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+}
+
+int _common_register_invalid_password_popup(void)
+{
+ DBusError error;
+
+ invalid_key = FALSE;
+
+ if (connection != NULL)
+ return WIFI_ERROR_NONE;
+
+ connection = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
+ if (connection == NULL)
+ return WIFI_ERROR_OUT_OF_MEMORY;
+
+ dbus_connection_setup_with_g_main(connection, NULL);
+
+ dbus_error_init(&error);
+ dbus_bus_add_match(connection, SUPPLICANT_INTERFACE_SIGNAL_FILTER, &error);
+ dbus_connection_flush(connection);
+ if (dbus_error_is_set(&error) == TRUE) {
+ dbus_error_free(&error);
+
+ dbus_connection_unref(connection);
+ connection = NULL;
+
+ return WIFI_ERROR_OUT_OF_MEMORY;
+ }
+
+ if (dbus_connection_add_filter(connection,
+ __common_check_invalid_password, NULL, NULL) == FALSE) {
+ dbus_connection_unref(connection);
+ connection = NULL;
+
+ return WIFI_ERROR_OUT_OF_MEMORY;
+ }
+
+ return WIFI_ERROR_NONE;
+}
+
+int _common_deregister_invalid_password_popup(void)
+{
+ if (connection == NULL)
+ return WIFI_ERROR_NONE;
+
+ dbus_bus_remove_match(connection, SUPPLICANT_INTERFACE_SIGNAL_FILTER, NULL);
+ dbus_connection_flush(connection);
+
+ dbus_connection_remove_filter(connection,
+ __common_check_invalid_password, NULL);
+
+ dbus_connection_unref(connection);
+ connection = NULL;
+
+ return WIFI_ERROR_NONE;
+}
+
+gboolean _common_is_invalid_password(void)
+{
+ return invalid_key;
+}
diff --git a/sources/libraries/Common/common_ip_info.c b/sources/libraries/Common/common_ip_info.c
new file mode 100644
index 0000000..ec02492
--- /dev/null
+++ b/sources/libraries/Common/common_ip_info.c
@@ -0,0 +1,851 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <glib.h>
+
+#include "common.h"
+#include "common_ip_info.h"
+#include "i18nmanager.h"
+
+#define DEFAULT_PROXY_ADDR "0.0.0.0:80"
+
+#define MAX_PORT_NUMBER 65535
+
+typedef struct {
+ char* title;
+ char* description;
+} _view_detail_description_data_t;
+
+struct ip_info_list {
+ const char *str_pkg_name;
+ Evas_Object *genlist;
+
+ Elm_Object_Item* ip_toggle_item;
+ Elm_Object_Item* ip_addr_item;
+ Elm_Object_Item* subnet_mask_item;
+ Elm_Object_Item* gateway_addr_item;
+ Elm_Object_Item* dns_1_item;
+ Elm_Object_Item* dns_2_item;
+ Elm_Object_Item* proxy_addr_item;
+ Elm_Object_Item* proxy_port_item;
+
+ imf_ctxt_panel_cb_t input_panel_cb;
+ void *input_panel_cb_data;
+
+ wifi_ap_h ap;
+};
+
+static Elm_Object_Item* _add_description(Evas_Object* genlist, char* title,
+ char* description, Elm_Object_Item* insert_after);
+
+static Elm_Genlist_Item_Class ip_toggle_itc ;
+static Elm_Genlist_Item_Class description_itc ;
+static Elm_Genlist_Item_Class ip_entry_itc;
+
+static void _gl_editbox_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ elm_genlist_item_selected_set(item, FALSE);
+}
+
+static void _ip_info_detail_description_del(void *data, Evas_Object *obj)
+{
+ __COMMON_FUNC_ENTER__;
+ _view_detail_description_data_t* det = (_view_detail_description_data_t*) data;
+ assertm_if(NULL == det, "NULL!!");
+ assertm_if(NULL == det->title, "NULL!!");
+ assertm_if(NULL == det->description, "NULL!!");
+ g_free(det->description);
+ g_free(det->title);
+ g_free(det);
+ det = NULL;
+ __COMMON_FUNC_EXIT__;
+}
+
+static char *_ip_info_detail_description_text_get(void *data,
+ Evas_Object *obj, const char *part)
+{
+ _view_detail_description_data_t* det = (_view_detail_description_data_t*) data;
+ assertm_if(NULL == det, "NULL!!");
+ assertm_if(NULL == det->title, "NULL!!");
+ assertm_if(NULL == det->description, "NULL!!");
+ assertm_if(NULL == part, "NULL!!");
+
+ if(0 == strncmp("elm.text.1", part, strlen(part))) {
+ return g_strdup(det->title);
+ } else if(0 == strncmp("elm.text.2", part, strlen(part))) {
+ return g_strdup(det->description);
+ }
+
+ return NULL;
+}
+
+static void _ip_info_entry_cursor_changed_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ if (data == NULL)
+ return;
+
+ common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+
+ if (entry_info) {
+ g_free(entry_info->entry_txt);
+ entry_info->entry_txt = NULL;
+ char *entry_text = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+
+ if (entry_text != NULL && entry_text[0] != '\0')
+ entry_info->entry_txt = g_strdup(elm_entry_entry_get(obj));
+
+ g_free(entry_text);
+ }
+}
+
+static void _ip_info_entry_changed_cb(void *data,
+ Evas_Object *obj, void *event_info)
+{
+ int entry_pos = 0;
+ char *entry_text = NULL;
+ char **ip_text = NULL;
+ int panel_type = 0;
+
+ if (obj == NULL)
+ return;
+
+ if (elm_object_focus_get(data)) {
+ if (elm_entry_is_empty(obj))
+ elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+ else
+ elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+ }
+
+ panel_type = elm_entry_input_panel_layout_get(obj);
+ if (panel_type == ELM_INPUT_PANEL_LAYOUT_IP) {
+ int i = 0;
+ int ip_addr[4] = {0};
+ char entry_ip_text[16] = {0,};
+ gboolean fixed = FALSE;
+ entry_text = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+ ip_text = g_strsplit(entry_text, ".", 5);
+
+ for (i=0; i<5; i++) {
+ if (ip_text[i] == NULL)
+ break;
+
+ if (i == 4) {
+ fixed = TRUE;
+ break;
+ }
+
+ ip_addr[i] = atoi(ip_text[i]);
+ if (ip_addr[i] > 255) {
+ ip_addr[i] = 255;
+ fixed = TRUE;
+ }
+
+ if (i < 3)
+ sprintf(entry_text, "%d.", ip_addr[i]);
+ else
+ sprintf(entry_text, "%d", ip_addr[i]);
+
+ g_strlcat(entry_ip_text, entry_text, sizeof(entry_ip_text));
+ }
+ g_free(entry_text);
+ g_strfreev(ip_text);
+
+ if (fixed == TRUE) {
+ entry_pos = elm_entry_cursor_pos_get(obj);
+ elm_entry_entry_set(obj, entry_ip_text);
+ elm_entry_cursor_pos_set(obj, entry_pos+1);
+ }
+ } else if (panel_type == ELM_INPUT_PANEL_LAYOUT_NUMBERONLY) {
+ int port_num = 0;
+
+ entry_text = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+ sscanf(entry_text, "%d", &port_num);
+
+ if (port_num > MAX_PORT_NUMBER) {
+ entry_pos = elm_entry_cursor_pos_get(obj);
+ sprintf(entry_text, "%d", MAX_PORT_NUMBER);
+ elm_entry_entry_set(obj, entry_text);
+ elm_entry_cursor_pos_set(obj, entry_pos);
+ }
+
+ g_free(entry_text);
+ }
+}
+
+static void _ip_info_entry_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ if (!elm_entry_is_empty(obj))
+ elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+ elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void _ip_info_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ INFO_LOG(UG_NAME_NORMAL, "_ip_info_entry_unfocused_cb entered");
+
+ if (elm_entry_is_empty(obj))
+ elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+ else {
+ elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+ int panel_type = elm_entry_input_panel_layout_get(obj);
+ if (panel_type == ELM_INPUT_PANEL_LAYOUT_IP) {
+ int ip_addr[4] = {0};
+ char *entry_text = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+ sscanf(entry_text, "%d.%d.%d.%d", &ip_addr[0], &ip_addr[1], &ip_addr[2], &ip_addr[3]);
+ sprintf(entry_text, "%d.%d.%d.%d", ip_addr[0], ip_addr[1], ip_addr[2], ip_addr[3]);
+ elm_entry_entry_set(obj, entry_text);
+ g_free(entry_text);
+ }
+ }
+
+ elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+}
+
+static void _ip_info_entry_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ elm_entry_entry_set(data, "");
+}
+
+static Evas_Object *_ip_info_entry_item_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ if (g_strcmp0(part, "elm.icon")) {
+ return NULL;
+ }
+
+ common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+ if (!entry_info)
+ return NULL;
+
+ Evas_Object *layout = NULL;
+ Evas_Object *entry = NULL;
+ char *title = NULL;
+ char *guide_txt = NULL;
+ char *accepted = NULL;
+ Eina_Bool hide_entry_txt = EINA_FALSE;
+ Elm_Input_Panel_Layout panel_type;
+
+ Elm_Entry_Filter_Limit_Size limit_filter_data;
+
+ layout = elm_layout_add(obj);
+ elm_layout_theme_set(layout, "layout", "editfield", "title");
+
+ entry = elm_entry_add(layout);
+ elm_entry_scrollable_set(entry, EINA_TRUE);
+ elm_entry_single_line_set(entry, EINA_TRUE);
+ elm_object_part_content_set(layout, "elm.swallow.content", entry);
+
+ switch (entry_info->entry_id)
+ {
+ case ENTRY_TYPE_IP_ADDR:
+ title = entry_info->title_txt;
+ guide_txt = entry_info->guide_txt;
+ panel_type = ELM_INPUT_PANEL_LAYOUT_IP;
+ accepted = "0123456789.";
+ break;
+ case ENTRY_TYPE_SUBNET_MASK:
+ title = entry_info->title_txt;
+ guide_txt = entry_info->guide_txt;
+ panel_type = ELM_INPUT_PANEL_LAYOUT_IP;
+ accepted = "0123456789.";
+ break;
+ case ENTRY_TYPE_GATEWAY:
+ title = entry_info->title_txt;
+ guide_txt = entry_info->guide_txt;
+ panel_type = ELM_INPUT_PANEL_LAYOUT_IP;
+ accepted = "0123456789.";
+ break;
+ case ENTRY_TYPE_DNS_1:
+ title = entry_info->title_txt;
+ guide_txt = entry_info->guide_txt;
+ panel_type = ELM_INPUT_PANEL_LAYOUT_IP;
+ accepted = "0123456789.";
+ break;
+ case ENTRY_TYPE_DNS_2:
+ title = entry_info->title_txt;
+ guide_txt = entry_info->guide_txt;
+ panel_type = ELM_INPUT_PANEL_LAYOUT_IP;
+ accepted = "0123456789.";
+ break;
+ case ENTRY_TYPE_PROXY_ADDR:
+ title = entry_info->title_txt;
+ guide_txt = DEFAULT_GUIDE_PROXY_IP;
+ panel_type = ELM_INPUT_PANEL_LAYOUT_URL;
+ break;
+ case ENTRY_TYPE_PROXY_PORT:
+ title = entry_info->title_txt;
+ guide_txt = DEFAULT_GUIDE_PROXY_PORT;
+ panel_type = ELM_INPUT_PANEL_LAYOUT_NUMBERONLY;
+ break;
+ default:
+ return NULL;
+ }
+
+ elm_object_part_text_set(layout, "elm.text", title);
+ elm_object_part_text_set(layout, "elm.guidetext", guide_txt);
+ elm_entry_password_set(entry, hide_entry_txt);
+ if (entry_info->entry_txt && (strlen(entry_info->entry_txt) > 0)) {
+ elm_entry_entry_set(entry, entry_info->entry_txt);
+ elm_object_signal_emit(layout, "elm,state,guidetext,hide", "elm");
+ }
+ elm_entry_input_panel_layout_set(entry, panel_type);
+ limit_filter_data.max_char_count = 32;
+ elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data);
+
+ Elm_Entry_Filter_Accept_Set digits_filter_data;
+ memset(&digits_filter_data, 0, sizeof(Elm_Entry_Filter_Accept_Set));
+ digits_filter_data.accepted = accepted;
+ elm_entry_markup_filter_append(entry, elm_entry_filter_accept_set, &digits_filter_data);
+
+ if (entry_info->input_panel_cb) {
+ Ecore_IMF_Context *imf_ctxt = elm_entry_imf_context_get(entry);
+ if (imf_ctxt) {
+ ecore_imf_context_input_panel_event_callback_add(imf_ctxt, ECORE_IMF_INPUT_PANEL_STATE_EVENT, entry_info->input_panel_cb, entry_info->input_panel_cb_data);
+ }
+ }
+ evas_object_smart_callback_add(entry, "cursor,changed", _ip_info_entry_cursor_changed_cb, entry_info);
+ evas_object_smart_callback_add(entry, "changed", _ip_info_entry_changed_cb, layout);
+ evas_object_smart_callback_add(entry, "focused", _ip_info_entry_focused_cb, layout);
+ evas_object_smart_callback_add(entry, "unfocused", _ip_info_entry_unfocused_cb, layout);
+ elm_object_signal_callback_add(layout, "elm,eraser,clicked", "elm", _ip_info_entry_eraser_clicked_cb, entry);
+ evas_object_show(entry);
+
+ entry_info->layout = layout;
+ return layout;
+}
+
+static void _ip_info_entry_item_del(void *data, Evas_Object *obj)
+{
+ common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)data;
+ if (entry_info == NULL)
+ return;
+
+ if (entry_info->entry_txt)
+ g_free(entry_info->entry_txt);
+
+ if (entry_info->input_panel_cb) {
+ Evas_Object *entry = common_utils_entry_layout_get_entry(entry_info->layout);
+ Ecore_IMF_Context *imf_ctxt = elm_entry_imf_context_get(entry);
+ if (imf_ctxt) {
+ ecore_imf_context_input_panel_event_callback_del(imf_ctxt, ECORE_IMF_INPUT_PANEL_STATE_EVENT, entry_info->input_panel_cb);
+ }
+ }
+
+ g_free(entry_info);
+}
+
+static void _create_static_ip_table(ip_info_list_t *ip_info_list_data)
+{
+ char *txt = NULL;
+ wifi_ap_h ap = ip_info_list_data->ap;
+ common_utils_entry_info_t *edit_box_details;
+
+ __COMMON_FUNC_ENTER__;
+
+ /* IP Address */
+ wifi_ap_get_ip_address(ap, WIFI_ADDRESS_FAMILY_IPV4, &txt);
+ edit_box_details = g_new0(common_utils_entry_info_t, 1);
+ edit_box_details->entry_id = ENTRY_TYPE_IP_ADDR;
+ edit_box_details->title_txt = sc(ip_info_list_data->str_pkg_name, I18N_TYPE_IP_address);
+ edit_box_details->entry_txt = txt;
+ edit_box_details->input_panel_cb = ip_info_list_data->input_panel_cb;
+ edit_box_details->input_panel_cb_data = ip_info_list_data->input_panel_cb_data;
+ ip_info_list_data->ip_addr_item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, edit_box_details, NULL, ip_info_list_data->ip_toggle_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+ elm_genlist_item_select_mode_set(ip_info_list_data->ip_addr_item, ELM_OBJECT_SELECT_MODE_NONE);
+
+ /* Subnet Mask */
+ wifi_ap_get_subnet_mask(ap, WIFI_ADDRESS_FAMILY_IPV4, &txt);
+ edit_box_details = g_new0(common_utils_entry_info_t, 1);
+ edit_box_details->entry_id = ENTRY_TYPE_SUBNET_MASK;
+ edit_box_details->title_txt = sc(ip_info_list_data->str_pkg_name, I18N_TYPE_Subnet_mask);
+ edit_box_details->entry_txt = txt;
+ edit_box_details->input_panel_cb = ip_info_list_data->input_panel_cb;
+ edit_box_details->input_panel_cb_data = ip_info_list_data->input_panel_cb_data;
+ ip_info_list_data->subnet_mask_item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, edit_box_details, NULL, ip_info_list_data->ip_addr_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+ elm_genlist_item_select_mode_set(ip_info_list_data->subnet_mask_item, ELM_OBJECT_SELECT_MODE_NONE);
+
+ /* Gateway Address */
+ wifi_ap_get_gateway_address(ap, WIFI_ADDRESS_FAMILY_IPV4, &txt);
+ edit_box_details = g_new0(common_utils_entry_info_t, 1);
+ edit_box_details->entry_id = ENTRY_TYPE_GATEWAY;
+ edit_box_details->title_txt = sc(ip_info_list_data->str_pkg_name, I18N_TYPE_Gateway_address);
+ edit_box_details->entry_txt = txt;
+ edit_box_details->input_panel_cb = ip_info_list_data->input_panel_cb;
+ edit_box_details->input_panel_cb_data = ip_info_list_data->input_panel_cb_data;
+ ip_info_list_data->gateway_addr_item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, edit_box_details, NULL, ip_info_list_data->subnet_mask_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+ elm_genlist_item_select_mode_set(ip_info_list_data->gateway_addr_item, ELM_OBJECT_SELECT_MODE_NONE);
+
+ /* DNS 1 */
+ wifi_ap_get_dns_address(ap, 1, WIFI_ADDRESS_FAMILY_IPV4, &txt);
+ edit_box_details = g_new0(common_utils_entry_info_t, 1);
+ edit_box_details->entry_id = ENTRY_TYPE_DNS_1;
+ edit_box_details->title_txt = sc(ip_info_list_data->str_pkg_name, I18N_TYPE_DNS_1);
+ edit_box_details->entry_txt = txt;
+ edit_box_details->input_panel_cb = ip_info_list_data->input_panel_cb;
+ edit_box_details->input_panel_cb_data = ip_info_list_data->input_panel_cb_data;
+ ip_info_list_data->dns_1_item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, edit_box_details, NULL, ip_info_list_data->gateway_addr_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+ elm_genlist_item_select_mode_set(ip_info_list_data->dns_1_item, ELM_OBJECT_SELECT_MODE_NONE);
+
+ /* DNS 2 */
+ wifi_ap_get_dns_address(ap, 2, WIFI_ADDRESS_FAMILY_IPV4, &txt);
+ edit_box_details = g_new0(common_utils_entry_info_t, 1);
+ edit_box_details->entry_id = ENTRY_TYPE_DNS_2;
+ edit_box_details->title_txt = sc(ip_info_list_data->str_pkg_name, I18N_TYPE_DNS_2);
+ edit_box_details->entry_txt = txt;
+ edit_box_details->input_panel_cb = ip_info_list_data->input_panel_cb;
+ edit_box_details->input_panel_cb_data = ip_info_list_data->input_panel_cb_data;
+ ip_info_list_data->dns_2_item = elm_genlist_item_insert_after(ip_info_list_data->genlist, &ip_entry_itc, edit_box_details, NULL, ip_info_list_data->dns_1_item, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+ elm_genlist_item_select_mode_set(ip_info_list_data->dns_2_item, ELM_OBJECT_SELECT_MODE_NONE);
+
+ __COMMON_FUNC_EXIT__;
+
+ return;
+}
+
+static void _delete_static_ip_table(ip_info_list_t *ip_info_list_data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ elm_object_item_del(ip_info_list_data->ip_addr_item);
+ ip_info_list_data->ip_addr_item = NULL;
+ elm_object_item_del(ip_info_list_data->subnet_mask_item);
+ ip_info_list_data->subnet_mask_item = NULL;
+ elm_object_item_del(ip_info_list_data->gateway_addr_item);
+ ip_info_list_data->gateway_addr_item = NULL;
+ elm_object_item_del(ip_info_list_data->dns_1_item);
+ ip_info_list_data->dns_1_item = NULL;
+ elm_object_item_del(ip_info_list_data->dns_2_item);
+ ip_info_list_data->dns_2_item = NULL;
+
+ __COMMON_FUNC_EXIT__;
+
+ return;
+}
+
+static int _genlist_item_disable_later(void* data)
+{
+ elm_genlist_item_selected_set((Elm_Object_Item*) data, FALSE);
+ return FALSE;
+}
+
+static void _gl_deselect_callback(void* data, Evas_Object* obj,
+ void* event_info)
+{
+ ecore_idler_add( (Ecore_Task_Cb) _genlist_item_disable_later, event_info);
+}
+
+static char* _ip_info_iptoggle_text_get(void *data, Evas_Object *obj,
+ const char *part)
+{
+ __COMMON_FUNC_ENTER__;
+
+ assertm_if(NULL == data, "NULL!!");
+ assertm_if(NULL == obj, "NULL!!");
+ assertm_if(NULL == part, "NULL!!");
+ if (part != NULL) {
+ if (!strncmp(part, "elm.text", strlen(part))) {
+ __COMMON_FUNC_EXIT__;
+ ip_info_list_t *ip_info_list_data = (ip_info_list_t *)data;
+ return (char*)g_strdup(sc(ip_info_list_data->str_pkg_name, I18N_TYPE_Static_IP));
+ }
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return NULL;
+}
+
+static Elm_Object_Item* _add_description(Evas_Object* genlist, char* title,
+ char* description, Elm_Object_Item* insert_after)
+{
+ assertm_if(NULL == genlist, "NULL!!");
+ assertm_if(NULL == title, "NULL!!");
+ assertm_if(NULL == description, "NULL!!");
+
+ _view_detail_description_data_t* description_data = g_new0(_view_detail_description_data_t, 1);
+ assertm_if(NULL == description_data, "NULL!!");
+
+ description_data->title = g_strdup(title);
+ description_data->description = g_strdup(description);
+
+ Elm_Object_Item* det = NULL;
+ if (insert_after) {
+ det = elm_genlist_item_insert_after(
+ genlist, /*obj*/
+ &description_itc,/*itc*/
+ description_data,/*data*/
+ NULL,/*parent*/
+ insert_after, /*after than*/
+ ELM_GENLIST_ITEM_NONE, /*flags*/
+ _gl_deselect_callback,/*func*/
+ NULL);/*func_data*/
+ } else {
+ det = elm_genlist_item_append(
+ genlist,
+ &description_itc,
+ description_data,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ _gl_deselect_callback,
+ NULL);
+ }
+ assertm_if(NULL == det, "NULL!!");
+
+ elm_genlist_item_select_mode_set(det, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ return det;
+}
+
+static void _ip_info_toggle_item_sel_cb(void* data, Evas_Object* obj,
+ void* event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (!data)
+ return;
+
+ ip_info_list_t *ip_info_list_data = (ip_info_list_t *)data;
+ wifi_ap_h ap = ip_info_list_data->ap;
+ elm_object_item_disabled_set(ip_info_list_data->ip_toggle_item, TRUE);
+ wifi_ip_config_type_e type = WIFI_IP_CONFIG_TYPE_NONE;
+ wifi_ap_get_ip_config_type(ap, WIFI_ADDRESS_FAMILY_IPV4, &type);
+ if (WIFI_IP_CONFIG_TYPE_STATIC == type) { /* Static IP */
+ char *ip_addr = NULL;
+
+ ip_info_save_data(ip_info_list_data);
+ _delete_static_ip_table(ip_info_list_data);
+
+ wifi_ap_get_ip_address(ap, WIFI_ADDRESS_FAMILY_IPV4, &ip_addr);
+ /* Dynamic IP Address */
+ ip_info_list_data->ip_addr_item =
+ _add_description(ip_info_list_data->genlist,
+ sc(ip_info_list_data->str_pkg_name, I18N_TYPE_IP_address),
+ ip_addr, ip_info_list_data->ip_toggle_item);
+ elm_object_item_disabled_set(ip_info_list_data->ip_addr_item, TRUE);
+ g_free(ip_addr);
+
+ wifi_ap_set_ip_config_type(ap, WIFI_ADDRESS_FAMILY_IPV4,
+ WIFI_IP_CONFIG_TYPE_DYNAMIC);
+ } else if (WIFI_IP_CONFIG_TYPE_DYNAMIC == type) { /* Dynamic IP */
+
+ elm_object_item_del(ip_info_list_data->ip_addr_item);
+ ip_info_list_data->ip_addr_item = NULL;
+
+ /* Create the entry layouts */
+ _create_static_ip_table(ip_info_list_data);
+ wifi_ap_set_ip_config_type(ap, WIFI_ADDRESS_FAMILY_IPV4,
+ WIFI_IP_CONFIG_TYPE_STATIC);
+ }
+ type = WIFI_IP_CONFIG_TYPE_NONE;
+ wifi_ap_get_ip_config_type(ap, WIFI_ADDRESS_FAMILY_IPV4, &type);
+ DEBUG_LOG(UG_NAME_NORMAL, "AP[0x%x] ip config type: %d", ap, type);
+ elm_genlist_item_update(ip_info_list_data->ip_toggle_item);
+ elm_object_item_disabled_set(ip_info_list_data->ip_toggle_item, FALSE);
+ ecore_idler_add( (Ecore_Task_Cb) _genlist_item_disable_later, event_info);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static Evas_Object *_ip_info_iptoggle_content_get(void *data,
+ Evas_Object *obj, const char *part)
+{
+ if (NULL == data || obj == NULL || part == NULL) {
+ return NULL;
+ }
+
+ ip_info_list_t *ip_info_list_data = (ip_info_list_t *)data;
+ wifi_ap_h ap = ip_info_list_data->ap;
+
+ Evas_Object *toggle_btn = elm_check_add(obj);
+ assertm_if(NULL == toggle_btn, "NULL!!");
+ elm_object_style_set(toggle_btn, "on&off");
+ evas_object_propagate_events_set(toggle_btn, EINA_TRUE);
+ wifi_ip_config_type_e type;
+ wifi_ap_get_ip_config_type(ap, WIFI_ADDRESS_FAMILY_IPV4, &type);
+ if (WIFI_IP_CONFIG_TYPE_STATIC == type) { /* Static IP */
+ elm_check_state_set(toggle_btn, EINA_TRUE);
+ } else {
+ elm_check_state_set(toggle_btn, EINA_FALSE);
+ }
+ return toggle_btn;
+}
+
+static void ip_info_print_values(wifi_ap_h ap)
+{
+ char *txt;
+ wifi_ip_config_type_e type = WIFI_IP_CONFIG_TYPE_NONE;
+ wifi_ap_get_ip_config_type(ap, WIFI_ADDRESS_FAMILY_IPV4, &type);
+ if (WIFI_IP_CONFIG_TYPE_STATIC == type) { /* Static IP */
+
+ DEBUG_LOG(UG_NAME_NORMAL, "* STATIC CONFIGURATION *");
+
+ /* IP Address */
+ wifi_ap_get_ip_address(ap, WIFI_ADDRESS_FAMILY_IPV4, &txt);
+ DEBUG_LOG(UG_NAME_NORMAL, "* IP address [%s]", txt);
+ g_free(txt);
+
+ /* Subnet Mask */
+ wifi_ap_get_subnet_mask(ap, WIFI_ADDRESS_FAMILY_IPV4, &txt);
+ DEBUG_LOG(UG_NAME_NORMAL, "* Subnet Mask [%s]", txt);
+ g_free(txt);
+
+ /* Gateway Address */
+ wifi_ap_get_gateway_address(ap, WIFI_ADDRESS_FAMILY_IPV4, &txt);
+ DEBUG_LOG(UG_NAME_NORMAL, "* Gateway address [%s]", txt);
+ g_free(txt);
+
+ /* DNS 1 */
+ wifi_ap_get_dns_address(ap, 1, WIFI_ADDRESS_FAMILY_IPV4, &txt);
+ DEBUG_LOG(UG_NAME_NORMAL, "* DNS-1 address [%s]", txt);
+ g_free(txt);
+
+ /* DNS 2 */
+ wifi_ap_get_dns_address(ap, 2, WIFI_ADDRESS_FAMILY_IPV4, &txt);
+ DEBUG_LOG(UG_NAME_NORMAL, "* DNS-2 address [%s]", txt);
+ g_free(txt);
+
+ } else if (WIFI_IP_CONFIG_TYPE_DYNAMIC == type) { /* Dynamic IP */
+
+ DEBUG_LOG(UG_NAME_NORMAL, "* DYNAMIC CONFIGURATION *");
+
+ /* Dynamic IP Address */
+ wifi_ap_get_ip_address(ap, WIFI_ADDRESS_FAMILY_IPV4, &txt);
+ DEBUG_LOG(UG_NAME_NORMAL, "* IP address [%s]", txt);
+ g_free(txt);
+ }
+
+ /* Mac address */
+ wifi_get_mac_address(&txt);
+ DEBUG_LOG(UG_NAME_NORMAL, "* MAC address [%s]", txt);
+ g_free(txt);
+
+ txt = NULL;
+ wifi_ap_get_proxy_address(ap, WIFI_ADDRESS_FAMILY_IPV4, &txt);
+ assertm_if(NULL == txt, "NULL!!");
+
+ if (!txt || !strlen(txt)) {
+ if (txt)
+ g_free(txt);
+ txt = g_strdup(DEFAULT_PROXY_ADDR);
+ }
+ /* Proxy Address */
+ char *proxy_addr = strtok(txt, ":");
+ DEBUG_LOG(UG_NAME_NORMAL, "* PROXY ADDR [%s]", proxy_addr);
+
+ /* Proxy port */
+ char *proxy_port = strtok(NULL, ":");
+ DEBUG_LOG(UG_NAME_NORMAL, "* PROXY PORT [%s]", proxy_port);
+ g_free(txt);
+
+}
+
+ip_info_list_t *ip_info_append_items(wifi_ap_h ap, const char *pkg_name,
+ Evas_Object *genlist, imf_ctxt_panel_cb_t input_panel_cb, void *input_panel_cb_data)
+{
+ __COMMON_FUNC_ENTER__;
+ int ret = WIFI_ERROR_NONE;
+ char *proxy_data = NULL;
+ char *proxy_addr = NULL;
+ char *proxy_port = NULL;
+ Elm_Object_Item* item = NULL;
+ common_utils_entry_info_t *edit_box_details;
+
+ assertm_if(NULL == ap, "NULL!!");
+ assertm_if(NULL == pkg_name, "NULL!!");
+ assertm_if(NULL == genlist, "NULL!!");
+
+ ip_info_list_t *ip_info_list_data = g_new0(ip_info_list_t, 1);
+ ip_info_list_data->ap = ap;
+ ip_info_list_data->str_pkg_name = pkg_name;
+ ip_info_list_data->genlist = genlist;
+ ip_info_list_data->input_panel_cb = input_panel_cb;
+ ip_info_list_data->input_panel_cb_data = input_panel_cb_data;
+
+ ip_toggle_itc.item_style = "dialogue/1text.1icon";
+ ip_toggle_itc.func.text_get = _ip_info_iptoggle_text_get;
+ ip_toggle_itc.func.content_get = _ip_info_iptoggle_content_get;
+ ip_toggle_itc.func.state_get = NULL;
+ ip_toggle_itc.func.del = NULL;
+
+ description_itc.item_style = "dialogue/2text.3";
+ description_itc.func.text_get = _ip_info_detail_description_text_get;
+ description_itc.func.content_get = NULL;
+ description_itc.func.state_get = NULL;
+ description_itc.func.del = _ip_info_detail_description_del;
+
+ ip_entry_itc.item_style = "dialogue/1icon";
+ ip_entry_itc.func.text_get = NULL;
+ ip_entry_itc.func.content_get = _ip_info_entry_item_content_get;
+ ip_entry_itc.func.state_get = NULL;
+ ip_entry_itc.func.del = _ip_info_entry_item_del;
+
+ common_utils_add_dialogue_separator(genlist, "dialogue/separator.2");
+
+ /* Static/Dynamic switch button */
+ ip_info_list_data->ip_toggle_item =
+ elm_genlist_item_append(genlist,
+ &ip_toggle_itc, ip_info_list_data, NULL, ELM_GENLIST_ITEM_NONE,
+ _ip_info_toggle_item_sel_cb, ip_info_list_data);
+
+ /* IP address */
+ wifi_ip_config_type_e type = WIFI_IP_CONFIG_TYPE_NONE;
+ wifi_ap_get_ip_config_type(ap, WIFI_ADDRESS_FAMILY_IPV4, &type);
+ if (WIFI_IP_CONFIG_TYPE_STATIC == type) { /* Static IP */
+ /* Create the entry layouts */
+ _create_static_ip_table(ip_info_list_data);
+ } else if (WIFI_IP_CONFIG_TYPE_DYNAMIC == type) { /* Dynamic IP */
+ char *ip_addr = NULL;
+ /* Dynamic IP Address */
+ wifi_ap_get_ip_address(ap, WIFI_ADDRESS_FAMILY_IPV4, &ip_addr);
+ ip_info_list_data->ip_addr_item =
+ _add_description(genlist,
+ sc(ip_info_list_data->str_pkg_name, I18N_TYPE_IP_address),
+ ip_addr, NULL);
+ elm_object_item_disabled_set(ip_info_list_data->ip_addr_item, TRUE);
+ g_free(ip_addr);
+ }
+
+ common_utils_add_dialogue_separator(genlist, "dialogue/separator.2");
+
+#if 0
+ /* Channel Number */
+ int channel_number;
+ wifi_ap_get_frequency(ap, &channel_number);
+ char *channel_num_str = g_strdup_printf("%u", channel_number);
+ _add_description(genlist,
+ sc(ip_info_list_data->str_pkg_name, I18N_TYPE_Channel), channel_num_str,
+ NULL);
+ g_free(channel_num_str);
+#endif
+ /* Mac address */
+ char *mac_addr = NULL;
+ wifi_get_mac_address(&mac_addr);
+ item =
+ _add_description(genlist,
+ sc(ip_info_list_data->str_pkg_name, I18N_TYPE_MAC_addr), mac_addr,
+ NULL);
+ elm_object_item_disabled_set(item, TRUE);
+ g_free(mac_addr);
+
+ ret = wifi_ap_get_proxy_address(ap, WIFI_ADDRESS_FAMILY_IPV4, &proxy_data);
+ assertm_if(NULL == proxy_data, "NULL!!");
+
+ if (WIFI_ERROR_NONE == ret && proxy_data && strlen(proxy_data)) {
+ DEBUG_LOG(UG_NAME_NORMAL, "* PROXY DATA [%s]", proxy_data);
+ /* Proxy Address */
+ proxy_addr = g_strdup(strtok(proxy_data, ":"));
+ DEBUG_LOG(UG_NAME_NORMAL, "* PROXY ADDR [%s]", proxy_addr);
+
+ /* Proxy port */
+ proxy_port = g_strdup(strtok(NULL, ":"));
+ DEBUG_LOG(UG_NAME_NORMAL, "* PROXY PORT [%s]", proxy_port);
+ } else {
+ ERROR_LOG(UG_NAME_ERR, "Error = %d", ret);
+ }
+
+ edit_box_details = g_new0(common_utils_entry_info_t, 1);
+ edit_box_details->entry_id = ENTRY_TYPE_PROXY_ADDR;
+ edit_box_details->title_txt = sc(pkg_name, I18N_TYPE_Proxy_address);
+ edit_box_details->entry_txt = proxy_addr;
+ edit_box_details->input_panel_cb = input_panel_cb;
+ edit_box_details->input_panel_cb_data = input_panel_cb_data;
+ ip_info_list_data->proxy_addr_item = elm_genlist_item_append(genlist, &ip_entry_itc, edit_box_details, NULL, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+ elm_genlist_item_select_mode_set(ip_info_list_data->proxy_addr_item, ELM_OBJECT_SELECT_MODE_NONE);
+
+ edit_box_details = g_new0(common_utils_entry_info_t, 1);
+ edit_box_details->entry_id = ENTRY_TYPE_PROXY_PORT;
+ edit_box_details->title_txt = sc(pkg_name, I18N_TYPE_Proxy_port);
+ edit_box_details->entry_txt = proxy_port;
+ edit_box_details->input_panel_cb = input_panel_cb;
+ edit_box_details->input_panel_cb_data = input_panel_cb_data;
+ ip_info_list_data->proxy_port_item = elm_genlist_item_append(genlist, &ip_entry_itc, edit_box_details, NULL, ELM_GENLIST_ITEM_NONE, _gl_editbox_sel_cb, NULL);
+ elm_genlist_item_select_mode_set(ip_info_list_data->proxy_port_item, ELM_OBJECT_SELECT_MODE_NONE);
+
+ g_free(proxy_data);
+
+ __COMMON_FUNC_EXIT__;
+ return ip_info_list_data;
+}
+
+void ip_info_save_data(ip_info_list_t *ip_info_list_data)
+{
+ __COMMON_FUNC_ENTER__;
+ assertm_if(NULL == ip_info_list_data, "NULL!!");
+ char* txt = NULL;
+ char* proxy_addr = NULL;
+ char* proxy_port = NULL;
+ wifi_ap_h ap = ip_info_list_data->ap;
+
+ wifi_ip_config_type_e type = WIFI_IP_CONFIG_TYPE_NONE;
+ wifi_ap_get_ip_config_type(ap, WIFI_ADDRESS_FAMILY_IPV4, &type);
+ if (WIFI_IP_CONFIG_TYPE_STATIC == type) { /* Static IP */
+ txt = common_utils_get_list_item_entry_txt(ip_info_list_data->ip_addr_item);
+ DEBUG_LOG(UG_NAME_NORMAL, "IP [%s]", txt);
+ wifi_ap_set_ip_address(ap, WIFI_ADDRESS_FAMILY_IPV4, txt);
+ g_free(txt);
+
+ txt =
+ common_utils_get_list_item_entry_txt(ip_info_list_data->subnet_mask_item);
+ DEBUG_LOG(UG_NAME_NORMAL, "Subnet [%s]", txt);
+ wifi_ap_set_subnet_mask(ap, WIFI_ADDRESS_FAMILY_IPV4, txt);
+ g_free(txt);
+
+ txt =
+ common_utils_get_list_item_entry_txt(ip_info_list_data->gateway_addr_item);
+ DEBUG_LOG(UG_NAME_NORMAL, "Gateway [%s]", txt);
+ wifi_ap_set_gateway_address(ap, WIFI_ADDRESS_FAMILY_IPV4, txt);
+ g_free(txt);
+
+ txt =
+ common_utils_get_list_item_entry_txt(ip_info_list_data->dns_1_item);
+ DEBUG_LOG(UG_NAME_NORMAL, "DNS1 [%s]", txt);
+ wifi_ap_set_dns_address(ap, 1, WIFI_ADDRESS_FAMILY_IPV4, txt);
+ g_free(txt);
+
+ txt =
+ common_utils_get_list_item_entry_txt(ip_info_list_data->dns_2_item);
+ DEBUG_LOG(UG_NAME_NORMAL, "DNS2 [%s]", txt);
+ wifi_ap_set_dns_address(ap, 2, WIFI_ADDRESS_FAMILY_IPV4, txt);
+ g_free(txt);
+ }
+ proxy_addr =
+ common_utils_get_list_item_entry_txt(ip_info_list_data->proxy_addr_item);
+ proxy_port =
+ common_utils_get_list_item_entry_txt(ip_info_list_data->proxy_port_item);
+ txt = g_strdup_printf("%s:%s", proxy_addr?proxy_addr:"", proxy_port?proxy_port:"");
+ DEBUG_LOG( UG_NAME_NORMAL, "Proxy addr:port [%s]", txt);
+ wifi_ap_set_proxy_type(ap, WIFI_PROXY_TYPE_MANUAL);
+ wifi_ap_set_proxy_address(ap, WIFI_ADDRESS_FAMILY_IPV4, txt);
+ g_free((gpointer)proxy_addr);
+ g_free((gpointer)proxy_port);
+ g_free((gpointer)txt);
+
+ ip_info_print_values(ap);
+
+ __COMMON_FUNC_EXIT__;
+ return;
+}
+
+void ip_info_remove(ip_info_list_t *ip_info_list)
+{
+ __COMMON_FUNC_ENTER__;
+ assertm_if(NULL == ip_info_list, "NULL!!");
+ _delete_static_ip_table(ip_info_list);
+ g_free(ip_info_list);
+ __COMMON_FUNC_EXIT__;
+}
diff --git a/sources/libraries/Common/common_pswd_popup.c b/sources/libraries/Common/common_pswd_popup.c
new file mode 100644
index 0000000..0b32b6b
--- /dev/null
+++ b/sources/libraries/Common/common_pswd_popup.c
@@ -0,0 +1,365 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "common.h"
+#include "common_pswd_popup.h"
+#include "i18nmanager.h"
+#include "common_utils.h"
+#include "ug_wifi.h"
+
+#define PBC_TIMEOUT_MSG_STR "one click connection failed"
+#define MAX_PBC_TIMEOUT_SECS 120 // Time in seconds
+
+typedef struct {
+ /* PBC popup related attributes */
+ Evas_Object* popup;
+ Evas_Object* progressbar;
+ Evas_Object* timer_label;
+ Ecore_Timer *timer;
+ int checker;
+ double value;
+} pbc_popup_t;
+
+struct pswd_popup {
+ /* Password popup related attributes */
+ const char *str_pkg_name;
+ Evas_Object *win;
+ Evas_Object *popup;
+ Evas_Object *popup_entry_lyt;
+ pbc_popup_t *pbc_popup_data;
+ wifi_ap_h ap;
+};
+
+static void __popup_entry_changed_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ if (elm_object_focus_get(data)) {
+ if (elm_entry_is_empty(obj))
+ elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+ else
+ elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+ }
+}
+
+static void __popup_entry_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ if (!elm_entry_is_empty(obj))
+ elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+ elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void __popup_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ if (elm_entry_is_empty(obj))
+ elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+ elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+}
+
+static void __popup_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ elm_entry_entry_set(data, "");
+}
+
+static void _check_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ if (obj == NULL)
+ return;
+
+ Eina_Bool state = elm_check_state_get(obj);
+ common_utils_entry_password_set(data, !state);
+}
+
+static void __common_pbc_popup_destroy(pbc_popup_t *pbc_popup_data)
+{
+ __COMMON_FUNC_ENTER__;
+ if (!pbc_popup_data)
+ return;
+
+ if (pbc_popup_data->checker == 0) {
+ pbc_popup_data->checker = 1;
+
+ if (pbc_popup_data->timer != NULL) {
+ ecore_timer_del(pbc_popup_data->timer);
+ pbc_popup_data->timer = NULL;
+ }
+ if (pbc_popup_data->popup != NULL) {
+ evas_object_hide(pbc_popup_data->popup);
+ evas_object_del(pbc_popup_data->popup);
+ pbc_popup_data->popup = NULL;
+ }
+ g_free(pbc_popup_data);
+ }
+ __COMMON_FUNC_EXIT__;
+ return;
+}
+
+static Eina_Bool _fn_pb_timer_bar(void *data)
+{
+ pswd_popup_t *pswd_popup_data = (pswd_popup_t *)data;
+ pbc_popup_t *pbc_popup_data = pswd_popup_data->pbc_popup_data;
+ if (!pbc_popup_data || pbc_popup_data->timer == NULL || pbc_popup_data->progressbar == NULL) {
+ return ECORE_CALLBACK_CANCEL;
+ }
+ const double diff = (double)1/(double)MAX_PBC_TIMEOUT_SECS;
+ pbc_popup_data->value = elm_progressbar_value_get(pbc_popup_data->progressbar);
+ pbc_popup_data->value += diff;
+ if (pbc_popup_data->value >= 1) {
+ if (pbc_popup_data->checker == 0) {
+ __COMMON_FUNC_ENTER__;
+ common_utils_show_info_timeout_popup(pswd_popup_data->win, PBC_TIMEOUT_MSG_STR, 3.0f);
+ Evas_Object *cancel_btn = elm_object_part_content_get(pbc_popup_data->popup, "button1");
+ evas_object_smart_callback_call(cancel_btn, "clicked", NULL);
+ __COMMON_FUNC_EXIT__;
+ }
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ int remain_mins = (int)(MAX_PBC_TIMEOUT_SECS * (1 - pbc_popup_data->value));
+ int remain_secs = 0;
+ remain_secs = remain_mins % 60;
+ remain_mins /= 60;
+
+ char *remaining_time_str = g_strdup_printf("<font_size=40><align=center>%02d:%02d</align></font_size>", remain_mins, remain_secs);
+ elm_object_text_set(pbc_popup_data->timer_label, remaining_time_str);
+ //INFO_LOG(UG_NAME_NORMAL, "pbc_popup_data->value = %lf; remain_mins = %d; remain_secs = %d; remaining_time_str = %s", pbc_popup_data->value, remain_mins, remain_secs, remaining_time_str);
+ g_free(remaining_time_str);
+
+ elm_progressbar_value_set(pbc_popup_data->progressbar, pbc_popup_data->value);
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+static Eina_Bool _enable_scan_updates_cb(void *data)
+{
+ /* Lets enable the scan updates */
+ wlan_manager_enable_scan_result_update();
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+void common_pswd_popup_pbc_popup_create(pswd_popup_t *pswd_popup_data, Evas_Smart_Cb cancel_cb, void *cancel_cb_data)
+{
+ if (!pswd_popup_data) {
+ return;
+ }
+ Evas_Object *popup = NULL,*progressbar = NULL;
+ Evas_Object *label = NULL, *timer_label = NULL;
+ Evas_Object *separator1 = NULL, *separator2 = NULL;
+
+ pbc_popup_t *pbc_popup_data = NULL;
+ pbc_popup_data = g_new0(pbc_popup_t, 1);
+
+ popup_btn_info_t popup_btn_data;
+ memset(&popup_btn_data, 0, sizeof(popup_btn_data));
+ popup_btn_data.btn1_txt = sc(pswd_popup_data->str_pkg_name, I18N_TYPE_Cancel);
+ popup_btn_data.btn1_cb = cancel_cb;
+ popup_btn_data.btn1_data = cancel_cb_data;
+ popup = common_utils_show_info_popup(pswd_popup_data->win, &popup_btn_data);
+
+ label = elm_label_add(popup);
+ elm_object_style_set(label, "popup/default");
+ elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
+ elm_object_text_set(label, sc(pswd_popup_data->str_pkg_name,I18N_TYPE_Press_WPS_On_Your_Wi_Fi_Access_Point));
+ 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);
+
+ separator1 = elm_separator_add(popup);
+
+ progressbar = elm_progressbar_add(popup);
+ elm_object_style_set(progressbar, "list_progress");
+ elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
+ evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_progressbar_value_set(progressbar, 0.0);
+
+ separator2 = elm_separator_add(popup);
+
+ timer_label = elm_label_add(popup);
+ elm_object_style_set(timer_label, "label3");
+ elm_label_line_wrap_set(timer_label, ELM_WRAP_MIXED);
+ elm_object_text_set(timer_label, _("<font_size=40><align=center>02:00</align></font_size>"));
+ evas_object_size_hint_weight_set(timer_label, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(timer_label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(timer_label);
+
+ pbc_popup_data->checker = 0;
+ pbc_popup_data->value = 0.0;
+ pbc_popup_data->progressbar = progressbar;
+ pbc_popup_data->timer_label = timer_label;
+ pbc_popup_data->popup = popup;
+ pbc_popup_data->timer = ecore_timer_add(1.0, _fn_pb_timer_bar, pswd_popup_data);
+ evas_object_show(progressbar);
+
+ Evas_Object *box = elm_box_add(popup);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(box);
+ elm_box_pack_end(box, label);
+ elm_box_pack_end(box, separator1);
+ elm_box_pack_end(box, progressbar);
+ elm_box_pack_end(box, separator2);
+ elm_box_pack_end(box, timer_label);
+
+ evas_object_show(box);
+ elm_object_content_set(popup, box);
+ pswd_popup_data->pbc_popup_data = pbc_popup_data;
+
+ /* Delete the password popup */
+ evas_object_hide(pswd_popup_data->popup);
+ evas_object_del(pswd_popup_data->popup);
+
+ return;
+}
+
+pswd_popup_t *common_pswd_popup_create(Evas_Object *win_main, const char *pkg_name, pswd_popup_create_req_data_t *popup_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (!win_main || !popup_info || !pkg_name)
+ return NULL;
+
+ pswd_popup_t *pswd_popup_data = g_new0(pswd_popup_t, 1);
+
+ if (popup_info->ap) {
+ if (WIFI_ERROR_NONE != wifi_ap_clone(&(pswd_popup_data->ap), popup_info->ap)) {
+ g_free(pswd_popup_data);
+ return NULL;
+ }
+ } else {
+ /* It can be NULL in case of hidden AP */
+ }
+ /* Lets disable the scan updates so that the UI is not refreshed un necessarily */
+ wlan_manager_disable_scan_result_update();
+
+ popup_btn_info_t popup_btn_data;
+ memset(&popup_btn_data, 0, sizeof(popup_btn_data));
+ popup_btn_data.title_txt = popup_info->title;
+ popup_btn_data.btn1_cb = popup_info->ok_cb;
+ popup_btn_data.btn1_data = popup_info->cb_data;
+ popup_btn_data.btn2_cb = popup_info->cancel_cb;
+ popup_btn_data.btn2_data = popup_info->cb_data;
+ popup_btn_data.btn1_txt = sc(pkg_name, I18N_TYPE_Ok);
+ popup_btn_data.btn2_txt = sc(pkg_name, I18N_TYPE_Cancel);
+ Evas_Object *passpopup = common_utils_show_info_popup(win_main, &popup_btn_data);
+
+ Evas_Object *box = elm_box_add(passpopup);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(box);
+
+ Evas_Object *entry_ly = elm_layout_add(box);
+ Evas_Object *entry = NULL;
+ Elm_Entry_Filter_Limit_Size limit_filter_data;
+
+ elm_layout_file_set(entry_ly, CUSTOM_EDITFIELD_PATH, "custom_editfield");
+ evas_object_size_hint_weight_set(entry_ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(entry_ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_part_text_set(entry_ly, "elm.text", sc(pkg_name, I18N_TYPE_Enter_password));
+
+ entry = elm_entry_add(entry_ly);
+ 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_object_part_content_set(entry_ly, "elm.swallow.content", entry);
+
+ limit_filter_data.max_char_count = 32;
+ elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data);
+
+ evas_object_smart_callback_add(entry, "changed", __popup_entry_changed_cb, entry_ly);
+ evas_object_smart_callback_add(entry, "focused", __popup_entry_focused_cb, entry_ly);
+ evas_object_smart_callback_add(entry, "unfocused", __popup_entry_unfocused_cb, entry_ly);
+ elm_object_signal_callback_add(entry_ly, "elm,eraser,clicked", "elm", __popup_eraser_clicked_cb, entry);
+ evas_object_show(entry);
+
+ elm_entry_password_set(entry, EINA_TRUE);
+ evas_object_show(entry_ly);
+ elm_box_pack_end(box, entry_ly);
+
+ Evas_Object *check = elm_check_add(box);
+ elm_object_text_set(check, sc(pkg_name, I18N_TYPE_Show_password));
+ elm_object_focus_allow_set(check, EINA_FALSE);
+ evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_smart_callback_add(check, "changed", _check_changed_cb, entry_ly);
+
+ evas_object_show(check);
+ elm_box_pack_end(box, check);
+
+ if (popup_info->show_wps_btn) {
+ Evas_Object *btn = elm_button_add(box);
+ elm_object_text_set(btn, sc(pkg_name, I18N_TYPE_WPS_Button_Connection));
+ evas_object_size_hint_weight_set(btn,
+ EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(btn,
+ EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ evas_object_smart_callback_add(btn, "clicked", popup_info->wps_btn_cb, popup_info->cb_data);
+ elm_box_pack_end(box, btn);
+ evas_object_show(btn);
+ }
+
+ elm_object_content_set(passpopup, box);
+ evas_object_show(passpopup);
+ pswd_popup_data->win = win_main;
+ pswd_popup_data->str_pkg_name = pkg_name;
+ pswd_popup_data->popup = passpopup;
+ pswd_popup_data->popup_entry_lyt = entry_ly;
+ elm_object_focus_set(entry, EINA_TRUE);
+
+ __COMMON_FUNC_EXIT__;
+
+ return pswd_popup_data;
+}
+
+char *common_pswd_popup_get_txt(pswd_popup_t *pswd_popup_data)
+{
+ if (pswd_popup_data)
+ return common_utils_entry_layout_get_text(pswd_popup_data->popup_entry_lyt);
+
+ return NULL;
+}
+
+wifi_ap_h common_pswd_popup_get_ap(pswd_popup_t *pswd_popup_data)
+{
+ if (pswd_popup_data)
+ return pswd_popup_data->ap;
+
+ return NULL;
+}
+
+void common_pswd_popup_destroy(pswd_popup_t *pswd_popup_data)
+{
+ if (pswd_popup_data) {
+ if (pswd_popup_data->pbc_popup_data) {
+ __common_pbc_popup_destroy(pswd_popup_data->pbc_popup_data);
+ pswd_popup_data->pbc_popup_data = NULL;
+ }
+ evas_object_hide(pswd_popup_data->popup);
+ evas_object_del(pswd_popup_data->popup);
+ pswd_popup_data->popup = NULL;
+ pswd_popup_data->popup_entry_lyt = NULL;
+ wifi_ap_destroy(pswd_popup_data->ap);
+ g_free(pswd_popup_data);
+
+ /* A delay is needed to get the smooth Input panel closing animation effect */
+ ecore_timer_add(0.1, _enable_scan_updates_cb, NULL);
+ }
+ return;
+}
diff --git a/sources/libraries/Common/common_utils.c b/sources/libraries/Common/common_utils.c
new file mode 100644
index 0000000..a6413da
--- /dev/null
+++ b/sources/libraries/Common/common_utils.c
@@ -0,0 +1,458 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <vconf.h>
+#include <syspopup_caller.h>
+
+#include <aul.h>
+#include "common.h"
+#include "common_utils.h"
+#include "i18nmanager.h"
+
+#define POPUP_HEAD_AREA 134
+#define POPUP_BUTTON_AREA 80
+
+typedef struct {
+ char *title_str;
+ char *info_str;
+} two_line_disp_data_t;
+
+static char *__common_utils_2line_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ two_line_disp_data_t *item_data = (two_line_disp_data_t *)data;
+ if (!strcmp(part, "elm.text.1")) {
+ return g_strdup(item_data->info_str);
+ } else if (!strcmp(part, "elm.text.2")) {
+ return g_strdup(item_data->title_str);
+ }
+ return NULL;
+}
+
+static void __common_utils_2line_text_del(void *data, Evas_Object *obj)
+{
+ two_line_disp_data_t *item_data = (two_line_disp_data_t *)data;
+ if (item_data) {
+ g_free(item_data->info_str);
+ g_free(item_data->title_str);
+ g_free(item_data);
+ }
+}
+
+static void __common_utils_separator_del(void *data, Evas_Object *obj)
+{
+ elm_genlist_item_class_free(data);
+ return;
+}
+
+Elm_Object_Item* common_utils_add_dialogue_separator(Evas_Object* genlist, const char *separator_style)
+{
+ assertm_if(NULL == genlist, "NULL!!");
+
+ static Elm_Genlist_Item_Class *separator_itc;
+ separator_itc = elm_genlist_item_class_new();
+ separator_itc->item_style = separator_style;
+ separator_itc->func.text_get = NULL;
+ separator_itc->func.content_get = NULL;
+ separator_itc->func.state_get = NULL;
+ separator_itc->func.del = __common_utils_separator_del;
+
+ Elm_Object_Item* sep = elm_genlist_item_append(
+ genlist,
+ separator_itc,
+ separator_itc,
+ NULL,
+ ELM_GENLIST_ITEM_GROUP,
+ NULL,
+ NULL);
+
+ assertm_if(NULL == sep, "NULL!!");
+
+ elm_genlist_item_select_mode_set(sep, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ return sep;
+}
+
+char *common_utils_get_ap_security_type_info_txt(const char *pkg_name, wifi_device_info_t *device_info)
+{
+ char *status_txt = NULL;
+ switch (device_info->security_mode)
+ {
+ case WLAN_SEC_MODE_NONE: /** Security disabled */
+ status_txt = g_strdup(sc(pkg_name, I18N_TYPE_Open));
+ break;
+ case WLAN_SEC_MODE_IEEE8021X: /** EAP */
+ status_txt = g_strdup_printf("%s (%s)", sc(pkg_name, I18N_TYPE_Secured), sc(pkg_name, I18N_TYPE_EAP));
+ break;
+ case WLAN_SEC_MODE_WEP: /** WEP */
+ case WLAN_SEC_MODE_WPA_PSK: /** WPA-PSK */
+ case WLAN_SEC_MODE_WPA2_PSK: /** WPA2-PSK */
+ if (TRUE == device_info->wps_mode) {
+ status_txt = g_strdup_printf("%s (%s)", sc(pkg_name, I18N_TYPE_Secured), sc(pkg_name, I18N_TYPE_WPS_Available));
+ } else {
+ status_txt = g_strdup(sc(pkg_name, I18N_TYPE_Secured));
+ }
+ break;
+ default: /** Unknown */
+ status_txt = g_strdup(WIFI_UNKNOWN_DEVICE_STATUS_STR);
+ break;
+ }
+ return status_txt;
+}
+
+char *common_utils_get_device_icon(const char *image_path_dir, wifi_device_info_t *device_info)
+{
+ char tmp_str[MAX_DEVICE_ICON_PATH_STR_LEN] = {'\0', };
+ char *ret;
+
+ g_strlcpy(tmp_str, image_path_dir, sizeof(tmp_str));
+ g_strlcat(tmp_str, "/37_wifi_icon", sizeof(tmp_str));
+
+ if (device_info->security_mode != WLAN_SEC_MODE_NONE) {
+ g_strlcat(tmp_str, "_lock", sizeof(tmp_str));
+ }
+
+ switch (wlan_manager_get_signal_strength(device_info->rssi)) {
+ case SIGNAL_STRENGTH_TYPE_EXCELLENT:
+ g_strlcat(tmp_str, "_03", sizeof(tmp_str));
+ break;
+ case SIGNAL_STRENGTH_TYPE_GOOD:
+ g_strlcat(tmp_str, "_02", sizeof(tmp_str));
+ break;
+ case SIGNAL_STRENGTH_TYPE_WEAK:
+ g_strlcat(tmp_str, "_01", sizeof(tmp_str));
+ break;
+ case SIGNAL_STRENGTH_TYPE_VERY_WEAK:
+ case SIGNAL_STRENGTH_TYPE_NULL:
+ default:
+ g_strlcat(tmp_str, "_00", sizeof(tmp_str));
+ break;
+ }
+
+ /* Adding .png to the end of file */
+ g_strlcat(tmp_str, ".png", sizeof(tmp_str));
+
+ ret = g_strdup(tmp_str);
+ return ret;
+}
+
+Evas_Object *common_utils_entry_layout_get_entry(Evas_Object *layout)
+{
+ return elm_object_part_content_get(layout, "elm.swallow.content");
+}
+
+char *common_utils_entry_layout_get_text(Evas_Object *layout)
+{
+ Evas_Object *entry = elm_object_part_content_get(layout, "elm.swallow.content");
+ return elm_entry_markup_to_utf8(elm_entry_entry_get(entry));
+}
+
+void common_utils_entry_password_set(Evas_Object *layout, Eina_Bool pswd_set)
+{
+ Evas_Object *entry = elm_object_part_content_get(layout, "elm.swallow.content");
+ elm_entry_password_set(entry, pswd_set);
+}
+
+void __common_popup_size_get(Ecore_IMF_Context *target_imf, int *width, int *height)
+{
+ __COMMON_FUNC_ENTER__;
+
+ int window_width, window_height;
+ int start_x, start_y, imf_width, imf_height;
+ int rotate_angle;
+ float resize_scale = 0.7f;
+
+ rotate_angle = common_utils_get_rotate_angle(APPCORE_RM_UNKNOWN);
+ ecore_x_window_size_get(ecore_x_window_root_first_get(), &window_width, &window_height);
+
+ *width = window_width;
+
+ if (rotate_angle == 0 || rotate_angle == 180)
+ {
+ *height = window_height * resize_scale;
+ }else
+ *height = window_width;
+
+ if (target_imf != NULL) {
+ ecore_imf_context_input_panel_geometry_get(target_imf, &start_x, &start_y, &imf_width, &imf_height);
+ *height = start_y * resize_scale;
+ }
+
+ *height = *height-POPUP_HEAD_AREA-POPUP_BUTTON_AREA;
+
+ __COMMON_FUNC_EXIT__;
+}
+
+void common_utils_set_edit_box_imf_panel_evnt_cb(Elm_Object_Item *item,
+ imf_ctxt_panel_cb_t input_panel_cb, void *user_data)
+{
+ __COMMON_FUNC_ENTER__;
+ common_utils_entry_info_t *entry_info;
+ entry_info = elm_object_item_data_get(item);
+ if (!entry_info)
+ return;
+
+ entry_info->input_panel_cb = input_panel_cb;
+ entry_info->input_panel_cb_data = user_data;
+ Evas_Object *entry = common_utils_entry_layout_get_entry(entry_info->layout);
+ Ecore_IMF_Context *imf_ctxt = elm_entry_imf_context_get(entry);
+ if (imf_ctxt) {
+ ecore_imf_context_input_panel_event_callback_add(imf_ctxt, ECORE_IMF_INPUT_PANEL_STATE_EVENT, entry_info->input_panel_cb, entry_info->input_panel_cb_data);
+ DEBUG_LOG(UG_NAME_NORMAL, "set the imf ctxt cbs");
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return;
+}
+
+Elm_Object_Item *common_utils_add_2_line_txt_disabled_item(Evas_Object* view_list, const char *style_name, const char *line1_txt, const char *line2_txt)
+{
+ static Elm_Genlist_Item_Class two_line_display_itc;
+ two_line_disp_data_t *two_line_data = NULL;
+ Elm_Object_Item *item = NULL;
+
+ two_line_display_itc.item_style = style_name;
+ two_line_display_itc.func.text_get = __common_utils_2line_text_get;
+ two_line_display_itc.func.content_get = NULL;
+ two_line_display_itc.func.state_get = NULL;
+ two_line_display_itc.func.del = __common_utils_2line_text_del;
+
+ two_line_data = g_new0(two_line_disp_data_t, 1);
+ two_line_data->title_str = g_strdup(line1_txt);
+ two_line_data->info_str = g_strdup(line2_txt);
+ INFO_LOG(UG_NAME_NORMAL, "title_str = %s info_str = %s", two_line_data->title_str, two_line_data->info_str);
+
+ item = elm_genlist_item_append(view_list, &two_line_display_itc, two_line_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_object_item_disabled_set(item, TRUE);
+
+ return item;
+}
+
+char *common_utils_get_list_item_entry_txt(Elm_Object_Item *entry_item)
+{
+ common_utils_entry_info_t *entry_info = (common_utils_entry_info_t *)elm_object_item_data_get(entry_item);
+ if (entry_info == NULL)
+ return NULL;
+
+ DEBUG_LOG(UG_NAME_NORMAL, "entry_info = 0x%x", entry_info);
+
+ if (entry_info->entry_txt)
+ return g_strdup(entry_info->entry_txt);
+ else
+ return NULL;
+}
+
+Evas_Object *common_utils_create_radio_button(Evas_Object *parent, const int value)
+{
+ Evas_Object *radio = elm_radio_add(parent);
+ elm_radio_state_value_set(radio, value);
+// elm_radio_group_add(radio, radio_main);
+ evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ return radio;
+}
+
+Evas_Object *common_utils_create_layout(Evas_Object *navi_frame)
+{
+ Evas_Object *layout;
+ layout = elm_layout_add(navi_frame);
+ elm_layout_theme_set(layout, "layout", "application", "noindicator");
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ Evas_Object* bg = elm_bg_add(layout);
+ evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_style_set(bg, "group_list");
+ elm_object_part_content_set(layout, "elm.swallow.bg", bg);
+
+ evas_object_show(layout);
+
+ return layout;
+}
+
+Evas_Object *common_utils_show_info_popup(Evas_Object *parent, popup_btn_info_t *popup_data)
+{
+ __COMMON_FUNC_ENTER__;
+ Evas_Object *popup = elm_popup_add(parent);
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ if (popup_data->title_txt)
+ elm_object_part_text_set(popup, "title,text", popup_data->title_txt);
+ if (popup_data->info_txt)
+ elm_object_text_set(popup, popup_data->info_txt);
+ if (popup_data->btn1_txt) {
+ Evas_Object *btn_1 = elm_button_add(popup);
+ elm_object_text_set(btn_1, popup_data->btn1_txt);
+ elm_object_part_content_set(popup, "button1", btn_1);
+ if (popup_data->btn1_cb) {
+ evas_object_smart_callback_add(btn_1, "clicked", popup_data->btn1_cb, popup_data->btn1_data);
+ } else { // set the default callback
+ evas_object_smart_callback_add(btn_1, "clicked", (Evas_Smart_Cb)evas_object_del, popup);
+ }
+ }
+ if (popup_data->btn2_txt) {
+ Evas_Object *btn_2 = elm_button_add(popup);
+ elm_object_text_set(btn_2, popup_data->btn2_txt);
+ elm_object_part_content_set(popup, "button2", btn_2);
+ evas_object_smart_callback_add(btn_2, "clicked", popup_data->btn2_cb, NULL);
+ evas_object_show(popup);
+ if (popup_data->btn2_cb) {
+ evas_object_smart_callback_add(btn_2, "clicked", popup_data->btn2_cb, popup_data->btn2_data);
+ } else { // set the default callback
+ evas_object_smart_callback_add(btn_2, "clicked", (Evas_Smart_Cb)evas_object_del, popup);
+ }
+ }
+ evas_object_show(popup);
+
+ return popup;
+}
+
+Evas_Object *common_utils_show_info_ok_popup(Evas_Object *win,
+ const char *str_pkg_name, const char *info_txt)
+{
+ popup_btn_info_t popup_data;
+
+ memset(&popup_data, 0, sizeof(popup_data));
+ popup_data.info_txt = (char *)info_txt;
+ popup_data.btn1_txt = sc(str_pkg_name, I18N_TYPE_Ok);
+
+ return common_utils_show_info_popup(win, &popup_data);
+}
+
+Evas_Object *common_utils_show_info_timeout_popup(Evas_Object *win,
+ const char* info_text, const double timeout)
+{
+ Evas_Object *popup = elm_popup_add(win);
+
+ elm_object_text_set(popup, info_text);
+ elm_popup_timeout_set(popup, timeout);
+ evas_object_smart_callback_add(popup, "timeout",
+ (Evas_Smart_Cb)evas_object_del, popup);
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_popup_orient_set(popup, ELM_POPUP_ORIENT_CENTER);
+ evas_object_show(popup);
+
+ return popup;
+}
+
+int common_utils_get_rotate_angle(enum appcore_rm rotate_mode)
+{
+ int rotate_angle;
+ if (APPCORE_RM_UNKNOWN == rotate_mode) {
+ appcore_get_rotation_state(&rotate_mode);
+ }
+
+ DEBUG_LOG(SP_NAME_NORMAL, "rotate_mode = %d", rotate_mode);
+
+ switch (rotate_mode) {
+ case APPCORE_RM_PORTRAIT_NORMAL: /**< Portrait mode */
+ DEBUG_LOG(SP_NAME_NORMAL, "rotate mode is APPCORE_RM_PORTRAIT_NORMAL");
+ rotate_angle = 0;
+ break;
+
+ case APPCORE_RM_PORTRAIT_REVERSE: /**< Portrait upside down mode */
+ DEBUG_LOG(SP_NAME_NORMAL, "rotate mode is APPCORE_RM_PORTRAIT_REVERSE");
+ rotate_angle = 180;
+ break;
+
+ case APPCORE_RM_LANDSCAPE_NORMAL: /**< Left handed landscape mode */
+ DEBUG_LOG(SP_NAME_NORMAL, "rotate mode is APPCORE_RM_LANDSCAPE_NORMAL");
+ rotate_angle = 270;
+ break;
+
+ case APPCORE_RM_LANDSCAPE_REVERSE: /**< Right handed landscape mode */
+ DEBUG_LOG(SP_NAME_NORMAL, "rotate mode is APPCORE_RM_LANDSCAPE_REVERSE");
+ rotate_angle = 90;
+ break;
+
+ default:
+ ERROR_LOG(SP_NAME_ERR, "Invalid rotate mode. The default value (0) is set to 'rotate_angle'.");
+ rotate_angle = 0;
+ break;
+ }
+
+ return rotate_angle;
+}
+
+wlan_security_mode_type_t common_utils_get_sec_mode(wifi_security_type_e sec_type)
+{
+ switch (sec_type) {
+ case WIFI_SECURITY_TYPE_NONE:
+ return WLAN_SEC_MODE_NONE;
+ case WIFI_SECURITY_TYPE_WEP:
+ return WLAN_SEC_MODE_WEP;
+ case WIFI_SECURITY_TYPE_WPA_PSK:
+ return WLAN_SEC_MODE_WPA_PSK;
+ case WIFI_SECURITY_TYPE_WPA2_PSK:
+ return WLAN_SEC_MODE_WPA_PSK;
+ case WIFI_SECURITY_TYPE_EAP:
+ return WLAN_SEC_MODE_IEEE8021X;
+ default:
+ return WLAN_SEC_MODE_NONE;
+ }
+ return WLAN_SEC_MODE_NONE;
+}
+
+int common_utils_send_message_to_net_popup(const char *title, const char *content, const char *type, const char *ssid)
+{
+ int ret = 0;
+ bundle *b = bundle_create();
+
+ bundle_add(b, "_SYSPOPUP_TITLE_", title);
+ bundle_add(b, "_SYSPOPUP_CONTENT_", content);
+ bundle_add(b, "_SYSPOPUP_TYPE_", type);
+ bundle_add(b, "_AP_NAME_", ssid);
+
+ ret = aul_launch_app("org.tizen.net-popup", b);
+
+ bundle_free(b);
+
+ return ret;
+}
+
+int common_util_set_system_registry(const char *key, int value)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (vconf_set_int(key, value) < 0) {
+ ERROR_LOG(UG_NAME_NORMAL, "Failed to set vconf");
+
+ __COMMON_FUNC_EXIT__;
+ return -1;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return 0;
+}
+
+int common_util_get_system_registry(const char *key)
+{
+ __COMMON_FUNC_ENTER__;
+
+ int value = 0;
+
+ if (vconf_get_int(key, &value) < 0) {
+ ERROR_LOG(UG_NAME_NORMAL, "Failed to get vconf");
+
+ __COMMON_FUNC_EXIT__;
+ return -1;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return value;
+}
diff --git a/sources/libraries/Common/include/common.h b/sources/libraries/Common/include/common.h
new file mode 100644
index 0000000..c117bf8
--- /dev/null
+++ b/sources/libraries/Common/include/common.h
@@ -0,0 +1,94 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __COMMON_H__
+#define __COMMON_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <dlog.h>
+#include <assert.h>
+
+#define COMMON_NAME_FUNC "wifi/func"
+#define COMMON_NAME_LIB "wifi/lib"
+#define COMMON_NAME_ERR "wifi/err"
+#define UG_NAME_NORMAL "wifi_ug"
+#define UG_NAME_RESP "wifi_ug/resp"
+#define UG_NAME_REQ "wifi_ug/req"
+#define UG_NAME_SCAN "wifi_ug/scan"
+#define UG_NAME_ERR "wifi_ug/err"
+#define SP_NAME_NORMAL "wifi_sp"
+#define SP_NAME_ERR "wifi_sp/err"
+
+/* Log Level */
+#define COMMON_LOG_DEBUG LOG_DEBUG
+#define COMMON_LOG_INFO LOG_INFO
+#define COMMON_LOG_WARN LOG_WARN
+#define COMMON_LOG_ERROR LOG_ERROR
+
+#define MAX_DEVICE_ICON_PATH_STR_LEN 256
+#define WIFI_UNKNOWN_DEVICE_STATUS_STR "Unknown"
+#define ENTER_SSID_STR "Enter SSID"
+#define EAP_CHECK_YOUR_ID_STR "Check your identity"
+#define EAP_CHECK_YOUR_PASWD_STR "Check your password"
+#define WEP_WRONG_PASSWORD_LEN_ERR_MSG_STR \
+ "WEP requires 5, 10, 13, 26 letters for a password.<br>Please, check your input."
+#define WPA_WRONG_PASSWORD_LEN_ERR_MSG_STR \
+ "WPA2 requires 8 - 63 letters for a password.<br>Please, check your input."
+#define FIND_HIDDEN_NETWORK_STR "Find hidden network"
+#define SCREEN_TYPE_ID_KEY "screen_type_id_key"
+#define INVALID_PASSWORD "Your password might be invalid"
+
+typedef enum {
+ VIEW_MANAGER_VIEW_TYPE_MAIN,
+ VIEW_MANAGER_VIEW_TYPE_DETAIL,
+ VIEW_MANAGER_VIEW_TYPE_EAP,
+} view_manager_view_type_t;
+
+#define __COMMON_FUNC_ENTER__ \
+ FUNC_LOG(COMMON_NAME_FUNC, "[<Entering]: %s() [%d]", __func__, __LINE__)
+#define __COMMON_FUNC_EXIT__ \
+ FUNC_LOG(COMMON_NAME_FUNC, "[Quit/>]: %s() [%d]", __func__, __LINE__)
+
+#define FUNC_LOG(MID, format, args...) \
+ SLOG(LOG_INFO, MID, "\033[2m[%s:%d]\033[2m " format "\033[0m", __func__, __LINE__, ##args)
+#define DEBUG_LOG(MID, format, args...) \
+ SLOG(LOG_DEBUG, MID, "\033[42m[%s:%d]\033[0m\033[32m " format "\033[0m", __func__, __LINE__, ##args)
+#define INFO_LOG(MID, format, args...) \
+ SLOG(LOG_INFO, MID, "\033[0m[%s:%d]\033[0m " format, __func__, __LINE__, ##args)
+#define WARN_LOG(MID, format, args...) \
+ SLOG(LOG_WARN, MID, "\033[43m[%s:%d]\033[0m\033[33m " format "\033[0m", __func__, __LINE__, ##args)
+#define ERROR_LOG(MID, format, args...) \
+ SLOG(LOG_ERROR, MID, "\033[41m[%s:%d]\033[0m\033[31m " format "\033[0m", __func__, __LINE__, ##args)
+
+#define assertm_if(expr, fmt, arg...) do { \
+ if(expr) { \
+ ERROR_LOG(COMMON_NAME_ERR, " ##(%s) -> %s() assert!!## "fmt, #expr, __FUNCTION__, ##arg); \
+ assert(1); \
+ } \
+} while (0) /* retvm if */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/libraries/Common/include/common_datamodel.h b/sources/libraries/Common/include/common_datamodel.h
new file mode 100644
index 0000000..6b3fc90
--- /dev/null
+++ b/sources/libraries/Common/include/common_datamodel.h
@@ -0,0 +1,102 @@
+/*
+* Wi-Fi UG
+*
+* Copyright 2012 Samsung Electronics Co., Ltd
+
+* Licensed under the Flora License, Version 1.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+
+* http://www.tizenopensource.org/license
+
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#ifndef __VIEW_DETAIL_DATAMODEL_H_
+#define __VIEW_DETAIL_DATAMODEL_H_
+
+#include "wlan_manager.h"
+
+typedef enum {
+ IP_TYPE_NULL,
+ IP_TYPE_STATIC_IP,
+ IP_TYPE_DHCP_IP,
+ IP_TYPE_MAX
+} IP_TYPES;
+
+typedef struct view_datamodel_ip_info view_datamodel_ip_info_t;
+typedef struct view_datamodel_eap_info view_datamodel_eap_info_t;
+typedef struct view_datamodel_basic_info view_datamodel_basic_info_t;
+
+///////////////////////////////////////////////////////////////
+// managing function
+///////////////////////////////////////////////////////////////
+view_datamodel_basic_info_t *view_basic_detail_datamodel_create(const char *profile_name);
+view_datamodel_ip_info_t *view_detail_datamodel_ip_info_create(const char *profile_name);
+view_datamodel_eap_info_t *view_detail_datamodel_eap_info_create(const char *profile_name);
+void view_basic_detail_datamodel_destroy(view_datamodel_basic_info_t *data_object);
+void view_detail_datamodel_ip_info_destroy(view_datamodel_ip_info_t *data_object);
+void view_detail_datamodel_eap_info_destroy(view_datamodel_eap_info_t *data_object);
+///////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////
+// determine it`s changeness
+///////////////////////////////////////////////////////////////
+boolean view_detail_datamodel_save_ip_info_if_modified(const view_datamodel_ip_info_t *data_object);
+boolean view_detail_datamodel_save_eap_info_if_modified(const view_datamodel_eap_info_t *data_object);
+///////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////
+// getter and setter
+///////////////////////////////////////////////////////////////
+int view_detail_datamodel_ip_and_dns_type_set(view_datamodel_ip_info_t *data_object, const IP_TYPES type);
+int view_detail_datamodel_proxy_address_set(view_datamodel_ip_info_t *data_object, const char* proxy);
+int view_detail_datamodel_static_ip_address_set(view_datamodel_ip_info_t *data_object, const char* addr);
+int view_detail_datamodel_static_gateway_address_set(view_datamodel_ip_info_t *data_object, const char* addr);
+int view_detail_datamodel_static_subnet_mask_set(view_datamodel_ip_info_t *data_object, const char* addr);
+int view_detail_datamodel_static_dns1_address_set(view_datamodel_ip_info_t *data_object, const char* addr);
+int view_detail_datamodel_static_dns2_address_set(view_datamodel_ip_info_t *data_object, const char* addr);
+int view_detail_datamodel_eap_ap_name_set(view_datamodel_eap_info_t *data_object, const char *ssid);
+int view_detail_datamodel_eap_method_set(view_datamodel_eap_info_t *data_object, const wlan_eap_type_t eap_method);
+int view_detail_datamodel_eap_provision_set(view_datamodel_eap_info_t *data_object, const int provision);
+int view_detail_datamodel_eap_auth_set(view_datamodel_eap_info_t *data_object, const wlan_eap_auth_type_t auth_type);
+int view_detail_datamodel_eap_user_id_set(view_datamodel_eap_info_t *data_object, const char* user_id);
+int view_detail_datamodel_eap_anonymous_id_set(view_datamodel_eap_info_t *data_object, const char* anonymous_id);
+int view_detail_datamodel_eap_pswd_set(view_datamodel_eap_info_t *data_object, const char* pswd);
+int view_detail_datamodel_eap_ca_cert_set(view_datamodel_eap_info_t *data_object, const char* ca_cert);
+int view_detail_datamodel_eap_user_cert_set(view_datamodel_eap_info_t *data_object, const char* user_cert);
+IP_TYPES view_detail_datamodel_ip_and_dns_type_get(view_datamodel_ip_info_t *data_object);
+char *view_detail_datamodel_static_ip_address_get(view_datamodel_ip_info_t *data_object);
+char *view_detail_datamodel_static_gateway_address_get(view_datamodel_ip_info_t *data_object);
+char *view_detail_datamodel_static_subnet_mask_get(view_datamodel_ip_info_t *data_object);
+char *view_detail_datamodel_static_dns1_address_get(view_datamodel_ip_info_t *data_object);
+char *view_detail_datamodel_static_dns2_address_get(view_datamodel_ip_info_t *data_object);
+char* view_detail_datamodel_proxy_address_get(view_datamodel_ip_info_t *data_object);
+char* view_detail_datamodel_MAC_addr_get(view_datamodel_ip_info_t *data_object);
+
+wlan_eap_type_t view_detail_datamodel_eap_method_get(view_datamodel_eap_info_t *data_object);
+int view_detail_datamodel_eap_provision_get(view_datamodel_eap_info_t *data_object);
+wlan_eap_auth_type_t view_detail_datamodel_eap_auth_get(view_datamodel_eap_info_t *data_object);
+char *view_detail_datamodel_user_id_get(view_datamodel_eap_info_t *data_object);
+char *view_detail_datamodel_anonymous_id_get(view_datamodel_eap_info_t *data_object);
+char *view_detail_datamodel_pswd_get(view_datamodel_eap_info_t *data_object);
+char *view_detail_datamodel_ca_cert_get(view_datamodel_eap_info_t *data_object);
+char *view_detail_datamodel_user_cert_get(view_datamodel_eap_info_t *data_object);
+char *view_detail_datamodel_eap_ap_name_get(view_datamodel_eap_info_t *data_object);
+
+char *view_detail_datamodel_basic_info_profile_name_get(view_datamodel_basic_info_t *data_object);
+char *view_detail_datamodel_ap_name_get(view_datamodel_basic_info_t *data_object);
+unsigned int view_detail_datamodel_sig_strength_get(view_datamodel_basic_info_t *data_object);
+unsigned int view_detail_datamodel_sec_mode_get(view_datamodel_basic_info_t *data_object);
+boolean view_detail_datamodel_is_favourite_get(view_datamodel_basic_info_t *data_object);
+char view_detail_datamodel_wps_support_get(view_datamodel_basic_info_t *data_object);
+///////////////////////////////////////////////////////////////
+
+#endif
diff --git a/sources/libraries/Common/include/common_eap_connect.h b/sources/libraries/Common/include/common_eap_connect.h
new file mode 100644
index 0000000..1cb6f25
--- /dev/null
+++ b/sources/libraries/Common/include/common_eap_connect.h
@@ -0,0 +1,50 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __COMMON_EAP_CONNECT_H__
+#define __COMMON_EAP_CONNECT_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <Evas.h>
+
+#include "wlan_manager.h"
+#include "common_utils.h"
+
+#define DISABLE_FAST_EAP_METHOD
+
+typedef struct eap_info_list eap_info_list_t;
+typedef struct common_eap_connect_data common_eap_connect_data_t;
+
+common_eap_connect_data_t *create_eap_connect_view(Evas_Object *win_main, Evas_Object *navi_frame, const char *pkg_name, wifi_device_info_t *device_info);
+common_eap_connect_data_t *create_eap_connect_popup(Evas_Object *win_main, const char *pkg_name, wifi_device_info_t *device_info);
+eap_info_list_t *eap_info_append_items(wifi_ap_h ap, Evas_Object* view_list, const char *str_pkg_name, imf_ctxt_panel_cb_t input_panel_cb, void *input_panel_cb_data);
+void eap_info_save_data(eap_info_list_t *eap_info_list_data);
+void eap_info_remove(eap_info_list_t *eap_info_list_data);
+void eap_view_close(common_eap_connect_data_t *eap_data);
+void eap_view_rotate_popup(common_eap_connect_data_t *eap_data, int rotate_angle);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __COMMON_EAP_CONNECT_H__ */
diff --git a/sources/libraries/Common/include/common_invalid_password.h b/sources/libraries/Common/include/common_invalid_password.h
new file mode 100644
index 0000000..6c32f1e
--- /dev/null
+++ b/sources/libraries/Common/include/common_invalid_password.h
@@ -0,0 +1,39 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __COMMON_INVALID_PASSWORD_H__
+#define __COMMON_INVALID_PASSWORD_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <glib.h>
+
+int _common_register_invalid_password_popup(void);
+int _common_deregister_invalid_password_popup(void);
+
+gboolean _common_is_invalid_password(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __COMMON_INVALID_PASSWORD_H__ */
diff --git a/sources/libraries/Common/include/common_ip_info.h b/sources/libraries/Common/include/common_ip_info.h
new file mode 100644
index 0000000..f2aafeb
--- /dev/null
+++ b/sources/libraries/Common/include/common_ip_info.h
@@ -0,0 +1,46 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __COMMON_IP_INFO_H__
+#define __COMMON_IP_INFO_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <Evas.h>
+
+#include "wlan_manager.h"
+#include "common_utils.h"
+
+#define DEFAULT_GUIDE_PROXY_IP "proxy.example.com"
+#define DEFAULT_GUIDE_PROXY_PORT "8080"
+
+typedef struct ip_info_list ip_info_list_t;
+
+ip_info_list_t *ip_info_append_items(wifi_ap_h ap, const char *pkg_name, Evas_Object *genlist, imf_ctxt_panel_cb_t input_panel_cb, void *input_panel_cb_data);
+void ip_info_save_data(ip_info_list_t *ip_info_list);
+void ip_info_remove(ip_info_list_t *ip_info_list);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/libraries/Common/include/common_pswd_popup.h b/sources/libraries/Common/include/common_pswd_popup.h
new file mode 100644
index 0000000..de0b2e5
--- /dev/null
+++ b/sources/libraries/Common/include/common_pswd_popup.h
@@ -0,0 +1,53 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __COMMON_PSWD_POPUP_H__
+#define __COMMON_PSWD_POPUP_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <Evas.h>
+#include <wifi.h>
+
+typedef struct {
+ char *title;
+ Eina_Bool show_wps_btn;
+ Evas_Smart_Cb ok_cb;
+ Evas_Smart_Cb cancel_cb;
+ Evas_Smart_Cb wps_btn_cb;
+ wifi_ap_h ap;
+ void *cb_data;
+} pswd_popup_create_req_data_t;
+
+typedef struct pswd_popup pswd_popup_t;
+
+pswd_popup_t *common_pswd_popup_create(Evas_Object *win_main, const char *pkg_name, pswd_popup_create_req_data_t *popup_info);
+void common_pswd_popup_pbc_popup_create(pswd_popup_t *pswd_popup_data, Evas_Smart_Cb cancel_cb, void *cancel_cb_data);
+char *common_pswd_popup_get_txt(pswd_popup_t *pswd_popup_data);
+wifi_ap_h common_pswd_popup_get_ap(pswd_popup_t *pswd_popup_data);
+void common_pswd_popup_destroy(pswd_popup_t *pswd_popup_data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/libraries/Common/include/common_utils.h b/sources/libraries/Common/include/common_utils.h
new file mode 100644
index 0000000..4630103
--- /dev/null
+++ b/sources/libraries/Common/include/common_utils.h
@@ -0,0 +1,110 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __COMMON_UTILS_H__
+#define __COMMON_UTILS_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <Elementary.h>
+#include <appcore-common.h>
+
+#include "wlan_manager.h"
+
+typedef void (*imf_ctxt_panel_cb_t)(void *data, Ecore_IMF_Context *ctx, int value);
+
+typedef enum {
+ ENTRY_TYPE_USER_ID,
+ ENTRY_TYPE_ANONYMOUS_ID,
+ ENTRY_TYPE_PASSWORD,
+ ENTRY_TYPE_IP_ADDR,
+ ENTRY_TYPE_SUBNET_MASK,
+ ENTRY_TYPE_GATEWAY,
+ ENTRY_TYPE_DNS_1,
+ ENTRY_TYPE_DNS_2,
+ ENTRY_TYPE_PROXY_ADDR,
+ ENTRY_TYPE_PROXY_PORT,
+} entry_id_type_t;
+
+typedef struct {
+ entry_id_type_t entry_id;
+ char *title_txt;
+ char *guide_txt;
+ char *entry_txt;
+ Evas_Object *layout;
+ imf_ctxt_panel_cb_t input_panel_cb;
+ void *input_panel_cb_data;
+} common_utils_entry_info_t;
+
+typedef struct {
+ char *title_txt;
+ char *info_txt;
+ char *btn1_txt;
+ char *btn2_txt;
+ Evas_Smart_Cb btn1_cb;
+ Evas_Smart_Cb btn2_cb;
+ const void *btn1_data;
+ const void *btn2_data;
+} popup_btn_info_t;
+
+Elm_Object_Item *common_utils_add_dialogue_separator(
+ Evas_Object* genlist, const char *separator_style);
+char *common_utils_get_ap_security_type_info_txt(
+ const char *pkg_name, wifi_device_info_t *device_info);
+char *common_utils_get_device_icon(
+ const char *image_path_dir, wifi_device_info_t *device_info);
+Evas_Object *common_utils_entry_layout_get_entry(Evas_Object *layout);
+char *common_utils_entry_layout_get_text(Evas_Object *layout);
+Evas_Object *common_utils_add_edit_box(Evas_Object *parent,
+ common_utils_entry_info_t *entry_info);
+void common_utils_set_edit_box_imf_panel_evnt_cb(Elm_Object_Item *item,
+ imf_ctxt_panel_cb_t input_panel_cb, void *user_data);
+
+void common_utils_entry_password_set(Evas_Object *layout, Eina_Bool pswd_set);
+Elm_Object_Item *common_utils_add_2_line_txt_disabled_item(
+ Evas_Object* view_list, const char *style_name,
+ const char *line1_txt, const char *line2_txt);
+char *common_utils_get_list_item_entry_txt(Elm_Object_Item *entry_item);
+Evas_Object *common_utils_create_radio_button(Evas_Object *parent,
+ const int value);
+Evas_Object *common_utils_create_layout(Evas_Object *navi_frame);
+Evas_Object *common_utils_show_info_popup(Evas_Object *win,
+ popup_btn_info_t *popup_data);
+Evas_Object *common_utils_show_info_ok_popup(Evas_Object *win,
+ const char *str_pkg_name, const char *info_txt);
+Evas_Object *common_utils_show_info_timeout_popup(Evas_Object *win,
+ const char* info_text, const double timeout);
+int common_utils_get_rotate_angle(enum appcore_rm rotate_mode);
+wlan_security_mode_type_t common_utils_get_sec_mode(
+ wifi_security_type_e sec_type);
+int common_utils_send_message_to_net_popup(const char *title,
+ const char *content, const char *type, const char *ssid);
+void __common_popup_size_get(Ecore_IMF_Context *target_imf, int *width, int *height);
+
+int common_util_set_system_registry(const char *key, int value);
+int common_util_get_system_registry(const char *key);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/libraries/WlanManager/EngineManager/connman-profile-manager.c b/sources/libraries/WlanManager/EngineManager/connman-profile-manager.c
new file mode 100644
index 0000000..6265a29
--- /dev/null
+++ b/sources/libraries/WlanManager/EngineManager/connman-profile-manager.c
@@ -0,0 +1,211 @@
+/*
+* Wi-Fi UG
+*
+* Copyright 2012 Samsung Electronics Co., Ltd
+
+* Licensed under the Flora License, Version 1.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+
+* http://www.tizenopensource.org/license
+
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#include "common.h"
+#include "wlan_manager.h"
+
+
+typedef struct connman_profile_manager {
+ int profile_num;
+ net_profile_info_t* profile_table;
+} connman_profile_manager;
+connman_profile_manager *_profile_manager = NULL;
+
+static connman_profile_manager *connman_profile_manager_get_singleton()
+{
+ if (_profile_manager == NULL) {
+ _profile_manager = (connman_profile_manager *)malloc(sizeof(connman_profile_manager));
+ _profile_manager->profile_num = 0;
+ _profile_manager->profile_table = NULL;
+ }
+
+ return _profile_manager;
+}
+
+void connman_profile_manager_destroy()
+{
+ if (_profile_manager) {
+ if (_profile_manager->profile_table) {
+ g_free(_profile_manager->profile_table);
+ }
+
+ g_free(_profile_manager);
+ _profile_manager = NULL;
+ }
+}
+
+int connman_profile_manager_profile_cache(int count)
+{
+ int *p_num_of_profiles = 0;
+ net_profile_info_t** p_profile_table;
+ net_profile_info_t* old_profile_table;
+ connman_profile_manager *profile_manager = NULL;
+
+ INFO_LOG(COMMON_NAME_LIB, "connman_profile_manager_profile_cache");
+
+ profile_manager = connman_profile_manager_get_singleton();
+ old_profile_table = profile_manager->profile_table;
+ profile_manager->profile_table = NULL;
+
+ p_num_of_profiles = &(profile_manager->profile_num);
+ p_profile_table = &(profile_manager->profile_table);
+
+ net_get_profile_list(NET_DEVICE_WIFI, p_profile_table, p_num_of_profiles);
+ g_free(old_profile_table);
+ if (*p_num_of_profiles == 0) {
+ INFO_LOG(COMMON_NAME_LIB, "count = 0");
+ } else if (count < *p_num_of_profiles && count > 0) {
+ *p_num_of_profiles = count;
+ }
+
+ INFO_LOG(COMMON_NAME_LIB, "count = %d", *p_num_of_profiles);
+
+ return *p_num_of_profiles;
+}
+
+int connman_profile_manager_scanned_profile_table_size_get(void)
+{
+ connman_profile_manager *profile_manager = NULL;
+ profile_manager = connman_profile_manager_get_singleton();
+ return profile_manager->profile_num;
+}
+
+int connman_profile_manager_check_favourite(const char *profile_name, int *favourite)
+{
+ net_profile_info_t profile;
+
+ int ret = net_get_profile_info(profile_name, &profile);
+ if (ret != NET_ERR_NONE) {
+ ERROR_LOG(COMMON_NAME_ERR, "Failed - net_get_profile_info : error[%d]", ret);
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+
+ INFO_LOG(COMMON_NAME_LIB, "Favourite = %d", (int)profile.Favourite);
+
+ *favourite = (int)profile.Favourite;
+ return WLAN_MANAGER_ERR_NONE;
+}
+
+int connman_profile_manager_connected_ssid_set(const char *profile_name)
+{
+ INFO_LOG(COMMON_NAME_LIB, "Profile name : %s", profile_name);
+
+ net_profile_info_t profile;
+ if (net_get_profile_info(profile_name, &profile) != NET_ERR_NONE)
+ return FALSE;
+
+ wlan_manager_set_connected_AP((const net_profile_info_t *)&profile);
+
+ return TRUE;
+}
+
+int connman_profile_manager_disconnected_ssid_set(const char *profile_name)
+{
+ INFO_LOG(COMMON_NAME_LIB, "Profile name : %s", profile_name);
+
+ const char *connected_profile_name = wlan_manager_get_connected_profile();
+ if (connected_profile_name)
+ if (strncmp(connected_profile_name, profile_name, strlen(connected_profile_name)) == 0)
+ wlan_manager_reset_connected_AP();
+
+ return TRUE;
+}
+
+int connman_profile_manager_profile_modify(net_profile_info_t *new_profile)
+{
+ int ret = net_modify_profile(new_profile->ProfileName, new_profile);
+ if (ret != NET_ERR_NONE) {
+ INFO_LOG(COMMON_NAME_ERR, "Failed to modify profile - %d\n", ret);
+ return 0;
+ }
+ else {
+ INFO_LOG(COMMON_NAME_LIB, "Succeed to modify profile - %d\n", ret);
+ }
+
+ return 1;
+}
+
+int connman_profile_manager_profile_modify_auth(const char* profile_name, void *authdata, int secMode)
+{
+ if (profile_name == NULL || authdata == NULL)
+ return 0;
+
+ net_profile_info_t profile;
+ if (net_get_profile_info(profile_name, &profile) != NET_ERR_NONE) {
+ return 0;
+ }
+
+ wlan_manager_password_data* auth = (wlan_manager_password_data*)authdata;
+ char security_key[NETPM_WLAN_MAX_PSK_PASSPHRASE_LEN+1] = "";
+
+ if (auth != NULL) {
+ strncpy(security_key, auth->password, NETPM_WLAN_MAX_PSK_PASSPHRASE_LEN);
+ DEBUG_LOG(COMMON_NAME_LIB, "security_key [%s]", auth->password);
+ }
+
+ if (0 < strlen(security_key)) {
+ if (secMode == WLAN_SEC_MODE_WEP) {
+ INFO_LOG(COMMON_NAME_LIB, "SECURITY_TYPE_WEP");
+ strncpy(profile.ProfileInfo.Wlan.security_info.authentication.wep.wepKey,
+ security_key,
+ NETPM_WLAN_MAX_WEP_KEY_LEN);
+ } else {
+ INFO_LOG(COMMON_NAME_LIB, "not SECURITY_TYPE_WEP" );
+ strncpy(profile.ProfileInfo.Wlan.security_info.authentication.psk.pskKey, security_key,
+ NETPM_WLAN_MAX_PSK_PASSPHRASE_LEN);
+ profile.ProfileInfo.Wlan.security_info.authentication.psk.pskKey[NETPM_WLAN_MAX_PSK_PASSPHRASE_LEN] = '\0';
+ }
+ } else {
+ INFO_LOG(COMMON_NAME_LIB, "security data <= 0" );
+ strncpy(profile.ProfileInfo.Wlan.security_info.authentication.psk.pskKey, security_key,
+ NETPM_WLAN_MAX_PSK_PASSPHRASE_LEN);
+ }
+
+ int ret = net_modify_profile(profile_name, &profile);
+ if (ret != NET_ERR_NONE) {
+ INFO_LOG(COMMON_NAME_ERR, "Failed to modify profile - %d\n", ret);
+ return 0;
+ }
+ else {
+ INFO_LOG(COMMON_NAME_LIB, "Succeed to modify profile - %d\n", ret);
+ }
+
+ return 1;
+}
+
+void* connman_profile_manager_profile_table_get(void)
+{
+ connman_profile_manager *profile_manager = NULL;
+ profile_manager = connman_profile_manager_get_singleton();
+ return profile_manager->profile_table;
+}
+
+int connman_profile_manager_profile_info_get(const char *profile_name, net_profile_info_t *profile)
+{
+ if (profile_name == NULL)
+ return 0;
+
+ if (net_get_profile_info(profile_name, profile) != NET_ERR_NONE) {
+ return 0;
+ }
+
+ return 1;
+}
diff --git a/sources/libraries/WlanManager/EngineManager/connman-request.c b/sources/libraries/WlanManager/EngineManager/connman-request.c
new file mode 100644
index 0000000..8c77c06
--- /dev/null
+++ b/sources/libraries/WlanManager/EngineManager/connman-request.c
@@ -0,0 +1,72 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "common.h"
+#include "wlan_manager.h"
+
+int connman_request_register(void)
+{
+ int ret = net_register_client(network_evt_cb, NULL);
+ switch (ret) {
+ case NET_ERR_NONE:
+ return WLAN_MANAGER_ERR_NONE;
+ case NET_ERR_APP_ALREADY_REGISTERED:
+ return WLAN_MANAGER_ERR_ALREADY_REGISTERED;
+ default:
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+}
+
+int connman_request_deregister(void)
+{
+ int ret = net_deregister_client();
+ switch (ret) {
+ case NET_ERR_NONE:
+ return WLAN_MANAGER_ERR_NONE;
+ default:
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+}
+
+int connman_request_specific_scan(const char *ssid)
+{
+ int ret = net_specific_scan_wifi(ssid);
+ INFO_LOG(COMMON_NAME_LIB,"net_specific_scan_wifi ret: %d", ret);
+
+ switch (ret) {
+ case NET_ERR_NONE:
+ case NET_ERR_IN_PROGRESS:
+ return WLAN_MANAGER_ERR_NONE;
+ default:
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+}
+
+int connman_request_scan_mode_set(net_wifi_background_scan_mode_t scan_mode)
+{
+ int ret = net_wifi_set_background_scan_mode(scan_mode);
+ INFO_LOG(COMMON_NAME_LIB, "net_wifi_set_background_scan_mode ret: %d", ret);
+
+ switch (ret) {
+ case NET_ERR_NONE:
+ return WLAN_MANAGER_ERR_NONE;
+ default:
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+}
diff --git a/sources/libraries/WlanManager/EngineManager/connman-response.c b/sources/libraries/WlanManager/EngineManager/connman-response.c
new file mode 100644
index 0000000..cc43728
--- /dev/null
+++ b/sources/libraries/WlanManager/EngineManager/connman-response.c
@@ -0,0 +1,92 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "common.h"
+#include "wlan_manager.h"
+
+struct _wifi_cb_s {
+ wifi_specific_scan_finished_cb specific_scan_cb;
+ void *specific_scan_user_data;
+};
+
+static struct _wifi_cb_s wifi_callbacks = {0,};
+
+int wifi_set_specific_scan_cb(wifi_specific_scan_finished_cb cb, void *data)
+{
+ __COMMON_FUNC_ENTER__;
+ if (!cb) {
+ __COMMON_FUNC_EXIT__;
+ return WIFI_ERROR_INVALID_PARAMETER;
+ }
+
+ wifi_callbacks.specific_scan_cb = cb;
+ wifi_callbacks.specific_scan_user_data = data;
+ __COMMON_FUNC_EXIT__;
+
+ return WIFI_ERROR_NONE;
+}
+
+int wifi_unset_specific_scan_cb(void)
+{
+ __COMMON_FUNC_ENTER__;
+ if (wifi_callbacks.specific_scan_cb == NULL) {
+ __COMMON_FUNC_EXIT__;
+ return WIFI_ERROR_INVALID_OPERATION;
+ }
+
+ wifi_callbacks.specific_scan_cb = NULL;
+ wifi_callbacks.specific_scan_user_data = NULL;
+ __COMMON_FUNC_EXIT__;
+
+ return WIFI_ERROR_NONE;
+}
+
+void network_evt_cb(const net_event_info_t* net_event, void* user_data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ switch (net_event->Event) {
+ case NET_EVENT_SPECIFIC_SCAN_RSP:
+ INFO_LOG(COMMON_NAME_LIB, "Callback - NET_EVENT_SPECIFIC_SCAN_RSP");
+ if (net_event->Error != NET_ERR_NONE) {
+ if (wifi_callbacks.specific_scan_cb)
+ wifi_callbacks.specific_scan_cb(WIFI_ERROR_OPERATION_FAILED, NULL, wifi_callbacks.specific_scan_user_data);
+ else
+ ERROR_LOG(COMMON_NAME_LIB, "Specific scan cb is not set !!!");
+ } else {
+ INFO_LOG(COMMON_NAME_LIB, "Successfully sent the specific scan request");
+ }
+ break;
+ case NET_EVENT_SPECIFIC_SCAN_IND:
+ INFO_LOG(COMMON_NAME_LIB, "Callback - NET_EVENT_SPECIFIC_SCAN_IND");
+ if (!wifi_callbacks.specific_scan_cb) {
+ ERROR_LOG(COMMON_NAME_LIB, "Specific scan cb is not set !!!");
+ } else if (net_event->Error != NET_ERR_NONE) {
+ wifi_callbacks.specific_scan_cb(WIFI_ERROR_OPERATION_FAILED, NULL, wifi_callbacks.specific_scan_user_data);
+ } else {
+ wifi_callbacks.specific_scan_cb(WIFI_ERROR_NONE, net_event->Data, wifi_callbacks.specific_scan_user_data);
+ }
+ break;
+ default:
+ INFO_LOG(COMMON_NAME_LIB, "Callback - %d", net_event->Event);
+ break;
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
diff --git a/sources/libraries/WlanManager/EngineManager/include/connman-profile-manager.h b/sources/libraries/WlanManager/EngineManager/include/connman-profile-manager.h
new file mode 100644
index 0000000..84f13c6
--- /dev/null
+++ b/sources/libraries/WlanManager/EngineManager/include/connman-profile-manager.h
@@ -0,0 +1,38 @@
+/*
+* Wi-Fi UG
+*
+* Copyright 2012 Samsung Electronics Co., Ltd
+
+* Licensed under the Flora License, Version 1.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+
+* http://www.tizenopensource.org/license
+
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#ifndef __WIFI_CONNMAN_PROFILE_MANAGER_H__
+#define __WIFI_CONNMAN_PROFILE_MANAGER_H_
+
+#include <network-pm-intf.h>
+
+int connman_profile_manager_profile_cache(int count);
+int connman_profile_manager_check_favourite(const char *profile_name, int *favourite);
+int connman_profile_manager_connected_ssid_set(const char *profile_name);
+int connman_profile_manager_disconnected_ssid_set(const char *profile_name);
+int connman_profile_manager_profile_modify(net_profile_info_t *new_profile);
+int connman_profile_manager_profile_modify_auth(const char *profile_name, void *authdata, int secMode);
+void *connman_profile_manager_profile_table_get(void);
+int connman_profile_manager_profile_info_get(const char *profile_name, net_profile_info_t *profile);
+int connman_profile_manager_scanned_profile_table_size_get(void);
+void connman_profile_manager_destroy(void);
+
+#endif
diff --git a/sources/libraries/WlanManager/EngineManager/include/connman-request.h b/sources/libraries/WlanManager/EngineManager/include/connman-request.h
new file mode 100644
index 0000000..3ba74ae
--- /dev/null
+++ b/sources/libraries/WlanManager/EngineManager/include/connman-request.h
@@ -0,0 +1,39 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __CONNMAN_REQUEST_H__
+#define __CONNMAN_REQUEST_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <network-wifi-intf.h>
+
+int connman_request_specific_scan(const char *ssid);
+int connman_request_scan_mode_set(net_wifi_background_scan_mode_t scan_mode);
+int connman_request_register(void);
+int connman_request_deregister(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/libraries/WlanManager/EngineManager/include/connman-response.h b/sources/libraries/WlanManager/EngineManager/include/connman-response.h
new file mode 100644
index 0000000..fd3c9d6
--- /dev/null
+++ b/sources/libraries/WlanManager/EngineManager/include/connman-response.h
@@ -0,0 +1,46 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __CONNMAN_RESPONSE_H__
+#define __CONNMAN_RESPONSE_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include "connman-request.h"
+
+/**
+* @brief Called when the specific scan is finished.
+* @param[in] error_code The error code
+* @param[in] user_data The user data passed from the callback registration function
+* @see wifi_set_specific_scan_cb()
+*/
+typedef void(*wifi_specific_scan_finished_cb)(wifi_error_e error_code, GSList *bss_info_list, void* user_data);
+
+int wifi_set_specific_scan_cb(wifi_specific_scan_finished_cb cb, void *data);
+int wifi_unset_specific_scan_cb(void);
+void network_evt_cb(const net_event_info_t* net_event, void* user_data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/libraries/WlanManager/wlan-manager/include/wlan_manager.h b/sources/libraries/WlanManager/wlan-manager/include/wlan_manager.h
new file mode 100644
index 0000000..1bc8abc
--- /dev/null
+++ b/sources/libraries/WlanManager/wlan-manager/include/wlan_manager.h
@@ -0,0 +1,254 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __WIFI_WLAN_MANAGER_H__
+#define __WIFI_WLAN_MANAGER_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <glib.h>
+#include <wifi.h>
+#include <dbus/dbus-glib.h>
+
+#include "connman-request.h"
+#include "connman-response.h"
+
+typedef enum {
+ WLAN_MANAGER_ERR_NONE = 0,
+ WLAN_MANAGER_ERR_UNKNOWN,
+ WLAN_MANAGER_ERR_INVALID_PARAM,
+ WLAN_MANAGER_ERR_ALREADY_REGISTERED,
+ WLAN_MANAGER_ERR_CONNECT_PASSWORD_NEEDED,
+ WLAN_MANAGER_ERR_CONNECT_EAP_SEC_TYPE,
+ WLAN_MANAGER_ERR_MOBILE_HOTSPOT_OCCUPIED,
+ WLAN_MANAGER_ERR_NOSERVICE,
+ WLAN_MANAGER_ERR_IN_PROGRESS,
+} WLAN_MANAGER_ERR_TYPE;
+
+typedef enum {
+ SIGNAL_STRENGTH_TYPE_EXCELLENT,
+ SIGNAL_STRENGTH_TYPE_GOOD,
+ SIGNAL_STRENGTH_TYPE_WEAK,
+ SIGNAL_STRENGTH_TYPE_VERY_WEAK,
+ SIGNAL_STRENGTH_TYPE_NULL
+} STRENGTH_TYPES;
+
+/*
+ * JOIN TYPE, SECURITY TYPE and EAP_TYPE
+ *
+ * Determine it`s security type
+ * It should be merged into one enumerations
+*/
+typedef enum {
+ SECURITY_TYPE_NONE=0x01,
+ SECURITY_TYPE_WEP,
+ SECURITY_TYPE_WPA_PSK,
+ SECURITY_TYPE_WPA2_PSK,
+
+ SECURITY_TYPE_WPA_EAP,
+ SECURITY_TYPE_WPA2_EAP,
+
+ SECURITY_TYPE_MAX,
+ SECURITY_TYPE_NULL
+} SECURITY_TYPES;
+
+typedef enum {
+ WLAN_MANAGER_EAP_TYPE_NONE, /* only use it`s WPA number */
+ WLAN_MANAGER_EAP_TYPE_TLS,
+ WLAN_MANAGER_EAP_TYPE_TTLS_PAP, /** PAP is tunneled protocol */
+ WLAN_MANAGER_EAP_TYPE_TTLS_CHAP, /** CHAP is tunneled protocol */
+ WLAN_MANAGER_EAP_TYPE_TTLS_MSCHAP, /** MSCHAP is tunneled protocol */
+ WLAN_MANAGER_EAP_TYPE_TTLS_MSCHAPV2, /** MSCHAPV2 is tunneled protocol */
+
+ /** Define EAP-TTLS and tunneled EAP sub types here */
+ WLAN_MANAGER_EAP_TYPE_TTLS_EAP_GTC, /** EAP_GTC is tunneled protocol */
+ WLAN_MANAGER_EAP_TYPE_TTLS_EAP_MD5, /** EAP_MD5 is tunneled protocol */
+ WLAN_MANAGER_EAP_TYPE_TTLS_EAP_MSCHAPV2, /** EAP_MSCHAPV2 is tunneled protocol */
+
+ /** Define EAP-PEAP version 0 */
+ WLAN_MANAGER_EAP_TYPE_PEAP0_MSCHAPV2, /** MSCHAPV2 is tunneled protocol, PEAP version is 0 */
+ WLAN_MANAGER_EAP_TYPE_PEAP0_MD5, /** MD5 is tunneled protocol, PEAP version is 0 */
+ WLAN_MANAGER_EAP_TYPE_PEAP0_GTC, /** GTC is tunneled protocol, PEAP version is 0 */
+
+ /** Define EAP-PEAP version 1 */
+ WLAN_MANAGER_EAP_TYPE_PEAP1_MSCHAPV2, /** MSCHAPV2 is tunneled protocol, PEAP version is 1 */
+ WLAN_MANAGER_EAP_TYPE_PEAP1_MD5, /** MD5 is tunneled protocol, PEAP version is 1 */
+ WLAN_MANAGER_EAP_TYPE_PEAP1_GTC, /** GTC is tunneled protocol, PEAP version is 1 */
+ WLAN_MANAGER_EAP_TYPE_MAX,
+ WLAN_MANAGER_EAP_TYPE_ERROR
+} WLAN_MANAGER_EAP_TYPES;
+
+/*
+ * RESPONSES
+ */
+typedef enum {
+ WLAN_MANAGER_RESPONSE_TYPE_NONE,
+ WLAN_MANAGER_RESPONSE_TYPE_CONNECTING,
+ WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_OK,
+ WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_FAIL_IN_PROGRESS,
+ WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_FAIL_ABORTED,
+ WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_FAIL_ALREADY_EXIST,
+ WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_FAIL_TIMEOUT,
+ WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_FAIL_UNKNOWN,
+ WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_FAIL_UNKNOWN_METHOD,
+ WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_CONNECT_FAILED,
+ WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_INVALID_KEY,
+ WLAN_MANAGER_RESPONSE_TYPE_DISCONNECTION_OK,
+ WLAN_MANAGER_RESPONSE_TYPE_POWER_ON_OK,
+ WLAN_MANAGER_RESPONSE_TYPE_POWER_ON_NOT_SUPPORTED,
+ WLAN_MANAGER_RESPONSE_TYPE_POWER_ON_RESTRICTED,
+ WLAN_MANAGER_RESPONSE_TYPE_POWER_OFF_OK,
+ WLAN_MANAGER_RESPONSE_TYPE_SCAN_OK,
+ WLAN_MANAGER_RESPONSE_TYPE_WPS_ENROLL_OK,
+ WLAN_MANAGER_RESPONSE_TYPE_WPS_ENROLL_FAIL,
+ WLAN_MANAGER_RESPONSE_TYPE_CANCEL_WPS_ENROLL_OK,
+ WLAN_MANAGER_RESPONSE_TYPE_CANCEL_WPS_ENROLL_FAIL,
+ WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_IND,
+ WLAN_MANAGER_RESPONSE_TYPE_DISCONNECTION_IND,
+ WLAN_MANAGER_RESPONSE_TYPE_SCAN_RESULT_IND,
+ WLAN_MANAGER_RESPONSE_TYPE_MAC_ID_IND,
+ WLAN_MANAGER_RESPONSE_TYPE_SPECIFIC_SCAN_OK,
+ WLAN_MANAGER_RESPONSE_TYPE_SPECIFIC_SCAN_FAIL,
+ WLAN_MANAGER_RESPONSE_TYPE_SPECIFIC_SCAN_IND,
+ WLAN_MANAGER_RESPONSE_TYPE_UPDATE_SIG_STR,
+ WLAN_MANAGER_RESPONSE_TYPE_MAX
+} WLAN_MANAGER_RESPONSE_TYPES;
+
+#define WLAN_RSSI_LEVEL_EXCELLENT 64
+#define WLAN_RSSI_LEVEL_GOOD 59
+#define WLAN_RSSI_LEVEL_WEAK 34
+
+#define WLAN_PROXY_LEN_MAX 64
+
+typedef struct {
+ DBusGProxy *proxy;
+ DBusGProxyCall * pending_call;
+ gboolean is_handled;
+} wifi_pending_call_info_t;
+
+wifi_pending_call_info_t g_pending_call;
+
+typedef struct _wifi_device_info_t {
+ wifi_ap_h ap;
+ char* ssid;
+ char* ap_status_txt;
+ char* ap_image_path;
+ int ipconfigtype;
+ int rssi;
+ wlan_security_mode_type_t security_mode;
+ bool wps_mode;
+} wifi_device_info_t;
+
+typedef struct {
+ const char* password;
+ char* category;
+ char* subcategory;
+ char* username;
+ char* userpassword;
+ char* ca_cert_filename;
+ char* client_cert_filename;
+ char* private_key;
+ char* private_key_password;
+ int wlan_eap_type;
+} wlan_manager_password_data;
+
+/* it should be implement. */
+typedef enum {
+ WLAN_MANAGER_ERROR=0x01,
+ WLAN_MANAGER_OFF,
+ WLAN_MANAGER_UNCONNECTED,
+ WLAN_MANAGER_CONNECTED,
+ WLAN_MANAGER_CONNECTING,
+ WLAN_MANAGER_DISCONNECTING,
+ WLAN_MANAGER_MAX
+} WLAN_MANAGER_STATES;
+
+typedef void (*wlan_manager_ui_refresh_func_t)(void);
+
+typedef struct {
+ WLAN_MANAGER_RESPONSE_TYPES event_type;
+ wifi_ap_h ap;
+ wifi_rssi_level_e rssi_level;
+ GSList *bss_info_list;
+} wlan_mgr_event_info_t;
+
+typedef void (*wlan_event_handler)(wlan_mgr_event_info_t *event_info, void *user_data);
+
+/** It should be hide to others */
+typedef struct wlan_manager_object {
+ wlan_event_handler message_func;
+ wlan_manager_ui_refresh_func_t refresh_func;
+ gboolean b_scan_blocked;
+ gboolean b_ui_refresh;
+} wlan_manager_object;
+
+/////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////
+// FUNCTIONS
+/////////////////////////////////////////////////////////////////
+
+
+wlan_manager_object* wlan_manager_get_singleton(void);
+void* wlan_manager_create();
+int wlan_manager_destroy();
+int wlan_manager_start();
+
+wifi_ap_h wlan_manager_get_ap_with_state(int ap_state);
+int wlan_manager_state_get(void);
+void wlan_manager_set_message_callback(wlan_event_handler func);
+void wlan_manager_set_refresh_callback(wlan_manager_ui_refresh_func_t func);
+
+void wlan_manager_enable_scan_result_update(void);
+void wlan_manager_disable_scan_result_update(void);
+char *wlan_manager_get_connected_ssid(void);
+
+// * request
+int wlan_manager_request_connection(wifi_ap_h ap);
+int wlan_manager_request_disconnection(wifi_ap_h ap);
+int wlan_manager_request_wps_connection(wifi_ap_h ap);
+int wlan_manager_request_power_on(void);
+int wlan_manager_request_power_off(void);
+int wlan_manager_request_scan(void);
+
+// * connect, disconnect and forget
+int wlan_manager_connect_with_password(wifi_ap_h ap, const char *pass_phrase);
+int wlan_manager_connect_with_wifi_info(wifi_ap_h ap);
+int wlan_manager_forget(wifi_ap_h ap);
+int wlan_manager_request_specific_scan(const char *ssid, void *data);
+
+int wlan_manager_profile_modify_by_device_info(net_profile_info_t *profiles);
+
+STRENGTH_TYPES wlan_manager_get_signal_strength(int rssi);
+
+//// profile refresh /////////////////////////////////////////////
+void wlan_manager_scanned_profile_refresh(void);
+int wlan_manager_scanned_profile_refresh_with_count(int count);
+wifi_device_info_t *wlan_manager_profile_device_info_blank_create(void);
+
+int wlan_manager_network_syspopup_message(const char *title, const char *content, const char *type);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WIFI_REQUEST_HANDLER_H__ */
diff --git a/sources/libraries/WlanManager/wlan-manager/wlan_manager.c b/sources/libraries/WlanManager/wlan-manager/wlan_manager.c
new file mode 100644
index 0000000..d01b6e0
--- /dev/null
+++ b/sources/libraries/WlanManager/wlan-manager/wlan_manager.c
@@ -0,0 +1,820 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <vconf-keys.h>
+#include <syspopup_caller.h>
+
+#include "common.h"
+#include "wlan_manager.h"
+#include "common_utils.h"
+#include "wifi-engine-callback.h"
+#include "common_invalid_password.h"
+
+typedef enum {
+ WLAN_MANAGER_REQ_TYPE_ACTIVATE,
+ WLAN_MANAGER_REQ_TYPE_DEACTIVATE,
+ WLAN_MANAGER_REQ_TYPE_SCAN,
+ WLAN_MANAGER_REQ_TYPE_SPECIFIC_SCAN,
+ WLAN_MANAGER_REQ_TYPE_BG_SCAN,
+ WLAN_MANAGER_REQ_TYPE_CONNECT,
+ WLAN_MANAGER_REQ_TYPE_WPS_CONNECT,
+} WLAN_MANAGER_REQUEST_TYPES;
+
+typedef struct {
+ WLAN_MANAGER_REQUEST_TYPES req_type;
+ wifi_ap_h ap;
+ void *user_data;
+} wlan_mgr_req_data_t;
+
+typedef struct {
+ int state;
+ wifi_ap_h *ap;
+} ap_state_info_t;
+
+wlan_mgr_req_data_t bg_scan_req_data;
+
+static void wlan_manager_register_cbs(void);
+static void wlan_manager_deregister_cbs(void);
+
+static wlan_manager_object* manager_object = NULL;
+
+wlan_manager_object* wlan_manager_get_singleton(void)
+{
+ if (NULL == manager_object) {
+ manager_object = g_new0(wlan_manager_object, 1);
+ manager_object->message_func = NULL;
+ manager_object->refresh_func = NULL;
+ }
+
+ return manager_object;
+}
+
+void wlan_manager_set_refresh_callback(wlan_manager_ui_refresh_func_t func)
+{
+ manager_object->refresh_func = func;
+}
+
+
+void* wlan_manager_create()
+{
+ wlan_manager_get_singleton();
+ return NULL;
+}
+
+int wlan_manager_destroy()
+{
+ int ret = WLAN_MANAGER_ERR_NONE;
+
+ _common_deregister_invalid_password_popup();
+
+ wlan_manager_deregister_cbs();
+
+ wifi_deinitialize();
+
+ if (manager_object != NULL) {
+ g_free(manager_object);
+ manager_object = NULL;
+ }
+
+ return ret;
+}
+
+int wlan_manager_start()
+{
+ __COMMON_FUNC_ENTER__;
+ switch (wifi_initialize()) {
+ case WIFI_ERROR_NONE:
+ /* Register the callbacks */
+ wlan_manager_register_cbs();
+ break;
+ case WIFI_ERROR_INVALID_OPERATION:
+ /* Register the callbacks */
+ wlan_manager_register_cbs();
+ return WLAN_MANAGER_ERR_ALREADY_REGISTERED;
+ default:
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+ return WLAN_MANAGER_ERR_NONE;
+}
+
+int wlan_manager_forget(wifi_ap_h ap)
+{
+ wifi_forget_ap(ap);
+ return WLAN_MANAGER_ERR_NONE;
+}
+
+static void wlan_manager_device_state_changed_cb(wifi_device_state_e state, void *user_data)
+{
+ __COMMON_FUNC_ENTER__;
+ wlan_mgr_event_info_t event_info;
+ memset(&event_info, 0, sizeof(event_info));
+ switch (state) {
+ case WIFI_DEVICE_STATE_ACTIVATED:
+ wlan_manager_enable_scan_result_update();
+ wlan_manager_register_cbs();
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_POWER_ON_OK;
+ break;
+ case WIFI_DEVICE_STATE_DEACTIVATED:
+ wlan_manager_deregister_cbs();
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_POWER_OFF_OK;
+ break;
+ default:
+ return;
+ }
+
+ manager_object->message_func(&event_info, user_data);
+
+ __COMMON_FUNC_EXIT__;
+ return;
+}
+
+static void wlan_manager_connection_state_changed_cb(wifi_connection_state_e state, wifi_ap_h ap, void *user_data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (TRUE == manager_object->b_scan_blocked) {
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ wlan_mgr_event_info_t event_info;
+ memset(&event_info, 0, sizeof(event_info));
+
+ event_info.ap = ap;
+
+ switch (state) {
+ case WIFI_CONNECTION_STATE_DISCONNECTED: /**< Disconnected state */
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_DISCONNECTION_OK;
+ break;
+ case WIFI_CONNECTION_STATE_ASSOCIATION: /**< Association state */
+ case WIFI_CONNECTION_STATE_CONFIGURATION: /**< Configuration state */
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_CONNECTING;
+ break;
+ case WIFI_CONNECTION_STATE_CONNECTED: /**< Connected state */
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_OK;
+ break;
+ default:
+ return;
+ }
+
+ manager_object->message_func(&event_info, user_data);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void wlan_manager_rssi_level_changed_cb(
+ wifi_rssi_level_e rssi_level, void *user_data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (TRUE == manager_object->b_scan_blocked) {
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ wlan_mgr_event_info_t event_info;
+
+ memset(&event_info, 0, sizeof(event_info));
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_UPDATE_SIG_STR;
+ event_info.rssi_level = rssi_level;
+
+ manager_object->message_func(&event_info, user_data);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void wlan_manager_specific_scan_finished_cb(
+ wifi_error_e error_code, GSList *bss_info_list, void *user_data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ wlan_mgr_event_info_t event_info;
+ memset(&event_info, 0, sizeof(event_info));
+
+ if (WIFI_ERROR_NONE == error_code) {
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_SPECIFIC_SCAN_OK;
+ event_info.bss_info_list = bss_info_list;
+ } else
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_SPECIFIC_SCAN_FAIL;
+
+ manager_object->message_func(&event_info, user_data);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void wlan_manager_network_event_cb(
+ wifi_error_e error_code, void *user_data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ wlan_mgr_req_data_t *req_data = (wlan_mgr_req_data_t *)user_data;
+ if (req_data == NULL) {
+ ERROR_LOG(UG_NAME_ERR, "Request data is NULL !!!");
+
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ wlan_mgr_event_info_t event_info;
+ memset(&event_info, 0, sizeof(event_info));
+
+ switch (req_data->req_type) {
+ case WLAN_MANAGER_REQ_TYPE_ACTIVATE:
+ if (WIFI_ERROR_NONE == error_code) {
+ wlan_manager_enable_scan_result_update();
+ wlan_manager_register_cbs();
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_POWER_ON_OK;
+ } else
+ goto exit;
+
+ break;
+ case WLAN_MANAGER_REQ_TYPE_DEACTIVATE:
+ if (WIFI_ERROR_NONE == error_code) {
+ wlan_manager_deregister_cbs();
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_POWER_OFF_OK;
+ } else
+ goto exit;
+
+ break;
+ case WLAN_MANAGER_REQ_TYPE_SCAN:
+ if (WIFI_ERROR_NONE == error_code)
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_SCAN_OK;
+ else
+ goto exit;
+
+ break;
+ case WLAN_MANAGER_REQ_TYPE_SPECIFIC_SCAN:
+ if (WIFI_ERROR_NONE == error_code)
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_SPECIFIC_SCAN_OK;
+ else
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_SPECIFIC_SCAN_FAIL;
+
+ break;
+ case WLAN_MANAGER_REQ_TYPE_BG_SCAN:
+ if (WIFI_ERROR_NONE == error_code) {
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_SCAN_RESULT_IND;
+ manager_object->message_func(&event_info, req_data->user_data);
+ }
+
+ return; // The request data is static. So returning here.
+ case WLAN_MANAGER_REQ_TYPE_CONNECT:
+ event_info.ap = req_data->ap;
+
+ _common_deregister_invalid_password_popup();
+
+ if (WIFI_ERROR_NONE != error_code) {
+ if (_common_is_invalid_password() == TRUE)
+ event_info.event_type =
+ WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_INVALID_KEY;
+ else
+ event_info.event_type =
+ WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_CONNECT_FAILED;
+ } else
+ goto exit;
+
+ break;
+ case WLAN_MANAGER_REQ_TYPE_WPS_CONNECT:
+ event_info.ap = req_data->ap;
+
+ if (WIFI_ERROR_NONE != error_code)
+ event_info.event_type = WLAN_MANAGER_RESPONSE_TYPE_WPS_ENROLL_FAIL;
+ else
+ goto exit;
+
+ break;
+ default:
+ goto exit;
+ }
+
+ manager_object->message_func(&event_info, req_data->user_data);
+
+exit:
+ if (req_data != NULL) {
+ wifi_ap_destroy(req_data->ap);
+ g_free(req_data);
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void wlan_manager_register_cbs(void)
+{
+ __COMMON_FUNC_ENTER__;
+ wifi_set_device_state_changed_cb(wlan_manager_device_state_changed_cb, NULL);
+ wifi_set_connection_state_changed_cb(wlan_manager_connection_state_changed_cb, NULL);
+ wifi_set_rssi_level_changed_cb(wlan_manager_rssi_level_changed_cb, NULL);
+
+ memset(&bg_scan_req_data, 0, sizeof(bg_scan_req_data));
+ bg_scan_req_data.req_type = WLAN_MANAGER_REQ_TYPE_BG_SCAN;
+ wifi_set_background_scan_cb(wlan_manager_network_event_cb, &bg_scan_req_data);
+
+ connman_request_register();
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void wlan_manager_deregister_cbs(void)
+{
+ __COMMON_FUNC_ENTER__;
+// wifi_unset_device_state_changed_cb();
+ wifi_unset_background_scan_cb();
+ wifi_unset_connection_state_changed_cb();
+ wifi_unset_rssi_level_changed_cb();
+ wifi_unset_specific_scan_cb();
+ connman_request_deregister();
+ __COMMON_FUNC_EXIT__;
+}
+
+void wlan_manager_set_message_callback(wlan_event_handler func)
+{
+ manager_object->message_func = func;
+}
+
+static bool wifi_found_ap_with_state_cb(wifi_ap_h ap, void* user_data)
+{
+ wifi_connection_state_e state;
+ ap_state_info_t *ap_state_info = (ap_state_info_t *)user_data;
+ bool found_match = false;
+
+ if (WIFI_ERROR_NONE != wifi_ap_get_connection_state(ap, &state))
+ return true; // continue with next AP
+
+ switch (ap_state_info->state) {
+ case WLAN_MANAGER_UNCONNECTED:
+ if (WIFI_CONNECTION_STATE_DISCONNECTED == state) {
+ /* Found a match, so terminate the loop */
+ found_match = true;
+ }
+ break;
+ case WLAN_MANAGER_CONNECTING:
+ if (WIFI_CONNECTION_STATE_ASSOCIATION == state ||
+ WIFI_CONNECTION_STATE_CONFIGURATION == state) {
+ /* Found a match, so terminate the loop */
+ found_match = true;
+ }
+ break;
+ case WLAN_MANAGER_CONNECTED:
+ if (WIFI_CONNECTION_STATE_CONNECTED == state) {
+ /* Found a match, so terminate the loop */
+ found_match = true;
+ }
+ break;
+ default:
+ ERROR_LOG(COMMON_NAME_ERR, "Unknown state : %d", ap_state_info->state);
+ return false;
+ }
+
+ if (true == found_match) {
+ if (ap_state_info->ap) {
+ wifi_ap_clone(ap_state_info->ap, ap);
+ }
+ INFO_LOG(COMMON_NAME_LIB, "Found an AP[0x%x] in the state %d", ap, ap_state_info->state);
+ return false; // found the match, so terminate the loop.
+ }
+ return true;
+}
+
+wifi_ap_h wlan_manager_get_ap_with_state(int ap_state)
+{
+ ap_state_info_t ap_state_info;
+ wifi_ap_h ap = NULL;
+
+ ap_state_info.state = ap_state;
+ ap_state_info.ap = &ap;
+
+ wifi_foreach_found_aps (wifi_found_ap_with_state_cb, &ap_state_info);
+
+ return ap;
+}
+
+int wlan_manager_state_get(void)
+{
+ int ret_val = 0;
+ wifi_connection_state_e connection_state;
+ bool activated;
+
+ if (WIFI_ERROR_NONE != wifi_is_activated(&activated))
+ return WLAN_MANAGER_ERROR;
+ else if (false == activated) {
+ INFO_LOG(COMMON_NAME_LIB, "STATE: WIFI_OFF");
+
+ return WLAN_MANAGER_OFF;
+ }
+
+ ret_val = wifi_get_connection_state(&connection_state);
+ if (WIFI_ERROR_NONE != ret_val)
+ return WLAN_MANAGER_ERROR;
+
+ switch (connection_state) {
+ case WIFI_CONNECTION_STATE_DISCONNECTED:
+ INFO_LOG(COMMON_NAME_LIB, "STATE: WIFI_DISCONNECTED");
+
+ ret_val = WLAN_MANAGER_UNCONNECTED;
+ break;
+ case WIFI_CONNECTION_STATE_ASSOCIATION:
+ case WIFI_CONNECTION_STATE_CONFIGURATION:
+ INFO_LOG(COMMON_NAME_LIB, "STATE: WIFI_CONNECTING");
+
+ ret_val = WLAN_MANAGER_CONNECTING;
+ break;
+ case WIFI_CONNECTION_STATE_CONNECTED:
+ INFO_LOG(COMMON_NAME_LIB, "STATE: WIFI_CONNECTED");
+
+ ret_val = WLAN_MANAGER_CONNECTED;
+ break;
+ default:
+ ERROR_LOG(COMMON_NAME_ERR, "Unknown state: %d", connection_state);
+
+ ret_val = WLAN_MANAGER_ERROR;
+ break;
+ }
+
+ return ret_val;
+}
+
+int wlan_manager_request_power_on(void)
+{
+ __COMMON_FUNC_ENTER__;
+
+ INFO_LOG(UG_NAME_REQ, "power on");
+
+ int ret = 0;
+ int hot_spot_mode =
+ common_util_get_system_registry("memory/mobile_hotspot/mode");
+ if (hot_spot_mode < 0) {
+ INFO_LOG(COMMON_NAME_LIB, "FAILED to get the mobile hotspot mode");
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ } else if (VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI & hot_spot_mode) {
+ INFO_LOG(COMMON_NAME_LIB, "mobile_hotspot wifi ON");
+
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_MOBILE_HOTSPOT_OCCUPIED;
+ }
+
+ INFO_LOG(UG_NAME_REQ, "Mobile hotspot mode = %d\n", hot_spot_mode);
+
+ wlan_mgr_req_data_t *req_data = g_new0(wlan_mgr_req_data_t, 1);
+ req_data->req_type = WLAN_MANAGER_REQ_TYPE_ACTIVATE;
+ ret = wifi_activate(wlan_manager_network_event_cb, req_data);
+ if (WIFI_ERROR_NONE != ret) {
+ ERROR_LOG(UG_NAME_REQ, "Power on request. Error Reason [%d]", ret);
+ g_free(req_data);
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_NONE;
+}
+
+int wlan_manager_request_power_off(void)
+{
+ __COMMON_FUNC_ENTER__;
+ wlan_mgr_req_data_t *req_data = g_new0(wlan_mgr_req_data_t, 1);
+ req_data->req_type = WLAN_MANAGER_REQ_TYPE_DEACTIVATE;
+ int ret = wifi_deactivate(wlan_manager_network_event_cb, req_data);
+ if (WIFI_ERROR_NONE != ret) {
+ ERROR_LOG(UG_NAME_REQ, "Power off request. Error Reason [%d]", ret);
+ g_free(req_data);
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_NONE;
+}
+
+int wlan_manager_request_wps_connection(wifi_ap_h ap)
+{
+ __COMMON_FUNC_ENTER__;
+ wlan_mgr_req_data_t *req_data = g_new0(wlan_mgr_req_data_t, 1);
+ req_data->req_type = WLAN_MANAGER_REQ_TYPE_WPS_CONNECT;
+ wifi_ap_clone(&(req_data->ap), ap);
+
+ int ret = wifi_connect_by_wps_pbc(req_data->ap, wlan_manager_network_event_cb, req_data);
+ if (WIFI_ERROR_NONE != ret) {
+ ERROR_LOG(UG_NAME_REQ, "WPS Connect failed. Error Reason [%d]", ret);
+ wifi_ap_destroy(req_data->ap);
+ g_free(req_data);
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_NONE;
+}
+
+int wlan_manager_request_connection(wifi_ap_h ap)
+{
+ __COMMON_FUNC_ENTER__;
+
+ bool favourite;
+ int ret = wifi_ap_is_favorite(ap, &favourite);
+ wifi_security_type_e sec_type;
+ if (WIFI_ERROR_NONE != ret) {
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_NOSERVICE;
+ }
+
+ if (false == favourite) {
+ if (WIFI_ERROR_NONE != wifi_ap_get_security_type(ap, &sec_type)) {
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_NOSERVICE;
+ }
+
+ if (WIFI_SECURITY_TYPE_EAP == sec_type) {
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_CONNECT_EAP_SEC_TYPE;
+ } else if (WIFI_SECURITY_TYPE_NONE == sec_type) {
+ /* Allow Open APs to connect */
+ } else {
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_CONNECT_PASSWORD_NEEDED;
+ }
+ }
+
+ INFO_LOG(UG_NAME_REQ, "All OK to connect to ap[0x%x]", ap);
+
+ wlan_mgr_req_data_t *req_data = g_new0(wlan_mgr_req_data_t, 1);
+ req_data->req_type = WLAN_MANAGER_REQ_TYPE_CONNECT;
+ wifi_ap_clone(&(req_data->ap), ap);
+
+ _common_register_invalid_password_popup();
+ ret = wifi_connect(req_data->ap, wlan_manager_network_event_cb, req_data);
+ if (WIFI_ERROR_NONE != ret) {
+ _common_deregister_invalid_password_popup();
+
+ ERROR_LOG(UG_NAME_REQ, "Connect failed. Error Reason [%d]", ret);
+
+ wifi_ap_destroy(req_data->ap);
+ g_free(req_data);
+
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_NONE;
+}
+
+int wlan_manager_connect_with_password(wifi_ap_h ap, const char *pass_phrase)
+{
+ __COMMON_FUNC_ENTER__;
+ if (!ap) {
+ ERROR_LOG(UG_NAME_SCAN, "AP handler is NULL");
+ return WLAN_MANAGER_ERR_INVALID_PARAM;
+ }
+
+ int ret = wifi_ap_set_passphrase(ap, pass_phrase);
+ if (WIFI_ERROR_NONE != ret) {
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+
+ wlan_mgr_req_data_t *req_data = g_new0(wlan_mgr_req_data_t, 1);
+ req_data->req_type = WLAN_MANAGER_REQ_TYPE_CONNECT;
+ wifi_ap_clone(&(req_data->ap), ap);
+
+ _common_register_invalid_password_popup();
+ ret = wifi_connect(req_data->ap, wlan_manager_network_event_cb, req_data);
+ if (WIFI_ERROR_NONE != ret) {
+ _common_deregister_invalid_password_popup();
+
+ ERROR_LOG(UG_NAME_REQ, "Connect failed. Error Reason [%d]", ret);
+
+ wifi_ap_destroy(req_data->ap);
+ g_free(req_data);
+
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_NONE;
+}
+
+int wlan_manager_connect_with_wifi_info(wifi_ap_h ap)
+{
+ __COMMON_FUNC_ENTER__;
+
+ int ret;
+
+ INFO_LOG(UG_NAME_REQ, "All OK to connect to ap[0x%x]", ap);
+
+ wlan_mgr_req_data_t *req_data = g_new0(wlan_mgr_req_data_t, 1);
+ req_data->req_type = WLAN_MANAGER_REQ_TYPE_CONNECT;
+ wifi_ap_clone(&(req_data->ap), ap);
+
+ _common_register_invalid_password_popup();
+ ret = wifi_connect(req_data->ap, wlan_manager_network_event_cb, req_data);
+ if (WIFI_ERROR_NONE != ret) {
+ _common_deregister_invalid_password_popup();
+
+ ERROR_LOG(UG_NAME_REQ, "Connect failed. Error Reason [%d]", ret);
+
+ wifi_ap_destroy(req_data->ap);
+ g_free(req_data);
+
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_NONE;
+}
+
+int wlan_manager_request_disconnection(wifi_ap_h ap)
+{
+ __COMMON_FUNC_ENTER__;
+ int ret;
+
+ INFO_LOG(UG_NAME_REQ, "Request disconnection for ap [0x%x]", ap);
+
+ ret = wifi_disconnect(ap, NULL, NULL);
+ if (WIFI_ERROR_NONE != ret) {
+ ERROR_LOG(UG_NAME_REQ, "Disconnect failed. Error Reason [%d]", ret);
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return WLAN_MANAGER_ERR_NONE;
+}
+
+int wlan_manager_request_scan(void)
+{
+ __COMMON_FUNC_ENTER__;
+
+ wlan_mgr_req_data_t *req_data = g_new0(wlan_mgr_req_data_t, 1);
+ req_data->req_type = WLAN_MANAGER_REQ_TYPE_SCAN;
+
+ int ret = wifi_scan(wlan_manager_network_event_cb, req_data);
+ if (ret != WLAN_MANAGER_ERR_NONE) {
+ ERROR_LOG(UG_NAME_REQ, "Scan failed. Ret: %d", ret);
+
+ g_free(req_data);
+
+ __COMMON_FUNC_EXIT__;
+ return ret;
+ }
+
+ /* Since the scan request was success,
+ * lets reset the ui refresh and scan update blocked flags.
+ */
+ manager_object->b_scan_blocked = FALSE;
+ manager_object->b_ui_refresh = FALSE;
+
+ __COMMON_FUNC_EXIT__;
+ return ret;
+}
+
+int wlan_manager_request_specific_scan(const char *ssid, void *user_data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ wifi_set_specific_scan_cb(wlan_manager_specific_scan_finished_cb, user_data);
+
+ int ret = connman_request_specific_scan(ssid);
+ if (ret != WLAN_MANAGER_ERR_NONE) {
+ ERROR_LOG(UG_NAME_REQ, "Specific Scan failed. Ret: %d", ret);
+
+ __COMMON_FUNC_EXIT__;
+ return ret;
+ }
+
+ /* Since the scan request was success,
+ * lets reset the ui refresh and scan update blocked flags.
+ */
+ manager_object->b_scan_blocked = FALSE;
+ manager_object->b_ui_refresh = FALSE;
+
+ __COMMON_FUNC_EXIT__;
+ return ret;
+}
+
+int wlan_manager_scanned_profile_refresh_with_count(int count)
+{
+ __COMMON_FUNC_ENTER__;
+
+ manager_object->refresh_func();
+
+ __COMMON_FUNC_EXIT__;
+ return 0;
+}
+
+void wlan_manager_scanned_profile_refresh(void)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (FALSE == manager_object->b_scan_blocked) {
+ manager_object->refresh_func();
+ DEBUG_LOG(COMMON_NAME_LIB, "success profiles update");
+ } else {
+ manager_object->b_ui_refresh = TRUE;
+ DEBUG_LOG(COMMON_NAME_LIB, "Scan update is blocked");
+ }
+ __COMMON_FUNC_EXIT__;
+}
+
+STRENGTH_TYPES wlan_manager_get_signal_strength(int rssi)
+{
+ /* Wi-Fi Signal Strength Display (dB / ConnMan normalized value)
+ *
+ * Excellent : -63 ~ / 57 ~
+ * Good: -74 ~ -64 / 46 ~ 56
+ * Weak: -82 ~ -75 / 38 ~ 45
+ * Very weak: ~ -83 / ~ 37
+ */
+ if (rssi >= 57) {
+ return SIGNAL_STRENGTH_TYPE_EXCELLENT;
+ } else if (rssi >= 46) {
+ return SIGNAL_STRENGTH_TYPE_GOOD;
+ } else if (rssi >= 38) {
+ return SIGNAL_STRENGTH_TYPE_WEAK;
+ } else {
+ return SIGNAL_STRENGTH_TYPE_VERY_WEAK;
+ }
+}
+
+wifi_device_info_t* wlan_manager_profile_device_info_blank_create()
+{
+ __COMMON_FUNC_ENTER__;
+ wifi_device_info_t *di_s0 = g_new0(wifi_device_info_t, 1);
+
+ if (di_s0 == NULL) {
+ ERROR_LOG(UG_NAME_NORMAL, "Error!!! Failed to allocate memory\n");
+ __COMMON_FUNC_EXIT__;
+ return NULL;
+ }
+
+ char No_AP_found[] = "No AP found";
+
+ di_s0->ssid = g_strdup(No_AP_found);
+ if (NULL == di_s0->ssid) {
+ g_free(di_s0);
+ di_s0 = NULL;
+ ERROR_LOG(UG_NAME_NORMAL, "Error!!! Failed to allocate memory\n");
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return di_s0;
+}
+
+static Eina_Bool _refresh_ui(void *data)
+{
+ manager_object->refresh_func();
+ manager_object->b_scan_blocked = FALSE;
+ manager_object->b_ui_refresh = FALSE;
+ return ECORE_CALLBACK_CANCEL;
+}
+
+void wlan_manager_enable_scan_result_update(void)
+{
+ if (TRUE == manager_object->b_scan_blocked) {
+ if (TRUE == manager_object->b_ui_refresh) {
+ DEBUG_LOG(COMMON_NAME_LIB, "Refresh the UI with last scan update");
+
+ /* We delay the rendering inorder to get smooth effect of popup close */
+ ecore_idler_add(_refresh_ui, NULL);
+ } else {
+ manager_object->b_scan_blocked = FALSE;
+ }
+ }
+}
+
+void wlan_manager_disable_scan_result_update(void)
+{
+ manager_object->b_scan_blocked = TRUE;
+}
+
+char *wlan_manager_get_connected_ssid(void)
+{
+ wifi_ap_h ap;
+ char *essid = NULL;
+
+ wifi_get_connected_ap(&ap);
+ if (ap) {
+ wifi_ap_get_essid(ap, &essid);
+ }
+
+ wifi_ap_destroy(ap);
+
+ return essid;
+}
diff --git a/sources/libraries/appcoreWrapper/appcoreWrapper.c b/sources/libraries/appcoreWrapper/appcoreWrapper.c
new file mode 100644
index 0000000..13eed73
--- /dev/null
+++ b/sources/libraries/appcoreWrapper/appcoreWrapper.c
@@ -0,0 +1,69 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <Ecore_X.h>
+#include <Elementary.h>
+
+#include "common.h"
+#include "appcoreWrapper.h"
+
+void appcore_win_del(void *data, Evas_Object *obj, void *event)
+{
+ INFO_LOG(UG_NAME_NORMAL, "win_del");
+ elm_exit();
+}
+
+Evas_Object* appcore_create_win(const char *name)
+{
+ Evas_Object *eo;
+ int w, h;
+
+ eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+ if (eo) {
+ elm_win_title_set(eo, name);
+ elm_win_borderless_set(eo, EINA_TRUE);
+ evas_object_smart_callback_add(eo, "delete,request",
+ (Evas_Smart_Cb)appcore_win_del, NULL);
+ ecore_x_window_size_get(ecore_x_window_root_first_get(),
+ &w, &h);
+ evas_object_resize(eo, w, h);
+ }
+
+ return eo;
+}
+
+Evas_Object* appcore_load_edj(Evas_Object *parent, const char *file, const char *group)
+{
+ Evas_Object *eo;
+ int r;
+
+ eo = elm_layout_add(parent);
+ if (eo) {
+ r = elm_layout_file_set(eo, file, group);
+ if (!r) {
+ evas_object_del(eo);
+ return NULL;
+ }
+
+ evas_object_size_hint_weight_set(eo,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ }
+
+ return eo;
+}
diff --git a/sources/libraries/appcoreWrapper/include/appcoreWrapper.h b/sources/libraries/appcoreWrapper/include/appcoreWrapper.h
new file mode 100644
index 0000000..0eef3d8
--- /dev/null
+++ b/sources/libraries/appcoreWrapper/include/appcoreWrapper.h
@@ -0,0 +1,38 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __APPCORE_WRAPPER_H__
+#define __APPCORE_WRAPPER_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <Evas.h>
+
+void appcore_win_del(void *data, Evas_Object *obj, void *event);
+Evas_Object* appcore_create_win(const char *name);
+Evas_Object* appcore_load_edj(Evas_Object *parent, const char *file,const char *group);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __APPCORE_WRAPPER_H__ */
diff --git a/sources/libraries/i18nManager/i18nmanager.c b/sources/libraries/i18nManager/i18nmanager.c
new file mode 100644
index 0000000..7a3296c
--- /dev/null
+++ b/sources/libraries/i18nManager/i18nmanager.c
@@ -0,0 +1,227 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "i18nmanager.h"
+#include <libintl.h>
+#include <stdio.h>
+#include <string.h>
+
+static char* apply_i18n(const char *pkg_name, I18N_MODES mode, const char *string)
+{
+ switch (mode) {
+ case I18N_MODE_SELF_MADE:
+ return (char*) dgettext(pkg_name, string);
+ case I18N_MODE_NO_NEEDED:
+ return (char*) gettext(string);
+ default:
+ return "(debug)applying_i18n_failed";
+ }
+}
+
+static char* i18n_get_text_by_system(I18N_TYPES type){
+ switch (type) {
+ case I18N_TYPE_Ok:
+ return (char*)dgettext("sys_string", "IDS_COM_SK_OK");
+ case I18N_TYPE_Yes:
+ return (char*)dgettext("sys_string", "IDS_COM_SK_YES");
+ case I18N_TYPE_No:
+ return (char*)dgettext("sys_string", "IDS_COM_SK_NO");
+ case I18N_TYPE_Save:
+ return (char*)dgettext("sys_string", "IDS_COM_OPT_SAVE");
+ case I18N_TYPE_Done:
+ return (char*)dgettext("sys_string", "IDS_COM_SK_DONE");
+ case I18N_TYPE_Back:
+ return (char*)dgettext("sys_string", "IDS_COM_BODY_BACK");
+ case I18N_TYPE_Cancel:
+ return (char*)dgettext("sys_string", "IDS_COM_SK_CANCEL");
+ case I18N_TYPE_Activating:
+ return (char*)dgettext("sys_string", "IDS_COM_POP_ACTIVATING");
+ case I18N_TYPE_Connecting:
+ return (char*)dgettext("sys_string", "IDS_COM_POP_CONNECTING");
+ case I18N_TYPE_Connected:
+ return (char*)dgettext("sys_string", "IDS_COM_POP_CONNECTED");
+ case I18N_TYPE_Searching:
+ return (char*)dgettext("sys_string", "IDS_COM_POP_SEARCHING");
+ case I18N_TYPE_Wi_Fi:
+ return (char*)dgettext("sys_string", "IDS_COM_BODY_WI_FI");
+ case I18N_TYPE_Name:
+ return (char*)dgettext("sys_string", "IDS_COM_BODY_DETAILS_NAME");
+ case I18N_TYPE_Password:
+ return (char*)dgettext("sys_string", "IDS_COM_BODY_PASSWORD");
+ case I18N_TYPE_Details:
+ return (char*)dgettext("sys_string", "IDS_COM_BODY_DETAILS");
+ default:
+ return "(debug)system_text_failed";
+ }
+}
+
+char* i18n_manager_get_text(const char *pkg_name, I18N_TYPES type)
+{
+ switch (type) {
+ case I18N_TYPE_Ok:
+ case I18N_TYPE_Yes:
+ case I18N_TYPE_No:
+ case I18N_TYPE_Save:
+ case I18N_TYPE_Done:
+ case I18N_TYPE_Back:
+ case I18N_TYPE_Cancel:
+ case I18N_TYPE_Name:
+ case I18N_TYPE_Wi_Fi:
+ case I18N_TYPE_Password:
+ case I18N_TYPE_Activating:
+ case I18N_TYPE_Connecting:
+ case I18N_TYPE_Connected:
+ case I18N_TYPE_Searching:
+ case I18N_TYPE_Details:
+ return i18n_get_text_by_system(type);
+ case I18N_TYPE_Provisioning:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_PROVISIONING");
+ case I18N_TYPE_Ca_Certificate:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_CA_CERTIFICATE");
+ case I18N_TYPE_User_Certificate:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_USER_CERTIFICATE_ABB");
+ case I18N_TYPE_Unspecified:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_UNSPECIFIED");
+ case I18N_TYPE_Unknown:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_UNKNOWN");
+ case I18N_TYPE_Enter_Ssid:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_ENTER_SSID");
+ case I18N_TYPE_Identity:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_IDENTITY");
+ case I18N_TYPE_Anonymous_Identity:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_ANONYMOUS_IDENTITY");
+ case I18N_TYPE_Wifi_Opt_Find_Hidden_Network:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK");
+ case I18N_TYPE_WPS_Button_Connection:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_WPS_BUTTON_CONNECTION");
+ case I18N_TYPE_Press_WPS_On_Your_Wi_Fi_Access_Point:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_ST_BODY_PRESS_WPS_ON_YOUR_WI_FI_ACCESS_POINT_WITHIN_2_MINUTES");
+ case I18N_TYPE_Button_Cancel:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BUTTON_CANCEL");
+ case I18N_TYPE_Ssid:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_SSID");
+ case I18N_TYPE_Find_Hidden_Network:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_OPT_FIND_HIDDEN_NETWORK");
+
+
+ case I18N_TYPE_Connect:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_CONNECT");
+ case I18N_TYPE_Scan:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_ST_BODY_SCAN");
+ case I18N_TYPE_Forget:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_SK_FORGET");
+ case I18N_TYPE_Dynamic_IP:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_DYNAMIC_IP");
+ case I18N_TYPE_Static_IP:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_STATIC_IP");
+ case I18N_TYPE_Security_type:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_SECURITY_TYPE");
+ case I18N_TYPE_Excellent:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_ST_BODY_EXCELLENT");
+ case I18N_TYPE_Good:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_ST_BODY_GOOD_M_STRENGTH");
+ case I18N_TYPE_Week:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_WEAK_M_STRENGTH");
+ case I18N_TYPE_Disconnecting:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_DISCONNECTING_ING");
+ case I18N_TYPE_Hidden_AP:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_HEADER_HIDDEN_NETWORK");
+ case I18N_TYPE_Add_WiFi_network:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_ST_BODY_ADD_WI_FI_NETWORK");
+ case I18N_TYPE_No_AP:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_NO_APS");
+ case I18N_TYPE_Signal_strength:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_SIGNAL_STRENGTH");
+ case I18N_TYPE_IP_address:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_IP_ADDRESS");
+ case I18N_TYPE_Proxy_address:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_HEADER_PROXY_ADDRESS");
+ case I18N_TYPE_Subnet_mask:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_SUBNET_MASK");
+ case I18N_TYPE_DNS_1:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_DNS_1");
+ case I18N_TYPE_DNS_2:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_DNS_2");
+ case I18N_TYPE_WEP:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_SECURITYTYPE_WEP");
+ case I18N_TYPE_Gateway:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_GATEWAY");
+ case I18N_TYPE_Gateway_address:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_GATEWAY_ADDRESS");
+ case I18N_TYPE_Deactivating:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_POP_DEACTIVATING_WI_FI_ING");
+ case I18N_TYPE_No_security:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_CONFIGURATION_NO_SECURITY");
+ case I18N_TYPE_Network_SSID:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_ST_BODY_NETWORK_SSID");
+ case I18N_TYPE_Network_notification:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_ST_BODY_NETWORK_NOTIFICATION");
+ case I18N_TYPE_Network_notify_me_later:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_NOTIFY_WHEN_WI_FI_NETWORK_IS_FOUND");
+ case I18N_TYPE_Select_network:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_HEADER_SELECT_NETWORK");
+ case I18N_TYPE_WiFi_network:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_ST_BODY_WI_FI_NETWORKS");
+ case I18N_TYPE_Enter_password:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_ENTER_PASSWORD");
+ case I18N_TYPE_Enter_Identity:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_ENTER_IDENTITY");
+ case I18N_TYPE_Enter_Anonymous_Identity:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_ENTER_ANONYMOUS_IDENTITY");
+ case I18N_TYPE_Input_password:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_CST_BODY_INPUT_PASSWORD");
+ case I18N_TYPE_Show_password:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_ST_BODY_SHOW_PASSWORD");
+ case I18N_TYPE_Autonomous_connection_to_s_will_be_turned_off_Continue:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_POP_AUTOMATIC_CONNECTION_NETWORK_WILL_DISABLED_CONTINUE_Q_MSG");
+ case I18N_TYPE_Open:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_POP_OPEN");
+ case I18N_TYPE_WPS_Available:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_ST_BODY_WPS_AVAILABLE");
+ case I18N_TYPE_Secured:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY");
+ case I18N_TYPE_Obtaining_IP_addr:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_ST_BODY_OBTAINING_IP_ADDRESS_ING");
+ case I18N_TYPE_Channel:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_CHANNEL");
+ case I18N_TYPE_MAC_addr:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_MAC_ADDRESS");
+ case I18N_TYPE_Proxy_port:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_PROXY_PORT");
+ case I18N_TYPE_EAP:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_EAP");
+ case I18N_TYPE_EAP_method:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_BODY_EAP_METHOD");
+ case I18N_TYPE_Phase_2_authentication:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_COM_BODY_PHASE_2_AUTHENTICATION");
+ case I18N_TYPE_Activating_WiFi:
+ return apply_i18n(pkg_name, I18N_MODE_SELF_MADE, "IDS_WIFI_POP_ACTIVATING_WI_FI_ING");
+ case I18N_TYPE_WPA_PSK:
+ return apply_i18n(pkg_name, I18N_MODE_NO_NEEDED, "WPA-PSK");
+ case I18N_TYPE_WPA2_PSK:
+ return apply_i18n(pkg_name, I18N_MODE_NO_NEEDED, "WPA2-PSK");
+ case I18N_TYPE_WPA_EAP:
+ return apply_i18n(pkg_name, I18N_MODE_NO_NEEDED, "WPA-EAP");
+ case I18N_TYPE_WPA2_EAP:
+ return apply_i18n(pkg_name, I18N_MODE_NO_NEEDED, "WPA2-EAP");
+
+ default:
+ return apply_i18n(pkg_name, I18N_MODE_NO_NEEDED, "(debugapplying_i18n_failed");
+ }
+}
diff --git a/sources/libraries/i18nManager/include/i18nmanager.h b/sources/libraries/i18nManager/include/i18nmanager.h
new file mode 100644
index 0000000..efd8a5d
--- /dev/null
+++ b/sources/libraries/i18nManager/include/i18nmanager.h
@@ -0,0 +1,130 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __I18NMANAGER_H__
+#define __I18NMANAGER_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define sc(pkg_name, I18N_TYPE) i18n_manager_get_text(pkg_name, I18N_TYPE)
+
+typedef enum {
+ I18N_MODE_SELF_MADE, /* self made, reserve to add platform string convert service */
+ I18N_MODE_NO_NEEDED, /* No need to convert other language */
+ I18N_MODE_MAX
+} I18N_MODES;
+
+typedef enum {
+ I18N_TYPE_Ok,
+ I18N_TYPE_Yes,
+ I18N_TYPE_No,
+ I18N_TYPE_Save,
+ I18N_TYPE_Done,
+ I18N_TYPE_Back,
+ I18N_TYPE_Cancel,
+ I18N_TYPE_Scan,
+ I18N_TYPE_Forget,
+ I18N_TYPE_User_ID,
+ I18N_TYPE_IP_address,
+ I18N_TYPE_Static_IP,
+ I18N_TYPE_Dynamic_IP,
+ I18N_TYPE_Proxy_address,
+ I18N_TYPE_Details,
+ I18N_TYPE_Name,
+ I18N_TYPE_Signal_strength,
+ I18N_TYPE_Excellent,
+ I18N_TYPE_Good,
+ I18N_TYPE_Week,
+ I18N_TYPE_No_security,
+ I18N_TYPE_Subnet_mask,
+ I18N_TYPE_Gateway,
+ I18N_TYPE_Gateway_address,
+ I18N_TYPE_Wi_Fi,
+ I18N_TYPE_Password,
+ I18N_TYPE_Activating,
+ I18N_TYPE_Deactivating,
+ I18N_TYPE_Searching,
+ I18N_TYPE_Connect,
+ I18N_TYPE_Connecting,
+ I18N_TYPE_Connected,
+ I18N_TYPE_Disconnecting,
+ I18N_TYPE_Connection_Lost,
+ I18N_TYPE_Network_SSID,
+ I18N_TYPE_Network_notification,
+ I18N_TYPE_Network_notify_me_later,
+ I18N_TYPE_Select_network,
+ I18N_TYPE_WiFi_network,
+ I18N_TYPE_Enter_password,
+ I18N_TYPE_Enter_Identity,
+ I18N_TYPE_Enter_Anonymous_Identity,
+ I18N_TYPE_Input_password,
+ I18N_TYPE_Show_password,
+ I18N_TYPE_Add_WiFi_network,
+ I18N_TYPE_EAP,
+ I18N_TYPE_EAP_method,
+ I18N_TYPE_Phase_2_authentication,
+ I18N_TYPE_Activating_WiFi,
+
+ I18N_TYPE_Provisioning,
+ I18N_TYPE_Ca_Certificate,
+ I18N_TYPE_User_Certificate,
+ I18N_TYPE_Unspecified,
+ I18N_TYPE_Unknown,
+ I18N_TYPE_Enter_Ssid,
+ I18N_TYPE_Identity,
+ I18N_TYPE_Anonymous_Identity,
+ I18N_TYPE_Wifi_Opt_Find_Hidden_Network,
+ I18N_TYPE_WPS_Button_Connection,
+ I18N_TYPE_Press_WPS_On_Your_Wi_Fi_Access_Point,
+ I18N_TYPE_Button_Cancel,
+ I18N_TYPE_Ssid,
+ I18N_TYPE_Find_Hidden_Network,
+
+/* etc */
+ I18N_TYPE_DNS_1,
+ I18N_TYPE_DNS_2,
+ I18N_TYPE_WEP,
+ I18N_TYPE_WPA_PSK,
+ I18N_TYPE_WPA2_PSK,
+ I18N_TYPE_WPA_EAP,
+ I18N_TYPE_WPA2_EAP,
+ I18N_TYPE_Hidden_AP,
+ I18N_TYPE_No_AP,
+ I18N_TYPE_Security_type,
+ I18N_TYPE_Autonomous_connection_to_s_will_be_turned_off_Continue,
+ I18N_TYPE_Open,
+ I18N_TYPE_WPS_Available,
+ I18N_TYPE_Secured,
+ I18N_TYPE_Obtaining_IP_addr,
+ I18N_TYPE_Channel,
+ I18N_TYPE_MAC_addr,
+ I18N_TYPE_Proxy_port,
+ I18N_TYPE_MAX
+} I18N_TYPES;
+
+char* i18n_manager_get_text(const char *pkg_name, I18N_TYPES type);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/libraries/settingWrapper/include/wifi-setting.h b/sources/libraries/settingWrapper/include/wifi-setting.h
new file mode 100644
index 0000000..9c36df1
--- /dev/null
+++ b/sources/libraries/settingWrapper/include/wifi-setting.h
@@ -0,0 +1,34 @@
+/*
+* Wi-Fi UG
+*
+* Copyright 2012 Samsung Electronics Co., Ltd
+
+* Licensed under the Flora License, Version 1.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+
+* http://www.tizenopensource.org/license
+
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#ifndef _WIFI_SETTING_H_
+#define _WIFI_SETTING_H_
+
+#include <vconf-keys.h>
+
+#define WIFI_SETTING_WIFI_CONNECTED_AP_NAME VCONFKEY_WIFI_CONNECTED_AP_NAME
+
+int wifi_setting_value_set(const char *key, int value);
+int wifi_setting_value_get(const char *key);
+
+int wifi_setting_key_notify_set();
+
+#endif //_WIFI_SETTING_H_
diff --git a/sources/libraries/settingWrapper/wifi-setting.c b/sources/libraries/settingWrapper/wifi-setting.c
new file mode 100644
index 0000000..6c63bd3
--- /dev/null
+++ b/sources/libraries/settingWrapper/wifi-setting.c
@@ -0,0 +1,75 @@
+/*
+* Wi-Fi UG
+*
+* Copyright 2012 Samsung Electronics Co., Ltd
+
+* Licensed under the Flora License, Version 1.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+
+* http://www.tizenopensource.org/license
+
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#include <vconf.h>
+#include "wifi-setting.h"
+#include "common.h"
+
+int wifi_setting_value_set(const char *key, int value)
+{
+ __COMMON_FUNC_ENTER__;
+
+ INFO_LOG(UG_NAME_NORMAL, "setting value : %d\n", value);
+
+ if (vconf_set_int(key, value) < 0) {
+ ERROR_LOG(UG_NAME_NORMAL, "Failed to set vconf\n");
+ __COMMON_FUNC_EXIT__;
+ return -1;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return 0;
+}
+
+int wifi_setting_value_get(const char *key)
+{
+ __COMMON_FUNC_ENTER__;
+
+ int value = 0;
+ if (vconf_get_int(key, &value) < 0) {
+ ERROR_LOG(UG_NAME_NORMAL, "Failed to get vconf\n");
+ __COMMON_FUNC_EXIT__;
+ return -1;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return value;
+}
+
+static void wifi_flight_mode_changed(keynode_t* node, void* user_data)
+{
+ INFO_LOG(UG_NAME_NORMAL, "Airplane mode [%s] \n", node);
+ return;
+}
+
+static void mobile_hotspot_status(keynode_t* node, void* user_data)
+{
+ INFO_LOG(UG_NAME_NORMAL, "MobileAP mode [%s] \n", node);
+}
+
+int wifi_setting_key_notify_set()
+{
+ vconf_notify_key_changed(VCONFKEY_SETAPPL_FLIGHT_MODE_BOOL, (vconf_callback_fn) wifi_flight_mode_changed, NULL);
+ vconf_notify_key_changed(VCONFKEY_MOBILE_HOTSPOT_MODE, (vconf_callback_fn) mobile_hotspot_status, NULL);
+
+ return TRUE;
+}
+
diff --git a/sources/ui-gadget/CMakeLists.txt b/sources/ui-gadget/CMakeLists.txt
new file mode 100644
index 0000000..c354c22
--- /dev/null
+++ b/sources/ui-gadget/CMakeLists.txt
@@ -0,0 +1,56 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(ug-wifi-efl-UG C)
+
+# defines
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(EXEC_PREFIX "\${prefix}")
+SET(LIBDIR "\${prefix}/lib")
+SET(INCLUDEDIR "\${prefix}/include")
+SET(VERSION 0.1.0)
+
+# source files
+SET(SRCS
+ ../libraries/i18nManager/i18nmanager.c
+ ../libraries/appcoreWrapper/appcoreWrapper.c
+ ../libraries/WlanManager/wlan-manager/wlan_manager.c
+ ../libraries/Common/common_utils.c
+ ../libraries/Common/common_ip_info.c
+ ../libraries/Common/common_pswd_popup.c
+ ../libraries/Common/common_eap_connect.c
+ ../libraries/Common/common_invalid_password.c
+ ${ENGINE_SOURCES}
+ wifi-efl-UG.c
+ viewers-layout/viewer_manager.c
+ viewers-layout/wifi_viewer_list.c
+ viewers-layout/view_detail.c
+ viewers-layout/view_ime_hidden.c
+ wifi-wlan-callbacks.c
+ motion_control.c
+ winset_popup.c)
+
+FOREACH(flag ${pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+
+# add library
+ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION 0.1.0)
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
+
+ADD_CUSTOM_TARGET(custom_editfield.edj
+ COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/../../resources/images
+ ${CMAKE_CURRENT_SOURCE_DIR}/edcs/custom_editfield.edc ${CMAKE_CURRENT_SOURCE_DIR}/edcs/custom_editfield.edj
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/edcs/custom_editfield.edc
+)
+
+ADD_DEPENDENCIES(${PROJECT_NAME} custom_editfield.edj)
+
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /usr/ug/lib)
+
+# install image files
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../resources/images/ DESTINATION /usr/ug/res/images/wifi-efl-UG FILES_MATCHING PATTERN "*.png")
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/edcs/custom_editfield.edj DESTINATION /usr/ug/res/edje/wifi-efl-UG)
+
diff --git a/sources/ui-gadget/edcs/custom_editfield.edc b/sources/ui-gadget/edcs/custom_editfield.edc
new file mode 100644
index 0000000..fd51137
--- /dev/null
+++ b/sources/ui-gadget/edcs/custom_editfield.edc
@@ -0,0 +1,442 @@
+#define EDITFIELD_TOP_PADDING 46
+#define EDITFIELD_BOTTOM_PADDING 6
+#define EDITFIELD_RIGHT_PADDING 26
+#define EDITFIELD_TOP_TEXT_PADDING 6
+#define EDITFIELD_RIGHT_TEXT_PADDING 56
+#define EDITFIELD_RIGHT_ERASER_PADDING 10
+#define EDITFIELD_HEIGHT_INC 66
+#define EDITFIELD_INPUTFIELD_BORDER_INC 9 9 9 9
+#define EDITFIELD_LEFT_PADDING_SEARCHFIELD_INC 16
+#define EDITFIELD_RIGHT_PADDING_SEARCHFIELD_INC 48
+#define EDITFIELD_TITLE_COLOR_INC 42 137 194 255
+#define EDITFIELD_TITLE_SIZE_INC 32
+#define EDITFIELD_GUIDE_TEXT_COLOR_INC 121 131 138 255
+#define EDITFIELD_DEFAULT_ERASER_MINW_INC 48
+#define EDITFIELD_DEFAULT_ERASER_MINH_INC 48
+#define EDITFIELD_SEARCHBAR_ERASER_EVENT_MINW_INC 38
+#define EDITFIELD_SEARCHBAR_ERASER_EVENT_MINH_INC 50
+#define ENTRY_TEXT_SIZE_INC 44
+
+
+collections {
+ group { name: "custom_editfield";
+ images {
+ image: "00_EditField_clear.png" COMP;
+ image: "00_EditField_clear_press.png" COMP;
+ image: "00_search_edit_field_bg.png" COMP;
+ }
+ parts {
+ part {
+ name: "base";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "top_left_padding";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 EDITFIELD_TOP_PADDING;
+ fixed: 1 1;
+ align: 0.0 0.0;
+ rel1 {
+ relative : 0.0 0.0;
+ to: "base";
+ }
+ rel2 {
+ relative : 0.0 0.0;
+ to: "base";
+ }
+ visible: 0;
+ }
+ }
+ part { name: "bottom_right_padding";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: EDITFIELD_RIGHT_PADDING EDITFIELD_BOTTOM_PADDING;
+ fixed: 1 1;
+ align: 1.0 1.0;
+ rel1 { relative: 1.0 1.0; to: "base"; }
+ rel2 { relative: 1.0 1.0; to: "base"; }
+ visible: 0;
+ }
+ }
+ part { name: "top_text_padding";
+ type: RECT;
+ scale: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 EDITFIELD_TOP_TEXT_PADDING;
+ fixed: 1 1;
+ align: 0 1;
+ rel1 {
+ relative: 0.0 0.0;
+ to: "base";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to: "base";
+ }
+ }
+ }
+ part { name: "inputfield_rect";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 EDITFIELD_HEIGHT_INC;
+ align: 0.0 0.5;
+ image {
+ normal: "00_search_edit_field_bg.png";
+ border: EDITFIELD_INPUTFIELD_BORDER_INC;
+ }
+ rel1 { relative: 1.0 1.0; to: "top_left_padding"; }
+ rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; }
+ }
+ }
+ part { name: "left_padding_inputfield";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: EDITFIELD_LEFT_PADDING_SEARCHFIELD_INC 0;
+ fixed: 1 0;
+ align: 0.0 0.5;
+ rel1 { relative: 0.0 0.0; to: "inputfield_rect"; }
+ rel2 { relative: 0.0 1.0; to: "inputfield_rect"; }
+ }
+ }
+ part { name: "right_padding_inputfield";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: EDITFIELD_RIGHT_PADDING_SEARCHFIELD_INC 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 1.0 0.0; to: "inputfield_rect"; }
+ rel2 { relative: 1.0 1.0; to: "inputfield_rect"; }
+ }
+ }
+ part { name: "right_eraser_padding";
+ type: RECT;
+ scale: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: EDITFIELD_RIGHT_ERASER_PADDING 0;
+ fixed: 1 0;
+ align: 1.0 0.5;
+ rel1 { relative: 1.0 0.0; to: "inputfield_rect"; }
+ rel2 { relative: 1.0 1.0; to: "inputfield_rect"; }
+ }
+ }
+ part { name: "textfield";
+ type: RECT;
+ mouse_events: 1;
+ scale: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ min: 0 EDITFIELD_HEIGHT_INC;
+ fixed: 0 1;
+ align: 0.0 0.5;
+ rel1 {
+ relative: 1.0 0.0;
+ to: "left_padding_inputfield";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to: "right_padding_inputfield";
+ }
+ }
+ }
+ part { name: "top";
+ type: RECT;
+ scale: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 EDITFIELD_TOP_TEXT_PADDING;
+ fixed: 1 1;
+ align: 0.5 0;
+ rel1 {
+ relative: 0.0 0.0;
+ to: "textfield";
+ }
+ rel2 {
+ relative: 1.0 0.0;
+ to: "textfield";
+ }
+ }
+ }
+ part { name: "left";
+ type: RECT;
+ scale: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ fixed: 1 1;
+ align: 0 0;
+ rel1 {
+ relative: 0.0 0.0;
+ to: "textfield";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to: "textfield";
+ }
+ }
+ }
+ part { name: "right";
+ type: RECT;
+ scale: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: EDITFIELD_RIGHT_TEXT_PADDING 0;
+ fixed: 1 1;
+ align: 1 0;
+ rel1 {
+ relative: 1.0 0.0;
+ to: "textfield";
+ }
+ rel2.to: "textfield";
+ }
+ }
+ part { name: "bottom";
+ type: RECT;
+ scale: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: 0 EDITFIELD_TOP_TEXT_PADDING;
+ fixed: 1 1;
+ align: 0 1;
+ rel1 {
+ relative: 0.0 1.0;
+ to: "textfield";
+ }
+ }
+ }
+ part {
+ name: "elm.text";
+ type: TEXT;
+ scale: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ min: 0 32;
+ fixed: 1 1;
+ rel1 {
+ relative: 0.0 1.0;
+ to_x: "left_padding_inputfield";
+ to_y: "top_text_padding";
+ }
+ rel2 {
+ relative: 0.0 1.0;
+ to_x: "left_padding_inputfield";
+ to_y: "top_text_padding";
+ }
+ color: EDITFIELD_TITLE_COLOR_INC;
+ text {
+ font: "Tizen:style=Medium";
+ size: EDITFIELD_TITLE_SIZE_INC;
+ min: 1 1;
+ align: 0.0 0.0;
+ text_class: "tizen";
+ }
+ }
+ }
+ part {
+ name: "elm.guidetext";
+ type: TEXT;
+ scale: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ align: 0.0 0.0;
+ fixed: 1 1;
+ rel1.to: "elm.swallow.content";
+ rel2.to: "elm.swallow.content";
+ color: EDITFIELD_GUIDE_TEXT_COLOR_INC;
+ text {
+ font: "Tizen:style=Roman";
+ size: ENTRY_TEXT_SIZE_INC;
+ min: 0 0;
+ align: 0.0 0.5;
+ text_class: "tizen";
+ }
+ }
+ description {
+ state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ scale: 1;
+ ignore_flags: ON_HOLD;
+ description {
+ state: "default" 0.0;
+ min: 0 40;
+ rel1 {
+ relative : 1.0 1.0;
+ to_x: "left";
+ to_y: "top";
+ }
+ rel2 {
+ relative : 0.0 0.0;
+ to_x: "right";
+ to_y: "bottom";
+ }
+ align: 0.0 0.5;
+ }
+ }
+ part {
+ name: "eraser_image";
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: EDITFIELD_DEFAULT_ERASER_MINW_INC EDITFIELD_DEFAULT_ERASER_MINH_INC;
+ fixed: 1 1;
+ align: 1 0.5;
+ rel1 {
+ relative: 0.0 0.5;
+ to_x : "right_eraser_padding";
+ to_y : "inputfield_rect";
+ }
+ rel2 {
+ relative: 0.0 0.5;
+ to_x : "right_eraser_padding";
+ to_y : "inputfield_rect";
+ }
+ }
+ description {
+ state: "elm.eraser.show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image {
+ normal: "00_EditField_clear.png";
+ border: 10 10 10 10;
+ border_scale: 1;
+ }
+ }
+ description {
+ state: "elm.eraser.pressed" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ image {
+ normal: "00_EditField_clear_press.png";
+ border: 8 8 8 8;
+ border_scale: 1;
+ }
+ }
+ }
+ part {
+ name: "eraser";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: EDITFIELD_SEARCHBAR_ERASER_EVENT_MINW_INC EDITFIELD_SEARCHBAR_ERASER_EVENT_MINH_INC;
+ fixed: 1 1;
+ align: 1 0.5;
+ color: 0 0 0 0;
+ rel1 {
+ relative: 0.0 0.5;
+ to_x : "bottom_right_padding";
+ to_y : "inputfield_rect";
+ }
+ rel2 {
+ relative: 0.0 0.5;
+ to_x : "bottom_right_padding";
+ to_y : "inputfield_rect";
+ }
+ }
+ description {
+ state: "elm.eraser.show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "guidetext_show";
+ signal: "elm,state,guidetext,show";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.guidetext";
+ }
+ program {
+ name: "guidetext_hide";
+ signal: "elm,state,guidetext,hide";
+ source: "elm";
+ action: STATE_SET "hidden" 0.0;
+ target: "elm.guidetext";
+ }
+ program {
+ name: "eraser_show";
+ signal: "elm,state,eraser,show";
+ source: "elm";
+ action: STATE_SET "elm.eraser.show" 0.0;
+ target: "eraser_image";
+ target: "eraser";
+ }
+ program {
+ name: "eraser_hide";
+ signal: "elm,state,eraser,hide";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "eraser_image";
+ target: "eraser";
+ }
+ program {
+ name: "eraser_clicked";
+ signal: "mouse,clicked,1";
+ source: "eraser";
+ action: SIGNAL_EMIT "elm,eraser,clicked" "elm";
+ }
+ program {
+ name: "eraser_pressed";
+ signal: "mouse,down,1";
+ source: "eraser";
+ action: STATE_SET "elm.eraser.pressed" 0.0;
+ target: "eraser_image";
+ }
+ program {
+ name: "eraser_unpressed";
+ signal: "mouse,up,1";
+ source: "eraser";
+ action: STATE_SET "elm.eraser.show" 0.0;
+ target: "eraser_image";
+ }
+ }
+ }
+}
diff --git a/sources/ui-gadget/edcs/wifi_ug_edj_etc.edc b/sources/ui-gadget/edcs/wifi_ug_edj_etc.edc
new file mode 100644
index 0000000..70b5f60
--- /dev/null
+++ b/sources/ui-gadget/edcs/wifi_ug_edj_etc.edc
@@ -0,0 +1,33 @@
+collections {
+ group {
+ name: "fake_radio";
+ parts {
+ part { name: "radio";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 0 0;
+ min: 48 48;
+ align: 0.0 0.0;
+ rel1 { relative: 0 0; offset: 10 0; }
+ rel2 { relative: 1 1; offset: -10 0; }
+ }
+ }
+ part { name: "image";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 0 0;
+ min: 48 48;
+ align: 0.0 0.0;
+ rel1 { relative: 0 0; offset: 10 0; }
+ rel2 { relative: 1 1; offset: -10 0; }
+ color: 0 0 0 0;
+ }
+ }
+
+ }
+ }
+}
diff --git a/sources/ui-gadget/include/motion_control.h b/sources/ui-gadget/include/motion_control.h
new file mode 100644
index 0000000..de58865
--- /dev/null
+++ b/sources/ui-gadget/include/motion_control.h
@@ -0,0 +1,44 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __MOTION_CONTROL_H__
+#define __MOTION_CONTROL_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <Evas.h>
+
+typedef enum {
+ MOTION_TARGET_VIEW_FOCUS_ON = 0,
+ MOTION_TARGET_VIEW_FOCUS_OFF
+}TARGET_VIEW_FOCUS;
+
+void motion_create(Evas_Object *base);
+void motion_destroy(void);
+void motion_start(void);
+void motion_stop(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/ui-gadget/include/ug_wifi.h b/sources/ui-gadget/include/ug_wifi.h
new file mode 100644
index 0000000..48fa215
--- /dev/null
+++ b/sources/ui-gadget/include/ug_wifi.h
@@ -0,0 +1,89 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __NEW_WIFI_H__
+#define __NEW_WIFI_H__
+
+#define TARGET
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <ui-gadget-module.h>
+
+#include "common.h"
+#include "common_pswd_popup.h"
+#include "view_ime_hidden.h"
+#include "common_eap_connect.h"
+#include "winset_popup.h"
+#include "wlan_manager.h"
+#include "viewer_manager.h"
+
+#define PACKAGE "ug-wifi-efl-UG"
+#define LOCALEDIR "/usr/ug/res/locale"
+#define CUSTOM_EDITFIELD_PATH \
+ "/usr/ug/res/edje/wifi-efl-UG/custom_editfield.edj"
+
+#define FACTORYFS "/usr/ug"
+#define WIFI_APP_IMAGE_DIR FACTORYFS "/res/images/wifi-efl-UG"
+#define WIFI_APP_ICON_PATH_SCAN \
+ WIFI_APP_IMAGE_DIR"/01_controlbar_icon_update.png"
+#define WIFI_APP_ICON_PATH_DONE \
+ WIFI_APP_IMAGE_DIR"/01_controlbar_icon_edit.png"
+#define WIFI_APP_ICON_PATH_FORGET \
+ WIFI_APP_IMAGE_DIR"/01_controlbar_icon_delete.png"
+
+#define UG_CALLER "caller"
+#define UG_MAIN_MESSAGE_DESTROY 1
+
+typedef enum {
+ UG_VIEW_DEFAULT = 0,
+ UG_VIEW_SETUP_WIZARD
+} UG_TYPE;
+
+typedef struct {
+ /* ui gadget object */
+ void* gadget;
+ ui_gadget_h ug;
+
+ //Basic Evas_Objects
+ Evas_Object *layout_main;
+ Evas *evas;
+ pswd_popup_t *passpopup;
+ hiddep_ap_popup_data_t *hidden_ap_popup;
+
+ UG_TYPE ug_type;
+ Eina_Bool bAlive;
+
+ char *lbutton_setup_wizard_prev;
+ char *rbutton_setup_wizard_next;
+ char *rbutton_setup_wizard_skip;
+ popup_manager_object_t *popup_manager;
+ common_eap_connect_data_t *eap_view;
+} wifi_appdata ;
+
+int wifi_exit();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WIFI_H__ */
diff --git a/sources/ui-gadget/include/viewer_list.h b/sources/ui-gadget/include/viewer_list.h
new file mode 100644
index 0000000..2c0fe8f
--- /dev/null
+++ b/sources/ui-gadget/include/viewer_list.h
@@ -0,0 +1,74 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __VIEWER_LIST_H__
+#define __VIEWER_LIST_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include "viewer_manager.h"
+
+//////// genlist struct data ////////////////////////////////////////////////////////////////////
+typedef struct {
+ wifi_device_info_t *device_info;
+ VIEWER_ITEM_RADIO_MODES radio_mode;
+} ug_genlist_data_t;
+/////////////////////////////////////////////////////////////////////////////////////////////
+
+
+Evas_Object* viewer_list_create(Evas_Object *win);
+int viewer_list_destroy(void);
+void viewer_list_title_item_del();
+void viewer_list_title_item_update();
+
+////////////////////////////////////////////////////////////////////////////////////////////////
+
+//////// list item add / remove ///////////////////////////////////////////////////////////////
+int viewer_list_title_item_set(void);
+int viewer_list_item_radio_mode_set(Elm_Object_Item* item, VIEWER_ITEM_RADIO_MODES mode);
+Elm_Object_Item* viewer_list_item_insert_after(wifi_ap_h ap, Elm_Object_Item *after);
+Elm_Object_Item* viewer_list_get_first_item(void);
+void viewer_list_item_clear(void);
+////////////////////////////////////////////////////////////////////////////////////////////////
+
+//////// item iteration /////////////////////////////////////////////////////////////////////////
+int viewer_list_item_size_get(void);
+void viewer_list_item_del(Elm_Object_Item *item);
+Elm_Object_Item* viewer_list_item_first_get(Evas_Object* list);
+Elm_Object_Item* viewer_list_item_next_get(const Elm_Object_Item* current);
+Elm_Object_Item* viewer_list_item_at_index(int index);
+/////////////////////////////////////////////////////////////////////////////////////////////////
+
+//////// item control /////////////////////////////////////////////////////////////////////////
+void viewer_list_item_enable_all(void);
+void viewer_list_item_disable_all(void);
+//////////////////////////////////////////////////////////////////////////////////////////////////
+
+Elm_Object_Item* item_get_for_ap(wifi_ap_h ap);
+Elm_Object_Item *item_get_for_ssid(const char* ssid, int *num_aps);
+void viewer_list_item_move_connected_ap_to_top(const Elm_Object_Item *connected_item);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/ui-gadget/include/viewer_manager.h b/sources/ui-gadget/include/viewer_manager.h
new file mode 100644
index 0000000..14ef35f
--- /dev/null
+++ b/sources/ui-gadget/include/viewer_manager.h
@@ -0,0 +1,85 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __VIEWER_MANAGER_H__
+#define __VIEWER_MANAGER_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <glib.h>
+#include <Elementary.h>
+
+#include "wlan_manager.h"
+
+typedef enum {
+ HEADER_MODE_OFF=0x01,
+ HEADER_MODE_ON,
+ HEADER_MODE_ACTIVATING,
+ HEADER_MODE_CONNECTING,
+ HEADER_MODE_CONNECTED,
+ HEADER_MODE_DISCONNECTING,
+ HEADER_MODE_DEACTIVATING,
+ HEADER_MODE_CANCEL_CONNECTING,
+ HEADER_MODE_SEARCHING,
+ HEADER_MODE_MAX
+} HEADER_MODES;
+
+typedef enum {
+ VIEWER_ITEM_RADIO_MODE_OFF = 0,
+ VIEWER_ITEM_RADIO_MODE_CONNECTED,
+ VIEWER_ITEM_RADIO_MODE_CONNECTING,
+ VIEWER_ITEM_RADIO_MODE_CANCEL_CONNECTING,
+ VIEWER_ITEM_RADIO_MODE_WPS_CONNECTING,
+ VIEWER_ITEM_RADIO_MODE_DISCONNECTING,
+ VIEWER_ITEM_RADIO_MODE_MAX
+
+} VIEWER_ITEM_RADIO_MODES;
+
+typedef enum {
+ VIEWER_WINSET_SEARCHING,
+ VIEWER_WINSET_SUB_CONTENTS
+} VIEWER_WINSETS;
+
+Evas_Object* viewer_manager_create(Evas_Object* parent);
+Eina_Bool viewer_manager_destroy();
+Eina_Bool viewer_manager_show(VIEWER_WINSETS winset);
+Eina_Bool viewer_manager_hide(VIEWER_WINSETS winset);
+Eina_Bool viewer_manager_refresh(void);
+
+int power_control();
+
+int viewer_manager_hidden_disable_set(int mode);
+Evas_Object *viewer_manager_get_naviframe();
+int viewer_manager_header_mode_set(HEADER_MODES mode);
+HEADER_MODES viewer_manager_header_mode_get(void);
+void viewer_manager_scroll_to_top(void);
+Elm_Object_Item *viewer_manager_move_item_to_top(Elm_Object_Item *item);
+void viewer_manager_specific_scan_response_hlr(
+ GSList *bss_info_list, void *user_data);
+void viewer_manager_update_ap_handle(Elm_Object_Item *item, wifi_ap_h ap);
+void viewer_manager_update_connected_ap_sig_str(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/ui-gadget/include/wifi-engine-callback.h b/sources/ui-gadget/include/wifi-engine-callback.h
new file mode 100644
index 0000000..2c7925d
--- /dev/null
+++ b/sources/ui-gadget/include/wifi-engine-callback.h
@@ -0,0 +1,35 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __WIFI_ENGINE_CALLBACK_H__
+#define __WIFI_ENGINE_CALLBACK_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+void wlan_engine_refresh_callback();
+void wlan_engine_callback(wlan_mgr_event_info_t *event_info, void *user_data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WIFI_ENGINE_CALLBACKS_H__ */
diff --git a/sources/ui-gadget/include/wifi-ui-list-callbacks.h b/sources/ui-gadget/include/wifi-ui-list-callbacks.h
new file mode 100644
index 0000000..8936c5e
--- /dev/null
+++ b/sources/ui-gadget/include/wifi-ui-list-callbacks.h
@@ -0,0 +1,38 @@
+/*
+* Wi-Fi UG
+*
+* Copyright 2012 Samsung Electronics Co., Ltd
+
+* Licensed under the Flora License, Version 1.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+
+* http://www.tizenopensource.org/license
+
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#ifndef __WIFI_CALLBACKS_H_
+#define __WIFI_CALLBACKS_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+void radio_button_cb(void *data, Evas_Object *obj, void *event_info);
+void list_select_cb(void *data, Evas_Object *obj, void *event_info);
+void eap_view_close_cb(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/ui-gadget/include/wifi.h b/sources/ui-gadget/include/wifi.h
new file mode 100644
index 0000000..3a67a2c
--- /dev/null
+++ b/sources/ui-gadget/include/wifi.h
@@ -0,0 +1,88 @@
+/*
+* Wi-Fi UG
+*
+* Copyright 2012 Samsung Electronics Co., Ltd
+
+* Licensed under the Flora License, Version 1.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+
+* http://www.tizenopensource.org/license
+
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#ifndef __NEW_WIFI_H_
+#define __NEW_WIFI_H_
+
+#define TARGET
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+#include "common.h"
+#include "common_pswd_popup.h"
+#include "view_ime_hidden.h"
+#include "common_eap_connect.h"
+#include "winset_popup.h"
+#include "wlan_manager.h"
+#include "viewer_manager.h"
+#include <ui-gadget-module.h>
+
+#define PACKAGE "ug-wifi-efl-UG"
+#define LOCALEDIR "/usr/ug/res/locale"
+#define CUSTOM_EDITFIELD_PATH "/usr/ug/res/edje/wifi-efl-UG/custom_editfield.edj"
+
+#define WIFI_APP_IMAGE_DIR FACTORYFS"/res/images/wifi-efl-UG"
+#define WIFI_APP_ICON_PATH_SCAN WIFI_APP_IMAGE_DIR"/01_controlbar_icon_update.png"
+#define WIFI_APP_ICON_PATH_DONE WIFI_APP_IMAGE_DIR"/01_controlbar_icon_edit.png"
+#define WIFI_APP_ICON_PATH_FORGET WIFI_APP_IMAGE_DIR"/01_controlbar_icon_delete.png"
+
+#define UG_CALLER "caller"
+#define UG_MAIN_MESSAGE_DESTROY 1
+
+typedef enum {
+ UG_VIEW_DEFAULT = 0,
+ UG_VIEW_SETUP_WIZARD
+} UG_TYPE;
+
+typedef struct {
+ /* ui gadget object */
+ void* gadget;
+ ui_gadget_h ug;
+
+ //Basic Evas_Objects
+ Evas_Object *win_main;
+ Evas *evas;
+ pswd_popup_t *passpopup;
+ hiddep_ap_popup_data_t *hidden_ap_popup;
+
+ UG_TYPE ug_type;
+ Eina_Bool bAlive;
+
+ char *lbutton_setup_wizard_prev;
+ char *rbutton_setup_wizard_next;
+ char *rbutton_setup_wizard_skip;
+ popup_manager_object_t *popup_manager;
+ common_eap_connect_data_t *eap_view;
+} wifi_appdata ;
+
+int wifi_exit();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __WIFI_H_ */
+
+
diff --git a/sources/ui-gadget/include/winset_popup.h b/sources/ui-gadget/include/winset_popup.h
new file mode 100644
index 0000000..4775cb8
--- /dev/null
+++ b/sources/ui-gadget/include/winset_popup.h
@@ -0,0 +1,54 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __WINSET_POPUP_H__
+#define __WINSET_POPUP_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <glib.h>
+#include <Evas.h>
+
+typedef enum {
+ POPUP_OPTION_NONE = 0X01,
+ POPUP_OPTION_REGISTER_FAILED_COMMUNICATION_FAILED,
+ POPUP_OPTION_POWER_ON_FAILED_MOBILE_HOTSPOT,
+ POPUP_OPTION_CONNECTING_FAILED,
+ POPUP_OPTION_HIDDEN_AP_SSID_LEN_ERROR,
+ POPUP_OPTION_WEP_PSWD_LEN_ERROR,
+ POPUP_OPTION_WPA_PSWD_LEN_ERROR,
+ POPUP_OPTION_WIFI_INVALID_KEY,
+ POPUP_OPTION_MAX
+} POPUP_MODE_OPTIONS;
+
+typedef struct popup_manager_object popup_manager_object_t;
+
+popup_manager_object_t *winset_popup_manager_create(Evas_Object* win, const char *str_pkg_name);
+void winset_popup_mode_set(popup_manager_object_t *manager_object, POPUP_MODE_OPTIONS option, void *input_data);
+gboolean winset_popup_manager_destroy(popup_manager_object_t *manager_object);
+gboolean winset_popup_hide_popup(popup_manager_object_t *manager_object);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/ui-gadget/motion_control.c b/sources/ui-gadget/motion_control.c
new file mode 100644
index 0000000..a00c003
--- /dev/null
+++ b/sources/ui-gadget/motion_control.c
@@ -0,0 +1,103 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "sensor.h"
+#include "motion_control.h"
+#include "viewer_manager.h"
+#include "wlan_manager.h"
+#include "vconf.h"
+#include "wifi-engine-callback.h"
+
+static int motion_handle = -1;
+static Evas_Object* target = NULL;
+
+static void __motion_shake_cb(unsigned int event_type, sensor_event_data_t *event_data, void *data)
+{
+ int vconf_value = 0;
+
+ vconf_get_bool(VCONFKEY_SETAPPL_MOTION_ACTIVATION, &vconf_value);
+ if(vconf_value != 1)
+ return;
+
+ vconf_get_bool(VCONFKEY_SETAPPL_USE_SHAKE, &vconf_value);
+ if(vconf_value != 1)
+ return;
+
+ HEADER_MODES header_mode = viewer_manager_header_mode_get();
+
+ switch(header_mode) {
+ case HEADER_MODE_OFF:
+ power_control();
+ viewer_manager_show(VIEWER_WINSET_SEARCHING);
+ break;
+ case HEADER_MODE_ON:
+ case HEADER_MODE_CONNECTED:
+ if (WLAN_MANAGER_ERR_NONE == wlan_manager_request_scan()) {
+ viewer_manager_show(VIEWER_WINSET_SEARCHING);
+ viewer_manager_header_mode_set(HEADER_MODE_SEARCHING);
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+static TARGET_VIEW_FOCUS __motion_target_view_focus_get(void)
+{
+ if (target == NULL)
+ return MOTION_TARGET_VIEW_FOCUS_OFF;
+
+ if (elm_object_focus_get(target))
+ return MOTION_TARGET_VIEW_FOCUS_ON;
+ else
+ return MOTION_TARGET_VIEW_FOCUS_OFF;
+}
+
+void motion_create(Evas_Object* base)
+{
+ target = base;
+
+ motion_handle = sf_connect(MOTION_SENSOR);
+ if (motion_handle < 0)
+ return;
+
+ sf_register_event(motion_handle, MOTION_ENGINE_EVENT_SHAKE, NULL, __motion_shake_cb, base);
+}
+
+void motion_start(void)
+{
+ TARGET_VIEW_FOCUS focus_state = __motion_target_view_focus_get();
+
+ if ((focus_state == MOTION_TARGET_VIEW_FOCUS_ON) && (motion_handle >= 0))
+ sf_start(motion_handle, 0);
+}
+
+void motion_stop(void)
+{
+ sf_stop(motion_handle);
+}
+
+void motion_destroy(void)
+{
+ sf_stop(motion_handle);
+
+ sf_unregister_event(motion_handle, MOTION_ENGINE_EVENT_SHAKE);
+
+ sf_disconnect(motion_handle);
+}
diff --git a/sources/ui-gadget/viewers-layout/include/view_detail.h b/sources/ui-gadget/viewers-layout/include/view_detail.h
new file mode 100644
index 0000000..9731e4e
--- /dev/null
+++ b/sources/ui-gadget/viewers-layout/include/view_detail.h
@@ -0,0 +1,50 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __VIEW_DETAIL_H__
+#define __VIEW_DETAIL_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <Evas.h>
+
+void view_detail(wifi_device_info_t *device_info, Evas_Object *parent);
+
+int detailview_ip_and_dns_type_set_as_static();
+
+int detailview_modified_ip_address_set(char* data);
+int detailview_modified_gateway_address_set(char* data);
+int detailview_modified_subnet_mask_set(char* data);
+int detailview_modified_dns1_address_set(char* data);
+int detailview_modified_dns2_address_set(char* data);
+
+const char* detailview_modified_ip_address_get(void);
+const char* detailview_modified_gateway_address_get(void);
+const char* detailview_modified_subnet_mask_get(void);
+const char* detailview_modified_dns1_address_get(void);
+const char* detailview_modified_dns2_address_get(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/ui-gadget/viewers-layout/include/view_ime_hidden.h b/sources/ui-gadget/viewers-layout/include/view_ime_hidden.h
new file mode 100644
index 0000000..bc1cb72
--- /dev/null
+++ b/sources/ui-gadget/viewers-layout/include/view_ime_hidden.h
@@ -0,0 +1,39 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __VIEW_IME_HIDDEN_H__
+#define __VIEW_IME_HIDDEN_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <Evas.h>
+
+typedef struct hiddep_ap_popup_data hiddep_ap_popup_data_t;
+
+hiddep_ap_popup_data_t *view_hidden_ap_popup_create(Evas_Object *win_main, const char *str_pkg_name);
+void view_hidden_ap_popup_destroy(hiddep_ap_popup_data_t *popup_data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/ui-gadget/viewers-layout/view_detail.c b/sources/ui-gadget/viewers-layout/view_detail.c
new file mode 100644
index 0000000..a7b5b8a
--- /dev/null
+++ b/sources/ui-gadget/viewers-layout/view_detail.c
@@ -0,0 +1,339 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "ug_wifi.h"
+#include "view_detail.h"
+#include "i18nmanager.h"
+#include "viewer_manager.h"
+#include "winset_popup.h"
+#include "common_utils.h"
+#include "common_ip_info.h"
+#include "common_eap_connect.h"
+
+typedef struct _view_detail_data {
+ Evas_Object *win;
+ char *ap_image_path;
+ wifi_ap_h ap;
+ eap_info_list_t *eap_info_list;
+ ip_info_list_t *ip_info_list;
+ Evas_Object *forget_confirm_popup;
+ Evas_Object *view_detail_list;
+} view_detail_data;
+
+static int view_detail_end = TRUE;
+
+/* function declaration */
+static void detailview_sk_cb(void *data, Evas_Object *obj, void *event_info);
+static void forget_sk_cb(void *data, Evas_Object *obj, void *event_info);
+
+///////////////////////////////////////////////////////////////
+// implementation
+///////////////////////////////////////////////////////////////
+
+static char* _view_detail_grouptitle_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ __COMMON_FUNC_ENTER__;
+ char *ret = NULL;
+ assertm_if(NULL == obj, "NULL!!");
+ assertm_if(NULL == part, "NULL!!");
+ assertm_if(NULL == data, "NULL!!");
+
+ view_detail_data *detail_data = (view_detail_data *)data;
+ if (!strncmp(part, "elm.text.2", strlen(part))) {
+ ret = (char*) g_strdup(sc(PACKAGE, I18N_TYPE_Name));
+ } else if (!strncmp(part, "elm.text.1", strlen(part))) {
+ wifi_ap_get_essid(detail_data->ap, &ret);
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return ret;
+}
+
+static Evas_Object *_view_detail_grouptitle_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ view_detail_data *detail_data = (view_detail_data *)data;
+ Evas_Object* icon = NULL;
+ assertm_if(NULL == obj, "NULL!!");
+ assertm_if(NULL == data, "NULL!!");
+ assertm_if(NULL == part, "NULL!!");
+
+ if (detail_data->ap_image_path == NULL) {
+ /* if there is no ap_image_path (NO AP Found situation) */
+ DEBUG_LOG(UG_NAME_ERR, "Fatal: Image path is NULL");
+ } else if (!strncmp(part, "elm.icon", strlen(part))) {
+ /* for strength */
+ icon = elm_image_add(obj);
+ assertm_if(NULL == icon, "NULL!!");
+ elm_image_file_set(icon, detail_data->ap_image_path, NULL);
+ }
+
+ return icon;
+}
+
+static void _remove_all(view_detail_data *_detail_data)
+{
+ __COMMON_FUNC_ENTER__;
+ if(_detail_data) {
+ if (_detail_data->eap_info_list) {
+ eap_info_remove(_detail_data->eap_info_list);
+ _detail_data->eap_info_list = NULL;
+ }
+
+ ip_info_remove(_detail_data->ip_info_list);
+ _detail_data->ip_info_list = NULL;
+
+ evas_object_del(_detail_data->view_detail_list);
+ _detail_data->view_detail_list = NULL;
+
+ g_free(_detail_data->ap_image_path);
+ g_free(_detail_data);
+ _detail_data = NULL;
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ if(view_detail_end == TRUE) {
+ return;
+ }
+ view_detail_end = TRUE;
+ view_detail_data *_detail_data = (view_detail_data *)data;
+ assertm_if(NULL == _detail_data, "NULL!!");
+
+ evas_object_del(_detail_data->forget_confirm_popup);
+ _detail_data->forget_confirm_popup = NULL;
+ wlan_manager_forget(_detail_data->ap);
+ _remove_all(_detail_data);
+ elm_naviframe_item_pop(viewer_manager_get_naviframe());
+
+ __COMMON_FUNC_EXIT__;
+ return;
+}
+
+static void cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ view_detail_data *_detail_data = (view_detail_data *)data;
+ assertm_if(NULL == _detail_data, "NULL!!");
+ evas_object_del(_detail_data->forget_confirm_popup);
+ _detail_data->forget_confirm_popup = NULL;
+ __COMMON_FUNC_EXIT__;
+}
+
+static void forget_sk_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ view_detail_data *_detail_data = (view_detail_data *)data;
+ assertm_if(NULL == _detail_data, "NULL!!");
+
+ if (!_detail_data->forget_confirm_popup) {
+ popup_btn_info_t popup_data;
+ memset(&popup_data, 0, sizeof(popup_data));
+
+ popup_data.info_txt = g_strdup(sc(PACKAGE, I18N_TYPE_Autonomous_connection_to_s_will_be_turned_off_Continue));
+ popup_data.btn1_cb = ok_cb;
+ popup_data.btn1_txt = sc(PACKAGE, I18N_TYPE_Ok);
+ popup_data.btn1_data = _detail_data;
+ popup_data.btn2_cb = cancel_cb;
+ popup_data.btn2_txt = sc(PACKAGE, I18N_TYPE_Cancel);
+ popup_data.btn2_data = _detail_data;
+ _detail_data->forget_confirm_popup = common_utils_show_info_popup(_detail_data->win, &popup_data);
+
+ evas_object_show(_detail_data->forget_confirm_popup);
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void title_back_btn_sk_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if(view_detail_end == TRUE) {
+ return;
+ }
+ view_detail_end = TRUE;
+ view_detail_data *_detail_data = (view_detail_data *)data;
+ assertm_if(NULL == _detail_data, "NULL!!");
+
+ if (_detail_data->eap_info_list)
+ eap_info_save_data(_detail_data->eap_info_list);
+
+ ip_info_save_data(_detail_data->ip_info_list);
+ _remove_all(_detail_data);
+ elm_naviframe_item_pop(viewer_manager_get_naviframe());
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void detailview_sk_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ if (view_detail_end == TRUE)
+ return;
+ view_detail_end = TRUE;
+
+ view_detail_data *_detail_data = (view_detail_data *)data;
+ assertm_if(NULL == _detail_data, "NULL!!");
+
+ if (_detail_data->eap_info_list)
+ eap_info_save_data(_detail_data->eap_info_list);
+
+ ip_info_save_data(_detail_data->ip_info_list);
+ _remove_all(_detail_data);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void __view_detail_imf_ctxt_evnt_cb(void *data, Ecore_IMF_Context *ctx, int value)
+{
+ if (!data)
+ return;
+ if (value == ECORE_IMF_INPUT_PANEL_STATE_SHOW) {
+ DEBUG_LOG(UG_NAME_NORMAL, "Key pad is now open");
+ elm_object_item_signal_emit(data, "elm,state,sip,shown", "");
+ } else if (value == ECORE_IMF_INPUT_PANEL_STATE_HIDE) {
+ DEBUG_LOG(UG_NAME_NORMAL, "Key pad is now closed");
+ elm_object_item_signal_emit(data, "elm,state,sip,hidden", "");
+ }
+ return;
+}
+
+static Eina_Bool __view_detail_load_ip_info_list_cb(void *data)
+{
+ Elm_Object_Item *navi_it = NULL;
+ Evas_Object *list = NULL;
+ Evas_Object *layout;
+ view_detail_data *_detail_data = (view_detail_data *)data;
+
+ if (!_detail_data)
+ return ECORE_CALLBACK_CANCEL;
+
+ navi_it = elm_naviframe_top_item_get(viewer_manager_get_naviframe());
+ layout = elm_object_item_part_content_get(navi_it, "elm.swallow.content");
+
+ /* Create an EAP connect view list */
+ list = elm_object_part_content_get(layout, "elm.swallow.content");
+
+ /* Append ip info list */
+ _detail_data->ip_info_list = ip_info_append_items(_detail_data->ap, PACKAGE, list, __view_detail_imf_ctxt_evnt_cb, navi_it);
+
+ common_utils_add_dialogue_separator(list, "dialogue/separator");
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+void view_detail(wifi_device_info_t *device_info, Evas_Object *win_main)
+{
+ __COMMON_FUNC_ENTER__;
+
+ bool favourite = 0;
+ wifi_ap_h ap;
+ static Elm_Genlist_Item_Class grouptitle_itc;
+
+ if (device_info == NULL) {
+ ERROR_LOG(UG_NAME_NORMAL, "Failed : device_info is NULL");
+ return;
+ }
+ Evas_Object *layout = NULL;
+ Evas_Object* navi_frame = viewer_manager_get_naviframe();
+ if (navi_frame == NULL) {
+ ERROR_LOG(UG_NAME_NORMAL, "Failed : get naviframe");
+ return;
+ }
+
+ view_detail_end = FALSE;
+
+ view_detail_data *_detail_data = g_new0(view_detail_data, 1);
+ assertm_if(NULL == _detail_data, "NULL!!");
+
+ _detail_data->ap = ap = device_info->ap;
+ wifi_ap_is_favorite(ap, &favourite);
+ _detail_data->ap_image_path = g_strdup(device_info->ap_image_path);
+ layout = common_utils_create_layout(navi_frame);
+ evas_object_show(layout);
+
+ Evas_Object* detailview_list = elm_genlist_add(layout);
+ elm_object_style_set(detailview_list, "dialogue");
+ assertm_if(NULL == detailview_list, "NULL!!");
+ _detail_data->view_detail_list = detailview_list;
+
+ grouptitle_itc.item_style = "dialogue/2text.1icon.5";
+ grouptitle_itc.func.text_get = _view_detail_grouptitle_text_get;
+ grouptitle_itc.func.content_get = _view_detail_grouptitle_content_get;
+ grouptitle_itc.func.state_get = NULL;
+ grouptitle_itc.func.del = NULL;
+
+ common_utils_add_dialogue_separator(detailview_list, "dialogue/separator");
+
+ /* AP name and signal strength icon */
+ Elm_Object_Item* title = elm_genlist_item_append(detailview_list, &grouptitle_itc, _detail_data, NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL);
+ elm_object_item_disabled_set(title, TRUE);
+
+ elm_object_part_content_set(layout, "elm.swallow.content", detailview_list);
+
+ Elm_Object_Item* navi_it = elm_naviframe_item_push(navi_frame, sc(PACKAGE, I18N_TYPE_Details), NULL, NULL, layout, NULL);
+ evas_object_data_set(navi_frame, SCREEN_TYPE_ID_KEY, (void *)VIEW_MANAGER_VIEW_TYPE_DETAIL);
+
+ /* Toolbar Back button */
+ Evas_Object* button_back = elm_object_item_part_content_get(navi_it, "prev_btn");
+ evas_object_smart_callback_add(button_back, "clicked", detailview_sk_cb, _detail_data);
+
+ /* Title Back button */
+ button_back = elm_button_add(navi_frame);
+ elm_object_style_set(button_back, "naviframe/back_btn/default");
+ evas_object_smart_callback_add(button_back, "clicked", title_back_btn_sk_cb, _detail_data);
+ elm_object_item_part_content_set(navi_it, "title_prev_btn", button_back);
+
+ _detail_data->win = win_main;
+
+ if (favourite) {
+ /* Toolbar Forget button */
+ Evas_Object* forget_button = elm_button_add(navi_frame);
+ elm_object_style_set(forget_button, "naviframe/toolbar/default");
+ elm_object_text_set(forget_button, sc(PACKAGE, I18N_TYPE_Forget));
+ evas_object_smart_callback_add(forget_button, "clicked", forget_sk_cb, _detail_data);
+ elm_object_item_part_content_set(navi_it, "toolbar_button1", forget_button);
+
+ /* Title Forget button */
+ forget_button = elm_button_add(navi_frame);
+ elm_object_style_set(forget_button, "naviframe/toolbar/default");
+ elm_object_text_set(forget_button, sc(PACKAGE, I18N_TYPE_Forget));
+ evas_object_smart_callback_add(forget_button, "clicked", forget_sk_cb, _detail_data);
+ elm_object_item_part_content_set(navi_it, "title_toolbar_button1", forget_button);
+ }
+
+ wifi_security_type_e type = WIFI_SECURITY_TYPE_NONE;
+ wifi_ap_get_security_type(ap, &type);
+ if (WIFI_SECURITY_TYPE_EAP == type) {
+ wifi_connection_state_e connection_state;
+ wifi_ap_get_connection_state(ap, &connection_state);
+ if (favourite || WIFI_CONNECTION_STATE_CONNECTED == connection_state) {
+ _detail_data->eap_info_list = eap_info_append_items(ap, detailview_list, PACKAGE, __view_detail_imf_ctxt_evnt_cb, navi_it);
+ }
+ }
+
+ /* Append the ip info details */
+ ecore_idler_add(__view_detail_load_ip_info_list_cb, _detail_data);
+
+ __COMMON_FUNC_EXIT__;
+}
diff --git a/sources/ui-gadget/viewers-layout/view_ime_hidden.c b/sources/ui-gadget/viewers-layout/view_ime_hidden.c
new file mode 100644
index 0000000..2a61586
--- /dev/null
+++ b/sources/ui-gadget/viewers-layout/view_ime_hidden.c
@@ -0,0 +1,201 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "ug_wifi.h"
+#include "view_ime_hidden.h"
+#include "i18nmanager.h"
+#include "wlan_manager.h"
+#include "viewer_manager.h"
+#include "common_utils.h"
+
+struct hiddep_ap_popup_data {
+ Evas_Object *win;
+ const char *str_pkg_name;
+ Evas_Object *popup;
+ Evas_Object *popup_entry_lyt;
+ Evas_Object *progress_popup;
+};
+
+static void view_hidden_ap_popup_ok_cb(void *data, Evas_Object *obj, void *event_info);
+static void view_hidden_ap_popup_cancel_cb(void *data, Evas_Object *obj, void *event_info);
+static Eina_Bool _enable_scan_updates_cb(void *data);
+
+static void __popup_entry_changed_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ if (elm_object_focus_get(data)) {
+ if (elm_entry_is_empty(obj))
+ elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+ else
+ elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+ }
+}
+
+static void __popup_entry_focused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ if (!elm_entry_is_empty(obj))
+ elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+ elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void __popup_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ if (elm_entry_is_empty(obj))
+ elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+ elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+}
+
+static void __popup_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ elm_entry_entry_set(data, "");
+}
+
+hiddep_ap_popup_data_t *view_hidden_ap_popup_create(Evas_Object *win_main, const char *str_pkg_name)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (!win_main) {
+ INFO_LOG(UG_NAME_ERR, "Invalid argument passed.");
+ return NULL;
+ }
+
+ /* Lets disable the scan updates so that the UI is not refreshed un necessarily */
+ wlan_manager_disable_scan_result_update();
+
+ hiddep_ap_popup_data_t *hidden_ap_popup_data = g_new0(hiddep_ap_popup_data_t, 1);
+ popup_btn_info_t popup_btn_data;
+
+ memset(&popup_btn_data, 0, sizeof(popup_btn_data));
+ popup_btn_data.title_txt = sc(str_pkg_name,I18N_TYPE_Find_Hidden_Network);
+ popup_btn_data.btn1_cb = view_hidden_ap_popup_ok_cb;
+ popup_btn_data.btn1_data = hidden_ap_popup_data;
+ popup_btn_data.btn2_cb = view_hidden_ap_popup_cancel_cb;
+ popup_btn_data.btn2_data = hidden_ap_popup_data;
+ popup_btn_data.btn1_txt = sc(str_pkg_name, I18N_TYPE_Ok);
+ popup_btn_data.btn2_txt = sc(str_pkg_name, I18N_TYPE_Cancel);
+ Evas_Object *passpopup = common_utils_show_info_popup(win_main, &popup_btn_data);
+
+ Evas_Object *box = elm_box_add(passpopup);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(box);
+
+ Evas_Object *entry_ly = elm_layout_add(box);
+ Evas_Object *entry = NULL;
+ Elm_Entry_Filter_Limit_Size limit_filter_data;
+
+ elm_layout_file_set(entry_ly, CUSTOM_EDITFIELD_PATH, "custom_editfield");
+ evas_object_size_hint_weight_set(entry_ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(entry_ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_part_text_set(entry_ly, "elm.text", sc(str_pkg_name, I18N_TYPE_Enter_Ssid));
+ elm_object_part_text_set(entry_ly, "elm.guidetext", sc(str_pkg_name, I18N_TYPE_Ssid));
+
+ entry = elm_entry_add(entry_ly);
+ 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_URL);
+ elm_object_part_content_set(entry_ly, "elm.swallow.content", entry);
+
+ limit_filter_data.max_char_count = 32;
+ elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data);
+
+ evas_object_smart_callback_add(entry, "changed", __popup_entry_changed_cb, entry_ly);
+ evas_object_smart_callback_add(entry, "focused", __popup_entry_focused_cb, entry_ly);
+ evas_object_smart_callback_add(entry, "unfocused", __popup_entry_unfocused_cb, entry_ly);
+ elm_object_signal_callback_add(entry_ly, "elm,eraser,clicked", "elm", __popup_eraser_clicked_cb, entry);
+ evas_object_show(entry);
+ evas_object_show(entry_ly);
+
+ elm_box_pack_end(box, entry_ly);
+
+ elm_object_content_set(passpopup, box);
+ evas_object_show(passpopup);
+ hidden_ap_popup_data->win = win_main;
+ hidden_ap_popup_data->str_pkg_name = str_pkg_name;
+ hidden_ap_popup_data->popup = passpopup;
+ hidden_ap_popup_data->popup_entry_lyt = entry_ly;
+ elm_object_focus_set(entry, EINA_TRUE);
+ __COMMON_FUNC_EXIT__;
+
+ return hidden_ap_popup_data;
+}
+
+void view_hidden_ap_popup_destroy(hiddep_ap_popup_data_t *popup_data)
+{
+ if (!popup_data) {
+ INFO_LOG(UG_NAME_ERR, "Invalid argument passed.");
+ return;
+ }
+
+ if (popup_data->popup) {
+ evas_object_del(popup_data->popup);
+ popup_data->popup = NULL;
+ }
+
+ if (popup_data->progress_popup) {
+ evas_object_del(popup_data->progress_popup);
+ popup_data->progress_popup = NULL;
+ }
+
+ g_free(popup_data);
+
+ /* A delay is needed to get the smooth Input panel closing animation effect */
+ ecore_timer_add(0.1, _enable_scan_updates_cb, NULL);
+
+ return;
+}
+
+static void view_hidden_ap_popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ hiddep_ap_popup_data_t *popup_data = (hiddep_ap_popup_data_t *)data;
+ char *entry_txt = common_utils_entry_layout_get_text(popup_data->popup_entry_lyt);
+ if (WLAN_MANAGER_ERR_NONE != wlan_manager_request_specific_scan(entry_txt, entry_txt)) {
+ char *disp_msg = g_strdup_printf("Unable to find %s", entry_txt);
+ common_utils_show_info_ok_popup(popup_data->win, popup_data->str_pkg_name, disp_msg);
+ g_free(disp_msg);
+ g_free(entry_txt);
+ view_hidden_ap_popup_destroy(popup_data);
+ } else {
+
+ /* Show progress idication popup */
+ popup_data->progress_popup = common_utils_show_info_ok_popup(popup_data->win, popup_data->str_pkg_name, "Please Wait...");
+
+ evas_object_del(popup_data->popup);
+ popup_data->popup = NULL;
+
+ /* A delay is needed to get the smooth Input panel closing animation effect */
+ ecore_timer_add(0.1, _enable_scan_updates_cb, NULL);
+ }
+
+ return;
+}
+
+static void view_hidden_ap_popup_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ hiddep_ap_popup_data_t *hidden_ap_popup_data = (hiddep_ap_popup_data_t *)data;
+ view_hidden_ap_popup_destroy(hidden_ap_popup_data);
+ return;
+}
+
+static Eina_Bool _enable_scan_updates_cb(void *data)
+{
+ /* Lets enable the scan updates */
+ wlan_manager_enable_scan_result_update();
+
+ return ECORE_CALLBACK_CANCEL;
+}
diff --git a/sources/ui-gadget/viewers-layout/viewer_manager.c b/sources/ui-gadget/viewers-layout/viewer_manager.c
new file mode 100644
index 0000000..28184e4
--- /dev/null
+++ b/sources/ui-gadget/viewers-layout/viewer_manager.c
@@ -0,0 +1,1267 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <vconf-keys.h>
+
+#include "common.h"
+#include "ug_wifi.h"
+#include "viewer_list.h"
+#include "i18nmanager.h"
+#include "common_utils.h"
+#include "winset_popup.h"
+#include "viewer_manager.h"
+#include "view_ime_hidden.h"
+
+typedef struct {
+ wlan_security_mode_type_t sec_mode;
+ char *ssid;
+ Evas_Object *confirmation_popup;
+} hidden_ap_data_t;
+
+typedef struct viewer_manager_object {
+ Evas_Object* nav;
+ Evas_Object* scan_button;
+ Evas_Object* next_button;
+ Evas_Object* prev_button;
+ Evas_Object* list;
+
+ Elm_Object_Item *item_hidden_btn;
+ Elm_Object_Item *item_sep_above_hidden_button;
+ Elm_Object_Item *item_sep_below_hidden_button;
+
+ char* header_text;
+ HEADER_MODES header_mode;
+ Elm_Object_Item* item_header;
+} viewer_manager_object;
+
+typedef struct {
+ Evas_Object* list;
+ Elm_Object_Item *last_appended_item;
+ int total_items_added;
+} view_manager_list_update_info_t;
+
+static viewer_manager_object* manager_object = NULL;
+
+extern wifi_appdata *ug_app_state;
+
+static Elm_Genlist_Item_Class header_itc_text;
+static Elm_Genlist_Item_Class bottom_itc_text;
+static Elm_Genlist_Item_Class bottom_itc_helper_text;
+static Elm_Genlist_Item_Class hidden_button_itc;
+
+int power_control()
+{
+ __COMMON_FUNC_ENTER__;
+
+ int cur_state = -1;
+ cur_state = viewer_manager_header_mode_get();
+
+ INFO_LOG(UG_NAME_NORMAL, "current state %d\n", cur_state);
+
+ int ret = TRUE;
+
+ switch (cur_state) {
+ case HEADER_MODE_OFF:
+ case HEADER_MODE_ACTIVATING:
+ INFO_LOG(UG_NAME_NORMAL, "wifi state power off/powering off");
+
+ ret = wlan_manager_request_power_on();
+ switch (ret){
+ case WLAN_MANAGER_ERR_NONE:
+ INFO_LOG(UG_NAME_NORMAL, "power on ok");
+ viewer_manager_header_mode_set(HEADER_MODE_ACTIVATING);
+ break;
+ case WLAN_MANAGER_ERR_MOBILE_HOTSPOT_OCCUPIED:
+ viewer_manager_header_mode_set(HEADER_MODE_ACTIVATING);
+ winset_popup_mode_set(ug_app_state->popup_manager, POPUP_OPTION_POWER_ON_FAILED_MOBILE_HOTSPOT, NULL);
+ break;
+ case WLAN_MANAGER_ERR_IN_PROGRESS:
+ /* Do nothing */
+ break;
+ default:
+ viewer_manager_header_mode_set(HEADER_MODE_OFF);
+ INFO_LOG(UG_NAME_NORMAL, "power on failed. ret = %d", ret);
+ break;
+ }
+ break;
+
+ case HEADER_MODE_ON:
+ case HEADER_MODE_CONNECTING:
+ case HEADER_MODE_DISCONNECTING:
+ case HEADER_MODE_CANCEL_CONNECTING:
+ case HEADER_MODE_CONNECTED:
+ case HEADER_MODE_SEARCHING:
+
+ viewer_list_item_clear();
+ INFO_LOG(UG_NAME_NORMAL, "wifi state power on/connected");
+ ret = wlan_manager_request_power_off();
+ switch (ret) {
+ case WLAN_MANAGER_ERR_NONE:
+ viewer_manager_show(VIEWER_WINSET_SEARCHING);
+ viewer_manager_hide(VIEWER_WINSET_SUB_CONTENTS);
+ viewer_manager_header_mode_set(HEADER_MODE_DEACTIVATING);
+ wlan_manager_disable_scan_result_update(); // Lets ignore all the scan updates because we are powering off now.
+ break;
+ case WLAN_MANAGER_ERR_IN_PROGRESS:
+ /* Do nothing */
+ break;
+ default:
+ INFO_LOG(UG_NAME_NORMAL, "power off failed. ret = %d", ret);
+ break;
+ }
+ break;
+
+ case HEADER_MODE_DEACTIVATING:
+ default:
+ INFO_LOG(UG_NAME_NORMAL, "Powering off in progress. Let it complete. \n");
+ break;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+}
+
+static void _hide_finished_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ view_manager_view_type_t top_view_id =
+ (view_manager_view_type_t)evas_object_data_get(obj,
+ SCREEN_TYPE_ID_KEY);
+
+ if (data == elm_naviframe_top_item_get(obj)) {
+ /* We are now in main view */
+ evas_object_data_set(obj, SCREEN_TYPE_ID_KEY, (void *)VIEW_MANAGER_VIEW_TYPE_MAIN);
+ top_view_id = VIEW_MANAGER_VIEW_TYPE_MAIN;
+ }
+
+ INFO_LOG(UG_NAME_NORMAL, "top view id = %d", top_view_id);
+
+ switch(top_view_id) {
+ case VIEW_MANAGER_VIEW_TYPE_MAIN:
+ ug_app_state->eap_view = NULL;
+ /* Lets enable the scan updates */
+ wlan_manager_enable_scan_result_update();
+ break;
+
+ case VIEW_MANAGER_VIEW_TYPE_DETAIL:
+ case VIEW_MANAGER_VIEW_TYPE_EAP:
+ default:
+ /* Lets disable the scan updates so that the UI is not refreshed */
+ wlan_manager_disable_scan_result_update();
+ break;
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+void _lbutton_click_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ service_h service;
+ int ret;
+
+ ret = service_create(&service);
+ if (ret != SERVICE_ERROR_NONE) {
+ INFO_LOG(UG_NAME_ERR, "service_create failed: %d", ret);
+ return;
+ }
+
+ service_add_extra_data(service, "result", "lbutton_click");
+ ug_send_result(ug_app_state->ug, service);
+
+ service_destroy(service);
+ ug_destroy_me(ug_app_state->ug);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+void _rbutton_click_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ service_h service;
+ int ret;
+
+ ret = service_create(&service);
+ if (ret != SERVICE_ERROR_NONE) {
+ INFO_LOG(UG_NAME_ERR, "service_create failed: %d", ret);
+ return;
+ }
+
+ service_add_extra_data(service, "result", "rbutton_click");
+ ug_send_result(ug_app_state->ug, service);
+
+ service_destroy(service);
+ ug_destroy_me(ug_app_state->ug);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+void _back_sk_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (ug_app_state->bAlive == EINA_FALSE)
+ return;
+
+ wifi_exit();
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static Eina_Bool __scan_request(void *data)
+{
+ int ret = WLAN_MANAGER_ERR_NONE;
+
+ ret = wlan_manager_request_scan();
+ if (ret == WLAN_MANAGER_ERR_NONE) {
+ viewer_manager_show(VIEWER_WINSET_SEARCHING);
+ viewer_manager_header_mode_set(HEADER_MODE_SEARCHING);
+ } else
+ INFO_LOG(COMMON_NAME_ERR, "Manual scan failed. Err = %d", ret);
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static void __refresh_scan_callback(void *data,
+ Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ int cur_state = -1;
+ cur_state = viewer_manager_header_mode_get();
+
+ switch (cur_state) {
+ case HEADER_MODE_DEACTIVATING:
+ case HEADER_MODE_OFF:
+ power_control();
+ viewer_manager_show(VIEWER_WINSET_SEARCHING);
+ break;
+
+ case HEADER_MODE_ON:
+ case HEADER_MODE_CONNECTED:
+ ecore_idler_add(__scan_request, NULL);
+ break;
+
+ default:
+ INFO_LOG(UG_NAME_NORMAL, "Manual scan requested in wrong state: %d",
+ cur_state);
+ break;
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static char *_gl_header_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ char* det = NULL;
+
+ __COMMON_FUNC_ENTER__;
+
+ if (manager_object == NULL)
+ return NULL;
+
+ if (!strncmp(part, "elm.text", strlen(part))) {
+ det = g_strdup(manager_object->header_text);
+ assertm_if(NULL == det, "NULL!!");
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return det;
+}
+
+static void _gl_header_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ const HEADER_MODES header_mode = viewer_manager_header_mode_get();
+ if (HEADER_MODE_ACTIVATING != header_mode && HEADER_MODE_DEACTIVATING != header_mode)
+ power_control();
+
+ elm_genlist_item_update(manager_object->item_header);
+
+ elm_genlist_item_selected_set(manager_object->item_header, EINA_FALSE);
+
+ __COMMON_FUNC_EXIT__;
+ return;
+}
+
+static Evas_Object *_gl_header_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ if (manager_object == NULL)
+ return NULL;
+
+ Evas_Object *icon = NULL;
+
+ __COMMON_FUNC_ENTER__;
+
+ if (!strncmp(part, "elm.icon", strlen(part))) {
+ switch (manager_object->header_mode) {
+ case HEADER_MODE_OFF:
+ /* Show WiFi off indication button */
+ icon = elm_check_add(obj);
+ elm_object_style_set(icon, "on&off");
+ evas_object_propagate_events_set(icon, EINA_TRUE);
+ elm_check_state_set(icon, EINA_FALSE);
+ evas_object_smart_callback_add(icon, "changed", _gl_header_sel_cb, NULL);//item_data);
+ evas_object_show(icon);
+ break;
+
+ case HEADER_MODE_ACTIVATING:
+ case HEADER_MODE_DEACTIVATING:
+ /* Dont display the WiFi on/off indication while it is Activating/Deactivating */
+ icon = elm_progressbar_add(obj);
+ elm_object_style_set(icon, "list_process");
+ evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, 0.5);
+ evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_progressbar_pulse(icon, TRUE);
+ break;
+
+ default: /* Show WiFi on indication button */
+ icon = elm_check_add(obj);
+ elm_object_style_set(icon, "on&off");
+ evas_object_propagate_events_set(icon, EINA_TRUE);
+ evas_object_smart_callback_add(icon, "changed", _gl_header_sel_cb, NULL);//item_data);
+ elm_check_state_set(icon, EINA_TRUE);
+ evas_object_show(icon);
+ break;
+ }
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return icon;
+}
+
+static char *_gl_bottom_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ char* det = NULL;
+
+ __COMMON_FUNC_ENTER__;
+
+ if (!strncmp(part, "elm.text", strlen(part))) {
+ det = g_strdup(sc(PACKAGE, I18N_TYPE_Network_notification));
+ assertm_if(NULL == det, "NULL!!");
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return det;
+}
+
+static char *_gl_bottom_helper_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ char* det = NULL;
+
+ __COMMON_FUNC_ENTER__;
+
+ det = g_strdup(sc(PACKAGE, I18N_TYPE_Network_notify_me_later));
+
+ __COMMON_FUNC_EXIT__;
+ return det;
+}
+
+static void _gl_bottom_sel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ int ret = -1;
+ int bottom_ret = (int)elm_check_state_get(obj);
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+
+ INFO_LOG(UG_NAME_NORMAL, "bottom state[%d] is different", bottom_ret);
+
+ ret = common_util_get_system_registry(VCONFKEY_WIFI_ENABLE_QS);
+ switch (ret) {
+ case 1:
+ common_util_set_system_registry(VCONFKEY_WIFI_ENABLE_QS,
+ VCONFKEY_WIFI_QS_DISABLE);
+ break;
+
+ case 0:
+ common_util_set_system_registry(VCONFKEY_WIFI_ENABLE_QS,
+ VCONFKEY_WIFI_QS_ENABLE);
+ break;
+
+ default:
+ ERROR_LOG(UG_NAME_NORMAL, "Failed to get VCONFKEY_WIFI_ENABLE_QS");
+ break;
+ }
+
+ elm_genlist_item_update(item);
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static Evas_Object *_gl_bottom_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (manager_object == NULL || obj == NULL)
+ return NULL;
+
+ int ret = -1;
+
+ Evas_Object *toggle_btn = elm_check_add(obj);
+ assertm_if(NULL == toggle_btn, "NULL!!");
+ elm_object_style_set(toggle_btn, "on&off");
+ evas_object_propagate_events_set(toggle_btn, EINA_TRUE);
+ ret = common_util_get_system_registry(VCONFKEY_WIFI_ENABLE_QS);
+ switch (ret) {
+ case 1:
+ elm_check_state_set(toggle_btn, EINA_TRUE);
+ break;
+ case 0:
+ elm_check_state_set(toggle_btn, EINA_FALSE);
+ break;
+ default:
+ assertm_if(TRUE, "Setting fail!!");
+ break;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return toggle_btn;
+}
+
+static void _hidden_button_callback(void* data, Evas_Object* obj, void* event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ ug_app_state->hidden_ap_popup = view_hidden_ap_popup_create(ug_app_state->layout_main, PACKAGE);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static Evas_Object *_gl_hidden_btn_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ Evas_Object *find_hidden_ap_btn = elm_button_add(obj);
+ evas_object_smart_callback_add(find_hidden_ap_btn, "clicked", _hidden_button_callback, NULL);
+ evas_object_propagate_events_set(find_hidden_ap_btn, EINA_FALSE);
+ elm_object_style_set(find_hidden_ap_btn, "style2");
+ elm_object_text_set(find_hidden_ap_btn, sc(PACKAGE, I18N_TYPE_Find_Hidden_Network));
+
+ return find_hidden_ap_btn;
+}
+
+static int viewer_manager_header_create(Evas_Object* genlist)
+{
+ __COMMON_FUNC_ENTER__;
+ manager_object->header_text = g_strdup(sc(PACKAGE, I18N_TYPE_Wi_Fi));
+
+ header_itc_text.item_style = "dialogue/1text.1icon";
+ header_itc_text.func.text_get = _gl_header_text_get;
+ header_itc_text.func.content_get = _gl_header_content_get;
+ header_itc_text.func.state_get = NULL;
+ header_itc_text.func.del = NULL;
+
+ common_utils_add_dialogue_separator(genlist, "dialogue/separator");
+
+ assertm_if(NULL != manager_object->item_header, "ERROR!!");
+ manager_object->item_header = elm_genlist_item_append(genlist, &header_itc_text, NULL, NULL, ELM_GENLIST_ITEM_NONE, _gl_header_sel_cb, NULL);
+ assertm_if(NULL == manager_object->item_header, "NULL!!");
+
+ common_utils_add_dialogue_separator(genlist, "dialogue/separator");
+
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+}
+
+static int viewer_manager_bottom_create(Evas_Object* genlist)
+{
+ __COMMON_FUNC_ENTER__;
+ assertm_if(NULL == genlist, "NULL!!");
+
+ bottom_itc_text.item_style = "dialogue/1text.1icon";
+ bottom_itc_text.func.text_get = _gl_bottom_text_get;
+ bottom_itc_text.func.content_get = _gl_bottom_content_get;
+ bottom_itc_text.func.state_get = NULL;
+ bottom_itc_text.func.del = NULL;
+
+ bottom_itc_helper_text.item_style = "multiline/1text";
+ bottom_itc_helper_text.func.text_get = _gl_bottom_helper_text_get;
+ bottom_itc_helper_text.func.content_get = NULL;
+ bottom_itc_helper_text.func.state_get = NULL;
+ bottom_itc_helper_text.func.del = NULL;
+
+ elm_genlist_item_append(genlist, &bottom_itc_text, NULL, NULL, ELM_GENLIST_ITEM_NONE, _gl_bottom_sel_cb, NULL);
+
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+ Elm_Object_Item *item = elm_genlist_item_append(genlist, &bottom_itc_helper_text, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ common_utils_add_dialogue_separator(genlist, "dialogue/separator");
+
+ __COMMON_FUNC_EXIT__;
+
+ return TRUE;
+}
+
+static int viewer_manager_hidden_button_create(Evas_Object* genlist)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (NULL != manager_object->item_sep_above_hidden_button ||
+ NULL != manager_object->item_sep_below_hidden_button ||
+ NULL != manager_object->item_hidden_btn) {
+
+ __COMMON_FUNC_EXIT__;
+ return FALSE;
+ }
+
+ assertm_if(NULL == genlist, "NULL!!");
+
+ hidden_button_itc.item_style = "1icon";
+ hidden_button_itc.func.text_get = NULL;
+ hidden_button_itc.func.content_get = _gl_hidden_btn_content_get;
+ hidden_button_itc.func.state_get = NULL;
+ hidden_button_itc.func.del = NULL;
+
+ manager_object->item_sep_above_hidden_button = common_utils_add_dialogue_separator(genlist, "dialogue/separator");
+
+ manager_object->item_hidden_btn = elm_genlist_item_append(genlist, &hidden_button_itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ assertm_if(NULL == manager_object->item_hidden_btn, "NULL!!");
+
+ manager_object->item_sep_below_hidden_button = common_utils_add_dialogue_separator(genlist, "dialogue/separator");
+
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+}
+
+static Eina_Bool viewer_manager_scan_button_set(Eina_Bool show_state)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if(NULL == manager_object) {
+ __COMMON_FUNC_EXIT__;
+ return EINA_FALSE;
+ }
+
+ if (show_state == EINA_TRUE) {
+ Evas_Object* navi_frame = viewer_manager_get_naviframe();
+ view_manager_view_type_t top_view_id = (view_manager_view_type_t)evas_object_data_get(navi_frame, SCREEN_TYPE_ID_KEY);
+ if(VIEW_MANAGER_VIEW_TYPE_MAIN == top_view_id) {
+ INFO_LOG(UG_NAME_NORMAL,"Show directly");
+ elm_object_item_disabled_set((Elm_Object_Item *)manager_object->scan_button, EINA_FALSE);
+ } else {
+ INFO_LOG(UG_NAME_NORMAL,"Show reserve");
+ }
+ } else if (show_state == EINA_FALSE) {
+ elm_object_item_disabled_set((Elm_Object_Item *)manager_object->scan_button, EINA_TRUE);
+ }
+
+ __COMMON_FUNC_EXIT__;
+
+ return EINA_TRUE;
+}
+
+Evas_Object* viewer_manager_create(Evas_Object* _parent)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (manager_object != NULL || _parent == NULL) {
+ __COMMON_FUNC_EXIT__;
+ return NULL;
+ }
+
+ manager_object = g_new0(viewer_manager_object, 1);
+
+ /* Add Full Layout */
+ Evas_Object *layout = elm_layout_add(_parent);
+ elm_layout_theme_set(layout, "layout", "application", "default");
+ evas_object_size_hint_weight_set(layout,
+ EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(_parent, layout);
+ edje_object_signal_emit(elm_layout_edje_get(layout),
+ "elm,state,show,content", "elm");
+ edje_object_signal_emit(elm_layout_edje_get(layout),
+ "elm,bg,show,group_list", "elm");
+ edje_object_signal_emit(elm_layout_edje_get(layout),
+ "elm,state,show,indicator", "elm");
+
+ /* Add Naviframe */
+ manager_object->nav = elm_naviframe_add(layout);
+ elm_object_part_content_set(layout,
+ "elm.swallow.content", manager_object->nav);
+
+ /* Add MainView Layout */
+ Evas_Object* view_content = elm_layout_add(manager_object->nav);
+ elm_layout_theme_set(view_content, "standard", "window", "integration");
+ edje_object_signal_emit(elm_layout_edje_get(view_content),
+ "elm,state,show,content", "elm");
+ edje_object_signal_emit(elm_layout_edje_get(view_content),
+ "elm,bg,show,group_list", "elm");
+
+ /* Add Genlist */
+ manager_object->list = viewer_list_create(view_content);
+ assertm_if(NULL == manager_object->list, "manager_object->list is NULL!!");
+ viewer_manager_header_create(manager_object->list);
+ viewer_manager_bottom_create(manager_object->list);
+
+ elm_object_part_content_set(view_content,
+ "elm.swallow.content", manager_object->list);
+
+ if (ug_app_state->ug_type == UG_VIEW_SETUP_WIZARD) {
+ Elm_Object_Item* navi_it = elm_naviframe_item_push(manager_object->nav,
+ sc(PACKAGE, I18N_TYPE_Wi_Fi), NULL, NULL, view_content, NULL);
+ evas_object_data_set(manager_object->nav, SCREEN_TYPE_ID_KEY,
+ (void *)VIEW_MANAGER_VIEW_TYPE_MAIN);
+ evas_object_smart_callback_add(manager_object->nav,
+ "transition,finished", _hide_finished_cb, navi_it);
+
+ manager_object->prev_button = elm_button_add(manager_object->nav);
+ elm_object_style_set(manager_object->prev_button,
+ "naviframe/toolbar/default");
+ elm_object_text_set(manager_object->prev_button,
+ ug_app_state->lbutton_setup_wizard_prev);
+ evas_object_smart_callback_add(manager_object->prev_button,
+ "clicked", _lbutton_click_cb, NULL);
+ elm_object_item_part_content_set(navi_it, "toolbar_button1",
+ manager_object->prev_button);
+
+ manager_object->next_button = elm_button_add(manager_object->nav);
+ elm_object_style_set(manager_object->next_button,
+ "naviframe/toolbar/default");
+ elm_object_text_set(manager_object->next_button,
+ ug_app_state->rbutton_setup_wizard_next);
+ evas_object_smart_callback_add(manager_object->next_button,
+ "clicked", _rbutton_click_cb, NULL);
+ elm_object_item_part_content_set(navi_it, "toolbar_button2",
+ manager_object->next_button);
+ } else {
+ Evas_Object* back_btn = elm_button_add(manager_object->nav);
+ elm_object_style_set(back_btn, "naviframe/back_btn/default");
+ evas_object_smart_callback_add(back_btn, "clicked", _back_sk_cb, NULL);
+
+ Elm_Object_Item* navi_it = elm_naviframe_item_push(manager_object->nav,
+ sc(PACKAGE, I18N_TYPE_Wi_Fi), back_btn, NULL,
+ view_content, NULL);
+ evas_object_data_set(manager_object->nav, SCREEN_TYPE_ID_KEY,
+ (void *)VIEW_MANAGER_VIEW_TYPE_MAIN);
+ evas_object_smart_callback_add(manager_object->nav,
+ "transition,finished", _hide_finished_cb, navi_it);
+
+ manager_object->scan_button = elm_button_add(manager_object->nav);
+ elm_object_style_set(manager_object->scan_button,
+ "naviframe/toolbar/default");
+ elm_object_text_set(manager_object->scan_button,
+ sc(PACKAGE, I18N_TYPE_Scan));
+ evas_object_smart_callback_add(manager_object->scan_button,
+ "clicked", __refresh_scan_callback, NULL);
+ elm_object_item_part_content_set(navi_it,
+ "toolbar_button1", manager_object->scan_button);
+ }
+
+ evas_object_show(layout);
+
+ __COMMON_FUNC_EXIT__;
+ return layout;
+}
+
+Eina_Bool viewer_manager_destroy()
+{
+ __COMMON_FUNC_ENTER__;
+
+ viewer_list_destroy();
+ if (manager_object) {
+ if (manager_object->header_text) {
+ g_free(manager_object->header_text);
+ manager_object->header_text = NULL;
+ }
+ g_free(manager_object);
+ manager_object = NULL;
+ }
+ __COMMON_FUNC_EXIT__;
+ return EINA_TRUE;
+}
+
+Eina_Bool viewer_manager_show(VIEWER_WINSETS winset)
+{
+ __COMMON_FUNC_ENTER__;
+
+ assertm_if(NULL == manager_object, "NULL!!");
+
+ switch (winset) {
+ case VIEWER_WINSET_SEARCHING:
+ viewer_manager_scan_button_set(EINA_FALSE);
+ viewer_list_item_disable_all();
+ break;
+ case VIEWER_WINSET_SUB_CONTENTS:
+ assertm_if(NULL == manager_object->list, "NULL!!");
+ viewer_list_title_item_set();
+ viewer_manager_hidden_button_create(manager_object->list);
+ break;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return EINA_TRUE;
+}
+
+Eina_Bool viewer_manager_hide(VIEWER_WINSETS winset)
+{
+ __COMMON_FUNC_ENTER__;
+
+ switch (winset) {
+ case VIEWER_WINSET_SEARCHING:
+ /* searching view */
+ viewer_manager_scan_button_set(EINA_TRUE);
+ viewer_list_item_enable_all();
+ break;
+ case VIEWER_WINSET_SUB_CONTENTS:
+ /* hidden AP and WPS PBC */
+ if (ug_app_state->passpopup) {
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ }
+ if (ug_app_state->eap_view) {
+ eap_view_close(ug_app_state->eap_view);
+ ug_app_state->eap_view = NULL;
+ }
+ viewer_list_title_item_del();
+ assertm_if(NULL == manager_object->item_sep_above_hidden_button, "NULL!!");
+ assertm_if(NULL == manager_object->item_sep_below_hidden_button, "NULL!!");
+ assertm_if(NULL == manager_object->item_hidden_btn, "NULL!!");
+ elm_object_item_del(manager_object->item_sep_above_hidden_button);
+ elm_object_item_del(manager_object->item_sep_below_hidden_button);
+ elm_object_item_del(manager_object->item_hidden_btn);
+ manager_object->item_sep_above_hidden_button = NULL;
+ manager_object->item_sep_below_hidden_button = NULL;
+ manager_object->item_hidden_btn = NULL;
+ break;
+ default:
+ /* Err */
+ assertm_if(TRUE, "Err!!");
+ break;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return EINA_TRUE;
+}
+
+Eina_Bool viewer_manager_genlist_item_update(Elm_Object_Item* item)
+{
+ __COMMON_FUNC_ENTER__;
+ if (item == NULL) {
+ __COMMON_FUNC_EXIT__;
+ return EINA_FALSE;
+ }
+
+ elm_genlist_item_update(item);
+
+ __COMMON_FUNC_EXIT__;
+ return EINA_FALSE;
+}
+
+int viewer_manager_hidden_disable_set(int mode)
+{
+ __COMMON_FUNC_ENTER__;
+ assertm_if(NULL == manager_object->item_hidden_btn, "NULL!!");
+
+ elm_object_item_disabled_set(manager_object->item_hidden_btn, mode);
+ elm_genlist_item_update(manager_object->item_hidden_btn);
+
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+}
+
+static Eina_Bool _gl_bring_in(void *data)
+{
+ if (manager_object == NULL)
+ return ECORE_CALLBACK_CANCEL;
+
+ if (manager_object->item_header == NULL)
+ return ECORE_CALLBACK_CANCEL;
+
+ elm_genlist_item_bring_in(manager_object->item_header, ELM_GENLIST_ITEM_SCROLLTO_IN);
+ return ECORE_CALLBACK_CANCEL;
+}
+
+void viewer_manager_scroll_to_top()
+{
+ if (manager_object->item_header == NULL)
+ return;
+
+ ecore_idler_add((Ecore_Task_Cb)_gl_bring_in, NULL);
+}
+
+static void viewer_manager_setup_wizard_button_controller(HEADER_MODES mode)
+{
+ switch (mode) {
+ case HEADER_MODE_OFF:
+ case HEADER_MODE_ON:
+ if (manager_object->next_button != NULL && ug_app_state->rbutton_setup_wizard_skip != NULL)
+ elm_object_text_set(manager_object->next_button, ug_app_state->rbutton_setup_wizard_skip);
+ break;
+ case HEADER_MODE_CONNECTED:
+ if (manager_object->next_button != NULL && ug_app_state->rbutton_setup_wizard_next != NULL)
+ elm_object_text_set(manager_object->next_button, ug_app_state->rbutton_setup_wizard_next);
+ break;
+ default:
+ break;
+ }
+}
+
+int viewer_manager_header_mode_set(HEADER_MODES mode)
+{
+ __COMMON_FUNC_ENTER__;
+
+ assertm_if(NULL == manager_object, "NULL!!");
+ assertm_if(NULL == manager_object->item_header, "NULL!!");
+ assertm_if(HEADER_MODE_OFF > mode || HEADER_MODE_MAX <= mode, "Err!!");
+
+ if (manager_object->header_mode == mode) {
+ return FALSE;
+ }
+
+ DEBUG_LOG(UG_NAME_NORMAL, "Header mode changing from %d --> %d", manager_object->header_mode, mode);
+ manager_object->header_mode = mode;
+ if (manager_object->header_text) {
+ g_free(manager_object->header_text);
+ manager_object->header_text = NULL;
+ }
+
+ switch (mode) {
+ case HEADER_MODE_OFF:
+ case HEADER_MODE_ON:
+ case HEADER_MODE_CONNECTED:
+ viewer_manager_hidden_disable_set(FALSE);
+ viewer_manager_scan_button_set(EINA_TRUE);
+ manager_object->header_text = g_strdup(sc(PACKAGE, I18N_TYPE_Wi_Fi));
+ break;
+ case HEADER_MODE_ACTIVATING:
+ viewer_manager_hidden_disable_set(TRUE);
+ manager_object->header_text = g_strdup(sc(PACKAGE, I18N_TYPE_Activating_WiFi));
+ break;
+ case HEADER_MODE_DEACTIVATING:
+ viewer_manager_hidden_disable_set(TRUE);
+ manager_object->header_text = g_strdup(sc(PACKAGE, I18N_TYPE_Deactivating));
+ break;
+ case HEADER_MODE_CONNECTING:
+ case HEADER_MODE_DISCONNECTING:
+ case HEADER_MODE_CANCEL_CONNECTING:
+ case HEADER_MODE_SEARCHING:
+ viewer_manager_hidden_disable_set(TRUE);
+ manager_object->header_text = g_strdup(sc(PACKAGE, I18N_TYPE_Wi_Fi));
+ break;
+ default:
+ assertm_if(TRUE, "Err!!");
+ break;
+ }
+
+
+ elm_genlist_item_update(manager_object->item_header);
+ viewer_list_title_item_update();
+
+
+ if (ug_app_state->ug_type == UG_VIEW_SETUP_WIZARD) {
+ viewer_manager_setup_wizard_button_controller(mode);
+ }
+
+ __COMMON_FUNC_EXIT__;
+
+ return TRUE;
+}
+
+HEADER_MODES viewer_manager_header_mode_get(void){
+ __COMMON_FUNC_ENTER__;
+ assertm_if(HEADER_MODE_OFF > manager_object->header_mode ||
+ HEADER_MODE_MAX <= manager_object->header_mode, "Err!");
+ __COMMON_FUNC_EXIT__;
+
+ return manager_object->header_mode;
+}
+
+Evas_Object* viewer_manager_get_naviframe()
+{
+ return manager_object->nav;
+}
+
+void viewer_manager_update_ap_handle(Elm_Object_Item *item, wifi_ap_h ap)
+{
+ if (!item || !ap) {
+ return;
+ }
+
+ ug_genlist_data_t *gdata = elm_object_item_data_get(item);
+ if (!gdata) {
+ return;
+ }
+ wifi_device_info_t *wifi_device = gdata->device_info;
+ if (!wifi_device) {
+ return;
+ }
+ wifi_ap_h ap_to_destroy = wifi_device->ap;
+ if (WIFI_ERROR_NONE == wifi_ap_clone(&(wifi_device->ap), ap)) {
+ wifi_ap_destroy(ap_to_destroy);
+ }
+
+ return;
+}
+
+Elm_Object_Item *viewer_manager_move_item_to_top(Elm_Object_Item *old_item)
+{
+ __COMMON_FUNC_ENTER__;
+ Elm_Object_Item *new_item = NULL;
+ Elm_Object_Item *first_item = viewer_list_get_first_item();
+ ug_genlist_data_t *gdata = NULL;
+ wifi_device_info_t *old_wifi_device = NULL;
+
+ if (!old_item || !first_item) {
+ __COMMON_FUNC_EXIT__;
+ return NULL;
+ }
+
+ gdata = elm_object_item_data_get(old_item);
+ if (!gdata || !gdata->device_info) {
+ __COMMON_FUNC_EXIT__;
+ return NULL;
+ }
+ old_wifi_device = gdata->device_info;
+
+ if (old_item == first_item) {
+ __COMMON_FUNC_EXIT__;
+ return old_item;
+ }
+
+ new_item = viewer_list_item_insert_after(old_wifi_device->ap, NULL);
+ viewer_list_item_del(old_item);
+
+ __COMMON_FUNC_EXIT__;
+ return new_item;
+}
+
+void viewer_manager_update_connected_ap_sig_str(void)
+{
+ wifi_ap_h ap;
+ int ret = wifi_get_connected_ap(&ap);
+ if (WIFI_ERROR_NONE != ret) {
+ return;
+ }
+ Elm_Object_Item *item = item_get_for_ap(ap);
+ if (!item) {
+ wifi_ap_destroy(ap);
+ return;
+ }
+
+ ug_genlist_data_t* gdata = elm_object_item_data_get(item);
+ if (gdata && gdata->device_info) {
+ int rssi = 0;
+ if (WIFI_ERROR_NONE != wifi_ap_get_rssi(ap, &rssi)) {
+ wifi_ap_destroy(ap);
+ return;
+ } else if (gdata->device_info->rssi != rssi) {
+ gdata->device_info->rssi = rssi;
+ g_free(gdata->device_info->ap_image_path);
+ gdata->device_info->ap_image_path = common_utils_get_device_icon(WIFI_APP_IMAGE_DIR, gdata->device_info);
+ elm_genlist_item_update(item);
+ }
+ }
+ wifi_ap_destroy(ap);
+}
+
+static bool wifi_update_list_for_each_ap(wifi_ap_h ap, void *user_data)
+{
+ view_manager_list_update_info_t *update_info = (view_manager_list_update_info_t *)user_data;
+ Elm_Object_Item *item;;
+
+ item = viewer_list_item_insert_after(ap, update_info->last_appended_item);
+ if (item) {
+ update_info->last_appended_item = item;
+ update_info->total_items_added++;
+ }
+
+ return true;
+}
+
+static void viewer_manager_update_list_all()
+{
+ Elm_Object_Item *item = NULL;
+
+ __COMMON_FUNC_ENTER__;
+
+ view_manager_list_update_info_t update_info;
+ memset(&update_info, 0, sizeof(update_info));
+
+ wifi_foreach_found_aps (wifi_update_list_for_each_ap, &update_info);
+ DEBUG_LOG(UG_NAME_NORMAL, "total items added = %d", update_info.total_items_added);
+
+ if (0 == update_info.total_items_added) {
+ /* if there is no scan_data, generate No-AP item */
+ item = viewer_list_item_insert_after(NULL, NULL);
+ if (item) {
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ }
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+Eina_Bool viewer_manager_refresh(void)
+{
+ INFO_LOG(UG_NAME_SCAN, "UI update start");
+ int profile_state;
+
+ if (manager_object == NULL)
+ return EINA_FALSE;
+
+ /* Remove the list */
+ viewer_list_item_clear();
+
+ profile_state = wlan_manager_state_get();
+ if (WLAN_MANAGER_ERROR == profile_state || WLAN_MANAGER_OFF == profile_state) {
+ /* Some body requested to refresh the list while the WLAN manager is OFF or Unable to get the profile state */
+ INFO_LOG(UG_NAME_ERR, "Refresh requested in wrong state or Unable to get the state. Profile state = %d !!! ", profile_state);
+ viewer_manager_header_mode_set(HEADER_MODE_OFF);
+ return EINA_FALSE;
+ }
+
+ wifi_ap_h ap = wlan_manager_get_ap_with_state(profile_state);
+ viewer_manager_update_list_all();
+
+ if (WLAN_MANAGER_CONNECTING == profile_state) {
+ INFO_LOG(UG_NAME_NORMAL, "Profile is connecting...");
+ Elm_Object_Item* target_item = item_get_for_ap(ap);
+ viewer_manager_header_mode_set(HEADER_MODE_CONNECTING);
+ viewer_list_item_radio_mode_set(target_item, VIEWER_ITEM_RADIO_MODE_CONNECTING);
+ } else if (WLAN_MANAGER_CONNECTED == profile_state) {
+ INFO_LOG(UG_NAME_NORMAL, "Profile is connected");
+ Elm_Object_Item* target_item = item_get_for_ap(ap);
+ target_item = viewer_manager_move_item_to_top(target_item);
+ viewer_manager_header_mode_set(HEADER_MODE_CONNECTED);
+ viewer_list_item_radio_mode_set(target_item, VIEWER_ITEM_RADIO_MODE_CONNECTED);
+ } else if (WLAN_MANAGER_DISCONNECTING == profile_state) {
+ INFO_LOG(UG_NAME_NORMAL, "Profile is disconnecting");
+ Elm_Object_Item* target_item = item_get_for_ap(ap);
+ viewer_manager_header_mode_set(HEADER_MODE_DISCONNECTING);
+ viewer_list_item_radio_mode_set(target_item, VIEWER_ITEM_RADIO_MODE_DISCONNECTING);
+ } else {
+ INFO_LOG(UG_NAME_NORMAL, "Profile state = %d", profile_state);
+ viewer_manager_header_mode_set(HEADER_MODE_ON);
+ }
+ wifi_ap_destroy(ap);
+ INFO_LOG(UG_NAME_SCAN, "UI update finish");
+
+ return EINA_TRUE;
+}
+
+static void hidden_ap_connect_ok_cb (void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ hidden_ap_data_t *hidden_ap_data = (hidden_ap_data_t *)data;
+ if (!hidden_ap_data)
+ return;
+
+ char* szPassword = NULL;
+ wifi_ap_h ap;
+ int ret = wifi_ap_create(hidden_ap_data->ssid, &ap);
+ if (WIFI_ERROR_NONE != ret) {
+ ERROR_LOG(UG_NAME_ERR, "Failed to create an AP handle. Err = %d", ret);
+ return;
+ }
+ INFO_LOG(UG_NAME_NORMAL, "Hidden AP[%s]. Sec mode = %d. Connect ok cb", hidden_ap_data->ssid, hidden_ap_data->sec_mode);
+
+ switch (hidden_ap_data->sec_mode) {
+ case WLAN_SEC_MODE_NONE:
+ INFO_LOG(UG_NAME_NORMAL, "This hidden AP is Open. event info = %x; passpopup = %x", event_info, ug_app_state->passpopup);
+ wifi_ap_set_security_type(ap, WIFI_SECURITY_TYPE_NONE);
+ evas_object_del(hidden_ap_data->confirmation_popup);
+ hidden_ap_data->confirmation_popup = NULL;
+ break;
+
+ case WLAN_SEC_MODE_WEP:
+ case WLAN_SEC_MODE_WPA_PSK:
+ case WLAN_SEC_MODE_WPA2_PSK:
+ szPassword = common_pswd_popup_get_txt(ug_app_state->passpopup);
+ INFO_LOG(UG_NAME_NORMAL, "Hidden AP paswd = [%s]", szPassword);
+ if (WLAN_SEC_MODE_WEP == hidden_ap_data->sec_mode) {
+ wifi_ap_set_security_type(ap, WIFI_SECURITY_TYPE_WEP);
+ } else if (WLAN_SEC_MODE_WPA_PSK == hidden_ap_data->sec_mode) {
+ wifi_ap_set_security_type(ap, WIFI_SECURITY_TYPE_WPA_PSK);
+ } else {
+ wifi_ap_set_security_type(ap, WIFI_SECURITY_TYPE_WPA2_PSK);
+ }
+ wifi_ap_set_passphrase(ap, szPassword);
+ g_free(szPassword);
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ break;
+
+ default:
+ INFO_LOG(UG_NAME_NORMAL, "Fatal: Unknown Sec mode: %d", hidden_ap_data->sec_mode);
+ goto hidden_ap_connect_end;
+ }
+
+ wlan_manager_connect_with_wifi_info(ap);
+
+hidden_ap_connect_end:
+ wifi_ap_destroy(ap);
+ g_free(hidden_ap_data->ssid);
+ g_free(hidden_ap_data);
+ __COMMON_FUNC_EXIT__;
+ return;
+}
+
+static void hidden_ap_connect_cacel_cb (void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ hidden_ap_data_t *hidden_ap_data = (hidden_ap_data_t *)data;
+ if (!hidden_ap_data)
+ return;
+
+ switch (hidden_ap_data->sec_mode) {
+ case WLAN_SEC_MODE_NONE:
+ INFO_LOG(UG_NAME_NORMAL, "This hidden AP is Open");
+ evas_object_del(hidden_ap_data->confirmation_popup);
+ hidden_ap_data->confirmation_popup = NULL;
+ break;
+
+ case WLAN_SEC_MODE_WEP:
+ case WLAN_SEC_MODE_WPA_PSK:
+ case WLAN_SEC_MODE_WPA2_PSK:
+ INFO_LOG(UG_NAME_NORMAL, "Hidden AP Secured");
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ break;
+
+ default:
+ INFO_LOG(UG_NAME_NORMAL, "Fatal: Unknown Sec mode: %d", hidden_ap_data->sec_mode);
+ break;
+ }
+
+ g_free(hidden_ap_data->ssid);
+ g_free(hidden_ap_data);
+ __COMMON_FUNC_EXIT__;
+ return;
+}
+
+void viewer_manager_specific_scan_response_hlr(GSList *bss_info_list, void *user_data)
+{
+ hidden_ap_data_t *hidden_ap_data = NULL;
+ const char *ssid = (const char *)user_data;
+ wlan_security_mode_type_t sec_mode;
+
+ if (!ug_app_state->hidden_ap_popup) {
+ ERROR_LOG(UG_NAME_RESP, "Popup is already destroyed \n");
+ g_free(user_data);
+ return;
+ }
+
+ if (!ssid) {
+ ERROR_LOG(UG_NAME_RESP, "SSID is empty \n");
+ view_hidden_ap_popup_destroy(ug_app_state->hidden_ap_popup);
+ ug_app_state->hidden_ap_popup = NULL;
+ return;
+ }
+
+ INFO_LOG(UG_NAME_RESP, "Specific scan complete response received for AP[%s]", ssid);
+ int ap_count = g_slist_length(bss_info_list);
+ net_wifi_connection_info_t *bss_info = NULL;
+
+ if (ap_count == 1) {
+ bss_info = g_slist_nth_data(bss_info_list, 0);
+ if (!bss_info || g_strcmp0(ssid, bss_info->essid)) {
+ INFO_LOG(UG_NAME_RESP, "Fatal: Bss info is NULL OR response received for wrong ssid. ", ssid);
+ /* Bss info not available or Response recieved for wrong ssid */
+ ap_count = 0;
+ } else {
+ sec_mode = bss_info->security_info.sec_mode;
+ }
+ }
+
+ if (ap_count == 1) {
+ /* Only if there is one AP found then we need Users further action */
+
+ switch (sec_mode) {
+ case WLAN_SEC_MODE_NONE:
+ INFO_LOG(UG_NAME_NORMAL, "One AP item with ssid[%s] found. Its security is Open.", ssid);
+ /* This is an Open AP. Ask for confirmation to connect. */
+ hidden_ap_data = g_new0(hidden_ap_data_t, 1);
+ hidden_ap_data->sec_mode = WLAN_SEC_MODE_NONE;
+ hidden_ap_data->ssid = g_strdup(ssid);
+
+ popup_btn_info_t popup_btn_data;
+ memset(&popup_btn_data, 0, sizeof(popup_btn_data));
+ popup_btn_data.info_txt = "Wi-Fi network detected. Connect?";
+ popup_btn_data.btn1_cb = hidden_ap_connect_ok_cb;
+ popup_btn_data.btn2_cb = hidden_ap_connect_cacel_cb;
+ popup_btn_data.btn2_data = popup_btn_data.btn1_data = hidden_ap_data;
+ popup_btn_data.btn1_txt = sc(PACKAGE, I18N_TYPE_Connect);
+ popup_btn_data.btn2_txt = sc(PACKAGE, I18N_TYPE_Cancel);
+ hidden_ap_data->confirmation_popup = common_utils_show_info_popup(ug_app_state->layout_main, &popup_btn_data);
+ break;
+ case WLAN_SEC_MODE_IEEE8021X:
+ INFO_LOG(UG_NAME_NORMAL, "One AP item with ssid[%s] found. Its security is EAP.", ssid);
+ /* This is a EAP secured AP. Ask for confirmation to connect. */
+ Evas_Object* navi_frame = viewer_manager_get_naviframe();
+ wifi_device_info_t device_info;
+ wifi_ap_h ap;
+
+ wifi_ap_create(ssid, &ap);
+ wifi_ap_set_security_type(ap, common_utils_get_sec_mode(sec_mode));
+
+ memset(&device_info, 0, sizeof(device_info));
+ device_info.security_mode = sec_mode;
+ device_info.ssid = (char *)ssid;
+ device_info.ap = ap;
+ ug_app_state->eap_view = create_eap_connect_view(ug_app_state->layout_main, navi_frame, PACKAGE, &device_info);
+ wifi_ap_destroy(ap);
+ break;
+ case WLAN_SEC_MODE_WEP:
+ case WLAN_SEC_MODE_WPA_PSK:
+ case WLAN_SEC_MODE_WPA2_PSK:
+ INFO_LOG(UG_NAME_NORMAL, "One AP item with ssid[%s] found. Its security is %d", ssid, sec_mode);
+ /* This is a WEP/WPA/WPA-2 secured AP. Ask for confirmation to connect. */
+ hidden_ap_data = g_new0(hidden_ap_data_t, 1);
+ pswd_popup_create_req_data_t popup_info;
+ memset(&popup_info, 0, sizeof(pswd_popup_create_req_data_t));
+ hidden_ap_data->sec_mode = sec_mode;
+ hidden_ap_data->ssid = g_strdup(ssid);
+ popup_info.title = (char *)ssid;
+ popup_info.ok_cb = hidden_ap_connect_ok_cb;
+ popup_info.cancel_cb = hidden_ap_connect_cacel_cb;
+ popup_info.show_wps_btn = FALSE;
+ popup_info.wps_btn_cb = NULL;
+ popup_info.cb_data = hidden_ap_data;
+ popup_info.ap = NULL;
+ INFO_LOG(UG_NAME_NORMAL, "Going to create a popup. ug_app_state = 0x%x", ug_app_state);
+ ug_app_state->passpopup = common_pswd_popup_create(ug_app_state->layout_main, PACKAGE, &popup_info);
+ INFO_LOG(UG_NAME_NORMAL, "After create a popup");
+ if (ug_app_state->passpopup == NULL) {
+ INFO_LOG(UG_NAME_ERR, "pass popup create failed !");
+ }
+ break;
+ default:
+ INFO_LOG(UG_NAME_NORMAL, "Unkown security mode: %d", sec_mode);
+ break;
+ }
+ } else if (ap_count == 0) {
+ INFO_LOG(UG_NAME_NORMAL, "No AP item with ssid[%s] found", ssid);
+ char *disp_msg = g_strdup_printf("Unable to find %s", ssid);
+ common_utils_show_info_ok_popup(ug_app_state->layout_main, PACKAGE, disp_msg);
+ g_free(disp_msg);
+ } else {
+ INFO_LOG(UG_NAME_NORMAL, "More than one AP items with ssid[%s] found", ssid);
+ }
+
+ /* If the hidden AP found on first and second scan OR not found even after first and second scan then delete the popup */
+ g_free(user_data);
+ view_hidden_ap_popup_destroy(ug_app_state->hidden_ap_popup);
+ ug_app_state->hidden_ap_popup = NULL;
+ return;
+}
diff --git a/sources/ui-gadget/viewers-layout/wifi_viewer_list.c b/sources/ui-gadget/viewers-layout/wifi_viewer_list.c
new file mode 100644
index 0000000..7255874
--- /dev/null
+++ b/sources/ui-gadget/viewers-layout/wifi_viewer_list.c
@@ -0,0 +1,840 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "common.h"
+#include "common_utils.h"
+#include "ug_wifi.h"
+#include "wlan_manager.h"
+#include "view_detail.h"
+#include "viewer_list.h"
+#include "viewer_manager.h"
+#include "appcoreWrapper.h"
+#include "i18nmanager.h"
+
+#define LIST_ITEM_CONNECTED_AP_FONT_SIZE 28
+#define LIST_ITEM_CONNECTED_AP_FONT_COLOR "#3B73B6"
+#define FIRST_ITEM_NUMBER 8
+
+
+static Evas_Object* viewer_list = NULL;
+static Elm_Object_Item* first_item = NULL;
+static Elm_Object_Item* last_item = NULL;
+
+static Elm_Genlist_Item_Class itc;
+static Elm_Genlist_Item_Class grouptitle_itc;
+static Elm_Object_Item* grouptitle = NULL;
+
+extern wifi_appdata *ug_app_state;
+
+void list_select_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ INFO_LOG(UG_NAME_NORMAL,"=================\n");
+ INFO_LOG(UG_NAME_NORMAL," %s %d\n", __func__ ,__LINE__);
+ INFO_LOG(UG_NAME_NORMAL,"=================\n");
+
+ if (data == NULL) {
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ wifi_device_info_t *device_info = (wifi_device_info_t *)data;
+
+ DEBUG_LOG(UG_NAME_NORMAL, "ssid [%s]", device_info->ssid);
+
+ view_detail(device_info, ug_app_state->layout_main);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static char* _gl_listview_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ char* det = NULL;
+ assertm_if(NULL == obj, "NULL!!");
+ assertm_if(NULL == part, "NULL!!");
+ assertm_if(NULL == data, "NULL!!");
+
+ ug_genlist_data_t* gdata = (ug_genlist_data_t*) data;
+ assertm_if(NULL == gdata, "NULL!!");
+ assertm_if(NULL == gdata->device_info, "NULL!!");
+ assertm_if(NULL == gdata->device_info->ssid, "NULL!!");
+ assertm_if(NULL == gdata->device_info->ap_status_txt, "NULL!!");
+
+ if (!strncmp(part, "elm.text.1", strlen(part))) {
+ det = g_strdup(gdata->device_info->ssid);
+ assertm_if(NULL == det, "NULL!!");
+ } else if (!strncmp(part, "elm.text.2", strlen(part))) {
+ det = g_strdup(gdata->device_info->ap_status_txt);
+ assertm_if(NULL == det, "NULL!!");
+ }
+ return det;
+}
+
+static Evas_Object *_gl_listview_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ assertm_if(NULL == obj, "NULL!!");
+ assertm_if(NULL == data, "NULL!!");
+ assertm_if(NULL == part, "NULL!!");
+
+ ug_genlist_data_t* gdata = (ug_genlist_data_t*) data;
+ Evas_Object* icon = NULL;
+
+ if (gdata->device_info->ap_image_path == NULL) {
+ /* if there is no ap_image_path (NO AP Found situation) */
+ DEBUG_LOG(UG_NAME_ERR, "Fatal: Image path is NULL");
+ } else if (!strncmp(part, "elm.icon.1", strlen(part))) {
+ /* for strength */
+ icon = elm_image_add(obj);
+ assertm_if(NULL == icon, "NULL!!");
+ elm_image_file_set(icon, gdata->device_info->ap_image_path, NULL);
+ } else if (!strncmp(part, "elm.icon.2", strlen(part))) {
+ if (VIEWER_ITEM_RADIO_MODE_CONNECTING == gdata->radio_mode) {
+ icon = elm_progressbar_add(obj);
+ elm_object_style_set(icon, "list_process");
+ evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, 0.5);
+ evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_progressbar_pulse(icon, TRUE);
+ } else {
+ icon = elm_button_add(obj);
+ assertm_if(NULL == icon, "NULL!!");
+ elm_object_style_set(icon, "reveal");
+ evas_object_smart_callback_add(icon, "clicked", (Evas_Smart_Cb)list_select_cb, gdata->device_info);
+ evas_object_propagate_events_set(icon, EINA_FALSE);
+ }
+ }
+
+ return icon;
+}
+
+static void _gl_listview_del(void* data, Evas_Object* obj)
+{
+ if (data == NULL)
+ return;
+
+ ug_genlist_data_t* gdata = (ug_genlist_data_t*) data;
+ assertm_if(NULL == gdata->device_info->ssid, "NULL!!");
+
+ DEBUG_LOG(UG_NAME_NORMAL, "del target ssid:[%s]", gdata->device_info->ssid);
+
+ g_free(gdata->device_info->ap_image_path);
+ g_free(gdata->device_info->ap_status_txt);
+ g_free(gdata->device_info->ssid);
+ wifi_ap_destroy(gdata->device_info->ap);
+ g_free(gdata->device_info);
+ g_free(gdata);
+
+ return;
+}
+
+static char* _gl_text_title_get(void *data, Evas_Object *obj, const char *part)
+{
+ assertm_if(NULL == obj, "NULL!!");
+ assertm_if(NULL == part, "NULL!!");
+
+ return (char*) g_strdup(sc(PACKAGE, I18N_TYPE_WiFi_network));
+}
+
+static Evas_Object *_gl_content_title_get(void *data, Evas_Object *obj, const char *part)
+{
+ __COMMON_FUNC_ENTER__;
+ Evas_Object *title_progressbar = NULL;
+ if (HEADER_MODE_SEARCHING == viewer_manager_header_mode_get()) {
+ if (!strcmp(part, "elm.icon")) {
+ title_progressbar = elm_progressbar_add(obj);
+ elm_object_style_set(title_progressbar, "list_process_small");
+ elm_progressbar_horizontal_set(title_progressbar, EINA_TRUE);
+ elm_progressbar_pulse(title_progressbar, EINA_TRUE);
+ }
+ }
+ __COMMON_FUNC_EXIT__;
+ return title_progressbar;
+}
+
+
+Elm_Object_Item* viewer_list_get_first_item(void)
+{
+ return first_item;
+}
+
+static Elm_Object_Item* viewer_list_get_last_item(void)
+{
+ return last_item;
+}
+
+static void _gl_realized(void *data, Evas_Object *obj, void *event_info)
+{
+ HEADER_MODES header_mode = viewer_manager_header_mode_get();
+
+ if (header_mode == HEADER_MODE_ACTIVATING ||
+ header_mode == HEADER_MODE_DEACTIVATING ||
+ header_mode == HEADER_MODE_OFF)
+ return ;
+
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ int index = (int)elm_genlist_item_index_get(item);
+ int first_item_index = (int)elm_genlist_item_index_get(viewer_list_get_first_item());
+ int last_item_index = (int)elm_genlist_item_index_get(viewer_list_get_last_item());
+
+ if (last_item_index == FIRST_ITEM_NUMBER)
+ return ;
+
+ if (first_item_index == -1) {
+ int group_index = (int)elm_genlist_item_index_get(grouptitle);
+ first_item_index = group_index+1;
+ }
+
+ if (first_item_index <= index) {
+ if(index == first_item_index)
+ elm_object_item_signal_emit(item, "elm,state,top", "");
+ else if (index == last_item_index)
+ elm_object_item_signal_emit(item, "elm,state,bottom", "");
+ else
+ elm_object_item_signal_emit(item, "elm,state,center", "");
+ }
+
+ elm_genlist_item_update(item);
+
+ return;
+}
+
+static void _popup_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ if (!ug_app_state->passpopup) {
+ return;
+ }
+
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ __COMMON_FUNC_EXIT__;
+}
+
+static void _popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ if (!ug_app_state->passpopup) {
+ return;
+ }
+
+ wifi_security_type_e sec_mode = 0;
+ wifi_ap_h ap = common_pswd_popup_get_ap(ug_app_state->passpopup);
+ int ret = WLAN_MANAGER_ERR_NONE;
+ int nLen = 0;
+ const char* szPassword = common_pswd_popup_get_txt(ug_app_state->passpopup);
+ nLen = strlen(szPassword);
+ INFO_LOG(UG_NAME_NORMAL, "password = [%s]", szPassword);
+
+ wifi_ap_get_security_type(ap, &sec_mode);
+ switch (sec_mode) {
+ case WIFI_SECURITY_TYPE_WEP:
+
+ if (nLen != 5 && nLen != 13 && nLen != 26 && nLen != 10) {
+ winset_popup_mode_set(ug_app_state->popup_manager, POPUP_OPTION_WEP_PSWD_LEN_ERROR, NULL);
+ goto popup_ok_cb_exit;
+ }
+ break;
+
+ case WIFI_SECURITY_TYPE_WPA_PSK:
+ case WIFI_SECURITY_TYPE_WPA2_PSK:
+
+ if (nLen < 8 || nLen > 63) {
+ winset_popup_mode_set(ug_app_state->popup_manager, POPUP_OPTION_WPA_PSWD_LEN_ERROR, NULL);
+ goto popup_ok_cb_exit;
+ }
+ break;
+
+ default:
+ ERROR_LOG(UG_NAME_SCAN, "Fatal: Wrong security mode : %d", sec_mode);
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ goto popup_ok_cb_exit;
+ }
+
+ INFO_LOG(UG_NAME_SCAN, "connect with password comp");
+ ret = wlan_manager_connect_with_password(ap, szPassword);
+ if (WLAN_MANAGER_ERR_NONE == ret) {
+ viewer_manager_header_mode_set(HEADER_MODE_CONNECTING);
+ } else {
+ ERROR_LOG(UG_NAME_SCAN, "wlan error %d", ret);
+ viewer_manager_header_mode_set(HEADER_MODE_ON);
+ }
+
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+
+
+popup_ok_cb_exit:
+ g_free((gpointer)szPassword);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void _wps_pbc_popup_cancel_connecting(void* data, Evas_Object* obj, void* event_info)
+{
+ if (!ug_app_state->passpopup) {
+ return;
+ }
+
+ wifi_ap_h ap = common_pswd_popup_get_ap(ug_app_state->passpopup);;
+ int ret = wlan_manager_request_disconnection(ap);
+ if (ret == WLAN_MANAGER_ERR_NONE) {
+ INFO_LOG(UG_NAME_NORMAL, "WPS conection cancelled successfully for AP[0x%x]", ap);
+ } else {
+ ERROR_LOG(UG_NAME_NORMAL, "Error!!! wlan_manager_request_disconnection failed for AP[0x%x]", ap);
+ }
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ viewer_manager_header_mode_set(HEADER_MODE_ON);
+ return;
+}
+
+static void _wps_btn_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ if (!ug_app_state->passpopup) {
+ return;
+ }
+
+ wifi_ap_h ap = common_pswd_popup_get_ap(ug_app_state->passpopup);
+ int ret = wlan_manager_request_wps_connection(ap);
+ if (ret == WLAN_MANAGER_ERR_NONE) {
+ viewer_manager_header_mode_set(HEADER_MODE_CONNECTING);
+ common_pswd_popup_pbc_popup_create(ug_app_state->passpopup, _wps_pbc_popup_cancel_connecting, NULL);
+ } else {
+ ERROR_LOG(UG_NAME_NORMAL, "Error!!! wlan_manager_request_wps_connection failed");
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ }
+ __COMMON_FUNC_EXIT__;
+}
+
+#if 0
+static gint __viewer_list_compare_mode(gconstpointer a, gconstpointer b)
+{
+ Elm_Object_Item *item = (Elm_Object_Item *)a;
+ if (item) {
+ ug_genlist_data_t* gdata = elm_object_item_data_get(item);
+ if (gdata) {
+ VIEWER_ITEM_RADIO_MODES mode = (VIEWER_ITEM_RADIO_MODES)b;
+ if (gdata->radio_mode == mode)
+ return 0;
+ }
+ }
+ return -1;
+}
+
+static Elm_Object_Item *__wifi_viewer_list_get_item_in_mode(VIEWER_ITEM_RADIO_MODES mode)
+{
+ Elm_Object_Item *item = NULL;
+ GSList *found = g_slist_find_custom(container, (gconstpointer)mode, __viewer_list_compare_mode);
+ if (found) {
+ INFO_LOG(UG_NAME_NORMAL, "item found in mode [%d]", mode);
+ item = found->data;
+ }
+ return item;
+}
+#endif
+
+static void __wifi_viewer_list_request_connection(wifi_device_info_t *device_info)
+{
+ if (!device_info)
+ return;
+
+ pswd_popup_create_req_data_t popup_info;
+ Evas_Object* navi_frame = NULL;
+ int ret = wlan_manager_request_connection(device_info->ap);;
+ switch (ret) {
+ case WLAN_MANAGER_ERR_NONE:
+ INFO_LOG(UG_NAME_NORMAL, "ERROR_NONE");
+ viewer_manager_header_mode_set(HEADER_MODE_CONNECTING);
+ break;
+ case WLAN_MANAGER_ERR_CONNECT_PASSWORD_NEEDED:
+ memset(&popup_info, 0, sizeof(pswd_popup_create_req_data_t));
+ popup_info.title = device_info->ssid;
+ popup_info.ok_cb = _popup_ok_cb;
+ popup_info.cancel_cb = _popup_cancel_cb;
+ popup_info.show_wps_btn = device_info->wps_mode;
+ popup_info.wps_btn_cb = _wps_btn_cb;
+ popup_info.ap = device_info->ap;
+ popup_info.cb_data = NULL;
+ INFO_LOG(UG_NAME_NORMAL, "Going to create a popup. ug_app_state = 0x%x", ug_app_state);
+ ug_app_state->passpopup = common_pswd_popup_create(ug_app_state->layout_main, PACKAGE, &popup_info);
+ INFO_LOG(UG_NAME_NORMAL, "After create a popup");
+ if (ug_app_state->passpopup == NULL) {
+ INFO_LOG(UG_NAME_ERR, "pass popup create failed !");
+ }
+ break;
+
+ case WLAN_MANAGER_ERR_CONNECT_EAP_SEC_TYPE:
+ navi_frame = viewer_manager_get_naviframe();
+ ug_app_state->eap_view = create_eap_connect_view(ug_app_state->layout_main, navi_frame, PACKAGE, device_info);
+ break;
+
+ default:
+ ERROR_LOG(UG_NAME_NORMAL, "errro code [%d]", ret);
+ break;
+ }
+}
+
+static void viewer_list_item_clicked_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ assertm_if(NULL == event_info, "event_info is NULL!!");
+ assertm_if(NULL == data, "data is NULL!!");
+ assertm_if(NULL == obj, "obj is NULL!!");
+
+ int ret = WLAN_MANAGER_ERR_UNKNOWN;
+ Elm_Object_Item *it = (Elm_Object_Item *)event_info;
+// Elm_Object_Item *connecting_item = NULL;
+ ug_genlist_data_t *gdata = (ug_genlist_data_t *)elm_object_item_data_get(it);
+ wifi_device_info_t *device_info = (wifi_device_info_t *)data;
+
+ if (!gdata || !device_info || !device_info->ssid) {
+ ERROR_LOG(UG_NAME_NORMAL, "Error!!! Invalid inout params");
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ int item_state = gdata->radio_mode;
+ int current_state = 0;
+
+ INFO_LOG(UG_NAME_NORMAL, "ssid --- %s", device_info->ssid);
+ INFO_LOG(UG_NAME_NORMAL, "ap --- 0x%x", device_info->ap);
+ INFO_LOG(UG_NAME_NORMAL, "current item_state state is --- %d\n", item_state);
+
+ switch (item_state) {
+ case VIEWER_ITEM_RADIO_MODE_OFF:
+ current_state = viewer_manager_header_mode_get();
+
+ INFO_LOG(UG_NAME_NORMAL, "Clicked AP`s information\n");
+ INFO_LOG(UG_NAME_NORMAL, "header mode [%d]", current_state);
+
+ switch (current_state) {
+ case HEADER_MODE_CONNECTED:
+ case HEADER_MODE_ON:
+ __wifi_viewer_list_request_connection(device_info);
+ break;
+
+ case HEADER_MODE_CONNECTING:
+#if 0 // Enable this later when two connect requests is supported by libnet.
+ /* Try connecting to the selected AP */
+ connecting_item = __wifi_viewer_list_get_item_in_mode(VIEWER_ITEM_RADIO_MODE_CONNECTING);
+ viewer_manager_header_mode_set(HEADER_MODE_ON);
+ wlan_manager_request_connection(device_info->ap);
+
+ /* Disconnect the connecting AP */
+ if (connecting_item) {
+ ug_genlist_data_t *connecting_gdata = elm_object_item_data_get(connecting_item);
+ if (connecting_gdata) {
+ wlan_manager_request_disconnection(connecting_gdata->device_info->ap);
+ }
+ }
+ break;
+#endif
+ case HEADER_MODE_OFF:
+ case HEADER_MODE_SEARCHING:
+ case HEADER_MODE_ACTIVATING:
+ case HEADER_MODE_DISCONNECTING:
+ case HEADER_MODE_DEACTIVATING:
+ default:
+ INFO_LOG(UG_NAME_NORMAL, "Ignore the item click");
+ break;
+ }
+ break;
+
+ case VIEWER_ITEM_RADIO_MODE_CONNECTED:
+ INFO_LOG(UG_NAME_NORMAL, "want to disconnect for connected item");
+ ret = wlan_manager_request_disconnection(device_info->ap);
+ if(ret == WLAN_MANAGER_ERR_NONE){
+ viewer_manager_header_mode_set(HEADER_MODE_DISCONNECTING);
+ }
+ break;
+
+ case VIEWER_ITEM_RADIO_MODE_CONNECTING:
+ INFO_LOG(UG_NAME_NORMAL, "want to cancel connecting for connected item");
+ ret = wlan_manager_request_disconnection(device_info->ap);
+ if(ret == WLAN_MANAGER_ERR_NONE){
+ viewer_manager_header_mode_set(HEADER_MODE_CANCEL_CONNECTING);
+ }
+ break;
+
+ default:
+ ret = WLAN_MANAGER_ERR_UNKNOWN;
+ break;
+ }
+
+ elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+ __COMMON_FUNC_EXIT__;
+ return;
+}
+
+static char *viewer_list_get_device_status_txt(wifi_device_info_t *wifi_device, VIEWER_ITEM_RADIO_MODES mode)
+{
+ char *status_txt = NULL;
+ char *ret_txt = NULL;
+ /* The strings are currently hard coded. It will be replaced with string ids later */
+ if (VIEWER_ITEM_RADIO_MODE_CONNECTING == mode || VIEWER_ITEM_RADIO_MODE_WPS_CONNECTING == mode) {
+ status_txt = g_strdup(sc(PACKAGE, I18N_TYPE_Connecting));
+ } else if (VIEWER_ITEM_RADIO_MODE_CONNECTED == mode) {
+ status_txt = g_strdup_printf("<color=%s><b>%s</b></color>", LIST_ITEM_CONNECTED_AP_FONT_COLOR, sc(PACKAGE, I18N_TYPE_Connected));
+ } else if (VIEWER_ITEM_RADIO_MODE_DISCONNECTING == mode) {
+ status_txt = g_strdup(sc(PACKAGE, I18N_TYPE_Disconnecting));
+ } else if (VIEWER_ITEM_RADIO_MODE_OFF == mode) {
+ status_txt = common_utils_get_ap_security_type_info_txt(PACKAGE, wifi_device);
+ } else {
+ status_txt = g_strdup(WIFI_UNKNOWN_DEVICE_STATUS_STR);
+ INFO_LOG(UG_NAME_NORMAL, "Invalid mode: %d", mode);
+ }
+ ret_txt = g_strdup_printf("%s", status_txt);
+ g_free(status_txt);
+ return ret_txt;
+}
+
+Evas_Object* viewer_list_create(Evas_Object *win)
+{
+ __COMMON_FUNC_ENTER__;
+
+ assertm_if(NULL == win, "NULL!!");
+
+ assertm_if(NULL != viewer_list, "Err!!");
+ viewer_list = elm_genlist_add(win);
+
+
+ elm_object_style_set(viewer_list, "dialogue");
+ assertm_if(NULL == viewer_list, "NULL!!");
+
+ elm_genlist_mode_set(viewer_list, ELM_LIST_LIMIT);
+
+ evas_object_size_hint_weight_set(viewer_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(viewer_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ itc.item_style = "dialogue/2text.2icon.3.tb";
+ itc.func.text_get = _gl_listview_text_get;
+ itc.func.content_get = _gl_listview_content_get;
+ itc.func.state_get = NULL;
+ itc.func.del = _gl_listview_del;
+
+ first_item = last_item = NULL;
+
+ evas_object_smart_callback_add(viewer_list, "realized", _gl_realized, NULL);
+ __COMMON_FUNC_EXIT__;
+ return viewer_list;
+}
+
+int viewer_list_destroy(void)
+{
+ __COMMON_FUNC_ENTER__;
+
+ assertm_if(NULL == viewer_list, "NULL!!");
+ viewer_list_item_clear();
+ evas_object_del(viewer_list);
+ viewer_list = NULL;
+
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+}
+
+void viewer_list_title_item_del()
+{
+ if (grouptitle) {
+ elm_object_item_del(grouptitle);
+ grouptitle = NULL;
+ }
+}
+
+void viewer_list_title_item_update()
+{
+ elm_genlist_item_update(grouptitle);
+}
+
+int viewer_list_title_item_set(void)
+{
+ if (viewer_list_item_size_get() == 0 && !grouptitle) {
+ // To use multiline textblock/entry/editfield in genlist, set height_for_width mode
+ // then the item's height is calculated while the item's width fits to genlist width.
+ elm_genlist_mode_set(viewer_list, ELM_LIST_COMPRESS);
+
+ grouptitle_itc.item_style = "dialogue/title";
+ grouptitle_itc.func.text_get = _gl_text_title_get;
+ grouptitle_itc.func.content_get = _gl_content_title_get;
+ grouptitle_itc.func.state_get = NULL;
+ grouptitle_itc.func.del = NULL;
+
+ assertm_if(NULL != grouptitle, "Err!!");
+
+ grouptitle = elm_genlist_item_append(viewer_list,
+ &grouptitle_itc,
+ NULL,
+ NULL,
+ ELM_GENLIST_ITEM_NONE,
+ NULL,
+ NULL);
+
+ assertm_if(NULL == grouptitle, "NULL!!");
+
+ elm_genlist_item_select_mode_set(grouptitle, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ return TRUE;
+ } else {
+ return FALSE;
+ }
+}
+
+int viewer_list_item_radio_mode_set(Elm_Object_Item* item, VIEWER_ITEM_RADIO_MODES mode)
+{
+ __COMMON_FUNC_ENTER__;
+ if (NULL == item) {
+ INFO_LOG(COMMON_NAME_ERR, "item is NULL");
+ return FALSE;
+ }
+
+ ug_genlist_data_t* gdata = (ug_genlist_data_t *) elm_object_item_data_get(item);
+ if (NULL == gdata || NULL == gdata->device_info) {
+ INFO_LOG(COMMON_NAME_ERR, "gdata or device_info is NULL");
+ return FALSE;
+ }
+
+ if (gdata->radio_mode == mode) {
+ INFO_LOG(UG_NAME_NORMAL, "[%s] is already in requested state", gdata->device_info->ssid);
+ return FALSE;
+ }
+
+ INFO_LOG(UG_NAME_NORMAL, "[%s] AP Item State Transition from [%d] --> [%d]", gdata->device_info->ssid, gdata->radio_mode, mode);
+ gdata->radio_mode = mode;
+ if (gdata->device_info->ap_status_txt) {
+ g_free(gdata->device_info->ap_status_txt);
+ gdata->device_info->ap_status_txt = viewer_list_get_device_status_txt(gdata->device_info, mode);
+ }
+
+ elm_genlist_item_update(item);
+
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+}
+
+Elm_Object_Item* viewer_list_item_insert_after(wifi_ap_h ap, Elm_Object_Item *after)
+{
+ Elm_Object_Item* ret = NULL;
+ wifi_security_type_e sec_type;
+
+ if (!viewer_list) {
+ assertm_if(NULL == viewer_list, "NULL!!");
+ return NULL;
+ }
+
+ wifi_device_info_t *wifi_device = NULL;
+
+ if (!ap) {
+ wifi_device = wlan_manager_profile_device_info_blank_create();
+ if (!wifi_device)
+ return NULL;
+ } else {
+ wifi_device = g_new0(wifi_device_info_t, 1);
+ if (WIFI_ERROR_NONE != wifi_ap_clone(&(wifi_device->ap), ap)) {
+ goto FREE_DEVICE_INFO;
+ } else if (WIFI_ERROR_NONE != wifi_ap_get_essid(ap, &(wifi_device->ssid))) {
+ goto FREE_DEVICE_INFO;
+ } else if (WIFI_ERROR_NONE != wifi_ap_get_rssi(ap, &(wifi_device->rssi))) {
+ goto FREE_DEVICE_INFO;
+ } else if (WIFI_ERROR_NONE != wifi_ap_get_security_type (ap, &sec_type)) {
+ goto FREE_DEVICE_INFO;
+ } else if (WIFI_ERROR_NONE != wifi_ap_is_wps_supported (ap, &(wifi_device->wps_mode))) {
+ goto FREE_DEVICE_INFO;
+ }
+ wifi_device->security_mode = common_utils_get_sec_mode(sec_type);
+ wifi_device->ap_image_path = common_utils_get_device_icon(WIFI_APP_IMAGE_DIR, wifi_device);
+ wifi_device->ap_status_txt = viewer_list_get_device_status_txt(wifi_device, VIEWER_ITEM_RADIO_MODE_OFF);
+ }
+ ug_genlist_data_t* gdata = g_new0(ug_genlist_data_t, 1);
+ gdata->device_info = wifi_device;
+ gdata->radio_mode = VIEWER_ITEM_RADIO_MODE_OFF;
+
+ if (!after) { /* If the after item is NULL then insert it as first item */
+ after = grouptitle;
+ }
+
+ ret = elm_genlist_item_insert_after(
+ viewer_list, /*obj*/
+ &itc,/*itc*/
+ gdata,/*data*/
+ NULL,/*parent*/
+ after, /*after than*/
+ ELM_GENLIST_ITEM_NONE, /*flags*/
+ viewer_list_item_clicked_cb,/*func*/
+ wifi_device);/*func_data*/
+
+ if (!ret) {
+ assertm_if(NULL == ret, "NULL!!");
+ g_free(gdata);
+ } else {
+ DEBUG_LOG(UG_NAME_NORMAL,
+ "* item add complete item [0x%x] ssid:[%s] security[%d] size:[%d]",
+ ret,
+ wifi_device->ssid,
+ wifi_device->security_mode,
+ viewer_list_item_size_get());
+
+ if (after == grouptitle) {
+ first_item = ret;
+ if (!last_item)
+ last_item = ret;
+ } else {
+ last_item = ret;
+ if (!first_item)
+ first_item = ret;
+ }
+
+ elm_genlist_item_update(ret);
+ }
+
+FREE_DEVICE_INFO:
+ if (!ret && wifi_device) {
+ wifi_ap_destroy(wifi_device->ap);
+ g_free(wifi_device->ap_image_path);
+ g_free(wifi_device->ap_status_txt);
+ g_free(wifi_device->ssid);
+ g_free(wifi_device);
+ }
+
+ return ret;
+}
+
+void viewer_list_item_del(Elm_Object_Item *it)
+{
+ if (it == NULL)
+ return;
+
+ if (it == first_item) {
+ first_item = elm_genlist_item_next_get(first_item);
+ } else if (it == last_item) {
+ last_item = elm_genlist_item_prev_get(last_item);
+ }
+ elm_object_item_del(it);
+}
+
+int viewer_list_item_size_get()
+{
+ __COMMON_FUNC_ENTER__;
+ int ret = 0;
+ Elm_Object_Item *it = first_item;
+
+ while(it) {
+ ret++;
+ if (it == last_item)
+ break;
+ it = elm_genlist_item_next_get(it);
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return ret;
+}
+
+void viewer_list_item_clear(void)
+{
+ __COMMON_FUNC_ENTER__;
+
+ Elm_Object_Item *it = first_item;
+ Elm_Object_Item *nxt = NULL;
+
+ while(it) {
+ nxt = elm_genlist_item_next_get(it);
+ elm_object_item_del(it);
+ if (it == last_item)
+ break;
+ it = nxt;
+ }
+
+ first_item = last_item = NULL;
+
+ __COMMON_FUNC_EXIT__;
+}
+
+void viewer_list_item_enable_all(void)
+{
+ __COMMON_FUNC_ENTER__;
+
+ Elm_Object_Item *it = first_item;
+
+ while(it) {
+ elm_object_item_disabled_set(it, EINA_FALSE);
+ if (it == last_item)
+ break;
+ it = elm_genlist_item_next_get(it);
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+void viewer_list_item_disable_all(void)
+{
+ __COMMON_FUNC_ENTER__;
+
+ Elm_Object_Item *it = first_item;
+
+ while(it) {
+ elm_object_item_disabled_set(it, EINA_TRUE);
+ if (it == last_item)
+ break;
+ it = elm_genlist_item_next_get(it);
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+Elm_Object_Item* item_get_for_ap(wifi_ap_h ap)
+{
+ __COMMON_FUNC_ENTER__;
+ if (!ap) {
+ __COMMON_FUNC_EXIT__;
+ return NULL;
+ }
+
+ char *essid = NULL;
+ wifi_security_type_e type = WIFI_SECURITY_TYPE_NONE;
+
+ if (WIFI_ERROR_NONE != wifi_ap_get_essid(ap, &essid)) {
+ __COMMON_FUNC_EXIT__;
+ return NULL;
+ } else if (WIFI_ERROR_NONE != wifi_ap_get_security_type(ap, &type)) {
+ __COMMON_FUNC_EXIT__;
+ return NULL;
+ }
+
+ Elm_Object_Item *it = first_item;
+ wlan_security_mode_type_t sec_mode = common_utils_get_sec_mode(type);
+ while(it) {
+ ug_genlist_data_t* gdata = elm_object_item_data_get(it);
+ wifi_device_info_t *device_info = NULL;
+ if (gdata && (device_info = gdata->device_info)) {
+ if (!g_strcmp0(device_info->ssid, essid) && device_info->security_mode == sec_mode)
+ break;
+ }
+ if (it == last_item) {
+ it = NULL;
+ break;
+ }
+ it = elm_genlist_item_next_get(it);
+ }
+
+ g_free(essid);
+ __COMMON_FUNC_EXIT__;
+ return it;
+}
diff --git a/sources/ui-gadget/wifi-efl-UG.c b/sources/ui-gadget/wifi-efl-UG.c
new file mode 100644
index 0000000..6b5e091
--- /dev/null
+++ b/sources/ui-gadget/wifi-efl-UG.c
@@ -0,0 +1,431 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef UG_MODULE_API
+#define UG_MODULE_API __attribute__ ((visibility("default")))
+#endif
+
+#include <vconf-keys.h>
+
+#include "ug_wifi.h"
+#include "view_detail.h"
+#include "i18nmanager.h"
+#include "wlan_manager.h"
+#include "winset_popup.h"
+#include "common_utils.h"
+#include "motion_control.h"
+#include "viewer_manager.h"
+#include "view_ime_hidden.h"
+#include "wifi-engine-callback.h"
+
+static int wifi_exit_end = FALSE;
+
+wifi_appdata *ug_app_state = NULL;
+
+struct ug_data
+{
+ Evas_Object *base;
+ ui_gadget_h ug;
+};
+
+static Eina_Bool __wifi_efl_ug_del_found_ap_noti(void *data)
+{
+ common_utils_send_message_to_net_popup(NULL, NULL, "del_found_ap_noti", NULL);
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv)
+{
+ Ecore_Idler *idler;
+
+ __COMMON_FUNC_ENTER__;
+
+ if (!ug || !priv) {
+ INFO_LOG(UG_NAME_ERR, "[Error]Data is NULL - ug or priv");
+ return NULL;
+ }
+
+ ug_app_state = g_new0(wifi_appdata, 1);
+ assertm_if(NULL == ug_app_state, "Err!! ug_app_state == NULL");
+
+ struct ug_data *ugd;
+ ugd = (struct ug_data*)priv;
+ ugd->ug = ug;
+
+ if (NULL != service) {
+ INFO_LOG(UG_NAME_NORMAL, "message load from caller");
+
+ char *caller = NULL;
+ if (service_get_extra_data(service, UG_CALLER, &caller)) {
+ ERROR_LOG(UG_NAME_NORMAL, "Failed to get service extra data");
+ return NULL;
+ }
+
+ if (caller != NULL) {
+ INFO_LOG(UG_NAME_NORMAL, "caller = [%s]", caller);
+ if (strcmp(caller, "pwlock") == 0) {
+ ug_app_state->ug_type = UG_VIEW_SETUP_WIZARD;
+ service_get_extra_data(service, "lbutton", &ug_app_state->lbutton_setup_wizard_prev);
+ service_get_extra_data(service, "rbutton_skip", &ug_app_state->rbutton_setup_wizard_skip);
+ service_get_extra_data(service, "rbutton_next", &ug_app_state->rbutton_setup_wizard_next);
+ } else {
+ ug_app_state->ug_type = UG_VIEW_DEFAULT;
+ }
+
+ free(caller);
+ } else {
+ INFO_LOG(UG_NAME_NORMAL, "caller is not defined");
+ ug_app_state->ug_type = UG_VIEW_DEFAULT;
+ }
+ } else {
+ INFO_LOG(UG_NAME_NORMAL, "caller is not defined");
+ ug_app_state->ug_type = UG_VIEW_DEFAULT;
+ }
+
+ bindtextdomain(PACKAGE, LOCALEDIR);
+
+ Evas_Object *parent_layout = ug_get_parent_layout(ug);
+ if (parent_layout == NULL) {
+ ERROR_LOG(UG_NAME_NORMAL, "Failed to get parent layout");
+ return NULL;
+ }
+
+ ug_app_state->gadget= ugd;
+ ug_app_state->ug = ug;
+
+ common_util_set_system_registry(VCONFKEY_WIFI_UG_RUN_STATE,
+ VCONFKEY_WIFI_UG_RUN_STATE_ON_FOREGROUND);
+
+ /* Remove the "WiFi networks found" from the notification tray.*/
+ idler = ecore_idler_add(__wifi_efl_ug_del_found_ap_noti, NULL);
+
+ evas_object_show(parent_layout);
+
+ memset(&g_pending_call, 0, sizeof(wifi_pending_call_info_t));
+
+ Evas_Object *layout_main = viewer_manager_create(parent_layout);
+ if (layout_main == NULL) {
+ if( idler != NULL )
+ ecore_idler_del(idler);
+ INFO_LOG(UG_NAME_ERR, "Failed to create viewer_manager");
+ return NULL;
+ }
+
+ ug_app_state->popup_manager = winset_popup_manager_create(layout_main, PACKAGE);
+
+ ugd->base = layout_main;
+ ug_app_state->layout_main = layout_main;
+ ug_app_state->bAlive = EINA_TRUE;
+
+ wlan_manager_create();
+ wlan_manager_set_message_callback(wlan_engine_callback);
+ wlan_manager_set_refresh_callback(wlan_engine_refresh_callback);
+
+ switch (wlan_manager_start()) {
+ case WLAN_MANAGER_ERR_NONE:
+ break;
+
+ case WLAN_MANAGER_ERR_ALREADY_REGISTERED:
+ break;
+
+ case WLAN_MANAGER_ERR_UNKNOWN:
+ winset_popup_mode_set(ug_app_state->popup_manager, POPUP_OPTION_REGISTER_FAILED_COMMUNICATION_FAILED, NULL);
+
+ __COMMON_FUNC_EXIT__;
+ return ugd->base;
+
+ default:
+ __COMMON_FUNC_EXIT__;
+ return ugd->base;
+ }
+
+ switch (wlan_manager_state_get()) {
+ case WLAN_MANAGER_OFF:
+ viewer_manager_header_mode_set(HEADER_MODE_OFF);
+ viewer_manager_hide(VIEWER_WINSET_SUB_CONTENTS);
+ break;
+ case WLAN_MANAGER_CONNECTING:
+ case WLAN_MANAGER_UNCONNECTED:
+ case WLAN_MANAGER_CONNECTED:
+ connman_request_scan_mode_set(WIFI_BGSCAN_MODE_PERIODIC);
+ viewer_manager_header_mode_set(HEADER_MODE_SEARCHING);
+ viewer_manager_show(VIEWER_WINSET_SEARCHING);
+ viewer_manager_show(VIEWER_WINSET_SUB_CONTENTS);
+ break;
+ case WLAN_MANAGER_ERROR:
+ default:
+ return ugd->base;
+ }
+
+ motion_create(layout_main);
+
+ __COMMON_FUNC_EXIT__;
+ return ugd->base;
+}
+
+static Eina_Bool load_initial_ap_list(void *data)
+{
+ wlan_manager_scanned_profile_refresh_with_count((int)data);
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static void on_start(ui_gadget_h ug, service_h service, void *priv)
+{
+ __COMMON_FUNC_ENTER__;
+ ecore_idler_add(load_initial_ap_list, (void *)8);
+
+ motion_start();
+
+ __COMMON_FUNC_EXIT__;
+ return;
+}
+
+static void on_pause(ui_gadget_h ug, service_h service, void *priv)
+{
+ __COMMON_FUNC_ENTER__;
+
+ motion_stop();
+
+ connman_request_scan_mode_set(WIFI_BGSCAN_MODE_EXPONENTIAL);
+
+ common_util_set_system_registry(VCONFKEY_WIFI_UG_RUN_STATE,
+ VCONFKEY_WIFI_UG_RUN_STATE_ON_BACKGROUND);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void on_resume(ui_gadget_h ug, service_h service, void *priv)
+{
+ __COMMON_FUNC_ENTER__;
+
+ motion_start();
+
+ connman_request_scan_mode_set(WIFI_BGSCAN_MODE_PERIODIC);
+
+ common_util_set_system_registry(VCONFKEY_WIFI_UG_RUN_STATE,
+ VCONFKEY_WIFI_UG_RUN_STATE_ON_FOREGROUND);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void on_destroy(ui_gadget_h ug, service_h service, void *priv)
+{
+ __COMMON_FUNC_ENTER__;
+
+ common_util_set_system_registry(VCONFKEY_WIFI_UG_RUN_STATE,
+ VCONFKEY_WIFI_UG_RUN_STATE_OFF);
+
+ if (!ug || !priv){
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ motion_destroy();
+
+ connman_request_scan_mode_set(WIFI_BGSCAN_MODE_EXPONENTIAL);
+
+ DEBUG_LOG(UG_NAME_NORMAL, "* popup manager destroying...");
+ winset_popup_manager_destroy(ug_app_state->popup_manager);
+ ug_app_state->popup_manager = NULL;
+ DEBUG_LOG(UG_NAME_NORMAL, "* view_main destroying...");
+ viewer_manager_destroy();
+ DEBUG_LOG(UG_NAME_NORMAL, "* manager destroy complete");
+ DEBUG_LOG(UG_NAME_NORMAL, "* wlan manager destroying...");
+ wlan_manager_destroy();
+
+ if(g_pending_call.is_handled == FALSE)
+ {
+ dbus_g_proxy_cancel_call(g_pending_call.proxy, g_pending_call.pending_call);
+ g_pending_call.is_handled = TRUE;
+ memset(&g_pending_call, 0, sizeof(wifi_pending_call_info_t));
+ DEBUG_LOG(UG_NAME_NORMAL, "* pending dbus call cleared");
+ }
+
+ struct ug_data* ugd = priv;
+ if(ugd->base){
+ evas_object_del(ugd->base);
+ ugd->base = NULL;
+ }
+}
+
+static void on_message(ui_gadget_h ug, service_h msg, service_h service, void *priv)
+{
+}
+
+static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv)
+{
+ switch (event) {
+ case UG_EVENT_LOW_MEMORY:
+ break;
+ case UG_EVENT_LOW_BATTERY:
+ break;
+ case UG_EVENT_LANG_CHANGE:
+ break;
+ case UG_EVENT_ROTATE_PORTRAIT:
+ break;
+ case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
+ break;
+ case UG_EVENT_ROTATE_LANDSCAPE:
+ break;
+ case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+ break;
+ default:
+ break;
+ }
+}
+
+static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h service, void *priv)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (!ug) {
+ return;
+ }
+
+ switch (event) {
+ case UG_KEY_EVENT_END:
+ INFO_LOG(UG_NAME_NORMAL, "UG_KEY_EVENT_END");
+
+ /* popup key event determine */
+ winset_popup_hide_popup(ug_app_state->popup_manager);
+
+ Evas_Object* navi_frame = viewer_manager_get_naviframe();
+ view_manager_view_type_t top_view_id = (view_manager_view_type_t)evas_object_data_get(navi_frame, SCREEN_TYPE_ID_KEY);
+ if(VIEW_MANAGER_VIEW_TYPE_MAIN == top_view_id) {
+ INFO_LOG(UG_NAME_NORMAL, "same");
+ } else {
+ INFO_LOG(UG_NAME_NORMAL, "differ");
+ elm_naviframe_item_pop(viewer_manager_get_naviframe());
+ return;
+ }
+
+ wifi_exit();
+ break;
+ default:
+ INFO_LOG(UG_NAME_NORMAL, "UG_KEY_EVENT [%d]", event);
+ break;
+ }
+ __COMMON_FUNC_EXIT__;
+}
+
+UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+ __COMMON_FUNC_ENTER__;
+
+ wifi_exit_end = FALSE;
+
+ assertm_if(NULL == ops, "Err!! ug_module_ops == NULL");
+
+ struct ug_data *ugd;
+ ugd = calloc(1, sizeof(struct ug_data));
+
+ assertm_if(NULL == ugd, "Err!! calloc fail");
+
+ ops->create = on_create;
+ ops->start = on_start;
+ ops->pause = on_pause;
+ ops->resume = on_resume;
+ ops->destroy = on_destroy;
+ ops->message = on_message;
+ ops->event = on_event;
+ ops->key_event = on_key_event;
+ ops->priv = ugd;
+ ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+ __COMMON_FUNC_EXIT__;
+ return 0;
+}
+
+UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+ __COMMON_FUNC_ENTER__;
+ assertm_if(NULL == ops, "Err!! ug_module_ops == NULL");
+
+ struct ug_data *ugd;
+
+ ugd = ops->priv;
+
+ if (ugd)
+ free(ugd);
+ __COMMON_FUNC_EXIT__;
+}
+
+static bool setting_plugin_wifi_found_ap_cb(wifi_ap_h ap, void* user_data)
+{
+ bool favourite = false;
+
+ wifi_ap_is_favorite(ap, &favourite);
+
+ if (true == favourite)
+ wlan_manager_forget(ap);
+
+ return true;
+}
+
+UG_MODULE_API int setting_plugin_reset(bundle *data, void *priv)
+{
+ __COMMON_FUNC_ENTER__;
+
+ int return_value = 0;
+
+ return_value = wlan_manager_start();
+ if (return_value != WLAN_MANAGER_ERR_NONE) {
+ ERROR_LOG(UG_NAME_NORMAL, "Failed to register : %d",return_value);
+ return_value = -1;
+ goto error;
+ }
+
+ wifi_foreach_found_aps(setting_plugin_wifi_found_ap_cb, NULL);
+ return_value = wlan_manager_request_power_off();
+ if (return_value != WLAN_MANAGER_ERR_NONE) {
+ ERROR_LOG(UG_NAME_NORMAL, "Failed to power_off: %d",return_value);
+ return_value = -1;
+ goto error;
+ }
+
+ common_util_set_system_registry(VCONFKEY_WIFI_ENABLE_QS,
+ VCONFKEY_WIFI_QS_ENABLE);
+
+error:
+ wlan_manager_destroy();
+
+ __COMMON_FUNC_EXIT__;
+ return return_value;
+}
+
+int wifi_exit()
+{
+ __COMMON_FUNC_ENTER__;
+ if(wifi_exit_end == TRUE) {
+ __COMMON_FUNC_EXIT__;
+ return FALSE;
+ }
+ wifi_exit_end = TRUE;
+
+ struct ug_data *ugd;
+ ugd = ug_app_state->gadget;
+ ug_app_state->bAlive = EINA_FALSE;
+
+ DEBUG_LOG(UG_NAME_NORMAL, "* ug_destroying...");
+ ug_destroy_me(ugd->ug);
+
+ __COMMON_FUNC_EXIT__;
+
+ return TRUE;
+}
diff --git a/sources/ui-gadget/wifi-ui-list-callbacks.c b/sources/ui-gadget/wifi-ui-list-callbacks.c
new file mode 100644
index 0000000..b813406
--- /dev/null
+++ b/sources/ui-gadget/wifi-ui-list-callbacks.c
@@ -0,0 +1,312 @@
+/*
+* Wi-Fi UG
+*
+* Copyright 2012 Samsung Electronics Co., Ltd
+
+* Licensed under the Flora License, Version 1.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+
+* http://www.tizenopensource.org/license
+
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/
+
+
+
+#include "wifi.h"
+#include "wifi-ui-list-callbacks.h"
+#include "wlan_manager.h"
+#include "view_detail.h"
+#include "viewer_list.h"
+#include "common_pswd_popup.h"
+#include "common_eap_connect.h"
+#include "winset_popup.h"
+#include "i18nmanager.h"
+#include "common_datamodel.h"
+
+extern wifi_appdata *ug_app_state;
+
+static void _popup_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ if (!ug_app_state->passpopup || !data) {
+ return;
+ }
+
+ char *profile_name = (char *)data;
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ g_free(profile_name);
+ __COMMON_FUNC_EXIT__;
+}
+
+static void _popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ if (!ug_app_state->passpopup || !data) {
+ return;
+ }
+
+ char *profile_name = (char *)data;
+ wlan_security_mode_type_t sec_mode;
+ view_datamodel_basic_info_t *basic_data_model = view_basic_detail_datamodel_create(profile_name);
+ if (!basic_data_model) {
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ g_free(profile_name);
+ return;
+ }
+ int ret = WLAN_MANAGER_ERR_NONE;
+ int nLen = 0;
+ const char* szPassword = common_pswd_popup_get_txt(ug_app_state->passpopup);
+ nLen = strlen(szPassword);
+ INFO_LOG(UG_NAME_NORMAL, "password = [%s]", szPassword);
+
+ sec_mode = view_detail_datamodel_sec_mode_get(basic_data_model);
+ switch (sec_mode) {
+ case WLAN_SEC_MODE_WEP:
+
+ if (nLen != 5 && nLen != 13 && nLen != 26 && nLen != 10) {
+ winset_popup_mode_set(ug_app_state->popup_manager, POPUP_OPTION_WEP_PSWD_LEN_ERROR, NULL);
+ goto popup_ok_cb_exit;
+ }
+
+ break;
+
+ case WLAN_SEC_MODE_WPA_PSK:
+ case WLAN_SEC_MODE_WPA2_PSK:
+
+ if (nLen < 8 || nLen > 63) {
+ winset_popup_mode_set(ug_app_state->popup_manager, POPUP_OPTION_WPA_PSWD_LEN_ERROR, NULL);
+ goto popup_ok_cb_exit;
+ }
+ break;
+
+ default:
+ ERROR_LOG(UG_NAME_SCAN, "Fatal: Wrong security mode : %d", sec_mode);
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ g_free(profile_name);
+ goto popup_ok_cb_exit;
+ }
+
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+
+ INFO_LOG(UG_NAME_SCAN, "connect with password comp");
+ wlan_manager_password_data param;
+ memset(&param, 0, sizeof(wlan_manager_password_data));
+ param.wlan_eap_type = WLAN_MANAGER_EAP_TYPE_NONE;
+ param.password = szPassword;
+ ret = wlan_manager_connect_with_password(profile_name, sec_mode, &param);
+ if (WLAN_MANAGER_ERR_NONE == ret) {
+ viewer_manager_header_mode_set(HEADER_MODE_CONNECTING);
+ } else {
+ ERROR_LOG(UG_NAME_SCAN, "wlan error %d", ret);
+ viewer_manager_header_mode_set(HEADER_MODE_ON);
+ }
+
+ g_free(profile_name);
+
+popup_ok_cb_exit:
+ g_free((gpointer)szPassword);
+ view_basic_detail_datamodel_destroy(basic_data_model);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void _wps_pbc_popup_cancel_connecting(void* data, Evas_Object* obj, void* event_info)
+{
+ if (!ug_app_state->passpopup || !data) {
+ return;
+ }
+
+ char *profile_name = (char *)data;
+ int ret = wlan_manager_request_cancel_wps_connection(profile_name);
+ if (ret == WLAN_MANAGER_ERR_NONE) {
+ INFO_LOG(UG_NAME_NORMAL, "WPS conection cancelled successfully for AP[%s]", profile_name);
+ } else {
+ ERROR_LOG(UG_NAME_NORMAL, "Error!!! wlan_manager_request_cancel_wps_connection failed for AP[%s]", profile_name);
+ }
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ viewer_manager_header_mode_set(HEADER_MODE_ON);
+ g_free(profile_name);
+ return;
+}
+
+static void _wps_btn_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ if (!ug_app_state->passpopup || !data) {
+ return;
+ }
+
+ char *profile_name = (char *)data;
+ int ret = wlan_manager_request_wps_connection(profile_name);
+ if (ret == WLAN_MANAGER_ERR_NONE) {
+ viewer_manager_header_mode_set(HEADER_MODE_CONNECTING);
+ common_pswd_popup_pbc_popup_create(ug_app_state->passpopup, _wps_pbc_popup_cancel_connecting, profile_name);
+ } else {
+ ERROR_LOG(UG_NAME_NORMAL, "Error!!! wlan_manager_request_wps_connection failed");
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ g_free(profile_name);
+ }
+ __COMMON_FUNC_EXIT__;
+}
+
+void eap_view_close_cb(void)
+{
+ ug_app_state->eap_view = NULL;
+}
+
+void radio_button_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ int ret = WLAN_MANAGER_ERR_UNKNOWN;
+ Elm_Object_Item *it = (Elm_Object_Item *)event_info;
+ wifi_device_info_t *device_info = (wifi_device_info_t *)data;
+
+ if (!it || !device_info || device_info->ssid == NULL) {
+ ERROR_LOG(UG_NAME_NORMAL, "Error!!! Invalid inout params");
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ ug_genlist_data_t *gdata = (ug_genlist_data_t *) elm_object_item_data_get((Elm_Object_Item*)it);
+ if(NULL == gdata) {
+ ERROR_LOG(UG_NAME_NORMAL, "Error!!! list item data null");
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ int item_state = gdata->radio_mode;
+ int current_state = 0;
+
+ INFO_LOG(UG_NAME_NORMAL, "ssid --- %s", device_info->ssid);
+ INFO_LOG(UG_NAME_NORMAL, "current item_state state is --- %d\n", item_state);
+
+ switch (item_state) {
+ case VIEWER_ITEM_RADIO_MODE_OFF:
+ current_state = viewer_manager_header_mode_get();
+
+ INFO_LOG(UG_NAME_NORMAL, "Clicked AP`s information\n");
+ INFO_LOG(UG_NAME_NORMAL, "header mode [%d]", current_state);
+
+ switch (current_state) {
+ case HEADER_MODE_CONNECTED:
+ case HEADER_MODE_ON:
+ ret = wlan_manager_request_connection(device_info);
+ if (ret == WLAN_MANAGER_ERR_NONE) {
+ viewer_manager_header_mode_set(HEADER_MODE_CONNECTING);
+ }
+ break;
+
+ case HEADER_MODE_OFF:
+ case HEADER_MODE_SEARCHING:
+ case HEADER_MODE_ACTIVATING:
+ case HEADER_MODE_CONNECTING:
+ case HEADER_MODE_DISCONNECTING:
+ case HEADER_MODE_DEACTIVATING:
+ default:
+ INFO_LOG(UG_NAME_NORMAL, "Ignore the item click");
+ break;
+ }
+ break;
+
+ case VIEWER_ITEM_RADIO_MODE_CONNECTED:
+ INFO_LOG(UG_NAME_NORMAL, "want to disconnect for connected item");
+ ret = wlan_manager_request_disconnection(device_info);
+ if(ret == WLAN_MANAGER_ERR_NONE){
+ viewer_manager_header_mode_set(HEADER_MODE_DISCONNECTING);
+ }
+ break;
+
+ case VIEWER_ITEM_RADIO_MODE_CONNECTING:
+ INFO_LOG(UG_NAME_NORMAL, "want to cancel connecting for connected item");
+ ret = wlan_manager_request_cancel_connecting(device_info->profile_name);
+ if(ret == WLAN_MANAGER_ERR_NONE){
+ viewer_manager_header_mode_set(HEADER_MODE_CANCEL_CONNECTING);
+ }
+ break;
+
+ default:
+ ret = WLAN_MANAGER_ERR_UNKNOWN;
+ break;
+ }
+
+ switch (ret) {
+ case WLAN_MANAGER_ERR_NONE:
+ INFO_LOG(UG_NAME_NORMAL, "ERROR_NONE");
+ break;
+ case WLAN_MANAGER_ERR_CONNECT_PASSWORD_NEEDED:
+ {
+ pswd_popup_create_req_data_t popup_info;
+ popup_info.title = device_info->ssid;
+ popup_info.ok_cb = _popup_ok_cb;
+ popup_info.cancel_cb = _popup_cancel_cb;
+ popup_info.show_wps_btn = device_info->wps_mode;
+ popup_info.wps_btn_cb = _wps_btn_cb;
+ popup_info.cb_data = g_strdup(gdata->device_info->profile_name);
+ INFO_LOG(UG_NAME_NORMAL, "Going to create a popup. ug_app_state = 0x%x", ug_app_state);
+ ug_app_state->passpopup = common_pswd_popup_create(ug_app_state->win_main, PACKAGE, &popup_info);
+ INFO_LOG(UG_NAME_NORMAL, "After create a popup");
+ if (ug_app_state->passpopup == NULL) {
+ INFO_LOG(UG_NAME_ERR, "pass popup create failed !");
+ }
+ }
+ break;
+
+ case WLAN_MANAGER_ERR_CONNECT_EAP_SEC_TYPE:
+ {
+ Evas_Object* navi_frame = viewer_manager_get_naviframe();
+ if (navi_frame == NULL) {
+ ERROR_LOG(UG_NAME_NORMAL, "Failed : get naviframe");
+ return;
+ }
+ ug_app_state->eap_view = create_eap_connect(ug_app_state->win_main, navi_frame, PACKAGE, device_info, eap_view_close_cb);
+ }
+ break;
+
+ case WLAN_MANAGER_ERR_NOSERVICE:
+ break;
+
+ default:
+ ERROR_LOG(UG_NAME_NORMAL, "errro code [%d]", ret);
+ break;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return;
+}
+
+void list_select_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ INFO_LOG(UG_NAME_NORMAL,"=================\n");
+ INFO_LOG(UG_NAME_NORMAL," %s %d\n", __func__ ,__LINE__);
+ INFO_LOG(UG_NAME_NORMAL,"=================\n");
+
+ if (data == NULL) {
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ wifi_device_info_t *device_info = (wifi_device_info_t *)data;
+
+ DEBUG_LOG(UG_NAME_NORMAL, "ssid [%s]", device_info->ssid);
+
+ view_detail(device_info, ug_app_state->win_main);
+
+ __COMMON_FUNC_EXIT__;
+}
+
diff --git a/sources/ui-gadget/wifi-wlan-callbacks.c b/sources/ui-gadget/wifi-wlan-callbacks.c
new file mode 100644
index 0000000..e9b157c
--- /dev/null
+++ b/sources/ui-gadget/wifi-wlan-callbacks.c
@@ -0,0 +1,199 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "ug_wifi.h"
+#include "wlan_manager.h"
+#include "viewer_manager.h"
+#include "winset_popup.h"
+#include "wifi-engine-callback.h"
+#include "viewer_list.h"
+#include "motion_control.h"
+
+extern wifi_appdata *ug_app_state;
+
+void wlan_engine_callback(wlan_mgr_event_info_t *event_info, void *user_data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (event_info == NULL) {
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ Elm_Object_Item* target_item = NULL;
+ ug_genlist_data_t* gdata = NULL;
+
+ int header_state = -1;
+ header_state = viewer_manager_header_mode_get();
+
+ INFO_LOG(UG_NAME_NORMAL, "header state [%d]", header_state);
+ INFO_LOG(UG_NAME_NORMAL, "event type [%d]", event_info->event_type);
+ INFO_LOG(UG_NAME_NORMAL, "ap [0x%x]", event_info->ap);
+
+ if (event_info->ap) { /* Is it a response with AP handle? */
+
+ /* All responses with profile names should have an associated genlist item
+ * Verify if the genlist item exists and associated genlist item data exists
+ */
+ target_item = item_get_for_ap(event_info->ap);
+ if (!target_item ||
+ !(gdata = (ug_genlist_data_t *)elm_object_item_data_get(target_item))) {
+ /* This is a case where the profile name exists but no
+ * associated genlist item OR genlist item data exists.
+ * This condition can come when an AP action(Example connect)
+ * is triggered and by the time the response came the genlist is cleared.
+ */
+ ERROR_LOG(UG_NAME_RESP,"Error!!! Target item[0x%x] is NULL OR item data[0x%x] is NULL", target_item, gdata);
+ if (event_info->event_type == WLAN_MANAGER_RESPONSE_TYPE_CONNECTING ||
+ event_info->event_type == WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_OK) {
+ /* This situation comes during hidden AP connecting/connected event.
+ * Anyways its always better to add the connecting/connected AP */
+ target_item = viewer_list_item_insert_after(event_info->ap, NULL);
+ if (!target_item ||
+ !(gdata = (ug_genlist_data_t *)elm_object_item_data_get(target_item))) {
+ ERROR_LOG(UG_NAME_RESP, "Error!!! Fatal: Unable to add a connecting/connected item with item data[0x%x].", gdata);
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+ } else {
+ ERROR_LOG(UG_NAME_RESP, "Fatal: target_item or gdata is NULL");
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ }
+ }
+
+ /* All OK to process the response */
+ switch (event_info->event_type) {
+ case WLAN_MANAGER_RESPONSE_TYPE_POWER_ON_OK:
+ connman_request_scan_mode_set(WIFI_BGSCAN_MODE_PERIODIC);
+ viewer_manager_header_mode_set(HEADER_MODE_SEARCHING);
+ viewer_manager_show(VIEWER_WINSET_SEARCHING);
+ viewer_manager_show(VIEWER_WINSET_SUB_CONTENTS);
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_POWER_OFF_OK:
+ viewer_list_item_clear();
+ viewer_manager_header_mode_set(HEADER_MODE_OFF);
+ viewer_manager_hide(VIEWER_WINSET_SUB_CONTENTS);
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_POWER_ON_NOT_SUPPORTED:
+ viewer_manager_header_mode_set(HEADER_MODE_OFF);
+ common_utils_send_message_to_net_popup("Network connection popup", "not support", "notification", NULL);
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_POWER_ON_RESTRICTED:
+ viewer_manager_header_mode_set(HEADER_MODE_OFF);
+ common_utils_send_message_to_net_popup("Network connection popup", "wifi restricted", "popup", NULL);
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_SCAN_OK:
+ /* Manual scan complete response */
+ if (HEADER_MODE_DEACTIVATING == header_state ||
+ HEADER_MODE_OFF == header_state)
+ break;
+
+ viewer_manager_hidden_disable_set(FALSE);
+ viewer_manager_hide(VIEWER_WINSET_SEARCHING);
+ /* fall through */
+ case WLAN_MANAGER_RESPONSE_TYPE_SCAN_RESULT_IND:
+ /* Auto scan complete response */
+ wlan_manager_scanned_profile_refresh();
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_CONNECTING:
+ target_item = viewer_manager_move_item_to_top(target_item);
+ viewer_manager_update_ap_handle(target_item, event_info->ap);
+ viewer_manager_header_mode_set(HEADER_MODE_CONNECTING);
+ viewer_list_item_radio_mode_set(target_item, VIEWER_ITEM_RADIO_MODE_CONNECTING);
+ viewer_manager_scroll_to_top();
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_OK:
+ case WLAN_MANAGER_RESPONSE_TYPE_WPS_ENROLL_OK:
+ target_item = viewer_manager_move_item_to_top(target_item);
+ viewer_manager_update_ap_handle(target_item, event_info->ap);
+ viewer_list_item_radio_mode_set(target_item , VIEWER_ITEM_RADIO_MODE_CONNECTED);
+ viewer_manager_header_mode_set(HEADER_MODE_CONNECTED);
+ viewer_manager_scroll_to_top();
+
+ if (ug_app_state->passpopup) {
+ /* This is needed to remove the PBC timer popup */
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ }
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_CONNECT_FAILED:
+ case WLAN_MANAGER_RESPONSE_TYPE_WPS_ENROLL_FAIL:
+ viewer_manager_header_mode_set(HEADER_MODE_ON);
+ viewer_list_item_radio_mode_set(target_item , VIEWER_ITEM_RADIO_MODE_OFF);
+
+ if (ug_app_state->passpopup) {
+ common_pswd_popup_destroy(ug_app_state->passpopup);
+ ug_app_state->passpopup = NULL;
+ }
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_DISCONNECTION_OK:
+ viewer_manager_update_ap_handle(target_item, event_info->ap);
+ viewer_list_item_radio_mode_set(target_item, VIEWER_ITEM_RADIO_MODE_OFF);
+ viewer_manager_header_mode_set(HEADER_MODE_ON);
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_CANCEL_WPS_ENROLL_OK:
+ viewer_list_item_radio_mode_set(target_item, VIEWER_ITEM_RADIO_MODE_OFF);
+ viewer_manager_header_mode_set(HEADER_MODE_ON);
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_CANCEL_WPS_ENROLL_FAIL:
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_MAC_ID_IND:
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_SPECIFIC_SCAN_FAIL:
+ case WLAN_MANAGER_RESPONSE_TYPE_SPECIFIC_SCAN_OK:
+ viewer_manager_specific_scan_response_hlr(event_info->bss_info_list, user_data);
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_UPDATE_SIG_STR:
+ viewer_manager_update_connected_ap_sig_str();
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_INVALID_KEY:
+ winset_popup_mode_set(ug_app_state->popup_manager, POPUP_OPTION_WIFI_INVALID_KEY, NULL);
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_NONE:
+ default:
+ break;
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+void wlan_engine_refresh_callback(void)
+{
+ __COMMON_FUNC_ENTER__;
+ viewer_manager_refresh();
+ __COMMON_FUNC_EXIT__;
+}
diff --git a/sources/ui-gadget/winset_popup.c b/sources/ui-gadget/winset_popup.c
new file mode 100644
index 0000000..7b5636f
--- /dev/null
+++ b/sources/ui-gadget/winset_popup.c
@@ -0,0 +1,346 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "common.h"
+#include "ug_wifi.h"
+#include "i18nmanager.h"
+#include "common_utils.h"
+#include "winset_popup.h"
+#include "wlan_manager.h"
+#include "viewer_manager.h"
+
+struct popup_manager_object {
+ /* General popup attributes */
+ Evas_Object* win;
+ Evas_Object* popup;
+ Evas_Object *popup_user_prompt;
+ char *str_pkg_name;
+};
+
+static void _mobilehotspot_disable_cb(DBusGProxy *proxy, DBusGProxyCall *call, gpointer user_data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ GError *err = NULL;
+ guint type;
+ guint result;
+ DBusGConnection *bus = user_data;
+
+ dbus_g_proxy_end_call(proxy, call, &err, G_TYPE_UINT, &type,
+ G_TYPE_UINT, &result, G_TYPE_INVALID);
+ if (err != NULL) {
+ INFO_LOG(COMMON_NAME_LIB, "Error occured [%s]\n", err->message);
+ g_error_free(err);
+ viewer_manager_header_mode_set(HEADER_MODE_OFF);
+ } else {
+ INFO_LOG(COMMON_NAME_LIB, "TYPE = %d, Result = %d\n", type, result);
+ if (3 == type && (0 == result || 5 == result)) {
+ INFO_LOG(COMMON_NAME_LIB, "OK\n");
+ /* Tethering is now disabled. All OK to switch on Wi-Fi */
+ power_control();
+ } else {
+ viewer_manager_header_mode_set(HEADER_MODE_OFF);
+ }
+ }
+
+ g_pending_call.is_handled = TRUE;
+
+ g_object_unref(proxy);
+ dbus_g_connection_unref(bus);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void _retry_clicked_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ popup_manager_object_t *manager_object = (popup_manager_object_t *)data;
+ if (manager_object == NULL)
+ return;
+
+ INFO_LOG(UG_NAME_NORMAL, "Response OK");
+
+ switch (wlan_manager_start()) {
+ case WLAN_MANAGER_ERR_NONE:
+ break;
+
+ case WLAN_MANAGER_ERR_ALREADY_REGISTERED:
+ break;
+
+ case WLAN_MANAGER_ERR_UNKNOWN:
+ winset_popup_mode_set(manager_object, POPUP_OPTION_REGISTER_FAILED_COMMUNICATION_FAILED, NULL);
+
+ __COMMON_FUNC_EXIT__;
+ return;
+
+ default:
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ switch (wlan_manager_state_get()) {
+ case WLAN_MANAGER_OFF:
+ viewer_manager_header_mode_set(HEADER_MODE_OFF);
+ viewer_manager_hide(VIEWER_WINSET_SUB_CONTENTS);
+ break;
+ case WLAN_MANAGER_UNCONNECTED:
+ case WLAN_MANAGER_CONNECTING:
+ case WLAN_MANAGER_CONNECTED:
+ connman_request_scan_mode_set(WIFI_BGSCAN_MODE_PERIODIC);
+ viewer_manager_header_mode_set(HEADER_MODE_SEARCHING);
+ viewer_manager_hide(VIEWER_WINSET_SEARCHING);
+ viewer_manager_show(VIEWER_WINSET_SUB_CONTENTS);
+ break;
+ case WLAN_MANAGER_ERROR:
+ default:
+ break;
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void _back_clicked_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ INFO_LOG(UG_NAME_NORMAL, "Response CANCEL");
+ wifi_exit();
+}
+
+static int mobilehotspot_deactivate()
+{
+ __COMMON_FUNC_ENTER__;
+
+ DBusGConnection *bus;
+ DBusGProxy *proxy;
+ GError *error= NULL;
+
+ bus = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error);
+ if (error != NULL) {
+ INFO_LOG(COMMON_NAME_LIB, "Couldn't connect to the system bus");
+ g_error_free(error);
+ return FALSE;
+ }
+
+ proxy = dbus_g_proxy_new_for_name(bus,
+ "org.tizen.tethering", /* name */
+ "/Tethering", /* obj path */
+ "org.tizen.tethering");/* interface */
+ if (proxy == NULL) {
+ INFO_LOG(COMMON_NAME_LIB, "Couldn't create the proxy object");
+ dbus_g_connection_unref(bus);
+ return FALSE;
+ }
+ g_pending_call.pending_call = dbus_g_proxy_begin_call(proxy, "disable_wifi_tethering",
+ _mobilehotspot_disable_cb, bus, NULL, G_TYPE_INVALID);
+
+ g_pending_call.proxy = proxy;
+ g_pending_call.is_handled = FALSE;
+
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+}
+
+static void _turn_off_mobileap_yes_clicked_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ popup_manager_object_t *manager_object = (popup_manager_object_t *)data;
+ INFO_LOG(UG_NAME_NORMAL, "Response OK");
+ if(manager_object && NULL != manager_object->popup_user_prompt) {
+ evas_object_hide(manager_object->popup_user_prompt);
+ evas_object_del(manager_object->popup_user_prompt);
+ manager_object->popup_user_prompt = NULL;
+ }
+
+ if (FALSE != mobilehotspot_deactivate()) {
+ INFO_LOG(UG_NAME_NORMAL, "Mobile AP return value TRUE");
+ } else {
+ INFO_LOG(UG_NAME_NORMAL, "Mobile AP return value FALSE");
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void _turn_off_mobileap_no_clicked_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ popup_manager_object_t *manager_object = (popup_manager_object_t *)data;
+
+ INFO_LOG(UG_NAME_NORMAL, "Response CANCEL");
+
+ if(manager_object && NULL != manager_object->popup_user_prompt) {
+ evas_object_hide(manager_object->popup_user_prompt);
+ evas_object_del(manager_object->popup_user_prompt);
+ manager_object->popup_user_prompt = NULL;
+ viewer_manager_header_mode_set(HEADER_MODE_OFF);
+ }
+ __COMMON_FUNC_EXIT__;
+}
+
+#if 0
+static void _winset_popup_close_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ popup_manager_object_t *manager_object = (popup_manager_object_t *)data;
+ if (manager_object && manager_object->popup) {
+ evas_object_del(manager_object->popup);
+ manager_object->popup = NULL;
+ }
+ return;
+}
+#endif
+
+popup_manager_object_t *winset_popup_manager_create(Evas_Object* win, const char *str_pkg_name)
+{
+ popup_manager_object_t *manager_object;
+ manager_object = g_new0(popup_manager_object_t, 1);
+ manager_object->win = win;
+ manager_object->str_pkg_name = (char *)str_pkg_name;
+
+ return manager_object;
+}
+
+/*
+ * FIX ME LATER
+ * This function had re-factored as elm_popup's bug
+ */
+void winset_popup_mode_set(popup_manager_object_t *manager_object,
+ POPUP_MODE_OPTIONS option, void *input_data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ char *info_txt;
+ popup_btn_info_t popup_btn_data;
+
+ if (manager_object == NULL)
+ return;
+
+ if(NULL != manager_object->popup) {
+ evas_object_hide(manager_object->popup);
+ evas_object_del(manager_object->popup);
+ manager_object->popup = NULL;
+ }
+ INFO_LOG(UG_NAME_NORMAL, "option = %d", option);
+
+ memset(&popup_btn_data, 0, sizeof(popup_btn_data));
+ switch (option) {
+ case POPUP_OPTION_REGISTER_FAILED_COMMUNICATION_FAILED:
+ popup_btn_data.info_txt = "connman is not working now";
+ popup_btn_data.btn1_cb = _retry_clicked_cb;
+ popup_btn_data.btn2_cb = _back_clicked_cb;
+ popup_btn_data.btn1_data = manager_object;
+ popup_btn_data.btn1_txt = "Retry";
+ popup_btn_data.btn2_txt = "Back";
+ manager_object->popup =
+ common_utils_show_info_popup(
+ manager_object->win, &popup_btn_data);
+ break;
+
+ case POPUP_OPTION_POWER_ON_FAILED_MOBILE_HOTSPOT:
+ if(NULL == manager_object->popup_user_prompt) {
+ popup_btn_data.info_txt =
+ "Connecting Wi-Fi will turn off Mobile hotspot. Continue?";
+ popup_btn_data.btn1_cb = _turn_off_mobileap_yes_clicked_cb;
+ popup_btn_data.btn2_cb = _turn_off_mobileap_no_clicked_cb;
+ popup_btn_data.btn1_data = popup_btn_data.btn2_data = manager_object;
+ popup_btn_data.btn1_txt = sc(manager_object->str_pkg_name, I18N_TYPE_Yes);
+ popup_btn_data.btn2_txt = sc(manager_object->str_pkg_name, I18N_TYPE_No);
+ manager_object->popup_user_prompt =
+ common_utils_show_info_popup(
+ manager_object->win, &popup_btn_data);
+ }
+ break;
+
+ case POPUP_OPTION_CONNECTING_FAILED:
+ if (input_data) {
+ info_txt = g_strdup_printf("Unable to connect %s", (char *)input_data);
+ } else {
+ info_txt = g_strdup("Unable to connect");
+ }
+ manager_object->popup =
+ common_utils_show_info_ok_popup(
+ manager_object->win, manager_object->str_pkg_name, info_txt);
+ g_free(info_txt);
+ break;
+
+ case POPUP_OPTION_HIDDEN_AP_SSID_LEN_ERROR:
+ info_txt = _("SSID can be up to 32 letters.<br>Check your input.");
+ manager_object->popup =
+ common_utils_show_info_ok_popup(
+ manager_object->win, manager_object->str_pkg_name, info_txt);
+ break;
+
+ case POPUP_OPTION_WEP_PSWD_LEN_ERROR:
+ info_txt = WEP_WRONG_PASSWORD_LEN_ERR_MSG_STR;
+ manager_object->popup =
+ common_utils_show_info_ok_popup(
+ manager_object->win, manager_object->str_pkg_name, info_txt);
+ break;
+
+ case POPUP_OPTION_WPA_PSWD_LEN_ERROR:
+ info_txt = WPA_WRONG_PASSWORD_LEN_ERR_MSG_STR;
+ manager_object->popup =
+ common_utils_show_info_ok_popup(
+ manager_object->win, manager_object->str_pkg_name, info_txt);
+ break;
+
+ case POPUP_OPTION_WIFI_INVALID_KEY:
+ info_txt = INVALID_PASSWORD;
+ manager_object->popup =
+ common_utils_show_info_ok_popup(
+ manager_object->win, manager_object->str_pkg_name, info_txt);
+ break;
+
+ default:
+ break;
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+gboolean winset_popup_manager_destroy(popup_manager_object_t *manager_object)
+{
+ if (manager_object == NULL)
+ return FALSE;
+
+ if (manager_object->popup != NULL) {
+ evas_object_del(manager_object->popup);
+ manager_object->popup = NULL;
+ }
+
+ g_free(manager_object);
+
+ return TRUE;
+}
+
+gboolean winset_popup_hide_popup(popup_manager_object_t *manager_object)
+{
+ if (manager_object == NULL)
+ return FALSE;
+
+ evas_object_hide(manager_object->popup);
+ evas_object_del(manager_object->popup);
+ manager_object->popup = NULL;
+
+ if(manager_object->popup_user_prompt != NULL) {
+ evas_object_hide(manager_object->popup_user_prompt);
+ evas_object_del(manager_object->popup_user_prompt);
+ manager_object->popup_user_prompt = NULL;
+ }
+
+ return TRUE;
+}
diff --git a/sources/wifi-syspopup/CMakeLists.txt b/sources/wifi-syspopup/CMakeLists.txt
new file mode 100644
index 0000000..7fa7e8e
--- /dev/null
+++ b/sources/wifi-syspopup/CMakeLists.txt
@@ -0,0 +1,56 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(wifi-qs C)
+
+# defines
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(EXEC_PREFIX "\${prefix}")
+SET(LIBDIR "\${prefix}/lib")
+SET(INCLUDEDIR "\${prefix}/include")
+SET(VERSION 0.1.0)
+
+# source files
+SET(SRCS
+ ../libraries/i18nManager/i18nmanager.c
+ ../libraries/appcoreWrapper/appcoreWrapper.c
+ ../libraries/WlanManager/wlan-manager/wlan_manager.c
+ ../libraries/Common/common_utils.c
+ ../libraries/Common/common_ip_info.c
+ ../libraries/Common/common_pswd_popup.c
+ ../libraries/Common/common_eap_connect.c
+ ../libraries/Common/common_invalid_password.c
+ ${ENGINE_SOURCES}
+ viewer-popups/view-main.c
+ viewer-popups/view-alerts.c
+ wifi-syspopup.c
+ wifi-syspopup-engine-callback.c)
+
+FOREACH(flag ${pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+
+# add executable
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /usr/bin)
+
+# install image files
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../../resources/images/37_wifi_icon_00.png DESTINATION /usr/share/icon)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../../resources/images/37_wifi_icon_01.png DESTINATION /usr/share/icon)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../../resources/images/37_wifi_icon_02.png DESTINATION /usr/share/icon)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../../resources/images/37_wifi_icon_03.png DESTINATION /usr/share/icon)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../../resources/images/37_wifi_icon_lock_00.png DESTINATION /usr/share/icon)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../../resources/images/37_wifi_icon_lock_01.png DESTINATION /usr/share/icon)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../../resources/images/37_wifi_icon_lock_02.png DESTINATION /usr/share/icon)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../../resources/images/37_wifi_icon_lock_03.png DESTINATION /usr/share/icon)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/../../resources/images/Q02_Notification__wifi_in_range.png DESTINATION /usr/share/icon)
+
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/net.${PROJECT_NAME}.xml DESTINATION /usr/share/packages/)
+
+# install ini file
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.ini DESTINATION /usr/share/process-info)
+
diff --git a/sources/wifi-syspopup/include/wifi-syspopup-engine-callback.h b/sources/wifi-syspopup/include/wifi-syspopup-engine-callback.h
new file mode 100644
index 0000000..cba393f
--- /dev/null
+++ b/sources/wifi-syspopup/include/wifi-syspopup-engine-callback.h
@@ -0,0 +1,37 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __WIFI_SYSPOPUP_ENGINE_CALLBACK_H__
+#define __WIFI_SYSPOPUP_ENGINE_CALLBACK_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include "wlan_manager.h"
+
+void wlan_engine_refresh_callback(void);
+void wlan_engine_callback(wlan_mgr_event_info_t *event_info, void *user_data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/wifi-syspopup/include/wifi-syspopup.h b/sources/wifi-syspopup/include/wifi-syspopup.h
new file mode 100644
index 0000000..b499599
--- /dev/null
+++ b/sources/wifi-syspopup/include/wifi-syspopup.h
@@ -0,0 +1,98 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __WIFI_SYSPOPUP_H__
+#define __WIFI_SYSPOPUP_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include "common.h"
+#include "common_pswd_popup.h"
+#include "common_eap_connect.h"
+#include "wlan_manager.h"
+
+#define PACKAGE "wifi-qs"
+#define LOCALEDIR "/usr/share/locale"
+#define WIFI_SP_ICON_PATH "/usr/share/icon"
+
+typedef enum {
+ WIFI_SYSPOPUP_SUPPORT_NONE =0,
+ WIFI_SYSPOPUP_SUPPORT_QUICKPANEL=1,
+ WIFI_SYSPOPUP_SUPPORT_MAX
+} WIFI_SYSPOPUP_SUPPORTS;
+
+typedef enum {
+ WIFI_SYSPOPUP_WITH_AP_LIST = 0,
+ WIFI_SYSPOPUP_WITHOUT_AP_LIST
+} WIFI_SYSPOPUP_TYPE;
+
+#define MAX_PROFILE_NUM NETPM_PROFILES_PERSISTENT_MAX
+
+typedef struct wifi_object {
+ /* wifi object attributes */
+ WIFI_SYSPOPUP_SUPPORTS wifi_syspopup_support;
+
+ /* connection_result */
+ int connection_result;
+
+ Eina_Bool update_enabled;
+
+ /* caller type */
+ WIFI_SYSPOPUP_TYPE syspopup_type;
+
+ /* window */
+ Evas_Object* win_main;
+ Evas_Object* conformant;
+ Evas_Object* layout_main;
+
+ Evas* evas;
+ bundle* b;
+
+ /* popups */
+ Evas_Object* syspopup;
+ pswd_popup_t *passpopup;
+ common_eap_connect_data_t *eap_popup;
+ Evas_Object* alertpopup;
+} wifi_object;
+
+typedef enum {
+ ITEM_CONNECTION_MODE_NULL,
+ ITEM_CONNECTION_MODE_OFF,
+ ITEM_CONNECTION_MODE_CONNECTING,
+ ITEM_CONNECTION_MODE_DISCONNECTING,
+ ITEM_CONNECTION_MODE_MAX
+} ITEM_CONNECTION_MODES;
+
+typedef struct {
+ Elm_Object_Item *it;
+ ITEM_CONNECTION_MODES connection_mode;
+ wifi_device_info_t *dev_info;
+} syspopup_genlist_data_t;
+
+int wifi_syspopup_create(void);
+int wifi_syspopup_destroy(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/wifi-syspopup/net.wifi-qs.xml b/sources/wifi-syspopup/net.wifi-qs.xml
new file mode 100644
index 0000000..2ad839d
--- /dev/null
+++ b/sources/wifi-syspopup/net.wifi-qs.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="net.wifi-qs" version="0.4.55-7" install-location="internal-only">
+ <label>Wi-Fi device picker</label>
+ <author email="sanghoon80.cho@samsung.com" href="www.samsung.com">Sanghoon Cho</author>
+ <description>Wi-Fi device picker</description>
+ <ui-application appid="net.wifi-qs" exec="/usr/bin/wifi-qs" nodisplay="true" multiple="false" type="capp" taskmanage="false">
+ <label>Wi-Fi device picker</label>
+ </ui-application>
+</manifest>
diff --git a/sources/wifi-syspopup/viewer-popups/include/view-alerts.h b/sources/wifi-syspopup/viewer-popups/include/view-alerts.h
new file mode 100644
index 0000000..1858b23
--- /dev/null
+++ b/sources/wifi-syspopup/viewer-popups/include/view-alerts.h
@@ -0,0 +1,36 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __WIFI_SYSPOPUP_VIEW_ALERTS_H__
+#define __WIFI_SYSPOPUP_VIEW_ALERTS_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+int view_alerts_powering_on_show(void);
+void view_alerts_popup_show(const char *err_msg);
+void view_alerts_popup_ok_show(const char *err_msg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/wifi-syspopup/viewer-popups/include/view-main.h b/sources/wifi-syspopup/viewer-popups/include/view-main.h
new file mode 100644
index 0000000..5e25385
--- /dev/null
+++ b/sources/wifi-syspopup/viewer-popups/include/view-main.h
@@ -0,0 +1,44 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#ifndef __WIFI_SYSPOPUP_VIEW_MAIN_H__
+#define __WIFI_SYSPOPUP_VIEW_MAIN_H__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <Evas.h>
+#include <Eina.h>
+
+#include "wlan_manager.h"
+#include "wifi-syspopup.h"
+
+/* create */
+Evas_Object *view_main_create(Evas_Object* parent);
+int view_main_destroy(void);
+void view_main_item_state_set(wifi_ap_h ap, ITEM_CONNECTION_MODES state);
+Eina_Bool view_main_show(void *data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/sources/wifi-syspopup/viewer-popups/view-alerts.c b/sources/wifi-syspopup/viewer-popups/view-alerts.c
new file mode 100644
index 0000000..cf722b4
--- /dev/null
+++ b/sources/wifi-syspopup/viewer-popups/view-alerts.c
@@ -0,0 +1,112 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "common.h"
+#include "common_utils.h"
+#include "wifi-syspopup.h"
+#include "view-alerts.h"
+#include "i18nmanager.h"
+
+extern wifi_object* syspopup_app_state;
+
+int view_alerts_powering_on_show(void)
+{
+ __COMMON_FUNC_ENTER__;
+ if(WIFI_SYSPOPUP_SUPPORT_QUICKPANEL == syspopup_app_state->wifi_syspopup_support){
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+ }
+ if(NULL != syspopup_app_state->alertpopup) {
+ evas_object_del(syspopup_app_state->alertpopup);
+ syspopup_app_state->alertpopup = NULL;
+ }
+
+ syspopup_app_state->alertpopup = elm_popup_add(syspopup_app_state->layout_main);
+
+ Evas_Object *box = elm_box_add(syspopup_app_state->alertpopup);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(box);
+
+ Evas_Object *progressbar = elm_progressbar_add(box);
+ elm_object_style_set(progressbar, "list_process");
+ evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_progressbar_pulse(progressbar, EINA_TRUE);
+ evas_object_show(progressbar);
+ elm_box_pack_end(box, progressbar);
+
+ Evas_Object *label = elm_label_add(box);
+ elm_object_style_set(label, "popup/default");
+ evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_text_set(label, sc(PACKAGE, I18N_TYPE_Activating));
+ evas_object_show(label);
+ elm_box_pack_end(box, label);
+
+ elm_object_content_set(syspopup_app_state->alertpopup, box);
+ evas_object_size_hint_weight_set(syspopup_app_state->alertpopup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(syspopup_app_state->alertpopup);
+
+ __COMMON_FUNC_EXIT__;
+
+ return TRUE;
+}
+
+void view_alerts_popup_show(const char *err_msg)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (WIFI_SYSPOPUP_SUPPORT_QUICKPANEL ==
+ syspopup_app_state->wifi_syspopup_support) {
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ if (NULL != syspopup_app_state->alertpopup) {
+ evas_object_del(syspopup_app_state->alertpopup);
+ syspopup_app_state->alertpopup = NULL;
+ }
+
+ syspopup_app_state->alertpopup = common_utils_show_info_timeout_popup(syspopup_app_state->win_main, err_msg, 2.0f);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+void view_alerts_popup_ok_show(const char *err_msg)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (WIFI_SYSPOPUP_SUPPORT_QUICKPANEL ==
+ syspopup_app_state->wifi_syspopup_support) {
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ if (NULL != syspopup_app_state->alertpopup) {
+ evas_object_del(syspopup_app_state->alertpopup);
+ syspopup_app_state->alertpopup = NULL;
+ }
+
+ syspopup_app_state->alertpopup =
+ common_utils_show_info_ok_popup(
+ syspopup_app_state->win_main, PACKAGE, err_msg);
+
+ __COMMON_FUNC_EXIT__;
+}
diff --git a/sources/wifi-syspopup/viewer-popups/view-main.c b/sources/wifi-syspopup/viewer-popups/view-main.c
new file mode 100644
index 0000000..ad283b5
--- /dev/null
+++ b/sources/wifi-syspopup/viewer-popups/view-main.c
@@ -0,0 +1,520 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "common.h"
+#include "view-main.h"
+#include "common_pswd_popup.h"
+#include "common_utils.h"
+#include "view-alerts.h"
+#include "i18nmanager.h"
+#include "common_eap_connect.h"
+
+#define QS_POPUP_CONNECTION_STATE "qs_popup_connection_state"
+
+extern wifi_object* syspopup_app_state;
+
+static Evas_Object* list = NULL;
+static Elm_Genlist_Item_Class itc;
+
+static ITEM_CONNECTION_MODES view_main_state_get()
+{
+ return (ITEM_CONNECTION_MODES)evas_object_data_get(list, QS_POPUP_CONNECTION_STATE);
+}
+
+static void view_main_state_set(ITEM_CONNECTION_MODES state)
+{
+ return evas_object_data_set(list, QS_POPUP_CONNECTION_STATE, (const void *)state);
+}
+
+static void _popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ if (!syspopup_app_state->passpopup) {
+ return;
+ }
+ assertm_if(NULL == obj, "obj is NULL!!");
+ assertm_if(NULL == event_info, "event_info is NULL!!");
+
+ wifi_ap_h ap = common_pswd_popup_get_ap(syspopup_app_state->passpopup);
+ wifi_security_type_e sec_type;
+ wifi_ap_get_security_type(ap, &sec_type);
+
+ char* password = NULL;
+ int len_password = 0;
+ int ret = WLAN_MANAGER_ERR_UNKNOWN;
+ password = common_pswd_popup_get_txt(syspopup_app_state->passpopup);
+ len_password = strlen(password);
+ INFO_LOG(SP_NAME_NORMAL, "* password len [%d]", len_password);
+
+ switch (sec_type) {
+ case WIFI_SECURITY_TYPE_WEP:
+ if (len_password == 5 || len_password == 13 || len_password == 26 || len_password == 10) {
+ ret = wlan_manager_connect_with_password(ap, password);
+ } else {
+ view_alerts_popup_show(WEP_WRONG_PASSWORD_LEN_ERR_MSG_STR);
+ goto popup_ok_exit;
+ }
+ break;
+
+ case WIFI_SECURITY_TYPE_WPA_PSK:
+ case WIFI_SECURITY_TYPE_WPA2_PSK:
+ if (len_password < 8 || len_password > 63) {
+ view_alerts_popup_show(WPA_WRONG_PASSWORD_LEN_ERR_MSG_STR);
+ goto popup_ok_exit;
+ } else {
+ ret = wlan_manager_connect_with_password(ap, password);
+ }
+ break;
+
+ default:
+ ret = WLAN_MANAGER_ERR_UNKNOWN;
+ ERROR_LOG(SP_NAME_ERR, "Fatal: Wrong security type : %d", sec_type);
+ break;
+ }
+
+ common_pswd_popup_destroy(syspopup_app_state->passpopup);
+ syspopup_app_state->passpopup = NULL;
+
+popup_ok_exit:
+ g_free(password);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void _popup_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+
+ INFO_LOG(SP_NAME_NORMAL, "button cancel");
+
+ common_pswd_popup_destroy(syspopup_app_state->passpopup);
+ syspopup_app_state->passpopup = NULL;
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static void _wps_pbc_popup_cancel_connecting(void* data, Evas_Object* obj, void* event_info)
+{
+ if (!syspopup_app_state->passpopup) {
+ return;
+ }
+
+ wifi_ap_h ap = common_pswd_popup_get_ap(syspopup_app_state->passpopup);
+ int ret = wlan_manager_request_disconnection(ap);
+ if (ret == WLAN_MANAGER_ERR_NONE) {
+ INFO_LOG(SP_NAME_NORMAL, "WPS conection cancelled successfully for AP[0x%x]", ap);
+ } else {
+ ERROR_LOG(SP_NAME_ERR, "Error!!! wlan_manager_request_disconnection failed for AP[0x%x]", ap);
+ }
+ common_pswd_popup_destroy(syspopup_app_state->passpopup);
+ syspopup_app_state->passpopup = NULL;
+ return;
+}
+
+static void _wps_btn_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ if (!syspopup_app_state->passpopup) {
+ return;
+ }
+
+ wifi_ap_h ap = common_pswd_popup_get_ap(syspopup_app_state->passpopup);
+ int ret = wlan_manager_request_wps_connection(ap);
+ if (ret == WLAN_MANAGER_ERR_NONE) {
+ common_pswd_popup_pbc_popup_create(syspopup_app_state->passpopup, _wps_pbc_popup_cancel_connecting, NULL);
+ } else {
+ ERROR_LOG(SP_NAME_ERR, "Error!!! wlan_manager_request_wps_connection failed");
+ wifi_ap_destroy(ap);
+ }
+ __COMMON_FUNC_EXIT__;
+}
+
+static void __view_main_request_connection(syspopup_genlist_data_t *gdata)
+{
+ if (!gdata)
+ return;
+
+ int ret = WLAN_MANAGER_ERR_UNKNOWN;
+ ret = wlan_manager_request_connection(gdata->dev_info->ap);
+ switch (ret) {
+ case WLAN_MANAGER_ERR_NONE:
+ INFO_LOG( SP_NAME_NORMAL, "ERROR_NONE");
+ view_main_state_set(ITEM_CONNECTION_MODE_CONNECTING);
+ break;
+ case WLAN_MANAGER_ERR_CONNECT_PASSWORD_NEEDED:
+ INFO_LOG( SP_NAME_NORMAL, "Password view will show up");
+ pswd_popup_create_req_data_t popup_info;
+ memset(&popup_info, 0, sizeof(pswd_popup_create_req_data_t));
+ popup_info.title = gdata->dev_info->ssid;
+ popup_info.ok_cb = _popup_ok_cb;
+ popup_info.cancel_cb = _popup_cancel_cb;
+ popup_info.show_wps_btn = gdata->dev_info->wps_mode;
+ popup_info.wps_btn_cb = _wps_btn_cb;
+ popup_info.ap = gdata->dev_info->ap;
+ popup_info.cb_data = NULL;
+ syspopup_app_state->passpopup = common_pswd_popup_create(syspopup_app_state->layout_main, PACKAGE, &popup_info);
+ break;
+ case WLAN_MANAGER_ERR_CONNECT_EAP_SEC_TYPE:
+ syspopup_app_state->eap_popup = create_eap_connect_popup(syspopup_app_state->layout_main, PACKAGE, gdata->dev_info);
+ break;
+ default:
+ ERROR_LOG( SP_NAME_NORMAL, "errro code [%d]", ret);
+ break;
+ }
+}
+
+Elm_Object_Item *__view_main_get_item_in_mode(ITEM_CONNECTION_MODES mode)
+{
+ Elm_Object_Item* it = NULL;
+ it = elm_genlist_first_item_get(list);
+ __COMMON_FUNC_ENTER__;
+ while (it) {
+ syspopup_genlist_data_t *gdata = (syspopup_genlist_data_t *)elm_object_item_data_get(it);
+ if (gdata && gdata->connection_mode == mode) {
+ INFO_LOG( SP_NAME_NORMAL, "Found Item [%s] in mode[%d]", gdata->dev_info->ssid, mode);
+ __COMMON_FUNC_EXIT__;
+ return it;
+ }
+ it = elm_genlist_item_next_get(it);
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return NULL;
+}
+
+static void _gl_sel(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ assertm_if(NULL == data, "data is NULL!!");
+ assertm_if(NULL == obj, "obj is NULL!!");
+ assertm_if(NULL == event_info, "event_info is NULL!!");
+ Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+ ITEM_CONNECTION_MODES state = view_main_state_get();
+ syspopup_genlist_data_t *gdata = (syspopup_genlist_data_t *)data;
+
+ if (ITEM_CONNECTION_MODE_OFF == state) {
+ INFO_LOG(SP_NAME_NORMAL, "item state: off");
+ __view_main_request_connection(gdata);
+ elm_genlist_item_update(item);
+ } else if (ITEM_CONNECTION_MODE_CONNECTING == state) {
+ if (ITEM_CONNECTION_MODE_CONNECTING == gdata->connection_mode) { // Connecting Item Selected
+ if (WLAN_MANAGER_ERR_NONE == wlan_manager_request_disconnection(gdata->dev_info->ap)) {
+ view_main_state_set(ITEM_CONNECTION_MODE_DISCONNECTING);
+ gdata->connection_mode = ITEM_CONNECTION_MODE_DISCONNECTING;
+ elm_genlist_item_update(item);
+ }
+ } else { // Item Selected while other item is in connecting state
+#if 0 // Enable this later when two connect requests is supported by libnet.
+ Elm_Object_Item *connecting_it = __view_main_get_item_in_mode(ITEM_CONNECTION_MODE_CONNECTING);
+ view_main_state_set(ITEM_CONNECTION_MODE_OFF);
+ __view_main_request_connection(gdata);
+ if (connecting_it) {
+ syspopup_genlist_data_t *connecting_gdata = elm_object_item_data_get(connecting_it);
+ if (connecting_gdata && WLAN_MANAGER_ERR_NONE == wlan_manager_request_disconnection(connecting_gdata->dev_info->ap)) {
+ gdata->connection_mode = ITEM_CONNECTION_MODE_OFF;
+ elm_genlist_item_update(connecting_it);
+ }
+ } else {
+ ERROR_LOG(SP_NAME_NORMAL, "Could not find connecting item");
+ }
+#endif
+ }
+ } else {
+ INFO_LOG(SP_NAME_NORMAL, "In wrong state, nothing can do" );
+ }
+
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static char *_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ __COMMON_FUNC_ENTER__;
+ char *ret = NULL;
+ assertm_if(NULL == data, "data param is NULL!!");
+ assertm_if(NULL == obj, "obj param is NULL!!");
+ assertm_if(NULL == part, "part param is NULL!!");
+
+ syspopup_genlist_data_t *gdata = (syspopup_genlist_data_t *) data;
+ if (!strncmp(part, "elm.text.1", strlen(part))) {
+ ret = gdata->dev_info->ssid;
+ if (ret == NULL) {
+ ERROR_LOG(SP_NAME_NORMAL, "ssid name is NULL!!");
+ }
+ } else if (!strncmp(part, "elm.text.2", strlen(part))) {
+ if (ITEM_CONNECTION_MODE_CONNECTING == gdata->connection_mode) {
+ ret = sc(PACKAGE, I18N_TYPE_Connecting);
+ } else if (ITEM_CONNECTION_MODE_DISCONNECTING == gdata->connection_mode) {
+ ret = sc(PACKAGE, I18N_TYPE_Disconnecting);
+ } else {
+ ret = gdata->dev_info->ap_status_txt;
+ }
+ if (ret == NULL) {
+ ERROR_LOG(SP_NAME_NORMAL, "ap_status_txt is NULL!!");
+ }
+ }
+
+ __COMMON_FUNC_EXIT__;
+
+ return g_strdup(ret);
+}
+
+static Evas_Object *_gl_content_get(void *data, Evas_Object *obj, const char *part)
+{
+ __COMMON_FUNC_ENTER__;
+ if (data == NULL)
+ return NULL;
+
+ syspopup_genlist_data_t *gdata = (syspopup_genlist_data_t *) data;
+
+ const char* ssid_name = gdata->dev_info->ssid;
+ INFO_LOG(SP_NAME_NORMAL, "ssid name [%s]", ssid_name);
+
+ Evas_Object* icon = NULL;
+
+ if (!strncmp(part, "elm.icon.1", strlen(part))) {
+ icon = elm_image_add(obj);
+ elm_image_file_set(icon, gdata->dev_info->ap_image_path, NULL);
+ evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 5, 5);
+ } else if (!strncmp(part, "elm.icon.2", strlen(part))) {
+ switch (gdata->connection_mode) {
+ case ITEM_CONNECTION_MODE_OFF:
+ default:
+ break;
+ case ITEM_CONNECTION_MODE_CONNECTING:
+ case ITEM_CONNECTION_MODE_DISCONNECTING:
+ icon = elm_progressbar_add(obj);
+ elm_object_style_set(icon, "list_process");
+ evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, 0.5);
+ evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_progressbar_pulse(icon, TRUE);
+ break;
+ }
+
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return icon;
+}
+
+static void _gl_list_del(void* data, Evas_Object* obj)
+{
+ if (data == NULL)
+ return;
+
+ syspopup_genlist_data_t* gdata = (syspopup_genlist_data_t *) data;
+
+ if (gdata->dev_info) {
+ DEBUG_LOG(UG_NAME_NORMAL, "del target ssid: [%s]", gdata->dev_info->ssid);
+ g_free(gdata->dev_info->ap_image_path);
+ g_free(gdata->dev_info->ap_status_txt);
+ g_free(gdata->dev_info->ssid);
+ wifi_ap_destroy(gdata->dev_info->ap);
+ g_free(gdata->dev_info);
+ }
+ elm_object_item_data_set(gdata->it, NULL);
+ g_free(gdata);
+
+ return;
+}
+
+Evas_Object *view_main_create(Evas_Object* parent)
+{
+ __COMMON_FUNC_ENTER__;
+ assertm_if(NULL == parent, "parent is NULL!!");
+
+ list = elm_genlist_add(parent);
+ assertm_if(NULL == list, "list allocation fail!!");
+
+ evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ __COMMON_FUNC_EXIT__;
+
+ return list;
+}
+
+int view_main_destroy(void)
+{
+ __COMMON_FUNC_ENTER__;
+ if(NULL != list) {
+ evas_object_del(list);
+ list = NULL;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+}
+
+static void view_main_scan_ui_clear(void)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (list == NULL)
+ return;
+ elm_genlist_clear(list);
+
+ __COMMON_FUNC_EXIT__;
+}
+
+void view_main_item_state_set(wifi_ap_h ap, ITEM_CONNECTION_MODES state)
+{
+ char *item_ssid = NULL;
+ wifi_security_type_e sec_type;
+ wlan_security_mode_type_t item_sec_mode;
+ Elm_Object_Item* it = NULL;
+ it = elm_genlist_first_item_get(list);
+ __COMMON_FUNC_ENTER__;
+ if (!it ||
+ !ap ||
+ (WIFI_ERROR_NONE != wifi_ap_get_essid(ap, &item_ssid)) ||
+ (WIFI_ERROR_NONE != wifi_ap_get_security_type(ap, &sec_type))) {
+ ERROR_LOG(SP_NAME_NORMAL, "Invalid params");
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+ item_sec_mode = common_utils_get_sec_mode(sec_type);
+ INFO_LOG(SP_NAME_NORMAL, "item state set for AP[%s] with sec mode[%d]", item_ssid, item_sec_mode);
+ while (it) {
+ syspopup_genlist_data_t *gdata = (syspopup_genlist_data_t *)elm_object_item_data_get(it);
+ INFO_LOG(SP_NAME_NORMAL, "gdata AP[%s] with sec mode[%d]", gdata->dev_info->ssid, gdata->dev_info->security_mode);
+ if (gdata->dev_info->security_mode == item_sec_mode &&
+ !g_strcmp0(gdata->dev_info->ssid, item_ssid)) {
+ if (gdata->connection_mode != state) {
+ gdata->connection_mode = state;
+ INFO_LOG(SP_NAME_NORMAL, "State transition from [%d] --> [%d]", view_main_state_get(), state);
+ view_main_state_set(state);
+ elm_genlist_item_update(it);
+ }
+ break;
+ }
+
+ it = elm_genlist_item_next_get(it);
+ }
+ g_free(item_ssid);
+ __COMMON_FUNC_EXIT__;
+ return;
+}
+
+static wifi_device_info_t *view_main_item_device_info_create(wifi_ap_h ap)
+{
+ __COMMON_FUNC_ENTER__;
+
+ wifi_device_info_t *wifi_device = g_new0(wifi_device_info_t, 1);
+ wifi_security_type_e sec_type;
+
+ if (WIFI_ERROR_NONE != wifi_ap_clone(&(wifi_device->ap), ap)) {
+ g_free(wifi_device);
+ return NULL;
+ } else if (WIFI_ERROR_NONE != wifi_ap_get_essid(ap, &(wifi_device->ssid))) {
+ g_free(wifi_device);
+ return NULL;
+ } else if (WIFI_ERROR_NONE != wifi_ap_get_rssi(ap, &(wifi_device->rssi))) {
+ g_free(wifi_device->ssid);
+ g_free(wifi_device);
+ return NULL;
+ } else if (WIFI_ERROR_NONE != wifi_ap_get_security_type (ap, &sec_type)) {
+ g_free(wifi_device->ssid);
+ g_free(wifi_device);
+ return NULL;
+ } else if (WIFI_ERROR_NONE != wifi_ap_is_wps_supported (ap, &(wifi_device->wps_mode))) {
+ g_free(wifi_device->ssid);
+ g_free(wifi_device);
+ return NULL;
+ }
+ wifi_device->security_mode = common_utils_get_sec_mode(sec_type);
+ wifi_device->ap_status_txt = common_utils_get_ap_security_type_info_txt(PACKAGE, wifi_device);
+ wifi_device->ap_image_path = common_utils_get_device_icon(WIFI_SP_ICON_PATH, wifi_device);
+
+ __COMMON_FUNC_EXIT__;
+ return wifi_device;
+}
+
+static bool view_main_wifi_found_ap_cb(wifi_ap_h ap, void* user_data)
+{
+ int *profile_size = (int *)user_data;
+ syspopup_genlist_data_t *gdata = g_new0(syspopup_genlist_data_t, 1);
+ wifi_connection_state_e state;
+
+ gdata->dev_info = view_main_item_device_info_create(ap);
+ if (gdata->dev_info == NULL) {
+ g_free(gdata);
+
+ return true;
+ }
+
+ wifi_ap_get_connection_state(ap, &state);
+
+ if (WIFI_CONNECTION_STATE_ASSOCIATION == state ||
+ WIFI_CONNECTION_STATE_CONFIGURATION == state) {
+ gdata->connection_mode = ITEM_CONNECTION_MODE_CONNECTING;
+ gdata->it = elm_genlist_item_append(list, &itc, gdata, NULL, ELM_GENLIST_ITEM_NONE, _gl_sel, gdata);
+ *profile_size += 1;
+ view_main_state_set(ITEM_CONNECTION_MODE_CONNECTING);
+
+ return true;
+ }
+
+ gdata->connection_mode = ITEM_CONNECTION_MODE_OFF;
+ gdata->it = elm_genlist_item_append(list, &itc, gdata, NULL,
+ ELM_GENLIST_ITEM_NONE, _gl_sel, gdata);
+ *profile_size += 1;
+
+ return true;
+}
+
+Eina_Bool view_main_show(void *data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (list == NULL) {
+ ERROR_LOG( SP_NAME_NORMAL, "list is NULL!!" );
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ view_main_scan_ui_clear();
+ view_main_state_set(ITEM_CONNECTION_MODE_OFF);
+
+ int state = wlan_manager_state_get();
+ if (WLAN_MANAGER_ERROR == state || WLAN_MANAGER_OFF == state) {
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ itc.item_style = "2text.2icon.4";
+ itc.func.text_get = _gl_text_get;
+ itc.func.content_get = _gl_content_get;
+ itc.func.state_get = NULL;
+ itc.func.del = _gl_list_del;
+
+ int profiles_list_size = 0;
+
+ wifi_foreach_found_aps(view_main_wifi_found_ap_cb, &profiles_list_size);
+
+ INFO_LOG(SP_NAME_NORMAL, "profiles list count [%d]\n", profiles_list_size);
+ if (profiles_list_size <= 0) {
+ WARN_LOG(SP_NAME_NORMAL, "scan size is ZERO");
+ return ECORE_CALLBACK_CANCEL;
+ }
+
+ evas_object_show(list);
+ __COMMON_FUNC_EXIT__;
+
+ return ECORE_CALLBACK_CANCEL;
+}
diff --git a/sources/wifi-syspopup/wifi-qs.ini b/sources/wifi-syspopup/wifi-qs.ini
new file mode 100644
index 0000000..5abbace
--- /dev/null
+++ b/sources/wifi-syspopup/wifi-qs.ini
@@ -0,0 +1,2 @@
+[ProcessSetting]
+BG_SCHEDULE=true
diff --git a/sources/wifi-syspopup/wifi-syspopup-engine-callback.c b/sources/wifi-syspopup/wifi-syspopup-engine-callback.c
new file mode 100644
index 0000000..93ca3e9
--- /dev/null
+++ b/sources/wifi-syspopup/wifi-syspopup-engine-callback.c
@@ -0,0 +1,157 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <vconf-keys.h>
+#include <syspopup_caller.h>
+
+#include "common.h"
+#include "view-main.h"
+#include "view-alerts.h"
+#include "common_utils.h"
+#include "wifi-syspopup-engine-callback.h"
+
+extern wifi_object* syspopup_app_state;
+
+void wlan_engine_callback(wlan_mgr_event_info_t *event_info, void *user_data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ char *ssid = NULL;
+
+ if (event_info == NULL) {
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ INFO_LOG(SP_NAME_NORMAL, "event type [%d]", event_info->event_type);
+
+ switch (event_info->event_type) {
+ case WLAN_MANAGER_RESPONSE_TYPE_NONE:
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_OK:
+ case WLAN_MANAGER_RESPONSE_TYPE_WPS_ENROLL_OK:
+ ssid = wlan_manager_get_connected_ssid();
+
+ common_utils_send_message_to_net_popup(
+ "Network connection popup", "wifi connected",
+ "notification", ssid);
+ syspopup_app_state->connection_result = VCONFKEY_WIFI_QS_WIFI_CONNECTED;
+ wifi_syspopup_destroy();
+ g_free(ssid);
+
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_CONNECT_FAILED:
+ case WLAN_MANAGER_RESPONSE_TYPE_WPS_ENROLL_FAIL:
+ if (syspopup_app_state->passpopup) {
+ common_pswd_popup_destroy(syspopup_app_state->passpopup);
+ syspopup_app_state->passpopup = NULL;
+ }
+
+ view_main_item_state_set(event_info->ap, ITEM_CONNECTION_MODE_OFF);
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_DISCONNECTION_OK:
+ view_main_item_state_set(event_info->ap, ITEM_CONNECTION_MODE_OFF);
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_POWER_ON_OK:
+ connman_request_scan_mode_set(WIFI_BGSCAN_MODE_PERIODIC);
+
+ if (syspopup_app_state->syspopup_type == WIFI_SYSPOPUP_WITHOUT_AP_LIST)
+ wifi_syspopup_destroy();
+
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_POWER_ON_NOT_SUPPORTED:
+ if (syspopup_app_state->alertpopup) {
+ evas_object_del(syspopup_app_state->alertpopup);
+ syspopup_app_state->alertpopup = NULL;
+ }
+
+ common_utils_send_message_to_net_popup("Network connection popup", "not support", "notification", NULL);
+ wifi_syspopup_destroy();
+
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_POWER_ON_RESTRICTED:
+ if (syspopup_app_state->alertpopup) {
+ evas_object_del(syspopup_app_state->alertpopup);
+ syspopup_app_state->alertpopup = NULL;
+ }
+
+ common_utils_send_message_to_net_popup("Network connection popup", "wifi restricted", "popup", NULL);
+ wifi_syspopup_destroy();
+
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_POWER_OFF_OK:
+ wifi_syspopup_destroy();
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_SCAN_OK:
+ wlan_manager_scanned_profile_refresh();
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_CONNECTING:
+ view_main_item_state_set(event_info->ap,
+ ITEM_CONNECTION_MODE_CONNECTING);
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_SCAN_RESULT_IND:
+ wlan_manager_scanned_profile_refresh();
+ break;
+
+ case WLAN_MANAGER_RESPONSE_TYPE_CONNECTION_INVALID_KEY:
+ view_alerts_popup_ok_show(INVALID_PASSWORD);
+ break;
+
+ default:
+ break;
+ }
+
+ __COMMON_FUNC_EXIT__;
+}
+
+void wlan_engine_refresh_callback(void)
+{
+ __COMMON_FUNC_ENTER__;
+
+ if (NULL == syspopup_app_state) {
+ INFO_LOG(SP_NAME_ERR, "syspopup_app_state is NULL!! Is it test mode?");
+
+ __COMMON_FUNC_EXIT__;
+ return;
+ }
+
+ /* Make System popup filled, if it was first launched */
+ if (NULL != syspopup_app_state->alertpopup) {
+ /* deallocate alert popup if it has allocated */
+ evas_object_del(syspopup_app_state->alertpopup);
+ syspopup_app_state->alertpopup = NULL;
+ }
+
+ INFO_LOG(SP_NAME_NORMAL, "Wi-Fi QS launch");
+
+ ecore_idler_add(view_main_show, NULL);
+
+ __COMMON_FUNC_EXIT__;
+ return;
+}
diff --git a/sources/wifi-syspopup/wifi-syspopup.c b/sources/wifi-syspopup/wifi-syspopup.c
new file mode 100644
index 0000000..03f35e3
--- /dev/null
+++ b/sources/wifi-syspopup/wifi-syspopup.c
@@ -0,0 +1,641 @@
+/*
+ * Wi-Fi
+ *
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <wifi.h>
+#include <X11/Xatom.h>
+#include <X11/Xutil.h>
+#include <Ecore_X.h>
+#include <syspopup.h>
+#include <vconf-keys.h>
+#include <appcore-efl.h>
+
+#include "common.h"
+#include "view-main.h"
+#include "i18nmanager.h"
+#include "view-alerts.h"
+#include "common_utils.h"
+#include "wlan_manager.h"
+#include "wifi-syspopup.h"
+#include "appcoreWrapper.h"
+#include "wifi-syspopup-engine-callback.h"
+
+#define POPUP_HEAD_AREA 134
+#define POPUP_BUTTON_AREA 200
+#define MAX_INITIAL_QS_POPUP_LIST_SIZE 8
+
+wifi_object* syspopup_app_state = NULL;
+
+/* static */
+static int myterm(bundle* b, void* data);
+static int mytimeout(bundle *b, void* data);
+static int wifi_syspopup_exit( void );
+static void _exit_cb(void *data, Evas_Object *obj, void *event_info);
+static int syspopup_support_set(const char* support);
+static int app_reset(bundle *b, void *data);
+static int app_init(void *data);
+static int app_exit(void *data);
+static int app_start(void *data);
+static int app_stop(void *data);
+
+static int __get_window_property(Display *dpy, Window win, Atom atom,
+ Atom type, unsigned int *val,
+ unsigned int len)
+{
+ __COMMON_FUNC_ENTER__;
+ unsigned char *prop_ret = NULL;
+ Atom type_ret = -1;
+ unsigned long bytes_after = 0;
+ unsigned long num_ret = -1;
+ int format_ret = -1;
+ unsigned int i = 0;
+ int num = 0;
+
+ prop_ret = NULL;
+ if (XGetWindowProperty(dpy, win, atom, 0, 0x7fffffff, False,
+ type, &type_ret, &format_ret, &num_ret,
+ &bytes_after, &prop_ret) != Success) {
+ return -1;
+ }
+
+ if (type_ret != type || format_ret != 32) {
+ num = -1;
+ } else if (num_ret == 0 || !prop_ret) {
+ num = 0;
+ } else {
+ if (num_ret < len) {
+ len = num_ret;
+ }
+ for (i = 0; i < len; i++) {
+ val[i] = ((unsigned long *)prop_ret)[i];
+ }
+ num = len;
+ }
+
+ if (prop_ret) {
+ XFree(prop_ret);
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return num;
+}
+
+static int __x_rotation_get(Display *dpy, Window win)
+{
+ __COMMON_FUNC_ENTER__;
+ Window active_win = 0;
+ Window root_win = 0;
+ int rotation = -1;
+ int ret = -1;
+
+ Atom atom_active_win;
+ Atom atom_win_rotate_angle;
+
+ root_win = XDefaultRootWindow(dpy);
+
+ atom_active_win = XInternAtom(dpy, "_NET_ACTIVE_WINDOW", False);
+ ret = __get_window_property(dpy, root_win, atom_active_win,
+ XA_WINDOW,
+ (unsigned int *)&active_win, 1);
+
+ if (ret < 0)
+ return ret;
+
+ atom_win_rotate_angle =
+ XInternAtom(dpy, "_E_ILLUME_ROTATE_WINDOW_ANGLE", False);
+ ret = __get_window_property(dpy, active_win ,
+ atom_win_rotate_angle, XA_CARDINAL,
+ (unsigned int *)&rotation, 1);
+
+ __COMMON_FUNC_EXIT__;
+
+ if (ret != -1) {
+ return rotation;
+ }
+
+ return -1;
+}
+
+static Eina_Bool __rotate(void *data, int type, void *event)
+{
+ __COMMON_FUNC_ENTER__;
+ struct wifi_object *ad = data;
+ Ecore_X_Event_Client_Message *ev = event;
+ int visible_area_width, visible_area_height;
+ int rotate_angle;
+
+ Evas_Object *box = NULL;
+
+ if (!event)
+ return ECORE_CALLBACK_RENEW;
+
+ if (ev->message_type == ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE) {
+ box = elm_object_content_get(syspopup_app_state->syspopup);
+
+ if (box) {
+ rotate_angle = __x_rotation_get(ecore_x_display_get(), elm_win_xwindow_get(syspopup_app_state->win_main));
+ __common_popup_size_set(NULL ,&visible_area_width, &visible_area_height, rotate_angle);
+ elm_win_rotation_with_resize_set(syspopup_app_state->win_main, rotate_angle);
+ evas_object_size_hint_min_set(box, visible_area_width * elm_config_scale_get(), visible_area_height * elm_config_scale_get());
+ }
+
+ if (syspopup_app_state->eap_popup)
+ eap_view_rotate_popup(syspopup_app_state->eap_popup, rotate_angle);
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return 0;
+}
+
+void __common_popup_size_set(Ecore_IMF_Context *target_imf, int *width, int *height, int rotate_angle)
+{
+ __COMMON_FUNC_ENTER__;
+
+ int window_width, window_height;
+ int start_x, start_y, imf_width, imf_height;
+ float resize_scale = 0.7f;
+
+ ecore_x_window_size_get(ecore_x_window_root_first_get(), &window_width, &window_height);
+
+ *width = window_width;
+
+ if (rotate_angle == 0 || rotate_angle == 180)
+ {
+ *height = window_height * resize_scale;
+ }else
+ *height = window_width;
+
+ if (target_imf != NULL) {
+ ecore_imf_context_input_panel_geometry_get(target_imf, &start_x, &start_y, &imf_width, &imf_height);
+ *height = start_y * resize_scale;
+ }else
+ *height = *height-POPUP_HEAD_AREA-POPUP_BUTTON_AREA;
+
+ __COMMON_FUNC_EXIT__;
+}
+
+static int wifi_syspopup_rotate_cb(enum appcore_rm rotate_mode, void *data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ int rotate_angle;
+ int visible_area_width, visible_area_height;
+
+ Evas_Object *box = NULL;
+
+ rotate_angle = common_utils_get_rotate_angle(rotate_mode);
+ box = elm_object_content_get(syspopup_app_state->syspopup);
+ elm_win_rotation_with_resize_set(syspopup_app_state->win_main, rotate_angle);
+
+ __common_popup_size_get(NULL ,&visible_area_width, &visible_area_height);
+ evas_object_size_hint_min_set(box, visible_area_width * elm_config_scale_get(), visible_area_height * elm_config_scale_get());
+
+ if (syspopup_app_state->eap_popup)
+ eap_view_rotate_popup(syspopup_app_state->eap_popup, rotate_angle);
+
+ INFO_LOG(SP_NAME_NORMAL, "rotate_angle : %d", rotate_angle);
+
+ __COMMON_FUNC_EXIT__;
+ return 0;
+}
+
+/* implements */
+static int myterm(bundle* b, void* data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ wifi_syspopup_exit();
+
+ __COMMON_FUNC_EXIT__;
+
+ return 0;
+}
+
+static int mytimeout(bundle *b, void* data)
+{
+ __COMMON_FUNC_ENTER__;
+ __COMMON_FUNC_EXIT__;
+
+ return FALSE;
+}
+
+syspopup_handler handler = {
+ .def_term_fn = myterm,
+ .def_timeout_fn = mytimeout
+};
+
+static int wifi_syspopup_exit(void)
+{
+ __COMMON_FUNC_ENTER__;
+
+ view_main_destroy();
+
+ if (VCONFKEY_WIFI_QS_WIFI_CONNECTED == syspopup_app_state->connection_result)
+ INFO_LOG(SP_NAME_NORMAL, "Result : WIFI");
+ else if (VCONFKEY_WIFI_QS_3G == syspopup_app_state->connection_result)
+ INFO_LOG(SP_NAME_NORMAL, "Result : 3G");
+ else {
+ WARN_LOG(SP_NAME_NORMAL, "Result : ?? [%d]", syspopup_app_state->connection_result);
+ syspopup_app_state->connection_result = VCONFKEY_WIFI_QS_3G;
+ }
+
+ common_util_set_system_registry("memory/wifi/wifi_qs_exit",
+ syspopup_app_state->connection_result);
+
+ elm_exit();
+
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+}
+
+static void _exit_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ __COMMON_FUNC_ENTER__;
+ wifi_syspopup_exit();
+ __COMMON_FUNC_EXIT__;
+}
+
+int wifi_syspopup_destroy(void)
+{
+ if (syspopup_app_state->passpopup) {
+ common_pswd_popup_destroy(syspopup_app_state->passpopup);
+ syspopup_app_state->passpopup = NULL;
+ }
+
+ if (syspopup_app_state->syspopup) {
+ evas_object_del(syspopup_app_state->syspopup);
+ syspopup_app_state->syspopup = NULL;
+ }
+
+ if (syspopup_app_state->layout_main) {
+ evas_object_del(syspopup_app_state->layout_main);
+ syspopup_app_state->layout_main = NULL;
+ }
+
+ if (syspopup_app_state->conformant) {
+ evas_object_del(syspopup_app_state->conformant);
+ syspopup_app_state->conformant = NULL;
+ }
+
+ if (syspopup_app_state->win_main) {
+ evas_object_del(syspopup_app_state->win_main);
+ syspopup_app_state->win_main = NULL;
+ }
+
+ wifi_syspopup_exit();
+
+ return TRUE;
+}
+
+int wifi_syspopup_create(void)
+{
+ __COMMON_FUNC_ENTER__;
+ int rotate_angle;
+ int visible_area_height;
+ int visible_area_width;
+
+ if (NULL == syspopup_app_state->syspopup) {
+ syspopup_app_state->syspopup = elm_popup_add(syspopup_app_state->layout_main);
+ elm_object_content_set(syspopup_app_state->layout_main, syspopup_app_state->syspopup);
+ assertm_if(NULL == syspopup_app_state->syspopup, "syspopup is NULL!!");
+ }
+ elm_object_style_set(syspopup_app_state->syspopup,"min_menustyle");
+ elm_object_part_text_set(syspopup_app_state->syspopup, "title,text", sc(PACKAGE, I18N_TYPE_WiFi_network));
+ evas_object_size_hint_weight_set(syspopup_app_state->syspopup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ Evas_Object *btn_cancel = elm_button_add(syspopup_app_state->syspopup);
+ elm_object_text_set(btn_cancel, sc(PACKAGE, I18N_TYPE_Cancel));
+ elm_object_part_content_set(syspopup_app_state->syspopup, "button1", btn_cancel);
+ evas_object_smart_callback_add(btn_cancel, "clicked", _exit_cb, NULL);
+
+ /* Create and add a box into the layout. */
+ Evas_Object *box = elm_box_add(syspopup_app_state->syspopup);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ Evas_Object *main_list = view_main_create(box);
+ elm_box_pack_end(box, main_list);
+ evas_object_show(main_list);
+
+ rotate_angle = __x_rotation_get(ecore_x_display_get(), elm_win_xwindow_get(syspopup_app_state->win_main));
+ if (rotate_angle < 0)
+ rotate_angle = 0;
+
+ ecore_x_icccm_hints_set(elm_win_xwindow_get(syspopup_app_state->win_main), 1, 0, 0, 0, 0, 0, 0);
+
+ elm_win_rotation_with_resize_set(syspopup_app_state->win_main, rotate_angle);
+
+ __common_popup_size_set(NULL ,&visible_area_width, &visible_area_height, rotate_angle);
+ evas_object_size_hint_min_set(box, visible_area_width * elm_config_scale_get(), visible_area_height * elm_config_scale_get());
+
+ elm_object_content_set(syspopup_app_state->syspopup, box);
+ evas_object_show(syspopup_app_state->syspopup);
+ evas_object_show(syspopup_app_state->win_main);
+
+ memset(&g_pending_call, 0, sizeof(wifi_pending_call_info_t));
+
+ __COMMON_FUNC_EXIT__;
+
+ return TRUE;
+}
+
+int wifi_syspopup_init()
+{
+ __COMMON_FUNC_ENTER__;
+
+ int wlan_ret;
+ bool activated = FALSE;
+
+ wlan_manager_create();
+ wlan_manager_set_message_callback(wlan_engine_callback);
+ wlan_manager_set_refresh_callback(wlan_engine_refresh_callback);
+
+ wlan_ret = wlan_manager_start(NULL);
+ switch (wlan_ret) {
+ case WLAN_MANAGER_ERR_NONE:
+ wlan_ret = wifi_is_activated (&activated);
+ if (WIFI_ERROR_NONE != wlan_ret) {
+ ERROR_LOG(UG_NAME_ERR, "Failed to get the Wi-Fi State. Return error = %d", wlan_ret);
+ return WLAN_MANAGER_ERR_UNKNOWN;
+ }
+
+ if (activated) {
+ INFO_LOG(UG_NAME_NORMAL, "WiFi is activated");
+ if (connman_request_scan_mode_set(WIFI_BGSCAN_MODE_PERIODIC) == WLAN_MANAGER_ERR_NONE) {
+ INFO_LOG(SP_NAME_NORMAL, "Set BG scan mode - PERIODIC");
+ }
+ }
+ INFO_LOG(SP_NAME_NORMAL, "wlan_manager start complete" );
+ break;
+
+ case WLAN_MANAGER_ERR_ALREADY_REGISTERED:
+ ERROR_LOG(SP_NAME_ERR, "Already registered.");
+ break;
+
+ case WLAN_MANAGER_ERR_UNKNOWN:
+ ERROR_LOG(SP_NAME_ERR, "wlan fail communication." );
+ break;
+
+ default:
+ ERROR_LOG(SP_NAME_ERR, "wlan_manager start fail ret[%d]", wlan_ret );
+ break;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return wlan_ret;
+}
+
+static int syspopup_support_set(const char* support) {
+ __COMMON_FUNC_ENTER__;
+ if(NULL == support) {
+ __COMMON_FUNC_EXIT__;
+ return FALSE;
+ }
+
+ if(strcmp("WIFI_SYSPOPUP_SUPPORT_QUICKPANEL",support) == 0) {
+ syspopup_app_state->wifi_syspopup_support = WIFI_SYSPOPUP_SUPPORT_QUICKPANEL;
+ } else {
+ __COMMON_FUNC_EXIT__;
+ return FALSE;
+ }
+ __COMMON_FUNC_EXIT__;
+
+ return TRUE;
+}
+
+static int _power_on_check(void)
+{
+ int connection_state = wlan_manager_state_get();
+ switch (connection_state) {
+ case WLAN_MANAGER_OFF:
+ INFO_LOG(SP_NAME_NORMAL, "current state is wifi-off");
+ int wlan_ret = wlan_manager_request_power_on();
+ if (wlan_ret == WLAN_MANAGER_ERR_NONE) {
+ view_alerts_powering_on_show();
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+ } else if (wlan_ret == WLAN_MANAGER_ERR_MOBILE_HOTSPOT_OCCUPIED) {
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+ } else {
+ __COMMON_FUNC_EXIT__;
+ return FALSE;
+ }
+ break;
+ case WLAN_MANAGER_UNCONNECTED:
+ case WLAN_MANAGER_CONNECTING:
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+ case WLAN_MANAGER_CONNECTED:
+ ERROR_LOG(SP_NAME_NORMAL, "current state is wifi-connected");
+ __COMMON_FUNC_EXIT__;
+ return FALSE;
+ case WLAN_MANAGER_ERROR:
+ ERROR_LOG(SP_NAME_NORMAL, "current state is wifi error");
+ __COMMON_FUNC_EXIT__;
+ return FALSE;
+ default:
+ ERROR_LOG(SP_NAME_NORMAL, "current state is wifi etc");
+ __COMMON_FUNC_EXIT__;
+ return FALSE;
+ }
+
+ __COMMON_FUNC_EXIT__;
+ return TRUE;
+}
+
+static Eina_Bool __wifi_syspopup_del_found_ap_noti(void *data)
+{
+ common_utils_send_message_to_net_popup(NULL, NULL, "del_found_ap_noti", NULL);
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static int app_reset(bundle *b, void *data)
+{
+ __COMMON_FUNC_ENTER__;
+
+ Evas_Object *win_main = NULL;
+ Evas *evas = NULL;
+ int ret = 0;
+ int w, h = 0;
+
+ assertm_if(NULL == data, "data param is NULL!!");
+ assertm_if(NULL == b, "bundle is NULL!!");
+
+ /* Remove the "WiFi networks found" from the notification tray.*/
+ ecore_idler_add(__wifi_syspopup_del_found_ap_noti, NULL);
+
+ if (syspopup_has_popup(b)) {
+ INFO_LOG(SP_NAME_NORMAL, "Wi-Fi Syspopup is already launched. So, no more.");
+ syspopup_reset(b);
+ } else {
+ win_main = appcore_create_win(PACKAGE);
+ assertm_if(NULL == win_main, "win_main is NULL!!");
+ evas = evas_object_evas_get(win_main);
+ assertm_if(NULL == evas, "evas is NULL!!");
+
+ syspopup_app_state = data;
+ syspopup_app_state->win_main = win_main;
+ syspopup_app_state->evas = evas;
+ syspopup_app_state->b = bundle_dup(b);
+
+ elm_win_alpha_set(syspopup_app_state->win_main, EINA_TRUE); /* invisible window */
+ elm_win_borderless_set(syspopup_app_state->win_main, EINA_TRUE); /* No borders */
+ elm_win_conformant_set(syspopup_app_state->win_main, TRUE); /* Popup autoscroll */
+
+ Evas_Object *conformant = elm_conformant_add(syspopup_app_state->win_main);
+ elm_win_conformant_set(syspopup_app_state->win_main, EINA_TRUE);
+ elm_win_resize_object_add(syspopup_app_state->win_main, conformant);
+ evas_object_size_hint_weight_set(conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(conformant, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(conformant);
+ syspopup_app_state->conformant = conformant;
+
+ Evas_Object *layout = elm_layout_add(conformant);
+ elm_object_content_set(conformant, layout);
+ syspopup_app_state->layout_main = layout;
+
+ const char* is_onoff = bundle_get_val(b, "-t");
+
+ if (is_onoff != NULL) {
+ INFO_LOG(SP_NAME_NORMAL, "is_onoff [%s]", is_onoff);
+
+ syspopup_app_state->syspopup_type = WIFI_SYSPOPUP_WITHOUT_AP_LIST;
+ int wlan_ret = wifi_syspopup_init();
+
+ if (WLAN_MANAGER_ERR_NONE != wlan_ret) {
+ INFO_LOG(SP_NAME_ERR, "wifi_syspopup_init failed. wlan_ret = %d", wlan_ret);
+ } else if (strcmp(is_onoff, "on") == 0) {
+ INFO_LOG(SP_NAME_NORMAL, "request power on");
+ ret = wlan_manager_request_power_on();
+ INFO_LOG(SP_NAME_NORMAL, "* ret [%d]", ret);
+ } else if (strcmp(is_onoff, "off") == 0) {
+ INFO_LOG(SP_NAME_NORMAL, "request power off");
+ ret = wlan_manager_request_power_off();
+ INFO_LOG(SP_NAME_NORMAL, "* ret [%d]", ret);
+ }
+
+ wifi_syspopup_destroy();
+ return 0;
+ } else {
+ syspopup_app_state->syspopup_type = WIFI_SYSPOPUP_WITH_AP_LIST;
+ int wlan_ret = wifi_syspopup_init();
+ if (WLAN_MANAGER_ERR_NONE != wlan_ret || _power_on_check() == FALSE) {
+ wifi_syspopup_destroy();
+ __COMMON_FUNC_EXIT__;
+ return 0;
+ }
+ }
+
+ syspopup_app_state->syspopup = elm_popup_add(syspopup_app_state->win_main);
+ ret = syspopup_create(b, &handler, syspopup_app_state->win_main, syspopup_app_state);
+ if(ret != 0){
+ ERROR_LOG(SP_NAME_ERR, "Syspopup create error!! return [%d]", ret );
+
+ wlan_manager_destroy();
+
+ __COMMON_FUNC_EXIT__;
+ elm_exit();
+
+ return 0;
+ } else {
+ const char* support = bundle_get_val(b, "[Wi-Fi_syspopup wifi_syspopup_supports:support]");
+ if(NULL != support) {
+ syspopup_support_set(support);
+ }
+
+ ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+
+ wifi_syspopup_create();
+ wlan_manager_scanned_profile_refresh_with_count(MAX_INITIAL_QS_POPUP_LIST_SIZE);
+ ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, __rotate, (void *)syspopup_app_state);
+
+ }
+ }
+ __COMMON_FUNC_EXIT__;
+
+ return 0;
+}
+
+static int app_init(void *data)
+{
+ __COMMON_FUNC_ENTER__;
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ __COMMON_FUNC_EXIT__;
+
+ return 0;
+}
+
+static int app_exit(void *data)
+{
+ __COMMON_FUNC_ENTER__;
+ wlan_manager_destroy();
+ __COMMON_FUNC_EXIT__;
+
+ return 0;
+}
+
+static int app_start(void *data)
+{
+ __COMMON_FUNC_ENTER__;
+ if (connman_request_scan_mode_set(WIFI_BGSCAN_MODE_PERIODIC) == WLAN_MANAGER_ERR_NONE) {
+ INFO_LOG(SP_NAME_NORMAL, "Set BG scan mode - PERIODIC");
+ }
+ __COMMON_FUNC_EXIT__;
+
+ return 0;
+}
+
+static int app_stop(void *data)
+{
+ __COMMON_FUNC_ENTER__;
+ if (connman_request_scan_mode_set(WIFI_BGSCAN_MODE_EXPONENTIAL) == WLAN_MANAGER_ERR_NONE) {
+ INFO_LOG(SP_NAME_NORMAL, "Set BG scan mode - EXPONENTIAL");
+ }
+ __COMMON_FUNC_EXIT__;
+
+ return 0;
+}
+
+int main(int argc, char* argv[])
+{
+ __COMMON_FUNC_ENTER__;
+ INFO_LOG( SP_NAME_NORMAL, "argc [%d]", argc);
+
+ wifi_object ad;
+ memset(&ad, 0x0, sizeof(wifi_object));
+
+ ad.connection_result = VCONFKEY_WIFI_QS_3G;
+ ad.win_main = NULL;
+ ad.evas = NULL;
+ ad.b = NULL;
+ ad.syspopup = NULL;
+ ad.passpopup = NULL;
+ ad.alertpopup = NULL;
+
+ struct appcore_ops ops = {
+ .create = app_init,
+ .terminate = app_exit,
+ .pause = app_stop,
+ .resume = app_start,
+ .reset = app_reset,
+ };
+
+ ops.data = &ad;
+
+ __COMMON_FUNC_EXIT__;
+ return appcore_efl_main(PACKAGE, &argc, &argv, &ops);
+}
diff --git a/wifi-efl-ug.manifest b/wifi-efl-ug.manifest
new file mode 100644
index 0000000..97e8c31
--- /dev/null
+++ b/wifi-efl-ug.manifest
@@ -0,0 +1,5 @@
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>