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/PirDevice/PirMain.cs | 530 +++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 336 insertions(+), 194 deletions(-)
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
index 9da222a..57fa14e 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
@@ -1,5 +1,6 @@
锘縰sing System;
using System.Collections.Generic;
+using HDL_ON.Entity;
using HDL_ON.UI.UI2.Intelligence.Automation.LogicView;
using Shared;
namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice
@@ -8,8 +9,12 @@
{
public PirMain()
{
- Tag = "PirView";
+ Tag = "PirMain";
}
+ /// <summary>
+ /// 涓存椂鍌ㄥ瓨璁惧绫诲瀷鍒楄〃
+ /// </summary>
+ List<DeviceType> DeviceTypeList = new List<DeviceType>();
public void Show()
{
#region 鐣岄潰甯冨眬
@@ -22,123 +27,10 @@
middFLayout.Y = Application.GetRealHeight(64);
middFLayout.Height = Application.GetRealHeight(667 - 64);
this.AddChidren(middFLayout);
-
- FrameLayout pirDeviceFLayout = new FrameLayout();
- pirDeviceFLayout.Y = Application.GetRealHeight(12);
- pirDeviceFLayout.X = Application.GetRealWidth(16);
- pirDeviceFLayout.Width = Application.GetRealWidth(343);
- pirDeviceFLayout.Height = Application.GetRealHeight(187);
- pirDeviceFLayout.BackgroundColor = CSS.CSS_Color.view;
- pirDeviceFLayout.Radius = (uint)Application.GetRealHeight(12);
- middFLayout.AddChidren(pirDeviceFLayout);
-
- //璁惧绠$悊
- Button text1Btn = new Button
- {
- Y = Application.GetRealHeight(11),
- X = Application.GetRealWidth(16),
- Width = Application.GetRealWidth(120),
- Height = Application.GetRealHeight(20),
- TextSize = TextSize.text14,
- TextColor = CSS.CSS_Color.textConfirmColor,
- TextAlignment = TextAlignment.CenterLeft,
- TextID = StringId.shebeigaunli,
- IsBold=true,
- };
- pirDeviceFLayout.AddChidren(text1Btn);
-
-
- Button pirIcon = new Button
- {
- Y = Application.GetRealHeight(47),
- X = Application.GetRealWidth(28),
- Width = Application.GetRealWidth(66),
- Height = Application.GetRealWidth(66),
- UnSelectedImagePath = "PirIcon/Infraredtreasure.png",
- };
- pirDeviceFLayout.AddChidren(pirIcon);
-
- //mini鏅鸿兘閬ユ帶鍣�
- Button text2Btn = new Button
- {
- Y = Application.GetRealHeight(70),
- X = Application.GetRealWidth(112),
- Width = Application.GetRealWidth(120),
- Height = Application.GetRealHeight(20),
- TextSize = TextSize.text14,
- TextColor = CSS.CSS_Color.textTipColor,
- TextAlignment = TextAlignment.CenterLeft,
- Text = "mini鏅鸿兘閬ユ帶鍣�",
- };
- pirDeviceFLayout.AddChidren(text2Btn);
-
- //
- Button numberDeviceBtn = new Button
- {
- Y = Application.GetRealHeight(137),
- X = Application.GetRealWidth(32),
- Width = Application.GetRealWidth(100),
- Height = Application.GetRealHeight(20),
- TextSize = TextSize.text14,
- TextColor = CSS.CSS_Color.textColor,
- TextAlignment = TextAlignment.CenterLeft,
- Text = "1" + Language.StringByID(StringId.ge),
- IsBold = true,
- };
- pirDeviceFLayout.AddChidren(numberDeviceBtn);
- //褰撳墠绾㈠閬ユ帶璁惧
- Button numberDeviceTextBtn = new Button
- {
- Y = numberDeviceBtn.Bottom + Application.GetRealHeight(4),
- X = Application.GetRealWidth(32),
- Width = Application.GetRealWidth(100),
- Height = Application.GetRealHeight(14),
- TextSize = TextSize.text10,
- TextColor = CSS.CSS_Color.textCancelColor,
- TextAlignment = TextAlignment.CenterLeft,
- TextID = StringId.dangqianhongwaishebei,
- };
- pirDeviceFLayout.AddChidren(numberDeviceTextBtn);
- //
- Button currDeviceNumberControlBtn = new Button
- {
- Y = Application.GetRealHeight(137),
- X = Application.GetRealWidth(198),
- Width = Application.GetRealWidth(80),
- Height = Application.GetRealHeight(20),
- TextSize = TextSize.text14,
- TextColor = CSS.CSS_Color.textColor,
- TextAlignment = TextAlignment.CenterLeft,
- Text = "1" + Language.StringByID(StringId.ge),
- IsBold = true,
- };
- pirDeviceFLayout.AddChidren(currDeviceNumberControlBtn);
- //宸叉坊鍔犻仴鎺у櫒
- Button currDeviceNumberControlTextBtn = new Button
- {
- Y = currDeviceNumberControlBtn.Bottom + Application.GetRealHeight(4),
- X = Application.GetRealWidth(198),
- Width = Application.GetRealWidth(80),
- Height = Application.GetRealHeight(14),
- TextSize = TextSize.text10,
- TextColor = CSS.CSS_Color.textCancelColor,
- TextAlignment = TextAlignment.CenterLeft,
- TextID = StringId.yitianjiayaokongqi,
- };
- pirDeviceFLayout.AddChidren(currDeviceNumberControlTextBtn);
- ///绾㈠瀹濈偣鍑讳簨浠�
- FrameLayout clickFLayout = new FrameLayout();
- pirDeviceFLayout.AddChidren(clickFLayout);
- clickFLayout.MouseUpEventHandler += (sender,e) => {
-
- DeviceSet deviceSet = new DeviceSet();
- MainPage.BasePageView.AddChidren(deviceSet);
- deviceSet.Show();
- MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
- };
-
+ View.MainView mainView = new View.MainView();
+ mainView.Show(middFLayout);
FrameLayout deviceListFLayout = new FrameLayout();
- deviceListFLayout.Y = pirDeviceFLayout.Bottom + Application.GetRealHeight(12);
+ deviceListFLayout.Y = mainView.pirDeviceFLayout.Bottom + Application.GetRealHeight(12);
deviceListFLayout.X = Application.GetRealWidth(16);
deviceListFLayout.Width = Application.GetRealWidth(343);
deviceListFLayout.Height = Application.GetRealHeight(328);
@@ -160,7 +52,7 @@
};
deviceListFLayout.AddChidren(text3Btn);
///绾㈠瀹濆悕绉�
- Button deviceNameBtn= new Button
+ Button deviceNameBtn = new Button
{
Y = Application.GetRealHeight(13),
X = Application.GetRealWidth(161),
@@ -177,14 +69,63 @@
var dropdownIconBtn = new Button
{
Y = Application.GetRealHeight(13),
- X = Application.GetRealWidth(343-8-16),
+ X = Application.GetRealWidth(343 - 8 - 16),
Width = Application.GetRealWidth(16),
Height = Application.GetRealWidth(16),
UnSelectedImagePath = "PirIcon/dropdown.png",
};
deviceListFLayout.AddChidren(dropdownIconBtn);
-
#endregion
+
+ if (Pir.pirDeviceList.Count != 0)
+ {
+ //榛樿绗竴涓孩澶栧疂
+ Pir.currPir = Pir.pirDeviceList[0];
+ int sum = 0;
+ for (int i = 0; i < Pir.pirDeviceList.Count; i++)
+ {
+ //鏌ユ壘
+ sum += Pir.pirDeviceList[i].FunctioList.Count;
+ }
+ deviceNameBtn.Text = Pir.pirDeviceList[0].name;
+ mainView.numberDeviceBtn.Text = Pir.pirDeviceList.Count.ToString() + Language.StringByID(StringId.ge);
+ mainView.currDeviceNumberControlBtn.Text = sum.ToString() + Language.StringByID(StringId.ge);
+ }
+ ///璁惧绠$悊鐨勭偣鍑讳簨浠�
+ mainView.clickBtn.MouseUpEventHandler += (sender, e) =>
+ {
+
+ DeviceSet deviceSet = new DeviceSet();
+ MainPage.BasePageView.AddChidren(deviceSet);
+ deviceSet.Show(() =>
+ {
+ if (Pir.currPir != null)
+ {
+ deviceNameBtn.Text = Pir.currPir.name;
+ mainView.numberDeviceBtn.Text = Pir.pirDeviceList.Count.ToString() + Language.StringByID(StringId.ge);
+ }
+ int sum = 0;
+ for (int i = 0; i < Pir.pirDeviceList.Count; i++)
+ {
+ sum += Pir.pirDeviceList[i].FunctioList.Count;
+ }
+ mainView.currDeviceNumberControlBtn.Text = sum.ToString() + Language.StringByID(StringId.ge);
+
+
+ });
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ };
+ ///绾㈠鍚嶇О鐨勭偣鍑讳簨浠�
+ deviceNameBtn.MouseUpEventHandler += (sender, e) =>
+ {
+ View.HeigthChangeView heigthChangeView = new View.HeigthChangeView();
+ heigthChangeView.Show(this, Pir.pirDeviceList, (pirJson) =>
+ {
+ deviceNameBtn.Text = pirJson.name;
+ Pir.currPir = pirJson;
+ });
+ };
+
int line = 0;
for (int i = 1, j = 0; i <= 7; i++, j++)
{
@@ -206,9 +147,9 @@
UnSelectedImagePath = "PirIcon/Infraredtreasure.png",
};
currpirdeviceFLayout.AddChidren(deviceIconBtn);
- var iconNameBtn = new Button
+ var iconNameBtn = new Button
{
- Y = deviceIconBtn.Bottom+Application.GetRealHeight(8),
+ Y = deviceIconBtn.Bottom + Application.GetRealHeight(8),
Width = Application.GetRealWidth(80),
Height = Application.GetRealHeight(17),
TextSize = TextSize.text12,
@@ -227,68 +168,178 @@
GetIconAndText(i, deviceIconBtn, iconNameBtn);
clickBtn.MouseUpEventHandler += (sender, e) =>
{
+
//1=绌鸿皟;2=鐢佃;3=椋庢墖;4=鏈洪《鐩�;5=DVD/EVD/VCD;6=鎶曞奖浠�;7=鑷畾涔�;
- int if_value =int.Parse(clickBtn.Tag.ToString());
- var list11 = new List<string> {
- "鐖变綘", "鍝庡懄","鍩冨強","鍝堝紬鎹㈠3鍝堝紬", "鐖卞痉鍗庡v","淇哄嚑涓柉浜�",
- "鎷滀簡", "宸村+", "鐧惧か", "鐧惧悎鍦扮悊璇句綘鎵撶畻", "涓嶅害鑰侀浼忔灔", "姣斿埌涔濈偣",
- "杞︾珯","娴嬭瘯","姝ゅ湴", "鎵嶇湅瑙佸ソ寰楀揩","鍚冭蒋楗�","浠庣湅瑙佷簩鍗佸",
- "绛夊緟鏈轰細鍚�","鐨勫鎴�", "澶氬枬鐐�", "鐧昏鍝︾劧鍚�", "鎵撶數璇�",
- "鎭╄偆闇滅湅灏辩湅浜�", "楗挎os","鎭堕瓟鍩�","鍎跨鑱斿姩", "鎭╁叚棰楀瓙寮规媺鎷夎¥娲楁尽浜�","鍙戝ぇ瀛︾敓鍙戝彂",
- "鐪熷帀瀹砳鍙戝灏�", "鐭ラ亾浣犱粯娆句簡鍙�", "灏厭鍥炲", "鏀硅繘鐨勮瘽", "澶╁ぉ閫熷害鍥炵瓟", "澶ソ浜嗗紑杞�",
- "鍑忚偉鐨勭湅杩�","妗″嚭鍙e閭�","濡傛灉瑙夊緱", "寰堣垝鏈嶇殑","鍚冭蒋楗�","浠庣湅瑙佷簩鍗佸",
- "榫欏嵎椋庝簭澶у彂","鍘诲ソ鐪�", "澶氬枬鐐�", "濂芥氮璐瑰ソ", "鎵撶數璇�"};
- System.Threading.Tasks.Task.Run(() =>
+ int if_value = int.Parse(clickBtn.Tag.ToString());
+ if (if_value == 7)
{
- Application.RunOnMainThread(() =>
+ Method method = new Method();
+ method.AddControl(this, (control) =>
{
- switch (if_value)
- {
- case 1:
- {
- }
- break;
- case 2:
- {
- }
- break;
- case 3:
- {
- }
- break;
- case 4:
- {
- }
- break;
- case 5:
- {
- }
- break;
- case 6:
- {
- }
- break;
- case 7:
- {
- Method method = new Method();
- method.AddControl();
-
- }
- break;
-
- }
-
-
- //BrandList brandList = new BrandList();
- //MainPage.BasePageView.AddChidren(brandList);
- //brandList.Show(list11, null);
- //MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ AddButton addButton = new AddButton();
+ MainPage.BasePageView.AddChidren(addButton);
+ addButton.Show(control);
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
});
- });
+ }
+ else
+ {
+ if (DeviceTypeList.Count == 0)
+ {
+ GetDeviceTypeList(true, () =>
+ {
+ DeviceTypeViewClick(if_value);
+
+ });
+ }
+ else
+ {
+ DeviceTypeViewClick(if_value);
+ }
+ }
};
+ }
+ }
+ /// <summary>
+ /// 璁惧杩涘叆涓嬩竴绾ф柟娉�
+ /// </summary>
+ /// <param name="if_value"></param>
+ private void DeviceTypeViewClick(int if_value)
+ {
+ var strings = GetTypeString(if_value).Split('-');
+ var jobDeviceType = DeviceTypeList.Find((c) => c.deviceType == strings[0]);
+ if (jobDeviceType == null)
+ {
+ return;
+ }
+ GetBrandList(jobDeviceType.id, (brandList) =>
+ {
+ var brandSupportStrList = GetBrandSupport(if_value);
+ var strList = new List<string>();
+ for (int str = 0; str < brandList.Count; str++)
+ {
+ string s = brandList[str].brandName;
+ var bool_if = brandSupportStrList.Find((c) => s.Contains(c));
+ if (bool_if != null)
+ {
+ strList.Add(s);
+ }
+
+ }
+ Application.RunOnMainThread(() =>
+ {
+ BrandList brandObj = new BrandList();
+ MainPage.BasePageView.AddChidren(brandObj);
+ brandObj.Show(brandList, strList, strings[1]);
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ });
+
+ });
+
+ }
+
+ /// <summary>
+ /// 鑾峰彇鍝佺墝鏀寔
+ /// </summary>
+ /// <param name="index">绱㈠紩鍊�</param>
+ private List<string> GetBrandSupport(int index)
+ {
+ List<string> strList = new List<string>();
+ switch (index)
+ {
+ case 1:
+ {
+ strList.Add("鏍煎姏");
+ strList.Add("缇庣殑");
+ strList.Add("娴峰皵");
+ strList.Add("鏉句笅");
+ strList.Add("娴蜂俊");
+ strList.Add("闀胯櫣");
+ }
+ break;
+ case 2:
+ {
+ strList.Add("鍒涚淮");
+ strList.Add("TCL");
+ strList.Add("娴蜂俊");
+ strList.Add("闀胯櫣");
+ strList.Add("娴峰皵");
+ strList.Add("涓夋槦");
+ strList.Add("涔愯");
+ strList.Add("绱㈠凹");
+ strList.Add("LG涔愰噾");
+ }
+ break;
+ case 3:
+ {
+ }
+ break;
+ case 4:
+ {
+ }
+ break;
+ case 5:
+ {
+ }
+ break;
+ case 6:
+ {
+ }
+ break;
+
}
+ return strList;
+ }
+ /// <summary>
+ /// 鑾峰彇璁惧绫诲瀷str
+ /// </summary>
+ /// <param name="index">绱㈠紩鍊�</param>
+ private string GetTypeString(int index)
+ {
+ string type = "";
+ switch (index)
+ {
+ case 1:
+ {
+ //绌鸿皟
+ type = "ac-" + SPK.AcIr;
+ }
+ break;
+ case 2:
+ {
+ //鐢佃
+ type = "tv-" + SPK.TvIr;
+ }
+ break;
+ case 3:
+ {
+ //椋庢墖
+ type = "fan-" + SPK.ElectricFan;
+ }
+ break;
+ case 4:
+ {
+ //鏈洪《鐩�
+ // type = "set_top_box-" + SPK.ElectricTV;
+ }
+ break;
+ case 5:
+ {
+ //褰辩鏈�
+ // type = "dvd-" + SPK.ElectricTV;
+ }
+ break;
+ case 6:
+ {
+ //鎶曞奖浠�
+ // type = "projector-" + SPK.ElectricTV;
+ }
+ break;
+
+ }
+ return type;
}
/// <summary>
/// 璁剧疆鍥剧墖鍜屽娉�
@@ -296,44 +347,135 @@
/// <param name="index">绱㈠紩鍊�</param>
/// <param name="deviceIconBtn">鍥炬爣Btn</param>
/// <param name="deviceNameBtn">璁惧澶囨敞Btn</param>
- private void GetIconAndText(int index,Button deviceIconBtn, Button deviceNameBtn) {
- string iconPath = "";
- int deviceNameIndex=0;
+ private void GetIconAndText(int index, Button deviceIconBtn, Button deviceNameBtn)
+ {
+ string iconPath = "";
+ int deviceNameIndex = 0;
switch (index)
{
- case 1: {
+ case 1:
+ {
iconPath = "PirIcon/air.png";
deviceNameIndex = StringId.kongtiao;
- } break;
- case 2: {
+ }
+ break;
+ case 2:
+ {
iconPath = "PirIcon/tv.png";
deviceNameIndex = StringId.dianshi;
- } break;
- case 3: {
+ }
+ break;
+ case 3:
+ {
iconPath = "PirIcon/fan.png";
deviceNameIndex = StringId.fengshan;
- } break;
- case 4: {
+ }
+ break;
+ case 4:
+ {
iconPath = "PirIcon/stb.png";
deviceNameIndex = StringId.jidinghe;
- } break;
- case 5: {
+ }
+ break;
+ case 5:
+ {
iconPath = "PirIcon/dvd.png";
deviceNameIndex = StringId.dvd;
- } break;
- case 6: {
+ }
+ break;
+ case 6:
+ {
iconPath = "PirIcon/projector.png";
deviceNameIndex = StringId.touyingyi;
- } break;
- case 7: {
+ }
+ break;
+ case 7:
+ {
iconPath = "PirIcon/custom.png";
deviceNameIndex = StringId.zidingyi;
- } break;
+ }
+ break;
}
deviceIconBtn.UnSelectedImagePath = iconPath;
deviceNameBtn.TextID = deviceNameIndex;
}
-
+ /// <summary>
+ /// 璇诲彇绾㈠璁惧绫诲瀷鍒楄〃
+ /// </summary>
+ /// <param name="tag">鏍囪瘑瑕佷笉瑕佹彁绀猴紙true=鎻愮ず锛�</param>
+ /// <param name="action">鍥炶皟鍑芥暟</param>
+ public void GetDeviceTypeList(bool tag, Action action)
+ {
+ PirSend.GetDeviceTypesList(this, (responsePackNew) =>
+ {
+
+ if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
+ {
+ //娓呯┖涔嬪墠鏁版嵁
+ DeviceTypeList.Clear();
+ var jArray = Newtonsoft.Json.Linq.JArray.Parse(responsePackNew.Data.ToString());
+ for (int a = 0; a < jArray.Count; a++)
+ {
+ var jay = jArray[a];
+ var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay);
+ var objDeviceType = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceType>(str);
+ if (objDeviceType != null)
+ {
+ if (null == DeviceTypeList.Find((c) => c.id == objDeviceType.id))
+ {
+ DeviceTypeList.Add(objDeviceType);
+ }
+ }
+ }
+ action();
+ }
+ else
+ {
+ if (tag)
+ {
+ Method method = new Method();
+ method.ErrorShow(responsePackNew, "");
+ }
+ }
+ }, "", "璁惧绫诲瀷鍒楄〃");
+ }
+ /// <summary>
+ /// 璇诲彇绾㈠璁惧绫诲瀷鐨勫搧鐗屽垪琛�
+ /// </summary>
+ public void GetBrandList(string id, Action<List<Brand>> actionBrand)
+ {
+ List<Brand> brandList = new List<Brand>();
+ PirSend.GetDeviceTypesList(this, (responsePackNew) =>
+ {
+
+ if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
+ {
+ //娓呯┖涔嬪墠鏁版嵁
+ brandList.Clear();
+ var jArray = Newtonsoft.Json.Linq.JArray.Parse(responsePackNew.Data.ToString());
+ for (int a = 0; a < jArray.Count; a++)
+ {
+ var jay = jArray[a];
+ var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay);
+ var brand = Newtonsoft.Json.JsonConvert.DeserializeObject<Brand>(str);
+ if (brand != null)
+ {
+ if (null == brandList.Find((c) => c.id == brand.id))
+ {
+ brandList.Add(brand);
+ }
+ }
+ }
+ actionBrand(brandList);
+ }
+ else
+ {
+ Method method = new Method();
+ method.ErrorShow(responsePackNew, "");
+ }
+ }, id, "鍝佺墝鍒楄〃");
+ }
}
+
}
--
Gitblit v1.8.0