Add WiFi AP icon based on RSSI and security type 20/282820/2
authorSeonah Moon <seonah1.moon@samsung.com>
Wed, 12 Oct 2022 04:48:03 +0000 (13:48 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Wed, 12 Oct 2022 04:50:36 +0000 (13:50 +0900)
Change-Id: I9642213b7ed1857de4a4d89bda8b6dde97ea1e64

16 files changed:
.gitignore [new file with mode: 0644]
SettingWiFi/SettingWiFi/controller/WiFi.cs
SettingWiFi/SettingWiFi/model/AP.cs
SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_00.png [new file with mode: 0644]
SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_01.png [new file with mode: 0644]
SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_02.png [new file with mode: 0644]
SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_03.png [new file with mode: 0644]
SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_captive.png [new file with mode: 0644]
SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_captive_press.png [new file with mode: 0644]
SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_00.png [new file with mode: 0644]
SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_01.png [new file with mode: 0644]
SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_02.png [new file with mode: 0644]
SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_03.png [new file with mode: 0644]
SettingWiFi/SettingWiFi/view/APSource.cs
SettingWiFi/SettingWiFi/view/MainPage.cs
packaging/org.tizen.cssetting-wifi-1.0.0.tpk

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..a3062be
--- /dev/null
@@ -0,0 +1 @@
+.vscode/*
index d37f74a9f98e022f3ec820c3a779e9850df4168c..3a230148e262d1168583d90fb6eb4fd7b7c6db8f 100755 (executable)
@@ -160,7 +160,9 @@ namespace SettingWiFi
 \r
                 if (item.NetworkInformation.ConnectionState.ToString().Equals(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS))\r
                 {\r
-                    apInfoList.Add(new AP(item, item.NetworkInformation.Essid, Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS, securityType, isWpsSupported));\r
+                    apInfoList.Add(new AP(item, item.NetworkInformation.Essid,\r
+                                        Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS, securityType,\r
+                                        isWpsSupported, item.NetworkInformation.RssiLevel));\r
                     continue;\r
                 }\r
                 string text = "";\r
@@ -182,7 +184,9 @@ namespace SettingWiFi
                     text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY;\r
                 }\r
 \r
-                apInfoList.Add(new AP(item, item.NetworkInformation.Essid, text, securityType, isWpsSupported));\r
+                apInfoList.Add(new AP(item, item.NetworkInformation.Essid,\r
+                                    text, securityType,\r
+                                    isWpsSupported, item.NetworkInformation.RssiLevel));\r
             }\r
 \r
             return apInfoList;\r
index 9a743d037c417f8b8a1fd25555c13cc5ea882228..53c59f7e1e89265f82115b3b895ded71a05bc935 100755 (executable)
@@ -15,11 +15,19 @@ namespace SettingWiFi
 {\r
     public class AP : INotifyPropertyChanged\r
     {\r
-        string iconDir = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "icon.png";\r
+        public enum SignalStrengthIndicator {\r
+            EXCELLENT,\r
+            GOOD,\r
+            WEAK,\r
+            VERY_WEAK,\r
+            UNKNOWN,\r
+        }\r
+        string iconDir = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/images/wifi-ap_icon_lock_03.png";\r
         private string essid;\r
         private string state;\r
         private string secType;\r
         private bool isWps;\r
+        private SignalStrengthIndicator signalStrength = SignalStrengthIndicator.UNKNOWN;\r
 \r
         public event PropertyChangedEventHandler PropertyChanged;\r
 \r
@@ -29,13 +37,78 @@ namespace SettingWiFi
             PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\r
         }\r
 \r
-        public AP(WiFiAP apHandle, string apEssid, string apState, string apSecType, bool apIsWps)\r
+        private SignalStrengthIndicator ConvertToSignalStrength(WiFiRssiLevel wifiRssiLevel)\r
+        {\r
+            Debug("ConvertToRssiLevel");\r
+            switch (wifiRssiLevel)\r
+            {\r
+                case WiFiRssiLevel.Level4:\r
+                    return SignalStrengthIndicator.EXCELLENT;\r
+                case WiFiRssiLevel.Level3:\r
+                    return SignalStrengthIndicator.GOOD;\r
+                case WiFiRssiLevel.Level2:\r
+                    return SignalStrengthIndicator.WEAK;\r
+                case WiFiRssiLevel.Level1:\r
+                case WiFiRssiLevel.Level0:\r
+                    return SignalStrengthIndicator.VERY_WEAK;\r
+                default:\r
+                    return SignalStrengthIndicator.UNKNOWN;\r
+            }\r
+        }\r
+\r
+        private void UpdateWiFiAPIcon()\r
+        {\r
+            string iconName = "wifi-ap_icon_";\r
+\r
+            if (secType != "None")\r
+            {\r
+                iconName += "lock_";\r
+            }\r
+\r
+            switch (signalStrength)\r
+            {\r
+                case SignalStrengthIndicator.EXCELLENT:\r
+                    iconName += "03";\r
+                    break;\r
+                case SignalStrengthIndicator.GOOD:\r
+                    iconName += "02";\r
+                    break;\r
+                case SignalStrengthIndicator.WEAK:\r
+                    iconName += "01";\r
+                    break;\r
+                case SignalStrengthIndicator.VERY_WEAK:\r
+                case SignalStrengthIndicator.UNKNOWN:\r
+                default:\r
+                    iconName += "00";\r
+                    break;\r
+            }\r
+\r
+            iconName += ".png";\r
+\r
+            Debug("Signal: " + signalStrength.ToString()\r
+                + ", Icon name: " + iconName); // TODO: will be removed.\r
+        }\r
+\r
+        public AP(WiFiAP apHandle, string apEssid, string apState, string apSecType, bool apIsWps, SignalStrengthIndicator apSignalStrength)\r
         {\r
             ApHandle = apHandle;\r
             essid = apEssid;\r
             state = apState;\r
             secType = apSecType;\r
             isWps = apIsWps;\r
+            signalStrength = apSignalStrength;\r
+            UpdateWiFiAPIcon();\r
+        }\r
+\r
+        public AP(WiFiAP apHandle, string apEssid, string apState, string apSecType, bool apIsWps, WiFiRssiLevel apRssiLevel)\r
+        {\r
+            ApHandle = apHandle;\r
+            essid = apEssid;\r
+            state = apState;\r
+            secType = apSecType;\r
+            isWps = apIsWps;\r
+            signalStrength = ConvertToSignalStrength(apRssiLevel);\r
+            UpdateWiFiAPIcon();\r
         }\r
 \r
         public WiFiAP ApHandle\r
@@ -93,5 +166,13 @@ namespace SettingWiFi
                 return isWps;\r
             }\r
         }\r
+\r
+        public SignalStrengthIndicator SignalStrength\r
+        {\r
+            get\r
+            {\r
+                return signalStrength;\r
+            }\r
+        }\r
     };\r
 }
\ No newline at end of file
diff --git a/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_00.png b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_00.png
new file mode 100644 (file)
index 0000000..384a0cd
Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_00.png differ
diff --git a/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_01.png b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_01.png
new file mode 100644 (file)
index 0000000..c8cc12c
Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_01.png differ
diff --git a/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_02.png b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_02.png
new file mode 100644 (file)
index 0000000..b1d948c
Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_02.png differ
diff --git a/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_03.png b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_03.png
new file mode 100644 (file)
index 0000000..e7ba2be
Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_03.png differ
diff --git a/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_captive.png b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_captive.png
new file mode 100644 (file)
index 0000000..b99ecb6
Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_captive.png differ
diff --git a/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_captive_press.png b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_captive_press.png
new file mode 100644 (file)
index 0000000..2bbf02d
Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_captive_press.png differ
diff --git a/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_00.png b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_00.png
new file mode 100644 (file)
index 0000000..8fb1858
Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_00.png differ
diff --git a/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_01.png b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_01.png
new file mode 100644 (file)
index 0000000..95e261c
Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_01.png differ
diff --git a/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_02.png b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_02.png
new file mode 100644 (file)
index 0000000..36a92a9
Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_02.png differ
diff --git a/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_03.png b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_03.png
new file mode 100644 (file)
index 0000000..30ca366
Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/images/wifi-ap_icon_lock_03.png differ
index a4076f2cb1573d47fc1b7e4852c74cf618a62ecf..ceda9b8e528882ef1534b89c5339ccb92e094d5c 100755 (executable)
@@ -41,7 +41,7 @@ namespace SettingWiFi
             if (apList == null)\r
             {\r
                 Debug("apList is null");\r
-                this.Add(new AP(null, "", "", "", false));\r
+                this.Add(new AP(null, "", "", "", false, AP.SignalStrengthIndicator.UNKNOWN));\r
                 return;\r
             }\r
             // Clear method have some issue about asynchronous actions,\r
@@ -53,7 +53,7 @@ namespace SettingWiFi
 \r
             foreach (var item in apList)\r
             {\r
-                this.Add(new AP(item.ApHandle, item.Essid, item.State, item.SecType, item.IsWps));\r
+                this.Add(new AP(item.ApHandle, item.Essid, item.State, item.SecType, item.IsWps, item.SignalStrength));\r
             }\r
         }\r
 \r
index 6bff4daf2d8b49db1ce808d3109b65049ed6bd5c..ffc50ce45b41a1e78e4f5adc37ff9690f31ae83c 100644 (file)
@@ -138,6 +138,19 @@ namespace SettingWiFi
                     item.Label.HorizontalAlignment = HorizontalAlignment.Begin;
                     item.SubLabel.SetBinding(TextLabel.TextProperty, "State");
                     item.SubLabel.HorizontalAlignment = HorizontalAlignment.Begin;
+
+                    ImageViewStyle imageViewStyle = new ImageViewStyle()
+                    {
+                        Color = new Selector<Color>()
+                        {
+                            Normal = new Color("#17234D"),
+                            Focused = new Color("#17234D"),
+                            Pressed = new Color("#FF6200"),
+                            Disabled = new Color("#CACACA"),
+                        },
+                    };
+
+                    item.Icon = new ImageView(imageViewStyle);
                     item.Icon.SetBinding(ImageView.ResourceUrlProperty, "ImageUrl");
                     item.Icon.WidthSpecification = 40;
                     item.Icon.HeightSpecification = 40;
index 8922ef146c2bcc45f52d57af471a6bfdd395fdf3..a5bff8bed2fa181af802e6395ff0a34b84f23376 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