Add functions for network forget and ap state update 28/282728/1
authorchaehee-hong <chaehee.hong@samsung.com>
Tue, 11 Oct 2022 02:22:47 +0000 (11:22 +0900)
committerchaehee-hong <chaehee.hong@samsung.com>
Tue, 11 Oct 2022 02:22:47 +0000 (11:22 +0900)
Change-Id: I396369c0445370ad6304187170e5df13655e4660

SettingWiFi/SettingWiFi/controller/WiFi.cs
SettingWiFi/SettingWiFi/res/locale/Resources.Designer.cs
SettingWiFi/SettingWiFi/res/locale/Resources.en.resx
SettingWiFi/SettingWiFi/res/locale/Resources.ko-KR.resx
SettingWiFi/SettingWiFi/res/locale/Resources.resx
SettingWiFi/SettingWiFi/view/AP.cs
SettingWiFi/SettingWiFi/view/ConnectPage.cs
SettingWiFi/SettingWiFi/view/InfoPage.cs
SettingWiFi/SettingWiFi/view/MainPage.cs
SettingWiFi/SettingWiFi/view/MorePage.cs
packaging/org.tizen.cssetting-wifi-1.0.0.tpk

index 7b4ce3ba114662252063fb6c9165ce195106bfbb..03f454e8a4e8b0e254c552975c52f2f719bc447a 100755 (executable)
@@ -4,6 +4,7 @@ using System.Text;
 using System.Threading.Tasks;\r
 using Tizen;\r
 using Tizen.Network.WiFi;\r
+using SettingWiFi.res.locale;\r
 using static SettingWiFi.Logger;\r
 \r
 namespace SettingWiFi\r
@@ -151,36 +152,36 @@ namespace SettingWiFi
                 //Debug("AP name: " + item.NetworkInformation.Essid);\r
                 //Debug("AP connection state: " + item.NetworkInformation.ConnectionState.ToString());\r
 \r
-                string connectionState = item.NetworkInformation.ConnectionState.ToString();\r
-                string securityType = item.SecurityInformation.SecurityType.ToString();\r
                 //bool isPassphraseRequired = item.SecurityInformation.IsPassphraseRequired;\r
+\r
+                string securityType = item.SecurityInformation.SecurityType.ToString();\r
                 bool isWpsSupported = item.SecurityInformation.IsWpsSupported;\r
 \r
-                if (item.NetworkInformation.ConnectionState.ToString().Equals("Connected"))\r
+                if (item.NetworkInformation.ConnectionState.ToString().Equals(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS))\r
                 {\r
-                    apInfoList.Add(new AP(item.NetworkInformation.Essid, "Connected"));\r
+                    apInfoList.Add(new AP(item.NetworkInformation.Essid, Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS, securityType, isWpsSupported));\r
                     continue;\r
                 }\r
                 string text = "";\r
 \r
-                if (securityType.Equals("None"))\r
+                if (securityType.Equals(Resources.IDS_ST_BODY_NONE))\r
                 {\r
-                    text = "Open";\r
+                    text = Resources.IDS_WIFI_POP_OPEN;\r
                 }\r
-                else if (securityType.Equals("Eap"))\r
+                else if (securityType.Equals(Resources.IDS_WIFI_BODY_EAP))\r
                 {\r
-                    text = "Secured (Eap)";\r
+                    text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY + " (Eap)";\r
                 }\r
                 else if (isWpsSupported)\r
                 {\r
-                    text = "Secured (WPS available)";\r
+                    text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY + " (WPS available)";\r
                 }\r
                 else\r
                 {\r
-                    text = "Secured";\r
+                    text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY;\r
                 }\r
 \r
-                apInfoList.Add(new AP(item.NetworkInformation.Essid, text));\r
+                apInfoList.Add(new AP(item.NetworkInformation.Essid, text, securityType, isWpsSupported));\r
             }\r
 \r
             return apInfoList;\r
