New file |
| | |
| | | using HDL_ON.Stan; |
| | | using Shared; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | |
| | | namespace HDL_ON.UI |
| | | { |
| | | /// <summary> |
| | | /// 添加Evoyo的Mini智能遥控器步骤3界面 |
| | | /// </summary> |
| | | public class AddMiniRemoteControlDirection3Page : EditorCommonForm |
| | | { |
| | | #region ■ 变量声明___________________________ |
| | | |
| | | /// <summary> |
| | | /// 当前wifi的名字 |
| | | /// </summary> |
| | | private string NowWifiName = string.Empty; |
| | | /// <summary> |
| | | /// wifi的线程是否启动 |
| | | /// </summary> |
| | | private bool WifiThreadAction = false; |
| | | /// <summary> |
| | | /// wifi名(别的界面传过来的) |
| | | /// </summary> |
| | | private string wifiName = string.Empty; |
| | | /// <summary> |
| | | /// wifi密码(别的界面传过来的) |
| | | /// </summary> |
| | | private string wifiPassword = string.Empty; |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 初始化_____________________________ |
| | | |
| | | /// <summary> |
| | | /// 画面显示(底层会固定调用此方法,借以完成画面创建) |
| | | /// </summary> |
| | | /// <param name="i_wifiName">wifi名(别的界面传过来的)</param> |
| | | /// <param name="i_wifiPassword">(别的界面传过来的)</param> |
| | | public void ShowForm(string i_wifiName, string i_wifiPassword) |
| | | { |
| | | this.wifiName = i_wifiName; |
| | | this.wifiPassword = i_wifiPassword; |
| | | |
| | | //设置头部信息 |
| | | base.SetTitleText(Language.StringByID(StringId.AddInfraredRemoteControl)); |
| | | //这个界面的背景需要白色 |
| | | bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor; |
| | | |
| | | //初始化中部信息 |
| | | this.InitMiddleFrame(); |
| | | |
| | | //重写底层的返回按键 |
| | | this.BackButtonClickEvent += () => |
| | | { |
| | | //关掉蓝牙 |
| | | HdlBluetoothLogic.Current.Dispone(); |
| | | this.CloseForm(); |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 初始化中部信息 |
| | | /// </summary> |
| | | private void InitMiddleFrame() |
| | | { |
| | | //连接WiFi |
| | | var btnWifi = new NormalViewControl(200, 28, true); |
| | | btnWifi.X = HdlControlResourse.XXLeft; |
| | | btnWifi.Y = Application.GetRealHeight(16); |
| | | btnWifi.IsBold = true; |
| | | btnWifi.TextColor = CSS.CSS_Color.FirstLevelTitleColor; |
| | | btnWifi.TextSize = CSS.CSS_FontSize.EmphasisFontSize_Secondary; |
| | | btnWifi.TextID = StringId.ConnectWiFi; |
| | | bodyFrameLayout.AddChidren(btnWifi); |
| | | //目前只支持2.4G WiFi网络 |
| | | //暂不支持带有中文字符的WiFi名称 |
| | | var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg4); |
| | | var listContr = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize, CSS.CSS_Color.TextualColor, |
| | | Application.GetRealHeight(20), btnWifi.Bottom + Application.GetRealHeight(16), TextAlignment.CenterLeft); |
| | | |
| | | //wifi行 |
| | | var rowWifi = new RowLayoutControl(); |
| | | rowWifi.Y = listContr[listContr.Count - 1].Bottom + Application.GetRealHeight(32); |
| | | bodyFrameLayout.AddChidren(rowWifi); |
| | | //wifi名字 |
| | | var txtWifi = rowWifi.frameTable.AddLeftInput(wifiName, 200); |
| | | txtWifi.TextColor = CSS.CSS_Color.FirstLevelTitleColor; |
| | | //底线 |
| | | rowWifi.frameTable.AddBottomLine(); |
| | | //向右图标 |
| | | var btnRight = rowWifi.frameTable.AddMostRightEmptyIcon(24, 24); |
| | | btnRight.UnSelectedImagePath = "Public/Right.png"; |
| | | btnRight.ButtonClickEvent += (sender, e) => |
| | | { |
| | | //打开手机wifi设置界面 |
| | | HdlWifiLogic.Current.OpenAppWifiSettion(); |
| | | //刷新wifi名字 |
| | | this.RefreshWifiName(txtWifi); |
| | | }; |
| | | if (this.wifiName != string.Empty) |
| | | { |
| | | //这个时候是重试模式,不允许点击 |
| | | btnRight.CanClick = false; |
| | | } |
| | | |
| | | //密码行 |
| | | var rowPsw = new RowLayoutControl(); |
| | | rowPsw.Y = rowWifi.Bottom; |
| | | bodyFrameLayout.AddChidren(rowPsw); |
| | | //密码 |
| | | var txtPsw = rowPsw.frameTable.AddLeftInput(wifiPassword, 200); |
| | | txtPsw.TextColor = CSS.CSS_Color.FirstLevelTitleColor; |
| | | txtPsw.PlaceholderText = Language.StringByID(StringId.Password); |
| | | txtPsw.SecureTextEntry = true; |
| | | //底线 |
| | | rowPsw.frameTable.AddBottomLine(); |
| | | //眼睛图标 |
| | | var btnView = rowPsw.frameTable.AddMostRightEmptyIcon(24, 24); |
| | | btnView.UnSelectedImagePath = "LoginIcon/HidePasswordIcon.png"; |
| | | btnView.SelectedImagePath = "LoginIcon/ShowPasswordIcon.png"; |
| | | btnView.ButtonClickEvent += (sender, e) => |
| | | { |
| | | btnView.IsSelected = !btnView.IsSelected; |
| | | txtPsw.SecureTextEntry = !btnView.IsSelected; |
| | | }; |
| | | if (this.wifiName != string.Empty) |
| | | { |
| | | //这个时候是重试模式,不需要点击 |
| | | HdlThreadLogic.Current.RunThread(() => |
| | | { |
| | | System.Threading.Thread.Sleep(1000); |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | //进入下一个界面 |
| | | this.CloseForm(); |
| | | var form = new AddMiniRemoteControlDirection4Page(); |
| | | form.AddForm(wifiName, wifiPassword); |
| | | }); |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | //下一步 |
| | | var btnNext = this.AddBottomClickButton(Language.StringByID(StringId.Next)); |
| | | btnNext.ButtonClickEvent += (sender, e) => |
| | | { |
| | | if (txtWifi.Text.Trim() == string.Empty || txtPsw.Text.Trim() == string.Empty) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | //进入下一个界面 |
| | | this.CloseForm(); |
| | | var form = new AddMiniRemoteControlDirection4Page(); |
| | | form.AddForm(txtWifi.Text.Trim(), txtPsw.Text); |
| | | }; |
| | | |
| | | HdlThreadLogic.Current.RunThread(() => |
| | | { |
| | | //打开进度条,卡它一下 |
| | | this.ShowProgressBar(); |
| | | //获取当前wifi名字(里面可能会卡) |
| | | this.NowWifiName = HdlWifiLogic.Current.SSID; |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | txtWifi.Text = NowWifiName; |
| | | }); |
| | | |
| | | this.CloseProgressBar(); |
| | | }); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 一般方法___________________________ |
| | | |
| | | /// <summary> |
| | | /// 刷新wifi名字 |
| | | /// </summary> |
| | | private void RefreshWifiName(TextInputControl textInput) |
| | | { |
| | | if (this.WifiThreadAction == true) { return; } |
| | | this.WifiThreadAction = true; |
| | | |
| | | HdlThreadLogic.Current.RunThread(() => |
| | | { |
| | | //这个线程不会被中断 |
| | | while (this.Parent != null) |
| | | { |
| | | System.Threading.Thread.Sleep(1500); |
| | | string wifiName = string.Empty; |
| | | try |
| | | { |
| | | //获取当前wifi名字(里面可能会卡) |
| | | wifiName = HdlWifiLogic.Current.SSID; |
| | | } |
| | | catch { continue; } |
| | | if (wifiName != this.NowWifiName) |
| | | { |
| | | this.NowWifiName = wifiName; |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | textInput.Text = this.NowWifiName; |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |