From: chaehee-hong Date: Tue, 11 Oct 2022 02:22:47 +0000 (+0900) Subject: Add functions for network forget and ap state update X-Git-Tag: accepted/tizen/unified/20221216.024031~32 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F28%2F282728%2F1;p=profile%2Fiot%2Fapps%2Fdotnet%2Fsetting-wifi.git Add functions for network forget and ap state update Change-Id: I396369c0445370ad6304187170e5df13655e4660 --- diff --git a/SettingWiFi/SettingWiFi/controller/WiFi.cs b/SettingWiFi/SettingWiFi/controller/WiFi.cs index 7b4ce3b..03f454e 100755 --- a/SettingWiFi/SettingWiFi/controller/WiFi.cs +++ b/SettingWiFi/SettingWiFi/controller/WiFi.cs @@ -4,6 +4,7 @@ using System.Text; using System.Threading.Tasks; using Tizen; using Tizen.Network.WiFi; +using SettingWiFi.res.locale; using static SettingWiFi.Logger; namespace SettingWiFi @@ -151,36 +152,36 @@ namespace SettingWiFi //Debug("AP name: " + item.NetworkInformation.Essid); //Debug("AP connection state: " + item.NetworkInformation.ConnectionState.ToString()); - string connectionState = item.NetworkInformation.ConnectionState.ToString(); - string securityType = item.SecurityInformation.SecurityType.ToString(); //bool isPassphraseRequired = item.SecurityInformation.IsPassphraseRequired; + + string securityType = item.SecurityInformation.SecurityType.ToString(); bool isWpsSupported = item.SecurityInformation.IsWpsSupported; - if (item.NetworkInformation.ConnectionState.ToString().Equals("Connected")) + if (item.NetworkInformation.ConnectionState.ToString().Equals(Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS)) { - apInfoList.Add(new AP(item.NetworkInformation.Essid, "Connected")); + apInfoList.Add(new AP(item.NetworkInformation.Essid, Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS, securityType, isWpsSupported)); continue; } string text = ""; - if (securityType.Equals("None")) + if (securityType.Equals(Resources.IDS_ST_BODY_NONE)) { - text = "Open"; + text = Resources.IDS_WIFI_POP_OPEN; } - else if (securityType.Equals("Eap")) + else if (securityType.Equals(Resources.IDS_WIFI_BODY_EAP)) { - text = "Secured (Eap)"; + text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY + " (Eap)"; } else if (isWpsSupported) { - text = "Secured (WPS available)"; + text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY + " (WPS available)"; } else { - text = "Secured"; + text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY; } - apInfoList.Add(new AP(item.NetworkInformation.Essid, text)); + apInfoList.Add(new AP(item.NetworkInformation.Essid, text, securityType, isWpsSupported)); } return apInfoList; diff --git a/SettingWiFi/SettingWiFi/res/locale/Resources.Designer.cs b/SettingWiFi/SettingWiFi/res/locale/Resources.Designer.cs index 0548f91..329eea9 100755 --- a/SettingWiFi/SettingWiFi/res/locale/Resources.Designer.cs +++ b/SettingWiFi/SettingWiFi/res/locale/Resources.Designer.cs @@ -104,5 +104,41 @@ namespace SettingWiFi.res.locale { return ResourceManager.GetString("IDS_WIFI_SK_FORGET", resourceCulture); } } + + /// + /// 과(와) 유사한 지역화된 문자열을 찾습니다. + /// + public static string IDS_ST_BODY_NONE { + get { + return ResourceManager.GetString("IDS_ST_BODY_NONE", resourceCulture); + } + } + + /// + /// 과(와) 유사한 지역화된 문자열을 찾습니다. + /// + public static string IDS_WIFI_BODY_EAP { + get { + return ResourceManager.GetString("IDS_WIFI_BODY_EAP", resourceCulture); + } + } + + /// + /// 과(와) 유사한 지역화된 문자열을 찾습니다. + /// + public static string IDS_WIFI_POP_OPEN { + get { + return ResourceManager.GetString("IDS_WIFI_POP_OPEN", resourceCulture); + } + } + + /// + /// 과(와) 유사한 지역화된 문자열을 찾습니다. + /// + 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); + } + } } } diff --git a/SettingWiFi/SettingWiFi/res/locale/Resources.en.resx b/SettingWiFi/SettingWiFi/res/locale/Resources.en.resx index 6c27373..dfac5ec 100755 --- a/SettingWiFi/SettingWiFi/res/locale/Resources.en.resx +++ b/SettingWiFi/SettingWiFi/res/locale/Resources.en.resx @@ -135,4 +135,16 @@ Forget + + None + + + EAP + + + Open + + + Secured + \ No newline at end of file diff --git a/SettingWiFi/SettingWiFi/res/locale/Resources.ko-KR.resx b/SettingWiFi/SettingWiFi/res/locale/Resources.ko-KR.resx index 9fd4240..63405a2 100755 --- a/SettingWiFi/SettingWiFi/res/locale/Resources.ko-KR.resx +++ b/SettingWiFi/SettingWiFi/res/locale/Resources.ko-KR.resx @@ -132,4 +132,16 @@ 지우기 + + 설정 안 함 + + + EAP + + + 공개 + + + 보안 + \ No newline at end of file diff --git a/SettingWiFi/SettingWiFi/res/locale/Resources.resx b/SettingWiFi/SettingWiFi/res/locale/Resources.resx index 533fe75..afb697d 100755 --- a/SettingWiFi/SettingWiFi/res/locale/Resources.resx +++ b/SettingWiFi/SettingWiFi/res/locale/Resources.resx @@ -132,4 +132,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/SettingWiFi/SettingWiFi/view/AP.cs b/SettingWiFi/SettingWiFi/view/AP.cs index b290194..d335009 100755 --- a/SettingWiFi/SettingWiFi/view/AP.cs +++ b/SettingWiFi/SettingWiFi/view/AP.cs @@ -7,6 +7,7 @@ using Tizen.NUI.BaseComponents; using Tizen.NUI.Components; using Tizen.NUI.Binding; using Tizen.Network.WiFi; +using SettingWiFi.res.locale; using static SettingWiFi.Logger; @@ -17,6 +18,8 @@ namespace SettingWiFi string iconDir = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "icon.png"; private string essid; private string state; + private string secType; + private bool isWps; public event PropertyChangedEventHandler PropertyChanged; @@ -26,10 +29,12 @@ namespace SettingWiFi PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } - public AP(string apEssid, string apState) + public AP(string apEssid, string apState, string apSecType, bool apIsWps) { essid = apEssid; state = apState; + secType = apSecType; + isWps = apIsWps; } public string Essid @@ -65,6 +70,22 @@ namespace SettingWiFi OnPropertyChanged("State"); } } + + public string SecType + { + get + { + return secType; + } + } + + public bool IsWps + { + get + { + return isWps; + } + } }; public class DeviceCollection : ObservableCollection @@ -95,7 +116,7 @@ namespace SettingWiFi if (apList == null) { Debug("apList is null"); - this.Add(new AP("", "")); + this.Add(new AP("", "", "", false)); return; } // Clear method have some issue about asynchronous actions, @@ -107,17 +128,41 @@ namespace SettingWiFi foreach (var item in apList) { - this.Add(new AP(item.Essid, item.State)); + this.Add(new AP(item.Essid, item.State, item.SecType, item.IsWps)); } } - public void RemoveDevices() + public void RemoveScanList() { while (this.Count > 0) { this.RemoveAt(this.Count - 1); } } + + public void UpdateState(AP ap) + { + string text = ""; + + if (ap.SecType.Equals(Resources.IDS_ST_BODY_NONE)) + { + text = Resources.IDS_WIFI_POP_OPEN; + } + else if (ap.SecType.Equals(Resources.IDS_WIFI_BODY_EAP)) + { + text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY + " (Eap)"; + } + else if (ap.IsWps) + { + text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY + " (WPS available)"; + } + else + { + text = Resources.IDS_ST_BODY_SECURED_ABB_M_WIFI_AP_SUMMARY; + } + + ap.State = text; + } } public class APSource : ObservableCollection @@ -125,19 +170,23 @@ namespace SettingWiFi private DeviceCollection available; public APSource() { - Debug("new APSource"); available = new DeviceCollection("Available networks"); this.Add(available); - Debug("Add DeviceCollection"); } + public void UpdateScanList(List apList) { available.UpdateScanList(apList); } - public void RemoveDevices() + public void RemoveScanList() + { + available.RemoveScanList(); + } + + public void UpdateState(AP ap) { - available.RemoveDevices(); + available.UpdateState(ap); } } } \ No newline at end of file diff --git a/SettingWiFi/SettingWiFi/view/ConnectPage.cs b/SettingWiFi/SettingWiFi/view/ConnectPage.cs index c71b2d0..8093651 100644 --- a/SettingWiFi/SettingWiFi/view/ConnectPage.cs +++ b/SettingWiFi/SettingWiFi/view/ConnectPage.cs @@ -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() { diff --git a/SettingWiFi/SettingWiFi/view/InfoPage.cs b/SettingWiFi/SettingWiFi/view/InfoPage.cs index 4695fbb..7b95716 100644 --- a/SettingWiFi/SettingWiFi/view/InfoPage.cs +++ b/SettingWiFi/SettingWiFi/view/InfoPage.cs @@ -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() diff --git a/SettingWiFi/SettingWiFi/view/MainPage.cs b/SettingWiFi/SettingWiFi/view/MainPage.cs index ecc9f42..6bff4da 100644 --- a/SettingWiFi/SettingWiFi/view/MainPage.cs +++ b/SettingWiFi/SettingWiFi/view/MainPage.cs @@ -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; } } } diff --git a/SettingWiFi/SettingWiFi/view/MorePage.cs b/SettingWiFi/SettingWiFi/view/MorePage.cs index 08ac6e3..269de33 100644 --- a/SettingWiFi/SettingWiFi/view/MorePage.cs +++ b/SettingWiFi/SettingWiFi/view/MorePage.cs @@ -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(); } diff --git a/packaging/org.tizen.cssetting-wifi-1.0.0.tpk b/packaging/org.tizen.cssetting-wifi-1.0.0.tpk index f277c75..8922ef1 100755 Binary files a/packaging/org.tizen.cssetting-wifi-1.0.0.tpk and b/packaging/org.tizen.cssetting-wifi-1.0.0.tpk differ