index 0548f91e5124852d79842a7c37acb9209596f292..329eea9c7ee604d354cf1faf76824174b1102e25 100755 (executable)
@@ -104,5 +104,41 @@ namespace SettingWiFi.res.locale {
                 return ResourceManager.GetString("IDS_WIFI_SK_FORGET", resourceCulture);
             }
         }
+
+        /// <summary>
+        ///   과(와) 유사한 지역화된 문자열을 찾습니다.
+        /// </summary>
+        public static string IDS_ST_BODY_NONE {
+            get {
+                return ResourceManager.GetString("IDS_ST_BODY_NONE", resourceCulture);
+            }
+        }
+
+        /// <summary>
+        ///   과(와) 유사한 지역화된 문자열을 찾습니다.
+        /// </summary>
+        public static string IDS_WIFI_BODY_EAP {
+            get {
+                return ResourceManager.GetString("IDS_WIFI_BODY_EAP", resourceCulture);
+            }
+        }
+
+        /// <summary>
+        ///   과(와) 유사한 지역화된 문자열을 찾습니다.
+        /// </summary>
+        public static string IDS_WIFI_POP_OPEN {
+            get {
+                return ResourceManager.GetString("IDS_WIFI_POP_OPEN", resourceCulture);
+            }
+        }
+
+        /// <summary>
+        ///   과(와) 유사한 지역화된 문자열을 찾습니다.
+        /// </summary>
+        public static string IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY {
+            get {
+                return ResourceManager.GetString("IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY", resourceCulture);
+            }
+        }
     }
 }
index 6c27373fa21fd7cce8d6c9e0021755f806ea7222..dfac5eca0fc856fdea825efc6a41302eff9fea32 100755 (executable)
   <data name="IDS_WIFI_SK_FORGET" xml:space="preserve">\r
     <value>Forget</value>\r
   </data>\r
+  <data name="IDS_ST_BODY_NONE" xml:space="preserve">\r
+    <value>None</value>\r
+  </data>\r
+  <data name="IDS_WIFI_BODY_EAP" xml:space="preserve">\r
+    <value>EAP</value>\r
+  </data>\r
+  <data name="IDS_WIFI_POP_OPEN" xml:space="preserve">\r
+    <value>Open</value>\r
+  </data>\r
+  <data name="IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY" xml:space="preserve">\r
+    <value>Secured</value>\r
+  </data>\r
 </root>
\ No newline at end of file
index 9fd4240b7a983ebc3102fc03634707c4fdd69490..63405a2d77828eb6eac62d66b5e0fd49de2ee050 100755 (executable)
   <data name="IDS_WIFI_SK_FORGET" xml:space="preserve">\r
     <value>지우기</value>\r
   </data>\r
+  <data name="IDS_ST_BODY_NONE" xml:space="preserve">\r
+    <value>설정 안 함</value>\r
+  </data>\r
+  <data name="IDS_WIFI_BODY_EAP" xml:space="preserve">\r
+    <value>EAP</value>\r
+  </data>\r
+  <data name="IDS_WIFI_POP_OPEN" xml:space="preserve">\r
+    <value>공개</value>\r
+  </data>\r
+  <data name="IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY" xml:space="preserve">\r
+    <value>보안</value>\r
+  </data>\r
 </root>
\ No newline at end of file
index 533fe7596e935f297fce2074230167abb55b3e8f..afb697d6e4f4c952f9549dc03adfb45dd08f2a41 100755 (executable)
   <data name="IDS_WIFI_SK_FORGET" xml:space="preserve">\r
     <value />\r
   </data>\r
+  <data name="IDS_ST_BODY_NONE" xml:space="preserve">\r
+    <value />\r
+  </data>\r
+  <data name="IDS_WIFI_BODY_EAP" xml:space="preserve">\r
+    <value />\r
+  </data>\r
+  <data name="IDS_WIFI_POP_OPEN" xml:space="preserve">\r
+    <value />\r
+  </data>\r
+  <data name="IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY" xml:space="preserve">\r
+    <value />\r
+  </data>\r
 </root>
\ No newline at end of file
index b2901946a4fd5d9d5074b4844edccee45cecbc05..d33500970bbceb8c7f39e1dd29c962c968ad653d 100755 (executable)
@@ -7,6 +7,7 @@ using Tizen.NUI.BaseComponents;
 using Tizen.NUI.Components;\r
 using Tizen.NUI.Binding;\r
 using Tizen.Network.WiFi;\r
+using SettingWiFi.res.locale;\r
 using static SettingWiFi.Logger;\r
 \r
 \r
@@ -17,6 +18,8 @@ namespace SettingWiFi
         string iconDir = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "icon.png";\r
         private string essid;\r
         private string state;\r
+        private string secType;\r
+        private bool isWps;\r
 \r
         public event PropertyChangedEventHandler PropertyChanged;\r
 \r
@@ -26,10 +29,12 @@ namespace SettingWiFi
             PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r
         }\r
 \r
-        public AP(string apEssid, string apState)\r
+        public AP(string apEssid, string apState, string apSecType, bool apIsWps)\r
         {\r
             essid = apEssid;\r
             state = apState;\r
+            secType = apSecType;\r
+            isWps = apIsWps;\r
         }\r
 \r
         public string Essid\r
@@ -65,6 +70,22 @@ namespace SettingWiFi
                 OnPropertyChanged("State");\r
             }\r
         }\r
+\r
+        public string SecType\r
+        {\r
+            get\r
+            {\r
+                return secType;\r
+            }\r
+        }\r
+\r
+        public bool IsWps\r
+        {\r
+            get\r
+            {\r
+                return isWps;\r
+            }\r
+        }\r
     };\r
 \r
     public class DeviceCollection : ObservableCollection<AP>\r
@@ -95,7 +116,7 @@ namespace SettingWiFi
             if (apList == null)\r
             {\r
                 Debug("apList is null");\r
-                this.Add(new AP("", ""));\r
+                this.Add(new AP("", "", "", false));\r
                 return;\r
             }\r
             // Clear method have some issue about asynchronous actions,\r
@@ -107,17 +128,41 @@ namespace SettingWiFi
 \r
             foreach (var item in apList)\r
             {\r
-                this.Add(new AP(item.Essid, item.State));\r
+                this.Add(new AP(item.Essid, item.State, item.SecType, item.IsWps));\r
             }\r
         }\r
 \r
-        public void RemoveDevices()\r
+        public void RemoveScanList()\r
         {\r
             while (this.Count > 0)\r
             {\r
                 this.RemoveAt(this.Count - 1);\r
             }\r
         }\r
+\r
+        public void UpdateState(AP ap)\r
+        {\r
+            string text = "";\r
+\r
+            if (ap.SecType.Equals(Resources.IDS_ST_BODY_NONE))\r
+            {\r
+                text = Resources.IDS_WIFI_POP_OPEN;\r
+            }\r
+            else if (ap.SecType.Equals(Resources.IDS_WIFI_BODY_EAP))\r
+            {\r
+                text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY + " (Eap)";\r
+            }\r
+            else if (ap.IsWps)\r
+            {\r
+                text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY + " (WPS available)";\r
+            }\r
+            else\r
+            {\r
+                text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY;\r
+            }\r
+\r
+            ap.State = text;\r
+        }\r
     }\r
 \r
     public class APSource : ObservableCollection<DeviceCollection>\r
@@ -125,19 +170,23 @@ namespace SettingWiFi
         private DeviceCollection available;\r
         public APSource()\r
         {\r
-            Debug("new APSource");\r
             available = new DeviceCollection("Available networks");\r
             this.Add(available);\r
-            Debug("Add DeviceCollection");\r
         }\r
+\r
         public void UpdateScanList(List<AP> apList)\r
         {\r
             available.UpdateScanList(apList);\r
         }\r
 \r
