From: Akash Kumar Date: Sat, 25 Mar 2023 04:34:43 +0000 (+0530) Subject: Add "Add Network" functionality X-Git-Tag: accepted/tizen/unified/20230426.062758~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F54%2F290454%2F5;p=profile%2Fiot%2Fapps%2Fdotnet%2Fsetting-wifi.git Add "Add Network" functionality This patche set adds - security option pop-up and - show/hide advanced options on toggling checkbox Change-Id: I216fea2e9cfd20d3a6edc37cda6703a2d66305ae Signed-off-by: Akash Kumar --- diff --git a/SettingWiFi/SettingWiFi/res/images/controller_btn_radio_off.png b/SettingWiFi/SettingWiFi/res/images/controller_btn_radio_off.png new file mode 100644 index 0000000..d423241 Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/images/controller_btn_radio_off.png differ diff --git a/SettingWiFi/SettingWiFi/res/images/controller_btn_radio_on.png b/SettingWiFi/SettingWiFi/res/images/controller_btn_radio_on.png new file mode 100644 index 0000000..d08e8e7 Binary files /dev/null and b/SettingWiFi/SettingWiFi/res/images/controller_btn_radio_on.png differ diff --git a/SettingWiFi/SettingWiFi/resources/locale/Resources.Designer.cs b/SettingWiFi/SettingWiFi/resources/locale/Resources.Designer.cs index 141b3fe..6e2cef4 100755 --- a/SettingWiFi/SettingWiFi/resources/locale/Resources.Designer.cs +++ b/SettingWiFi/SettingWiFi/resources/locale/Resources.Designer.cs @@ -814,6 +814,26 @@ namespace SettingWiFi.res.locale return ResourceManager.GetString("IDS_WIFI_AFTER_YOU_INSTALL_THEY_WILL_BE_SHOWN_HERE", resourceCulture); } } - + public static string IDS_ST_BODY_ADD_NETWORK + { + get + { + return ResourceManager.GetString("IDS_ST_BODY_ADD_NETWORK", resourceCulture); + } + } + public static string IDS_WIFI_BODY_ENTER_NETWORK_NAME + { + get + { + return ResourceManager.GetString("IDS_WIFI_BODY_ENTER_NETWORK_NAME", resourceCulture); + } + } + public static string IDS_WIFI_BODY_SHOW_ADVANCED_OPTIONS + { + get + { + return ResourceManager.GetString("IDS_WIFI_BODY_SHOW_ADVANCED_OPTIONS", resourceCulture); + } + } } } diff --git a/SettingWiFi/SettingWiFi/resources/locale/Resources.en.resx b/SettingWiFi/SettingWiFi/resources/locale/Resources.en.resx index e138bc7..933a7ff 100755 --- a/SettingWiFi/SettingWiFi/resources/locale/Resources.en.resx +++ b/SettingWiFi/SettingWiFi/resources/locale/Resources.en.resx @@ -435,4 +435,13 @@ After you install, they will be shown here. + + Add network + + + Enter network name + + + Show advanced options + diff --git a/SettingWiFi/SettingWiFi/resources/locale/Resources.ko-KR.resx b/SettingWiFi/SettingWiFi/resources/locale/Resources.ko-KR.resx index a93cdd5..ef9aefa 100755 --- a/SettingWiFi/SettingWiFi/resources/locale/Resources.ko-KR.resx +++ b/SettingWiFi/SettingWiFi/resources/locale/Resources.ko-KR.resx @@ -435,4 +435,14 @@ 설치가 완료되면 여기에 표시됩니다. + + 네트워크 추가 + + + 네트워크 이름 입력 + + + 고급 옵션 표시 + + diff --git a/SettingWiFi/SettingWiFi/view/AddNetwork.cs b/SettingWiFi/SettingWiFi/view/AddNetwork.cs new file mode 100644 index 0000000..368543e --- /dev/null +++ b/SettingWiFi/SettingWiFi/view/AddNetwork.cs @@ -0,0 +1,295 @@ +using System; +using System.Collections.Generic; +using Tizen.NUI; +using Tizen.NUI.BaseComponents; +using Tizen.NUI.Components; +using SettingWiFi.res.locale; +using static SettingWiFi.Logger; + +namespace SettingWiFi +{ + public enum SecurityType + { + None = 0, + Wep = 1, + WpaPsk = 2, + Wpa2Psk = 3, + Eap = 4 + } + class AddNetwork : ContentPage + { + private WiFi mWifi; + private Button mFindButton; + private SecurityType mSecurity; + private bool mShowAdvancedOptions; + View mAddNetworkView; + View mAdvancedView; + Window mWindow = NUIApplication.GetDefaultWindow(); + internal AddNetwork(WiFi wifi) + { + mWifi = wifi; + mSecurity = SecurityType.None; + } + + internal void CreateComponents(APSource apSource) + { + var appBar = new AppBar() + { + Title = Resources.IDS_ST_BODY_ADD_NETWORK, + }; + + AppBarStyle appBarStyle = (AppBarStyle)ThemeManager.GetStyle("Tizen.NUI.Components.AppBar"); + Button backButton = new Button(((AppBarStyle)appBarStyle).BackButton); + + backButton.Clicked += OnBackClicked; + appBar.NavigationContent = backButton; + + mAddNetworkView = new View() + { + Layout = new LinearLayout() + { + LinearOrientation = LinearLayout.Orientation.Vertical, + HorizontalAlignment = HorizontalAlignment.Center, + }, + WidthSpecification = LayoutParamPolicies.MatchParent, + HeightSpecification = LayoutParamPolicies.MatchParent, + Padding = new Extents(20, 20, 20, 20), + }; + var nameFieldTitle = new TextLabel() + { + + WidthSpecification = LayoutParamPolicies.MatchParent, + Text = Resources.IDS_WIFI_BODY_NAME, + }; + mAddNetworkView.Add(nameFieldTitle); + var nameField = new TextField() + { + + WidthSpecification = LayoutParamPolicies.MatchParent, + PlaceholderText = Resources.IDS_WIFI_BODY_ENTER_NETWORK_NAME, + Name = Resources.IDS_WIFI_BODY_NAME, + }; + + mAddNetworkView.Add(nameField); + + var passwordFieldTitle = new TextLabel() + { + + WidthSpecification = LayoutParamPolicies.MatchParent, + Text = Resources.IDS_WIFI_HEADER_PASSWORD, + }; + mAddNetworkView.Add(passwordFieldTitle); + + var passwordField = new TextField() + { + + WidthSpecification = LayoutParamPolicies.MatchParent, + PlaceholderText = Resources.IDS_WIFI_HEADER_ENTER_PASSWORD, + Name = Resources.IDS_WIFI_HEADER_PASSWORD, + }; + + mAddNetworkView.Add(passwordField); + + DefaultLinearItem securityOptions = new DefaultLinearItem() + { + WidthSpecification = LayoutParamPolicies.MatchParent, + IsSelectable = false, + Text = Resources.IDS_ST_BUTTON_SECURITY_ABB, + + }; + securityOptions.Clicked += OnSecurityOptionsClicked; + mAddNetworkView.Add(securityOptions); + + var showMore = new CheckBox(); + showMore.SelectedChanged += OnShowMoreSelectionChanged; + showMore.Text = Resources.IDS_WIFI_BODY_SHOW_ADVANCED_OPTIONS; + showMore.TextAlignment = HorizontalAlignment.End; + showMore.CellHorizontalAlignment = HorizontalAlignmentType.Left; + mAddNetworkView.Add(showMore); + + AppBar = appBar; + Content = mAddNetworkView; + } + public void OnShowMoreSelectionChanged(object sender, SelectedChangedEventArgs e) + { + Debug("OnShowMoreSelectinChanged"); + if (e.IsSelected) + { + ShowAdvancedOptions(); + } + else + { + Debug("UnSelected"); + mAddNetworkView.Remove(mAdvancedView); + } + } + + public void ShowAdvancedOptions() + { + + mAdvancedView = new View() + { + Layout = new LinearLayout() + { + LinearOrientation = LinearLayout.Orientation.Vertical, + HorizontalAlignment = HorizontalAlignment.Center, + }, + WidthSpecification = LayoutParamPolicies.MatchParent, + HeightSpecification = LayoutParamPolicies.MatchParent, + Padding = new Extents(20, 20, 20, 20), + }; + + Debug("ShowAdvancedOptions"); + var passwordFieldTitle = new TextLabel() + { + + WidthSpecification = LayoutParamPolicies.MatchParent, + Text = Resources.IDS_WIFI_HEADER_PASSWORD, + }; + mAdvancedView.Add(passwordFieldTitle); + mAddNetworkView.Add(mAdvancedView); + } + + public void OnSecurityOptionsClicked(object source, ClickedEventArgs args) + { + Debug("OnSecurityOptionsClicked"); + var page = new SecurityOptionsPage(mWifi); + page.CreateComponents(); + NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(page); + } + + private Button CreateButton(int width, int height, string name) + { + var button = new Button() + { + Text = name, + WidthSpecification = width, + HeightSpecification = height, + }; + return button; + } + + private Button CreateCancelButton() + { + var cancelButton = CreateButton(300, 80, Resources.IDS_WIFI_SK_CANCEL); + cancelButton.Clicked += (object source, ClickedEventArgs args) => + { + NUIApplication.GetDefaultWindow().GetDefaultNavigator().Pop(); + }; + return cancelButton; + } + + private void OnBackClicked(object source, ClickedEventArgs args) + { + NUIApplication.GetDefaultWindow().GetDefaultNavigator().Pop(); + } + + private async void OnConnectClicked(AP ap, string password) + { + NUIApplication.GetDefaultWindow().GetDefaultNavigator().Pop(); + await mWifi.Connect(ap, password); + if (mWifi.GetConnectedAP().Equals(ap.Essid)) + { + ap.StateInfo = Resources.IDS_WIFI_SBODY_CONNECTED_M_STATUS; + } + } + } + + class SecurityOptionsPage : DialogPage + { + private WiFi mWifi; + private RadioButton[] mSecurityOptions; + private RadioButtonGroup mGroup; + string mImagesPath; + + private string[] options = new string[] + { + "None", + "WEP", + "WPA PSK", + "WPA2 PSK" + }; + internal SecurityOptionsPage(WiFi wifi) + { + Debug("SecurityOptionsPage"); + mWifi = wifi; + mSecurityOptions = new RadioButton[4]; + mGroup = new RadioButtonGroup(); + mImagesPath = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "images/"; + Debug("path: " + mImagesPath); + } + + internal void CreateComponents() + { + Debug("CreateComponents"); + var securityOptionView = new RecyclerViewItem() + { + Layout = new LinearLayout() + { + LinearOrientation = LinearLayout.Orientation.Vertical, + }, + WidthSpecification = LayoutParamPolicies.MatchParent, + HeightSpecification = LayoutParamPolicies.WrapContent, + }; + + var okButton = new Button() + { + Text = Resources.IDS_WIFI_SK2_OK, + }; + okButton.Clicked += OnOkClicked; + + CreateSecurityOptions(securityOptionView); + mSecurityOptions[0].IsSelected = true; + Content = new AlertDialog() + { + Title = Resources.IDS_ST_BUTTON_SECURITY_ABB, + Content = securityOptionView, + Actions = new View[] { okButton }, + }; + } + + private void OnOkClicked(object source, ClickedEventArgs args) + { + Debug("OnOkClicked"); + NUIApplication.GetDefaultWindow().GetDefaultNavigator().Pop(); + } + + private void CreateSecurityOptions(View securityOptionView) + { + for (int i = 0; i < 4; i++) + { + mSecurityOptions[i] = new RadioButton(); + mSecurityOptions[i].SelectedChanged += (object sender, SelectedChangedEventArgs args) => + { + Debug($"Left {i}th Utility RadioButton's IsSelected is changed to {args.IsSelected}."); + }; + var radioButtonStyle = mSecurityOptions[i].Style; + radioButtonStyle.Icon.Opacity = new Selector + { + Normal = 1.0f, + Selected = 1.0f, + Disabled = 0.4f, + DisabledSelected = 0.4f + }; + radioButtonStyle.Icon.BackgroundImage = ""; + + radioButtonStyle.Icon.ResourceUrl = new Selector + { + Normal = mImagesPath + "controller_btn_radio_off.png", + Selected = mImagesPath + "controller_btn_radio_on.png", + Disabled = mImagesPath + "controller_btn_radio_off.png", + DisabledSelected = mImagesPath + "controller_btn_radio_on.png", + }; + mSecurityOptions[i].ApplyStyle(radioButtonStyle); + mSecurityOptions[i].Size = new Size(48, 48); + mSecurityOptions[i].Icon.Size = new Size(48, 48); + mSecurityOptions[i].Text = options[i]; + mSecurityOptions[i].Name = options[i]; + Debug(i + " " + options[i] + " : "); + mGroup.Add(mSecurityOptions[i]); + securityOptionView.Add(mSecurityOptions[i]); + } + } + } +} + diff --git a/SettingWiFi/SettingWiFi/view/MainPage.cs b/SettingWiFi/SettingWiFi/view/MainPage.cs index de39475..1391784 100755 --- a/SettingWiFi/SettingWiFi/view/MainPage.cs +++ b/SettingWiFi/SettingWiFi/view/MainPage.cs @@ -109,11 +109,19 @@ namespace SettingWiFi HeightSpecification = 80, }; scanButton.Clicked += OnScanClicked; + //Add Network button + var addNetwork = new Button() + { + Text = Resources.IDS_ST_BODY_ADD_NETWORK, + WidthSpecification = 300, + HeightSpecification = 80, + }; + addNetwork.Clicked += OnAddNetworkClicked; mainView.Add(header); mainView.Add(mScanList); mainView.Add(scanButton); - + mainView.Add(addNetwork); Content = mainView; } @@ -268,6 +276,20 @@ namespace SettingWiFi return page; } + private ContentPage CreateAddNetworkPage() + { + var page = new AddNetwork(mWifi); + page.CreateComponents(mApSource); + return page; + } + + private void OnAddNetworkClicked(object sender, ClickedEventArgs e) + { + Debug("OnAddNetworkClicked"); + var page = CreateAddNetworkPage(); + NUIApplication.GetDefaultWindow().GetDefaultNavigator().Push(page); + } + private async void ConnectOpenAP(AP ap) { Debug("Connect open AP"); diff --git a/SettingWiFi/SettingWiFi/view/Resources.cs b/SettingWiFi/SettingWiFi/view/Resources.cs index 1830063..3418f94 100755 --- a/SettingWiFi/SettingWiFi/view/Resources.cs +++ b/SettingWiFi/SettingWiFi/view/Resources.cs @@ -124,5 +124,8 @@ static public string IDS_WIFI_CERTIFICATE_SEARCH_RESULTS = "Certificate Search Results"; static public string IDS_WIFI_NO_CERTIFICATE_FOUND = "No certificate found."; static public string IDS_WIFI_AFTER_YOU_INSTALL_THEY_WILL_BE_SHOWN_HERE = "After you install, they will be shown here."; + static public string IDS_ST_BODY_ADD_NETWORK = "Add network"; + static public string IDS_WIFI_BODY_ENTER_NETWORK_NAME = "Enter network name"; + static public string IDS_WIFI_BODY_SHOW_ADVANCED_OPTIONS = "Show advanced options"; } } diff --git a/packaging/org.tizen.cssetting-wifi-1.0.0.tpk b/packaging/org.tizen.cssetting-wifi-1.0.0.tpk index dfed33c..2920a43 100644 Binary files a/packaging/org.tizen.cssetting-wifi-1.0.0.tpk and b/packaging/org.tizen.cssetting-wifi-1.0.0.tpk differ