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
|
}
|
}
|