-        public void RemoveDevices()\r
+        public void RemoveScanList()\r
+        {\r
+            available.RemoveScanList();\r
+        }\r
+\r
+        public void UpdateState(AP ap)\r
         {\r
-            available.RemoveDevices();\r
+            available.UpdateState(ap);\r
         }\r
     }\r
 }
\ No newline at end of file
index c71b2d0f1e250bcf8e9ea7561e8c7669ce333885..80936515b8ae448524410ce158d0f1a910a6557a 100644 (file)
@@ -44,9 +44,8 @@ namespace SettingWiFi
 
             connectView.Add(passwordField);
 
-            var item1 = new DefaultLinearItem();
-
-            connectView.Add(item1);
+            var item = new DefaultLinearItem();
+            connectView.Add(item);
 
             var cancelButton = new Button()
             {
index 4695fbbe6b91b88e36d7aae3149ef4ca5db49bbc..7b957169500b5bbaa5f7a3ff3a91c11fbd38be2d 100644 (file)
@@ -32,7 +32,7 @@ namespace SettingWiFi
             AppBarStyle appBarStyle = (AppBarStyle)ThemeManager.GetStyle("Tizen.NUI.Components.AppBar");
             Button backButton = new Button(((AppBarStyle)appBarStyle).BackButton);
 
-            backButton.Clicked += OnBackButtonClicked;
+            backButton.Clicked += OnBackClicked;
             appBar.NavigationContent = backButton;
 
             View infoView = new View()
@@ -53,7 +53,7 @@ namespace SettingWiFi
                 HeightSpecification = 80,
             };
 
-            forgetButton.Clicked += OnForgetButtonClicked;
+            forgetButton.Clicked += OnForgetClicked;
 
             infoView.Add(forgetButton);
 
@@ -61,15 +61,71 @@ namespace SettingWiFi
             Content = infoView;
         }
 
-        private void OnBackButtonClicked(object source, ClickedEventArgs args)
+        private ContentPage CreateForgetPage()
+        {
+            var forgetView = new View()
+            {
+                Layout = new LinearLayout()
+                {
+                    LinearOrientation = LinearLayout.Orientation.Vertical,
+                },
+                WidthSpecification = 200,
+                HeightSpecification = 100,
+            };
+
+            var item = new DefaultLinearItem();
+            forgetView.Add(item);
+
+            var cancelButton = new Button()
+            {
+                Text = "Cancel",
+                WidthSpecification = 300,
+                HeightSpecification = 80,
+            };
+            cancelButton.Clicked += OnCancelClicked;
+
+            var forgetButton = new Button()
+            {
+                Text = "Forget",
+                WidthSpecification = 300,
+                HeightSpecification = 80,
+            };
+            forgetButton.Clicked += OnForgetConfirmed;
+
+            ContentPage page = new ContentPage()
+            {
+                Content = new AlertDialog()
+                {
+                    Title = "Forget network",
+                    Content = forgetView,
+                    Actions = new View[] { cancelButton, forgetButton },
+                },
+            };
+
+            return page;
+        }
+
+        private void OnBackClicked(object source, ClickedEventArgs args)
         {
             Navigator.Pop();
         }
 
-        private void OnForgetButtonClicked(object source, ClickedEventArgs args)
+        private void OnForgetClicked(object source, ClickedEventArgs args)
         {
             Debug("Forget " + mAp.Essid);
+            var page = CreateForgetPage();
+            Navigator.Push(page);
+        }
+
+        private void OnCancelClicked(object source, ClickedEventArgs args)
+        {
+            Navigator.Pop();
+        }
+
+        private void OnForgetConfirmed(object source, ClickedEventArgs args)
+        {
             Forget();
+            Navigator.Pop();
         }
 
         private async void Forget()
index ecc9f42ecda92ecc511034a64ae3da02542266c2..6bff4daf2d8b49db1ce808d3109b65049ed6bd5c 100644 (file)
@@ -116,7 +116,7 @@ namespace SettingWiFi
                 WidthSpecification = 300,
                 HeightSpecification = 80,
             };
-            scanButton.Clicked += OnScanButtonClicked;
+            scanButton.Clicked += OnScanClicked;
 
             mainView.Add(header);
             mainView.Add(mScanList);
@@ -149,7 +149,7 @@ namespace SettingWiFi
                         HeightSpecification = 40,
                     };
                     //infoButton.Icon.SetBinding(ImageView.ResourceUrlProperty, "InfoImageUrl");
-                    infoButton.Clicked += OnInfoButtonClicked;
+                    infoButton.Clicked += OnInfoClicked;
                     item.Extra = infoButton;
 
                     return item;
@@ -235,19 +235,19 @@ namespace SettingWiFi
                 {
                     await mWifi.Deactivate();
                 }
-                mApSource.RemoveDevices();
+                mApSource.RemoveScanList();
             }
         }
 
-        private void OnScanButtonClicked(object sender, ClickedEventArgs e)
+        private void OnScanClicked(object sender, ClickedEventArgs e)
         {
-            Debug("OnScanButtonClicked");
+            Debug("OnScanClicked");
             ScanAP();
         }
 
-        private void OnInfoButtonClicked(object sender, ClickedEventArgs e)
+        private void OnInfoClicked(object sender, ClickedEventArgs e)
         {
-            Debug("OnInfoButtonClicked");
+            Debug("OnInfoClicked");
             Button button = (Button)sender;
             mInfoPage = CreateInfoPage(button.BindingContext as AP);
 
@@ -277,11 +277,9 @@ namespace SettingWiFi
                 if (item == null) break;
                 if (item is AP ap)
                 {
-                    //Log.Debug(LogTag, "Disconnect ");
-                    //await wifi.Disconnect(device.Essid);
-                    //device.State = "Disonnected";
-
-                    // device.Connected = false;
+                    Debug("Disconnect " + ap.Essid);
+                    await mWifi.Disconnect(ap.Essid);
+                    mApSource.UpdateState(ap);
                 }
             }
             foreach (object item in ev.CurrentSelection)
@@ -292,15 +290,11 @@ namespace SettingWiFi
                     if (ap.State.Equals(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS))
                     {
                         Debug("Already connected " + ap.Essid);
-                        return;
+                        break;
                     }
                     mConnectPage = CreateConnectPage(ap);
                     Navigator.Push(mConnectPage);
-
-
                     break;
-                    //  device.Connected = true;
-                    //  device.Registered = true;
                 }
             }
         }
index 08ac6e3ec06e034c2764aa4e55b51778522d0814..269de337d4a3cd5ffddbe44dcd1b3598a77c8d60 100644 (file)
@@ -25,7 +25,7 @@ namespace SettingWiFi
             AppBarStyle appBarStyle = (AppBarStyle)ThemeManager.GetStyle("Tizen.NUI.Components.AppBar");
             Button backButton = new Button(((AppBarStyle)appBarStyle).BackButton);
 
-            backButton.Clicked += OnBackButtonClicked;
+            backButton.Clicked += OnBackClicked;
             appBar.NavigationContent = backButton;
 
             View moreView = new View()
@@ -43,7 +43,7 @@ namespace SettingWiFi
             Content = moreView;
         }
 
-        private void OnBackButtonClicked(object source, ClickedEventArgs args)
+        private void OnBackClicked(object source, ClickedEventArgs args)
         {
             Navigator.Pop();
         }
index f277c75e089b9d775b12ed4fe28dbe364e880a30..8922ef146c2bcc45f52d57af471a6bfdd395fdf3 100755 (executable)
Binary files a/packaging/org.tizen.cssetting-wifi-1.0.0.tpk and b/packaging/org.tizen.cssetting-wifi-1.0.0.tpk differ