From: Sameer Kumar Date: Wed, 21 Feb 2024 05:21:01 +0000 (+0530) Subject: Resolve Sort by menu in advanced settings not working issue X-Git-Tag: accepted/tizen/unified/20240227.173432~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=35b144db6c44fe76021391eeb5e803658ff04ac3;p=profile%2Fiot%2Fapps%2Fdotnet%2Fsetting-wifi.git Resolve Sort by menu in advanced settings not working issue This patch: - Resolve https://jira.sec.samsung.net/browse/TNINE-366 Change-Id: I5cbbd591cbce1db92e4b6937c60ddedd5728ae15 Signed-off-by: Sameer Kumar --- diff --git a/SettingWiFi/SettingWiFi/view/APSource.cs b/SettingWiFi/SettingWiFi/view/APSource.cs index 7696e62..ab82abb 100755 --- a/SettingWiFi/SettingWiFi/view/APSource.cs +++ b/SettingWiFi/SettingWiFi/view/APSource.cs @@ -9,7 +9,9 @@ using Tizen.NUI.Binding; using Tizen.Network.WiFi; //using SettingWiFi.res.locale; using static SettingWiFi.Logger; - +using System.Linq; +using System.Collections; +using Interop; namespace SettingWiFi { @@ -37,6 +39,7 @@ namespace SettingWiFi OnPropertyChanged(new PropertyChangedEventArgs("Title")); } } + public float IconOpacity { get => iconOpacity; @@ -67,6 +70,49 @@ namespace SettingWiFi } } + public void SortScanListByAlphabet(List apList) + { + Debug("SortScanListAlphabet called"); + if (apList == null) + { + Debug("apList is null"); + return; + } + + while (this.Count > 0) + { + this.RemoveAt(this.Count - 1); + } + + var sortedApList = apList.OrderBy(ap => ap.Essid).ToList(); + + foreach (var item in sortedApList) + { + this.Add(item); + } + } + + public void SortScanListByStrength(List apList) + { + Debug("SortScanListStrength called"); + if (apList == null) + { + Debug("apList is null"); + return; + } + + while (this.Count > 0) + { + this.RemoveAt(this.Count - 1); + } + var sortedApList = apList.OrderBy(ap => ap.SignalStrength).ToList(); + + foreach (var item in sortedApList) + { + this.Add(item); + } + } + public void RemoveScanList() { while (this.Count > 0) @@ -154,10 +200,10 @@ namespace SettingWiFi { ap.ProxyPort = port; } - else - { - ap.ProxyPort = -1; - } + else + { + ap.ProxyPort = -1; + } } ap.StaticIPConfig = (networkInfo.IPv4Setting.IPConfigType == Tizen.Network.Connection.IPConfigType.Static); @@ -203,6 +249,16 @@ namespace SettingWiFi available.UpdateScanList(apList); } + public void SortScanListByAlphabet(List apList) + { + available.SortScanListByAlphabet(apList); + } + + public void SortScanListByStrength(List apList) + { + available.SortScanListByStrength(apList); + } + public void RemoveScanList() { available.RemoveScanList(); diff --git a/SettingWiFi/SettingWiFi/view/AdvancedPage.cs b/SettingWiFi/SettingWiFi/view/AdvancedPage.cs index aed6788..2e10fcb 100755 --- a/SettingWiFi/SettingWiFi/view/AdvancedPage.cs +++ b/SettingWiFi/SettingWiFi/view/AdvancedPage.cs @@ -13,10 +13,15 @@ namespace SettingWiFi { private WiFi mWifi; private APSource mApSource; + private List mApList; + private SortBy sortView; - internal AdvancedPage(WiFi wifi) + + internal AdvancedPage(WiFi wifi, List apList) { mWifi = wifi; + mApList = apList; + } internal void CreateComponents(APSource apSource) @@ -77,12 +82,16 @@ namespace SettingWiFi AppBar = CreateAppBar(Resources.IDS_WIFI_BODY_ADVANCED_SETTINGS); Content = advacedView; } - private void OnSortByClicked(object sender, ClickedEventArgs ev) { - // TO DO: Need to be completed. - // IDS_EMAIL_POP_ALPHABETICAL - // IDS_WIFI_MBODY_SIGNAL_STRENGTH_KOR_SKT + var sortPage = CreateSortByPage(); + NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(sortPage); + } + internal ContentPage CreateSortByPage() + { + var page = new SortBy(mApList); + page.CreateSortByComponent(mApSource); + return page; } private void OnInstallCerticateClicked(object obj, ClickedEventArgs arg) diff --git a/SettingWiFi/SettingWiFi/view/MainPage.cs b/SettingWiFi/SettingWiFi/view/MainPage.cs index c669638..d2d6656 100755 --- a/SettingWiFi/SettingWiFi/view/MainPage.cs +++ b/SettingWiFi/SettingWiFi/view/MainPage.cs @@ -19,6 +19,7 @@ namespace SettingWiFi private CollectionView mScanList; private Button mScanButton, mAddNetwork; private List mMenus; + private List mApList; private MoreMenuItem mHiddenMenuItem, mWifiDirectMenuItem; public override string ProvideIconPath() => GetResourcePath("main-menu-wifi-icon.svg"); @@ -366,7 +367,7 @@ namespace SettingWiFi internal ContentPage CreateAdvancedPage() { - var page = new AdvancedPage(mWifi); + var page = new AdvancedPage(mWifi, mApList); page.CreateComponents(mApSource); return page; } @@ -504,8 +505,8 @@ namespace SettingWiFi { mApSource.SetScanningState(true); await mWifi.Scan(); - List apList = mWifi.GetScanResult(); - mApSource.UpdateScanList(apList); + mApList = mWifi.GetScanResult(); + mApSource.UpdateScanList(mApList); mApSource.SetScanningState(false); } } diff --git a/SettingWiFi/SettingWiFi/view/Resources.cs b/SettingWiFi/SettingWiFi/view/Resources.cs index 4a204a5..1c86d46 100755 --- a/SettingWiFi/SettingWiFi/view/Resources.cs +++ b/SettingWiFi/SettingWiFi/view/Resources.cs @@ -102,6 +102,8 @@ static public string IDS_WIFI_BODY_WI_FI = "Wi-Fi"; static public string IDS_WIFI_BODY_UNKNOWN = "Unknown"; static public string IDS_WIFI_BODY_SORT_BY = "Sort by"; + static public string IDS_WIFI_BODY_ALPHABETICAL = "Alphabetical"; + static public string IDS_WIFI_BODY_SIGNAL_STRENGTH = "Signal Strength"; static public string IDS_WIFI_BODY_SCANNING_ING = "Scanning..."; static public string IDS_WIFI_BODY_NAME = "Name"; static public string IDS_WIFI_BODY_CONNECT = "Connect"; diff --git a/SettingWiFi/SettingWiFi/view/SortBy.cs b/SettingWiFi/SettingWiFi/view/SortBy.cs new file mode 100644 index 0000000..25f2026 --- /dev/null +++ b/SettingWiFi/SettingWiFi/view/SortBy.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tizen.NUI.BaseComponents; +using Tizen.NUI; +using Tizen.NUI.Components; +using Tizen.NUI.Binding; +using SettingCore.Views; +using Interop; +using System.Diagnostics; + +namespace SettingWiFi +{ + public class SortBy : ContentPage + { + private APSource mApSource; + private List mApList; + public SortBy(List apList) + { + mApList = apList; + } + internal void CreateSortByComponent(APSource apSource) + { + mApSource = apSource; + View sortView = new View() + { + Layout = new LinearLayout() + { + LinearOrientation = LinearLayout.Orientation.Vertical, + HorizontalAlignment = HorizontalAlignment.Center, + }, + WidthSpecification = LayoutParamPolicies.MatchParent, + HeightSpecification = LayoutParamPolicies.MatchParent, + }; + + var sortByAlphabet = new DefaultLinearItem() + { + WidthSpecification = LayoutParamPolicies.MatchParent, + Text = Resources.IDS_WIFI_BODY_ALPHABETICAL, + IsSelectable = false, + }; + sortByAlphabet.Clicked += OnSortByAlphabetClicked; + sortByAlphabet.SubLabel.HorizontalAlignment = HorizontalAlignment.Begin; + sortView.Add(sortByAlphabet); + + var sortByStrength = new DefaultLinearItem() + { + WidthSpecification = LayoutParamPolicies.MatchParent, + Text = Resources.IDS_WIFI_BODY_SIGNAL_STRENGTH, + IsSelectable = false, + }; + sortByStrength.Clicked += OnSortByStrengthClicked; + sortView.Add(sortByAlphabet); + sortView.Add(sortByStrength); + + AppBar = CreateAppBar(Resources.IDS_WIFI_BODY_SORT_BY); + Content = sortView; + } + protected virtual AppBar CreateAppBar(string title) + { + var appBar = new AppBar() + { + Title = title, + AutoNavigationContent = false, + }; + var appBarStyle = ThemeManager.GetStyle("Tizen.NUI.Components.AppBar"); + var navigationContent = new BackButton(); + navigationContent.Clicked += (o, e) => + { + NUIApplication.GetDefaultWindow().GetDefaultNavigator().Pop(); + }; + appBar.NavigationContent = navigationContent; + return appBar; + } + private void OnSortByAlphabetClicked(object obj, ClickedEventArgs arg) + { + + mApSource.SortScanListByAlphabet(mApList); + } + private void OnSortByStrengthClicked(object obj, ClickedEventArgs arg) + { + + mApSource.SortScanListByStrength(mApList); + } + + } +} diff --git a/packaging/org.tizen.cssetting-wifi-1.1.5.rpk b/packaging/org.tizen.cssetting-wifi-1.1.5.rpk index a5708af..592ac14 100644 Binary files a/packaging/org.tizen.cssetting-wifi-1.1.5.rpk and b/packaging/org.tizen.cssetting-wifi-1.1.5.rpk differ