From a023039e525469ef33bf0324d17d3e954e6b29d7 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 16 三月 2021 17:54:20 +0800
Subject: [PATCH] 兼容温总的添加红外宝
---
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs | 20 +++++++++
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs | 65 ++++++++++++++++++++++++--------
HDL_ON/UI/UI0-Stan/Logic/HdlFormLogic.cs | 26 +++++++++++++
3 files changed, 93 insertions(+), 18 deletions(-)
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlFormLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlFormLogic.cs
index dd40fac..5d9902c 100644
--- a/HDL_ON/UI/UI0-Stan/Logic/HdlFormLogic.cs
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlFormLogic.cs
@@ -163,6 +163,32 @@
#region 鈻� 涓�鑸柟娉昣__________________________
/// <summary>
+ /// 鍏抽棴鎵�鏈夋墦寮�浜嗙殑鐣岄潰
+ /// </summary>
+ /// <param name="tagetFrom">鐩爣鐣岄潰,濡傛灉鎸囧畾浜嗙殑璇�,鍒欏叧闂洰鏍囩晫闈笂灞傜殑鍏ㄩ儴鐣岄潰(瀹冭嚜韬笉鍏抽棴)</param>
+ public void CloseAllOpenForm(string tagetFrom = null)
+ {
+ //鏈�鍚庝竴涓槸瑁呰浇涓婚〉鐨勫鍣�,鎵�浠ヤ笉鑳藉垹闄�
+ while (MainPage.BasePageView.ChildrenCount > 1)
+ {
+ var view = MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1);
+ if (view is CommonFormBase)
+ {
+ if (((CommonFormBase)view).FormID == tagetFrom)
+ {
+ //鍙叧闂埌鎸囧畾鐩爣鐣岄潰
+ return;
+ }
+ ((CommonFormBase)view).CloseForm();
+ }
+ else
+ {
+ view.RemoveFromParent();
+ }
+ }
+ }
+
+ /// <summary>
/// 鑾峰彇褰撳墠姝e湪婵�娲荤殑鐣岄潰
/// </summary>
/// <returns></returns>
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs
index 17c9dc1..f80aa7a 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs
@@ -13,6 +13,11 @@
{
#region 鈻� 鍙橀噺澹版槑___________________________
+ /// <summary>
+ /// 娣诲姞璁惧瀹屾垚涔嬪悗鐨勫洖璋冧簨浠�(娓╂�昏浠栬嚜宸辫杩欎釜涓滆タ)
+ /// </summary>
+ public Action<Entity.Function> AddDeviceEvent = null;
+
#endregion
#region 鈻� 鍒濆鍖朹____________________________
@@ -64,7 +69,7 @@
btnNext.CanClick = true;
if (result == true)
{
- this.CloseForm();
+ //娉ㄦ剰锛氳繖涓晫闈笉鑳藉叧闂�,瀹冪敤鏉ュ洖璋冩俯鎬荤殑鐣岄潰鐢ㄧ殑
var form = new AddMiniRemoteControlDirection2Page();
//鍒濆wifi鍜屽瘑鐮佷负绌�
form.AddForm(string.Empty, string.Empty);
@@ -74,5 +79,18 @@
}
#endregion
+
+ #region 鈻� 鍏抽棴鐣岄潰___________________________
+
+ /// <summary>
+ /// 鍏抽棴鐣岄潰
+ /// </summary>
+ public override void CloseFormBefore()
+ {
+ this.AddDeviceEvent = null;
+ base.CloseFormBefore();
+ }
+
+ #endregion
}
}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
index 3d66b86..ef5b20c 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
@@ -22,6 +22,10 @@
/// </summary>
private string wifiPsw = string.Empty;
/// <summary>
+ /// 鏂拌澶囩殑sid(鐢ㄦ潵鍖归厤鍝竴涓澶囨槸鏂扮殑)
+ /// </summary>
+ private string newDeviceSid = string.Empty;
+ /// <summary>
/// 瓒呮椂绾跨▼鏄惁杩愯
/// </summary>
private bool timeoutThreadActivity = false;
@@ -176,7 +180,7 @@
/// <summary>
/// 鏄剧ず鎴愬姛鐣岄潰
/// </summary>
- private void ShowSuccessView()
+ private void ShowSuccessView(Entity.Function newDevice)
{
//娓呯┖body
this.ClearBodyFrame();
@@ -209,19 +213,38 @@
bodyFrameLayout.AddChidren(btnUse);
btnUse.ButtonClickEvent += (sender, e) =>
{
- //鍏虫帀鐣岄潰
- this.CloseForm();
- HdlFormLogic.Current.CloseFormByFormName("AddThirdPartyDeviceMenuListPage");
- HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.GetPirDeviceList(this, () =>
+ if (newDevice == null)
{
- Application.RunOnMainThread(() =>
+ //鍏抽棴鎺夊叏閮ㄧ殑鐣岄潰,搴旇涓嶄細鍙戠敓
+ HdlFormLogic.Current.CloseAllOpenForm();
+ return;
+ }
+ var form = HdlFormLogic.Current.GetFormByName("AddMiniRemoteControlDirection1Page") as AddMiniRemoteControlDirection1Page;
+ if (form.AddDeviceEvent != null)
+ {
+ //浠h〃杩欎釜鏄敱娓╂�婚偅杈硅皟鐢ㄧ殑,鐩存帴鍥炶皟鍑芥暟
+ form.AddDeviceEvent.Invoke(newDevice);
+ //鍏抽棴鎺夎繖涓晫闈�
+ this.CloseForm();
+ //鍐嶆妸AddMiniRemoteControlDirection1Page鐣岄潰鍏充簡
+ HdlFormLogic.Current.CloseFormByFormName("AddMiniRemoteControlDirection1Page");
+ }
+ else
+ {
+ //浠h〃杩欏苟涓嶆槸鐢辨俯鎬荤殑鐣岄潰璋冪敤鐨�,鍒欏叧闂帀鍏ㄩ儴鐨勭晫闈�
+ HdlFormLogic.Current.CloseAllOpenForm();
+ //鐒跺悗鍐嶆妸娓╂�荤殑鐣岄潰new璧锋潵
+ HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.GetPirDeviceList(this, () =>
{
- var page = new UI2.PersonalCenter.PirDevice.PirMain();
- MainPage.BasePageView.AddChidren(page);
- page.Show();
- MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ Application.RunOnMainThread(() =>
+ {
+ var page = new UI2.PersonalCenter.PirDevice.PirMain();
+ MainPage.BasePageView.AddChidren(page);
+ page.Show();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ });
});
- });
+ }
};
}
@@ -311,11 +334,13 @@
//鏁扮粍绫诲瀷
if (linqArry.Count == 0) { return false; }
strSpk = linqArry[0]["spk"].ToString();
+ this.newDeviceSid = linqArry[0]["sid"].ToString();
}
else
{
//闈炴暟缁勭被鍨�
strSpk = json["objects"]["spk"].ToString();
+ this.newDeviceSid = json["objects"]["sid"].ToString();
}
if (strSpk != Entity.SPK.IrModule)
{
@@ -331,7 +356,7 @@
/// 鍒锋柊绾㈠瀹濅俊鎭�
/// </summary>
/// <param name="successEvent">鎴愬姛鐨勫洖璋冧簨浠�</param>
- private void RefreshMiniRemoteControlInfo(Action successEvent)
+ private void RefreshMiniRemoteControlInfo(Action<Entity.Function> successEvent)
{
var pra = new Dictionary<string, object>();
pra.Add("homeId", Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID);
@@ -357,14 +382,20 @@
continue;
}
var listDevice = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.DevcieApiPack>(result.Data.ToString());
+ Entity.Function newDevice = null;
foreach (var newFunction in listDevice.list)
{
//娣诲姞鍒扮紦瀛樺綋涓�
newFunction.SaveFunctionFile();
Entity.FunctionList.List.IniFunctionList(newFunction.savePath, true);
+ if (newFunction.sid == this.newDeviceSid)
+ {
+ //杩欎釜璁惧鏄柊杩藉姞鐨�
+ newDevice = newFunction;
+ }
}
//璋冪敤鍥炶皟鍑芥暟
- successEvent?.Invoke();
+ successEvent?.Invoke(newDevice);
return;
}
catch
@@ -392,7 +423,7 @@
return;
}
//鍒锋柊绾㈠瀹濅俊鎭�
- this.RefreshMiniRemoteControlInfo(() =>
+ this.RefreshMiniRemoteControlInfo((Entity.Function newDevice) =>
{
//绉婚櫎杩欎釜浜嬩欢
HdlCloudReceiveLogic.Current.RemoveCloudReceiveEvent("AddMiniRemoteControlDirection4Page");
@@ -400,14 +431,14 @@
this.timeoutThreadActivity = false;
//娣诲姞璁惧鎴愬姛涔嬪悗,澶勭悊涓�浜涗笢瑗�
- this.DoSomethingAfterAddDeviceSuccess();
+ this.DoSomethingAfterAddDeviceSuccess(newDevice);
});
}
/// <summary>
/// 娣诲姞璁惧鎴愬姛涔嬪悗,澶勭悊涓�浜涗笢瑗�
/// </summary>
- private void DoSomethingAfterAddDeviceSuccess()
+ private void DoSomethingAfterAddDeviceSuccess(Entity.Function newDevice)
{
HdlThreadLogic.Current.RunThread(() =>
{
@@ -438,7 +469,7 @@
HdlThreadLogic.Current.RunMain(() =>
{
//鏄剧ず鎴愬姛鐣岄潰
- this.ShowSuccessView();
+ this.ShowSuccessView(newDevice);
});
}
}
--
Gitblit v1.8.0