using System; using System.Collections.Generic; using System.Text; using HDL_ON.DAL; using HDL_ON.DAL.Server; using HDL_ON.DriverLayer; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Shared; namespace HDL_ON.UI { #if __IOS__ public partial class HomePage : VerticalRefreshLayout #else public partial class HomePage : VerticalScrolViewLayout #endif { #region 控件列表 static HomePage bodyView; //FrameLayout bodyView; /// /// 顶部信息区域 /// FrameLayout topView; /// /// 连接状态提示 /// FrameLayout divLinkStateTip; /// /// 安防状态图标 /// Button btnSecurityStatus; /// ///住宅名称显示 /// Button btnResidenceName; /// /// 环境质量显示区域 /// FrameLayout environmentalView; /// /// 当前温度信息-室外 /// TextButton btnTempValues; /// /// 当前湿度信息-室外 /// TextButton btnHumidityValues; /// /// 当前温度信息-室内 /// TextButton btnIndoorTempValues; Button btnHumidityIcon; Button btnPm25Icon; /// /// 当前湿度信息-室内 /// TextButton btnIndoorHumiValues; /// /// 当前pm2.5状态 /// TextButton btnPm25Values; /// /// 切换显示功能类型区域 /// FrameLayout changeBaseView; //FrameLayout changeView; ///// ///// 切换显示设备功能按钮 ///// //Button btnChangeFunction; ///// ///// 切换显示场景功能按钮 ///// //Button btnChangeScene; ///// ///// 切换显示场组控按钮 ///// //Button btnChangeGroupControl; /// /// 功能显示区域 /// PageLayout contentView; /// /// 设备功能控制区域 /// VerticalScrolViewLayout deviceFunctionView; /// /// 场景功能控制区域 /// VerticalScrolViewLayout sceneFunctionView; /// /// 组控控制区域 /// VerticalScrolViewLayout gcFunctionView; /// /// 功能区域集合 /// List functionViews; #endregion #region 区域变量 /// /// 当前显示对控制类型是否是设备功能控制 /// 0 功能 /// 1 场景 /// 2 群控 /// int CurShowTypeContent = 0; #endregion #region 报警信息 //Button btnMsgBg; //Button btnMsgTime; //Button btnMsg; Button btnMsgIcon; #endregion public HomePage() { bodyView = this; bodyView.BackgroundColor = CSS_Color.BackgroundColor; this.VerticalScrollBarEnabled = false; #if DEBUG DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl = true; #endif #if __IOS__ //自动偏移取消 if (UIKit.UIDevice.CurrentDevice.CheckSystemVersion(11, 0)) { (this.uiView as UIKit.UIScrollView).ContentInsetAdjustmentBehavior = UIKit.UIScrollViewContentInsetAdjustmentBehavior.Never; } #endif } public override void RemoveFromParent() { UnregisterGetPushMessageAction(); base.RemoveFromParent(); } public void LoadPage() { MainPage.CurPageIndex = 0; try { bodyView.RemoveAll(); #if __IOS__ bodyView.BeginHeaderRefreshingAction = () => { bodyView.EndHeaderRefreshing(); Common.ApiUtlis.Ins.DownloadData(); LoadContentView(); contentView.PageIndex = CurShowTypeContent; }; topView = new FrameLayout() { Height = Application.GetRealHeight(113),//216), BackgroundImagePath = DB_ResidenceData.Instance.residenceImage, }; bodyView.AddChidren(topView); #else VerticalRefreshLayout refreshLayout = new VerticalRefreshLayout() { Height = Application.GetRealHeight(113),//216), BackgroundImagePath = DB_ResidenceData.Instance.residenceImage, }; bodyView.AddChidren(refreshLayout); refreshLayout.BeginHeaderRefreshingAction = () => { refreshLayout.EndHeaderRefreshing(); Common.ApiUtlis.Ins.DownloadData(); LoadContentView(); contentView.PageIndex = CurShowTypeContent; }; topView = new FrameLayout() { Height = Application.GetRealHeight(113),//216), }; refreshLayout.AddChidren(topView); #endif #region topView Button btnTop; btnTop = new Button() { BackgroundColor = CSS_Color.DialogTransparentColor2, }; topView.AddChidren(btnTop); btnResidenceName = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealHeight(32), Width = Application.GetRealWidth(300), Height = Application.GetRealHeight(33), TextColor = CSS_Color.MainBackgroundColor, TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel, TextAlignment = TextAlignment.CenterLeft, Text = DB_ResidenceData.Instance.CurrentRegion.homeName, IsBold = true }; topView.AddChidren(btnResidenceName); divLinkStateTip = new FrameLayout() { Y = Application.GetRealHeight(113) - Application.GetRealWidth(24), Height = Application.GetRealWidth(24), BackgroundColor = 0xFFFF4747, Visible = false, }; topView.AddChidren(divLinkStateTip); Button btnLinkStateIcon = new Button() { X = Application.GetRealWidth(16), Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(20), Height = Application.GetRealWidth(20), UnSelectedImagePath = "Collection/GatewayOnlineTipIcon.png" }; divLinkStateTip.AddChidren(btnLinkStateIcon); var btnLinkStateTip = new Button() { X = btnLinkStateIcon.Right + Application.GetRealWidth(4), TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextColor = CSS_Color.MainBackgroundColor, TextID = StringId.NetworkAnomaly, }; divLinkStateTip.AddChidren(btnLinkStateTip); //更新链接状态icon颜色 environmentalView = new FrameLayout() { Y = Application.GetRealHeight(1) + btnResidenceName.Bottom, Height = Application.GetRealHeight(32), }; topView.AddChidren(environmentalView); CheckLinkStatus();//2020-12-22 #region 环境数据 var tempSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorTemperature); var humiSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorHumidity); var enviList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => SPK.EvironmentSensorList().Contains(obj.spk)); foreach (var enviTemp in enviList) { var humiAttr = enviTemp.attributes.Find((obj) => obj.key == "humidity"); if (humiAttr != null) { var newTemp = new Function() { name = enviTemp.name, sid = enviTemp.sid, deviceId = enviTemp.deviceId, attributes = new List { new FunctionAttributes { key = "value", state = humiAttr.state, curValue = humiAttr.curValue } }, }; humiSensorList.Add(newTemp);//020103CF594C3E00051F0001051F// 1650546588519424001 } var tempAttr = enviTemp.attributes.Find((obj) => obj.key == "temperature"); if (tempAttr != null) { var newTemp = new Function() { name = enviTemp.name, sid = enviTemp.sid, deviceId = enviTemp.deviceId, attributes = new List { new FunctionAttributes { key = "value", state = tempAttr.state, curValue = tempAttr.curValue } }, }; tempSensorList.Add(newTemp);//020103CF594C3E00051F0001051F } } var btnEnvirValuesTitle = new Button() { X = Application.GetRealWidth(12), Gravity = Gravity.CenterVertical, TextColor = CSS_Color.MainBackgroundColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextID = StringId.Outdoor, TextAlignment = TextAlignment.CenterLeft, }; if (tempSensorList.Count > 0 || humiSensorList.Count > 0) { btnEnvirValuesTitle.TextID = StringId.InOutdoor; } btnEnvirValuesTitle.Width = Application.GetRealWidth(8) + btnEnvirValuesTitle.GetTextWidth(); environmentalView.AddChidren(btnEnvirValuesTitle); Button btnTempIcon = new Button() { X = btnEnvirValuesTitle.Right, Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), UnSelectedImagePath = "Public/DeviceInfoIcon/TempIcon.png", }; environmentalView.AddChidren(btnTempIcon); btnTempValues = new TextButton() { X = btnTempIcon.Right + Application.GetRealWidth(4), Gravity = Gravity.CenterVertical, TextColor = CSS_Color.MainBackgroundColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, Text = MainPage.cityInfo.temperature + "°", TextAlignment = TextAlignment.CenterLeft, }; btnTempValues.Width = btnTempValues.GetTextWidth(); environmentalView.AddChidren(btnTempValues); btnIndoorTempValues = new TextButton() { X = btnTempValues.Right, Gravity = Gravity.CenterVertical, TextColor = CSS_Color.MainBackgroundColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextAlignment = TextAlignment.CenterLeft, Text = "" }; if (tempSensorList.Count > 0) { btnIndoorTempValues.Text = "/--°"; double tempTotalValues = 0; double tempTotalCount = 0; foreach (var temp in tempSensorList) { double tempValue = 0; if (temp.GetAttribute("temperature") != null) double.TryParse(temp.GetAttrState("temperature"), out tempValue); else double.TryParse(temp.GetAttrState("value"), out tempValue); if (tempValue > 0) { tempTotalValues += tempValue; tempTotalCount++; } } if (tempTotalValues > 0) { btnIndoorTempValues.Text = "/" + (tempTotalValues/ tempTotalCount).ToString("0.0") + "°"; } } btnIndoorTempValues.Width = btnIndoorTempValues.GetTextWidth(); environmentalView.AddChidren(btnIndoorTempValues); btnHumidityIcon = new Button() { X = btnIndoorTempValues.Right + Application.GetRealWidth(8), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), UnSelectedImagePath = "Public/DeviceInfoIcon/HumidityIcon.png", }; environmentalView.AddChidren(btnHumidityIcon); btnHumidityValues = new TextButton() { X = btnHumidityIcon.Right + Application.GetRealWidth(4), Gravity = Gravity.CenterVertical, TextColor = CSS_Color.MainBackgroundColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, Text = MainPage.cityInfo.humidity + "%", TextAlignment = TextAlignment.CenterLeft, }; btnHumidityValues.Width = btnHumidityValues.GetTextWidth(); environmentalView.AddChidren(btnHumidityValues); btnIndoorHumiValues = new TextButton() { X = btnHumidityValues.Right, Gravity = Gravity.CenterVertical, TextColor = CSS_Color.MainBackgroundColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextAlignment = TextAlignment.CenterLeft, Text = "" }; if (tempSensorList.Count > 0) { btnIndoorHumiValues.Text = "/--%"; double humiTotalValues = 0; double humiTotalCount = 0; foreach (var humi in humiSensorList) { double humiValue = 0; if (humi.GetAttribute("temperature") != null) double.TryParse(humi.GetAttrState("humidity"), out humiValue); else double.TryParse(humi.GetAttrState("value"), out humiValue); if (humiValue > 0) { humiTotalValues += humiValue; humiTotalCount++; } } if (humiTotalValues > 0) { btnIndoorHumiValues.Text = "/" + (humiTotalValues / humiTotalCount).ToString("0") + "%"; } } btnIndoorHumiValues.Width = btnIndoorHumiValues.GetTextWidth(); environmentalView.AddChidren(btnIndoorHumiValues); btnPm25Icon = new Button() { X = btnIndoorHumiValues.Right + Application.GetRealWidth(4), Gravity = Gravity.CenterVertical, Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), UnSelectedImagePath = "Public/DeviceInfoIcon/Pm25Icon.png", }; environmentalView.AddChidren(btnPm25Icon); btnPm25Values = new TextButton() { X = btnPm25Icon.Right + Application.GetRealWidth(4), Gravity = Gravity.CenterVertical, TextColor = CSS_Color.MainBackgroundColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, Text = MainPage.cityInfo.pm25, TextAlignment = TextAlignment.CenterLeft, }; btnPm25Values.Width = btnPm25Values.GetTextWidth(); environmentalView.AddChidren(btnPm25Values); #endregion btnSecurityStatus = new Button() { X = Application.GetRealWidth(329), Y = Application.GetRealHeight(34), Width = Application.GetRealWidth(30), Height = Application.GetRealWidth(30), SelectedImagePath = "Collection/DefenseStatusIcon.png", UnSelectedImagePath = "Collection/DisarmStatusIcon.png" }; if (DB_ResidenceData.Instance.GatewayType == 1 && !DB_ResidenceData.Instance.CurrentRegion.isOtherShare) { topView.AddChidren(btnSecurityStatus); foreach (var temp in FunctionList.List.securities) { if (temp.status == "enable") { btnSecurityStatus.IsSelected = true; if (temp.alarm) { btnSecurityStatus.SelectedImagePath = "Collection/DefenseAlarmIcon.png"; } else { btnSecurityStatus.SelectedImagePath = "Collection/DefenseStatusIcon.png"; } break; } } btnSecurityStatus.MouseUpEventHandler = (sender, e) => { var page = new ArmCenterPage(); MainPage.BasePageView.AddChidren(page); page.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; } #region msg //FrameLayout msgView; //msgView = new FrameLayout() //{ // Y = Application.GetRealHeight(164), // Gravity = Gravity.CenterHorizontal, // Width = Application.GetRealWidth(343), // Height = Application.GetRealHeight(28), //}; //topView.AddChidren(msgView); //btnMsgBg = new Button() //{ // BackgroundColor = CSS_Color.MainColor,//0x3F4484F4, // Alpha = 0.4f, //}; //msgView.AddChidren(btnMsgBg); btnMsgIcon = new Button() { X = Application.GetRealWidth(290), Y = Application.GetRealHeight(35), Width = Application.GetMinRealAverage(24), Height = Application.GetMinRealAverage(24), UnSelectedImagePath = "Collection/MsgIcon.png", SelectedImagePath = "Collection/MsgIconTip.png", }; if(btnSecurityStatus.Parent == null) { btnMsgIcon.X = Application.GetRealWidth(329); } topView.AddChidren(btnMsgIcon); //btnMsg = new Button() //{ // X = Application.GetRealWidth(10) + btnMsgIcon.Right, // Width = Application.GetRealWidth(240), // Text = "...", // TextColor = CSS_Color.MainBackgroundColor, // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, // TextAlignment = TextAlignment.CenterLeft, //}; //msgView.AddChidren(btnMsg); //btnMsgTime = new Button() //{ // X = Application.GetRealWidth(299), // Width = Application.GetRealWidth(44), // Text = "00:00", // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, // TextAlignment = TextAlignment.CenterLeft, //}; //msgView.AddChidren(btnMsgTime); LoadEvent_GotoMessageCenterPage(); #endregion #endregion #region 功能场景切换 bodyView.AddChidren(new Button() { Height = Application.GetRealHeight(20), BackgroundColor = 0x00000000 }); loadNavView(); #endregion #region ContextView functionViews = new List(); LoadContentView(); #endregion #if DEBUG btnResidenceName.MouseUpEventHandler = (envent, ee) => { MainPage.Log("sss"); new System.Threading.Thread(async() => { await Common.AliyunLog.AliyunLogClient.PostLogs("告警测试", "测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息"); }) { IsBackground = true }.Start(); }; #endif } catch (Exception ex) { MainPage.Log($"HomePage LoadPage Error : {ex.Message}"); } } void loadNavView() { if(changeBaseView == null) { changeBaseView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Height = Application.GetRealHeight(62), }; bodyView.AddChidren(changeBaseView); } else { changeBaseView.RemoveAll(); } if (contentView == null) { contentView = new PageLayout() { Height = Application.GetRealHeight(310 + 30 + 10 + 100), //20为超出部分 IsShowPoint = false, }; bodyView.AddChidren(contentView); } if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl && FunctionList.List.groupControls.Count > 0) { var changeView = new FrameLayout() { //Y = Application.GetRealHeight(20) + topView.Bottom, Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(334), Height = Application.GetRealHeight(62), BackgroundImagePath = "Collection/ChangeViewbg.png", }; changeBaseView.AddChidren(changeView); var btnChangeFunction = new Button() { X = Application.GetRealWidth(10), Width = Application.GetRealWidth(114 - 10), TextID = StringId.Functions, SelectedTextColor = CSS_Color.MainColor, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.HeadlineFontSize, TextAlignment = TextAlignment.Center, IsSelected = true, IsBold = true, }; changeView.AddChidren(btnChangeFunction); Button btnLine = new Button() { X = btnChangeFunction.Right, Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(1), Height = Application.GetRealHeight(14), BackgroundColor = CSS_Color.PromptingColor1, }; changeView.AddChidren(btnLine); var btnChangeScene = new Button() { X = btnLine.Right, Width = Application.GetRealWidth(114 - 10), TextID = StringId.Scenes, SelectedTextColor = CSS_Color.MainColor, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.Center, }; changeView.AddChidren(btnChangeScene); Button btnLine2 = new Button() { X = btnChangeScene.Right, Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(1), Height = Application.GetRealHeight(14), BackgroundColor = CSS_Color.PromptingColor1, }; changeView.AddChidren(btnLine2); var btnChangeGroupControl = new Button() { X = btnLine2.Right, Width = Application.GetRealWidth(114 - 10), TextID = StringId.GroupControl, SelectedTextColor = CSS_Color.MainColor, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.Center, }; changeView.AddChidren(btnChangeGroupControl); btnChangeGroupControl.MouseUpEventHandler = (sender, e) => { btnChangeFunction.IsSelected = false; btnChangeFunction.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeFunction.IsBold = false; btnChangeScene.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeScene.IsSelected = false; btnChangeScene.IsBold = false; btnChangeGroupControl.IsSelected = true; btnChangeGroupControl.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeGroupControl.IsBold = true; CurShowTypeContent = 2; contentView.PageIndex = 2; }; btnChangeFunction.MouseUpEventHandler = (sender, e) => { btnChangeFunction.IsSelected = true; btnChangeFunction.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeFunction.IsBold = true; btnChangeScene.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeScene.IsSelected = false; btnChangeScene.IsBold = false; CurShowTypeContent = 0; contentView.PageIndex = 0; btnChangeGroupControl.IsSelected = false; btnChangeGroupControl.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeGroupControl.IsBold = false; }; btnChangeScene.MouseUpEventHandler = (sender, e) => { btnChangeScene.IsSelected = true; btnChangeScene.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeScene.IsBold = true; btnChangeFunction.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeFunction.IsSelected = false; btnChangeFunction.IsBold = false; CurShowTypeContent = 1; contentView.PageIndex = 1; btnChangeGroupControl.IsSelected = false; btnChangeGroupControl.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeGroupControl.IsBold = false; }; contentView.PageChange = (sender, e) => { if (contentView.PageIndex == 0) { btnChangeFunction.IsSelected = true; btnChangeFunction.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeFunction.IsBold = true; btnChangeScene.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeScene.IsSelected = false; btnChangeScene.IsBold = false; btnChangeGroupControl.IsSelected = false; btnChangeGroupControl.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeGroupControl.IsBold = false; } else if (contentView.PageIndex == 1) { btnChangeScene.IsSelected = true; btnChangeScene.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeScene.IsBold = true; btnChangeFunction.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeFunction.IsSelected = false; btnChangeFunction.IsBold = false; btnChangeGroupControl.IsSelected = false; btnChangeGroupControl.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeGroupControl.IsBold = false; } else if (contentView.PageIndex == 2) { btnChangeFunction.IsSelected = false; btnChangeFunction.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeFunction.IsBold = false; btnChangeScene.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeScene.IsSelected = false; btnChangeScene.IsBold = false; btnChangeGroupControl.IsSelected = true; btnChangeGroupControl.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeGroupControl.IsBold = true; } }; } else { var changeView = new FrameLayout() { //Y = Application.GetRealHeight(20) + topView.Bottom, Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(230), Height = Application.GetRealHeight(62), BackgroundImagePath = "Collection/ChangeViewbg.png", }; changeBaseView.AddChidren(changeView); var btnChangeFunction = new Button() { X = Application.GetRealWidth(10), Width = Application.GetRealWidth(114 - 10), TextID = StringId.Functions, SelectedTextColor = CSS_Color.MainColor, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.HeadlineFontSize, TextAlignment = TextAlignment.Center, IsSelected = true, IsBold = true, }; changeView.AddChidren(btnChangeFunction); Button btnLine = new Button() { X = btnChangeFunction.Right, Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(1), Height = Application.GetRealHeight(14), BackgroundColor = CSS_Color.PromptingColor1, }; changeView.AddChidren(btnLine); var btnChangeScene = new Button() { X = btnLine.Right, Width = Application.GetRealWidth(114 - 10), TextID = StringId.Scenes, SelectedTextColor = CSS_Color.MainColor, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.Center, }; changeView.AddChidren(btnChangeScene); btnChangeFunction.MouseUpEventHandler = (sender, e) => { btnChangeFunction.IsSelected = true; btnChangeFunction.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeFunction.IsBold = true; btnChangeScene.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeScene.IsSelected = false; btnChangeScene.IsBold = false; CurShowTypeContent = 0; contentView.PageIndex = 0; }; btnChangeScene.MouseUpEventHandler = (sender, e) => { btnChangeScene.IsSelected = true; btnChangeScene.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeScene.IsBold = true; btnChangeFunction.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeFunction.IsSelected = false; btnChangeFunction.IsBold = false; CurShowTypeContent = 1; contentView.PageIndex = 1; }; contentView.PageChange = (sender, e) => { if (contentView.PageIndex == 0) { btnChangeFunction.IsSelected = true; btnChangeFunction.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeFunction.IsBold = true; btnChangeScene.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeScene.IsSelected = false; btnChangeScene.IsBold = false; } else if (contentView.PageIndex == 1) { btnChangeScene.IsSelected = true; btnChangeScene.TextSize = CSS.CSS_FontSize.HeadlineFontSize; btnChangeScene.IsBold = true; btnChangeFunction.TextSize = CSS.CSS_FontSize.TextFontSize; btnChangeFunction.IsSelected = false; btnChangeFunction.IsBold = false; } }; } contentView.PageIndex = CurShowTypeContent; } /// /// 加载内容区域 /// void LoadContentView() { if (!Common.ApiUtlis.Ins.DownloadDataComplete && !MainPage.NoLoginMode) { var waitPage = new Loading(); MainPage.BaseView.AddChidren(waitPage); waitPage.Start(Language.StringByID(StringId.PleaseWait)); new System.Threading.Thread(() => { try { while (!Common.ApiUtlis.Ins.DownloadDataComplete) { System.Threading.Thread.Sleep(400); } Application.RunOnMainThread(() => { if (contentView == null) { waitPage.Hide(); return; } loadNavView(); contentView.RemoveAll(); deviceFunctionView = new VerticalScrolViewLayout(); contentView.AddChidren(deviceFunctionView); LoadDeviceFunctionControlZone(); sceneFunctionView = new VerticalScrolViewLayout(); contentView.AddChidren(sceneFunctionView); LoadSceneFunctionControlZone(); if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) { gcFunctionView = new VerticalScrolViewLayout(); contentView.AddChidren(gcFunctionView); LoadGroupControlFunctionControlZone(); } LoadEvent_ChangeShowedFunctionType(); // 查询未读消息并显示 GetUnreadPushMessages(); RegisterGetPushMessageAction(); contentView.PageIndex = CurShowTypeContent; if (waitPage != null) { waitPage.RemoveFromParent(); waitPage = null; } }); } catch (Exception ex) { MainPage.Log($"刷新主页异常:{ex.Message}"); } finally { } }) { IsBackground = true }.Start(); } else { deviceFunctionView = new VerticalScrolViewLayout(); contentView.AddChidren(deviceFunctionView); LoadDeviceFunctionControlZone(); sceneFunctionView = new VerticalScrolViewLayout(); contentView.AddChidren(sceneFunctionView); LoadSceneFunctionControlZone(); if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) { gcFunctionView = new VerticalScrolViewLayout(); contentView.AddChidren(gcFunctionView); LoadGroupControlFunctionControlZone(); } contentView.PageIndex = CurShowTypeContent; LoadEvent_ChangeShowedFunctionType(); // 查询未读消息并显示 GetUnreadPushMessages(); RegisterGetPushMessageAction(); } } /// /// 加载设备功能显示区域 /// void LoadDeviceFunctionControlZone() { #region ContextView deviceFunctionView.RemoveAll(); functionViews.Clear(); var rowView = new FrameLayout(); try { int index = 0; var list = new List(); list.AddRange(FunctionList.List.GetDeviceFunctionList()); //list.AddRange(FunctionList.List.groupControls);//加入群控 foreach (var function in list) { //音乐模块有主从关系,需要特殊处理 //if (SPK.MusicSpkList().Contains( function.spk)) //{ // continue; //} //else { if (!function.collect) continue; } if (index % 2 == 0) { rowView = new FrameLayout() { Height = Application.GetRealWidth(140), }; deviceFunctionView.AddChidren(rowView); } var functionView_X = Application.GetRealWidth((182 + 7) * (index % 2)); if (index % 2 == 0) { functionView_X += Application.GetRealWidth(7); } var functionView = new FrameLayout() { X = functionView_X, Width = Application.GetRealWidth(182), Height = Application.GetRealWidth(140), Radius = (uint)Application.GetRealWidth(12), Tag = function.sid }; rowView.AddChidren(functionView); functionViews.Add(functionView); //绿建人居环境,科技系统 if (function.spk == SPK.AcstParent) { LoadAcstDiv(functionView, function); } else //其他设备 { var btnbg = new Button() { UnSelectedImagePath = "Collection/Functionbg.png", SelectedImagePath = "Collection/FunctionOnbg.png", Tag = function.sid }; functionView.AddChidren(btnbg); LoadDeviceFunctionDiv(functionView, function); if (SPK.ArmSensorSpkList().Contains(function.spk)) { btnbg.UnSelectedImagePath = "Collection/FunctionOnbg.png"; btnbg.SelectedImagePath = "Collection/FunctionArmOnbg.png"; } } index++; } if (index == 0) { var view = new FrameLayout(); deviceFunctionView.AddChidren(view); var btnNoCollectionBg = new Button() { Y = Application.GetRealHeight(20), Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(180), Height = Application.GetRealWidth(180), UnSelectedImagePath = "Collection/NoCollectionBg.png", }; view.AddChidren(btnNoCollectionBg); var btnNoCollectionTip = new Button() { Height = Application.GetRealHeight(42), Y = btnNoCollectionBg.Bottom, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextID = StringId.TipNoFunctionCollcetion, }; view.AddChidren(btnNoCollectionTip); } } catch (Exception ex) { MainPage.Log("homepage error : " + ex.Message); } deviceFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); #endregion } /// /// 加载群控功能显示区域 /// void LoadGroupControlFunctionControlZone() { #region ContextView gcFunctionView.RemoveAll(); var rowView = new FrameLayout(); try { int index = 0; foreach (var function in FunctionList.List.groupControls) { if (index % 2 == 0) { rowView = new FrameLayout() { Height = Application.GetRealWidth(140), }; gcFunctionView.AddChidren(rowView); } var functionView_X = Application.GetRealWidth((182 + 7) * (index % 2)); if (index % 2 == 0) { functionView_X += Application.GetRealWidth(7); } var functionView = new FrameLayout() { X = functionView_X, Width = Application.GetRealWidth(182), Height = Application.GetRealWidth(140), Radius = (uint)Application.GetRealWidth(12), Tag = function.sid }; rowView.AddChidren(functionView); functionViews.Add(functionView); var btnbg = new Button() { UnSelectedImagePath = "Collection/Functionbg.png", SelectedImagePath = "Collection/FunctionOnbg.png", Tag = function.sid }; functionView.AddChidren(btnbg); LoadDeviceFunctionDiv(functionView, function); index++; } if (index == 0) { var view = new FrameLayout(); gcFunctionView.AddChidren(view); var btnNoCollectionBg = new Button() { Y = Application.GetRealHeight(20), Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(180), Height = Application.GetRealWidth(180), UnSelectedImagePath = "Collection/NoCollectionBg.png", }; view.AddChidren(btnNoCollectionBg); var btnNoCollectionTip = new Button() { Height = Application.GetRealHeight(42), Y = btnNoCollectionBg.Bottom, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, //TextID = StringId.TipNoFunctionCollcetion, }; view.AddChidren(btnNoCollectionTip); } } catch (Exception ex) { MainPage.Log("homepage error : " + ex.Message); } gcFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); #endregion } /// /// 加载场景功能显示区域 /// void LoadSceneFunctionControlZone() { sceneFunctionView.RemoveAll(); var rowView = new FrameLayout(); try { int index = 0; foreach (var scene in FunctionList.List.scenes) { if (!scene.collect) continue; //if (scene.roomIds.Count == 0)//如何在房间已经移除了这个功能,则收藏界面也不会再显示 //{ // scene.collect = false; // continue; //} if (index % 2 == 0) { sceneFunctionView.AddChidren(new Button() { Height = Application.GetRealHeight(7) }); rowView = new FrameLayout() { Height = Application.GetRealWidth(122), }; sceneFunctionView.AddChidren(rowView); sceneFunctionView.AddChidren(new Button() { Height = Application.GetRealHeight(7) }); } var functionView_X = Application.GetRealWidth((16 + 164) * (index % 2) + 16); var functionView = new FrameLayout() { X = functionView_X, Width = Application.GetRealWidth(164), Height = Application.GetRealWidth(122), Tag = scene.sid, BackgroundImagePath = scene.ImagePath, }; rowView.AddChidren(functionView); //2020-12-03 修改图片加载方法 ImageUtlis.Current.LoadLocalOrNetworkImages((scene as Scene).ImagePath, functionView); LoadSceneFunctionDiv( functionView, scene); index++; } if (index == 0) { var view = new FrameLayout(); sceneFunctionView.AddChidren(view); var btnNoCollectionBg = new Button() { Y = Application.GetRealHeight(20), Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(180), Height = Application.GetRealWidth(180), UnSelectedImagePath = "Collection/NoCollectionBg.png", }; view.AddChidren(btnNoCollectionBg); var btnNoCollectionTip = new Button() { Height = Application.GetRealHeight(42), Y = btnNoCollectionBg.Bottom, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextID = StringId.TipNoSceneCollcetion, }; view.AddChidren(btnNoCollectionTip); } } catch (Exception ex) { MainPage.Log("homepage erorr : " + ex.Message); } sceneFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); } /// /// 加载功能控制卡片 /// void LoadDeviceFunctionDiv(FrameLayout view, Function function) { try { Button btnIcon; btnIcon = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealWidth(16), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), }; view.AddChidren(btnIcon); Button btnName; btnName = new Button() { X = Application.GetRealWidth(21), Y = Application.GetRealWidth(10) + btnIcon.Bottom, Text = function.name, IsBold = true, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, Height = Application.GetRealWidth(24), Width = Application.GetRealWidth(140), TextAlignment = TextAlignment.CenterLeft, }; view.AddChidren(btnName); Button btnZone; btnZone = new Button() { X = Application.GetRealWidth(21), Y = btnName.Bottom, Height = Application.GetRealWidth(18), Width = Application.GetRealWidth(113), TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, TextAlignment = TextAlignment.CenterLeft, SelectedTextColor = CSS_Color.MainBackgroundColor, Text = function.GetRoomListName() }; view.AddChidren(btnZone); Button btnState; btnState = new Button() { X = Application.GetRealWidth(21), Y = btnZone.Bottom, Height = Application.GetRealWidth(18), Width = Application.GetRealWidth(113), SelectedTextColor = CSS_Color.MainBackgroundColor, TextColor = 0x00000000, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, TextAlignment = TextAlignment.CenterLeft, Tag = "state", Text = function.lastState }; if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose || function.spk == SPK.SensorPir || function.spk == SPK.SensorPirHold) { btnIcon.UnSelectedImagePath = "FunctionIcon/Icon/HomeIcon/sensormegahealth.png"; btnIcon.SelectedImagePath = "FunctionIcon/Icon/HomeIcon/sensormegahealth.png"; btnName.TextColor = CSS_Color.MainBackgroundColor; btnZone.TextColor = CSS_Color.MainBackgroundColor; btnState.TextColor = CSS_Color.MainBackgroundColor; var tempStatus = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.TargetStatus); if (tempStatus != null) { switch (tempStatus.state) {//0空,1走,2跑,3坐,4跌倒,5站 case "0": function.lastState = Language.StringByID(StringId.wuren); break; case "1": function.lastState = Language.StringByID(StringId.SomeoneIn); break; case "2": if (function.extSet.labModel) { function.lastState = Language.StringByID(StringId.SomeoneRunning); } else { function.lastState = Language.StringByID(StringId.Someone); } break; case "3": if (function.extSet.labModel) { function.lastState = Language.StringByID(StringId.SomeoneSitting); } else { function.lastState = Language.StringByID(StringId.Someone); } break; case "4": function.lastState = Language.StringByID(StringId.SomeoneFell); break; case "5": if (function.extSet.labModel) { function.lastState = Language.StringByID(StringId.SomeoneStanding); } else { function.lastState = Language.StringByID(StringId.Someone); } break; } btnState.Text = function.lastState; } else { tempStatus = function.attributes.Find((sta) => sta.key == "people_status"); if (tempStatus != null) { switch (tempStatus.state) { case "true": function.lastState = Language.StringByID(StringId.Someone); break; case "false": function.lastState = Language.StringByID(StringId.wuren); break; } btnState.Text = function.lastState; } } } else if(function.spk == SPK.SensorDryContact || function.spk == SPK.SensorDryContact2) { btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png"; btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png"; btnName.TextColor = CSS_Color.MainBackgroundColor; btnZone.TextColor = CSS_Color.MainBackgroundColor; btnState.TextColor = CSS_Color.MainBackgroundColor; var tempStatus = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.ContactStatus); if (tempStatus != null) { switch (tempStatus.state) { case "open": function.lastState = Language.StringByID(StringId.DryBreak); break; case "close": function.lastState = Language.StringByID(StringId.Shut); break; } btnState.Text = function.lastState; } } else { btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png"; btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png"; } if (function.spk != SPK.LightSwitch) { view.AddChidren(btnState); } Button btnCollection; btnCollection = new Button() { X = Application.GetRealWidth(130), Y = Application.GetRealWidth(16), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), SelectedImagePath = "Collection/CollectionWhiteIcon.png", UnSelectedImagePath = "Collection/CollectionIcon.png", }; if (function.spk != SPK.GroupControl)//群控默认显示 view.AddChidren(btnCollection); //2020-12-16 如果是成员隐藏收藏功能 //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) //{ // view.AddChidren(btnCollection); //} LoadEvent_FunctionCollection(btnCollection, function); if (//SPK.CurtainSpkList().Contains(function.spk)) function.spk == SPK.CurtainRoller || function.spk == SPK.CurtainShades || function.spk == SPK.CurtainDream || function.spk == SPK.CurtainSwitch || function.spk == SPK.CurtainTrietex ) { btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainIcon.png"; btnIcon.SelectedImagePath = "FunctionIcon/Curtain/CurtainOnIcon.png"; Button btnCurtainClose; btnCurtainClose = new Button() { X = Application.GetRealWidth(84), Y = Application.GetRealWidth(89), Width = Application.GetRealWidth(44), Height = Application.GetRealWidth(44), UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseBlueIcon_Shadow.png", SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseWhiteIcon_Shadow.png", }; view.AddChidren(btnCurtainClose); Button btnCurtainOpen; btnCurtainOpen = new Button() { X = btnCurtainClose.Right, Y = Application.GetRealWidth(89), Width = Application.GetRealWidth(44), Height = Application.GetRealWidth(44), UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenBlueIcon_Shadow.png", SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenWhiteIcon_Shadow.png", }; view.AddChidren(btnCurtainOpen); LoadEvent_ControlCurtain(function, btnCurtainClose, btnCurtainOpen); } else if (SPK.NotStatusSpkList.Contains(function.spk)) { Button btnPower; btnPower = new Button() { X = Application.GetRealWidth(131), Y = Application.GetRealHeight(80), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), UnSelectedImagePath = "Public/PowerClose.png", SelectedImagePath = "Public/PowerOpen.png", }; view.AddChidren(btnPower); LoadEvent_ControlTV(function, btnPower); } else if (function.spk == SPK.MusicStandard || function.spk == SPK.AvMusic) { btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicIcon.png"; btnIcon.SelectedImagePath = "FunctionIcon/Music/MusicOnIcon.png"; //btnCollection.Visible = false; Button btnPower; btnPower = new Button() { X = Application.GetRealWidth(118), Y = Application.GetRealWidth(83), Width = Application.GetRealWidth(44), Height = Application.GetRealWidth(44), UnSelectedImagePath = "FunctionIcon/Music/MusicPlayIcon.png", SelectedImagePath = "FunctionIcon/Music/MusicPlayOnIcon.png", }; view.AddChidren(btnPower); btnState.Text = function.GetAttrState("song_name"); btnState.Width = Application.GetRealWidth(90); btnState.SelectedTextColor = CSS_Color.MainBackgroundColor; btnState.TextColor = CSS_Color.MainBackgroundColor;//PromptingColor1 //Music.SendMethod.ReadStatus(a31player); btnPower.MouseUpEventHandler = (sender, e) => { string status = "off"; if (btnPower.IsSelected) { btnPower.IsSelected = false; status = "off"; } else { btnPower.IsSelected = true; status = "on"; } function.SetAttrState("on_off", status); Dictionary dic = new Dictionary(); dic.Add("on_off", status); Music.SendMethod.Current.SendControlCommand(function, dic); }; } else if (function.spk == SPK.ClothesHanger) { btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerBlueIcon.png"; btnIcon.SelectedImagePath = "FunctionIcon/Electrical/Curtain/ClothesHangerBlueIcon.png"; Button btnUp; btnUp = new Button() { X = Application.GetRealWidth(84 + 3), Y = Application.GetRealWidth(89), Width = Application.GetRealWidth(38), Height = Application.GetRealWidth(38), UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIcon2.png", SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIcon2On.png", }; view.AddChidren(btnUp); Button btnDown; btnDown = new Button() { X = btnUp.Right + Application.GetRealWidth(3), Y = Application.GetRealWidth(89), Width = Application.GetRealWidth(38), Height = Application.GetRealWidth(38), UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIcon2.png", SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIcon2On.png", }; view.AddChidren(btnDown); LoadEvent_ControlClothesHanger(function, btnUp, btnDown); } //else if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose) else if (SPK.ArmSensorSpkList().Contains(function.spk)) { btnName.TextColor = CSS_Color.MainBackgroundColor; btnZone.TextColor = CSS_Color.MainBackgroundColor; btnState.SelectedTextColor = CSS_Color.MainBackgroundColor; btnState.TextColor = CSS_Color.MainBackgroundColor; } //紧急求助 else if (function.spk == SPK.SensorHelp) { btnName.TextColor = CSS_Color.MainBackgroundColor; btnName.SelectedTextColor = CSS_Color.MainBackgroundColor; btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png"; btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png"; } else if (function.spk == SPK.IpCam_Imou) { btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png"; btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png"; } else if (function.spk == SPK.VideoDoorLock) { btnIcon.UnSelectedImagePath = UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.GetVideoDoorLockIcon(UI2.FuntionControlView.VideoDoorLock.CommonMethod.Comerom.collect); //btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png"; } else if (function.spk == SPK.AvZkAiks) { //为了去掉开关按钮 btnIcon.UnSelectedImagePath = "AksIcon/yingyinzhongkong1.png"; } else if (function.spk == SPK.GroupControl) { btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png"; btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png"; if (function.spk == SPK.GroupControl) { Button btnClose; Button btnOpen; btnOpen = new Button() { X = Application.GetRealWidth(84), Y = Application.GetRealWidth(89), Width = Application.GetRealWidth(40), Height = Application.GetRealWidth(40), UnSelectedImagePath = "FunctionIcon/Light/LightScene/gp_all_on_home.png", SelectedImagePath = "FunctionIcon/Light/LightScene/gp_all_on_home_click.png", }; view.AddChidren(btnOpen); btnClose = new Button() { X = btnOpen.Right, Y = Application.GetRealWidth(89), Width = Application.GetRealWidth(40), Height = Application.GetRealWidth(40), UnSelectedImagePath = "FunctionIcon/Light/LightScene/gp_all_off_home.png", SelectedImagePath = "FunctionIcon/Light/LightScene/gp_all_off_home_click.png", }; view.AddChidren(btnClose); btnClose.MouseDownEventHandler = (sender, e) => { btnClose.IsSelected = true; }; btnClose.MouseUpEventHandler = (sender, e) => { btnClose.IsSelected = false; if (function.spk == SPK.GroupControl) { var d = new Dictionary(); d.Add("on_off", "off"); (function as GroupControl).Control(d); } }; btnOpen.MouseDownEventHandler = (sender, e) => { btnOpen.IsSelected = true; }; btnOpen.MouseUpEventHandler = (sender, e) => { btnOpen.IsSelected = false; if (function.spk == SPK.GroupControl) { var d = new Dictionary(); d.Add("on_off", "on"); (function as GroupControl).Control(d); } }; } } else if (function.spk == SPK.ElectricEnergy || function.spk == SPK.AirSwitch || function.spk == SPK.AirSwitchP3) { } else { Button btnSwitch; btnSwitch = new Button() { X = Application.GetRealWidth(122), Y = Application.GetRealWidth(92), Width = Application.GetMinRealAverage(48), Height = Application.GetMinRealAverage(36), UnSelectedImagePath = "Public/Switch.png", SelectedImagePath = "Public/SwitchOn.png", }; view.AddChidren(btnSwitch); btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png"; btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png"; LoadEvent_SwitchFunction(function, btnSwitch); } //取消收藏事件 Action cannelCollect = () => { function.collect = false; //if (SPK.MusicSpkList().Contains(function.spk))//处理音乐主从关系 //{ // if ((function as Music.A31MusicModel).ServerClientType == 1) // { // (function as Music.A31MusicModel).MainPlayCollection = false; // Music.A31MusicModel.Save(); // } //} string msg = function.name + Language.StringByID(StringId.CollectionCancelled); LoadDeviceFunctionControlZone(); function.CollectFunction(); }; var skipControlPageEvent = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollection, btnName, btnZone, UI2.FuntionControlView.VideoDoorLock.CommonMethod.Comerom.collect,()=> { this.LoadDeviceFunctionControlZone();//删除设备后重新刷新UI }); view.MouseUpEventHandler = skipControlPageEvent; btnName.MouseUpEventHandler = skipControlPageEvent; btnIcon.MouseUpEventHandler = skipControlPageEvent; btnState.MouseUpEventHandler = skipControlPageEvent; //不需要更新状态的功能列表 if(!SPK.NotStatusSpkList.Contains(function.spk) || function.spk != SPK.IpCam_Imou) { UpdataFunctionStates(function); } var btnOffline = new Button() { X = btnIcon.Right, Y = Application.GetRealWidth(16), Height = Application.GetMinRealAverage(32), TextID = StringId.DeviceOffline, TextColor = CSS_Color.WarningColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextAlignment = TextAlignment.CenterLeft, Tag = "OnlineTag", Visible = !function.isOnline() }; view.AddChidren(btnOffline); } catch (Exception ex) { MainPage.Log("homepage LoadControlView error : " + ex.Message); } } /// /// 加载绿建科技系统卡片 /// void LoadAcstDiv(FrameLayout view1, Function function) { var view = new FrameLayout() { X = Application.GetRealWidth(10), Y = Application.GetRealHeight(5), Width = Application.GetRealWidth(160), Height = Application.GetRealHeight(105), BackgroundColor = CSS_Color.MainBackgroundColor, Radius = (uint)Application.GetRealWidth(15), }; view1.AddChidren(view); Button btnName; btnName = new Button() { X = Application.GetRealWidth(11), Y = Application.GetRealWidth(10), TextID = StringId.Acst, IsBold = true, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, Height = Application.GetRealWidth(24), Width = Application.GetRealWidth(140), TextAlignment = TextAlignment.CenterLeft, }; view.AddChidren(btnName); var btnLogo = new Button() { Y = Application.GetRealHeight(65), UnSelectedImagePath = "FunctionIcon/Acst/LvJianLogo.png", SelectedImagePath = "FunctionIcon/Acst/LvJianLogo.png", Width = Application.GetRealWidth(80), Height = Application.GetRealHeight(37), }; view.AddChidren(btnLogo); Button btnFunctionViewBg; btnFunctionViewBg = new Button() { Height = Application.GetRealWidth(100), Width = Application.GetRealWidth(102), UnSelectedImagePath = "FunctionIcon/FunctionBg/AcstFunctionBg.png", }; view.AddChidren(btnFunctionViewBg); btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { var page = new AcstParentPage(); MainPage.BasePageView.AddChidren(page); page.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; //Button btnAcstPower = new Button() //{ // X = Application.GetRealWidth(115), // Y = Application.GetRealHeight(70), // Width = Application.GetRealWidth(32), // Height = Application.GetRealWidth(32), // SelectedImagePath = "Public/PowerOpen.png", // UnSelectedImagePath = "Public/PowerClose.png", // IsSelected = function.trait_on_off.curValue.ToString() == "on", //}; //view.AddChidren(btnAcstPower); //btnAcstPower.MouseUpEventHandler = (sender, e) => { // btnAcstPower.IsSelected = !btnAcstPower.IsSelected; // new System.Threading.Thread(() => // { // string onoff = btnAcstPower.IsSelected ? "on" : "off"; // Dictionary d = new Dictionary(); // d.Add(FunctionAttributeKey.OnOff, onoff); // foreach (var temp in FunctionList.List.GetAcstParentList()) // { // Control.Ins.SendWriteCommand(temp, d); // } // }) // { IsBackground = true }.Start(); //}; } /// /// 加载场景控制卡片 /// void LoadSceneFunctionDiv(FrameLayout view, Scene scene) { try { Button btnCoverd = new Button() { UnSelectedImagePath = "Collection/SceneCovered.png", }; view.AddChidren(btnCoverd); Button btnShowDelay; btnShowDelay = new Button() { X = Application.GetRealWidth(40), Y = Application.GetRealWidth(4), Height = Application.GetRealWidth(32), Width = Application.GetRealWidth(100), TextColor = CSS_Color.AuxiliaryColor1, TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, }; view.AddChidren(btnShowDelay); Button btnSettingIcon; btnSettingIcon = new Button() { X = Application.GetRealWidth(4), Y = Application.GetRealWidth(4), Height = Application.GetRealWidth(32), Width = Application.GetRealWidth(32), UnSelectedImagePath = "Public/FuncInfoSetIcon_white.png", }; if (scene.userId == UserInfo.Current.ID) { view.AddChidren(btnSettingIcon); } Button btnName; btnName = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(68), Width = Application.GetRealWidth(150), Height = Application.GetRealHeight(24), Text = scene.name, TextSize = CSS_FontSize.TextFontSize, TextColor = CSS_Color.MainBackgroundColor, TextAlignment = TextAlignment.CenterLeft, }; view.AddChidren(btnName); Button btnZone; btnZone = new Button() { X = Application.GetRealWidth(12), Y = btnName.Bottom, Height = Application.GetRealWidth(18), Width = Application.GetRealWidth(113), TextColor = CSS_Color.MainBackgroundColor, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, TextAlignment = TextAlignment.CenterLeft, SelectedTextColor = CSS_Color.MainBackgroundColor, Text = scene.GetRoomListName(), }; view.AddChidren(btnZone); Button btnCollection; btnCollection = new Button() { X = Application.GetRealWidth(116), Y = Application.GetRealWidth(8), Width = Application.GetMinRealAverage(32), Height = Application.GetMinRealAverage(32), SelectedImagePath = "Collection/CollectionWhiteIcon.png", UnSelectedImagePath = "Collection/CollectionIcon.png", }; view.AddChidren(btnCollection); //2020-12-16 如果是成员隐藏收藏功能 //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) //{ // view.AddChidren(btnCollection); //} LoadEvent_SceneCollection(btnCollection, scene); LoadEvent_ControlScene(btnCoverd, btnName, btnZone, btnShowDelay, scene); btnSettingIcon.MouseUpEventHandler = (sender, e) => { Action backAction = () => { //LoadSceneFunctionControlZone(); }; Action refreshAction = () => { btnName.Text = scene.name; btnZone.Text = scene.GetRoomListName(); //view.BackgroundImagePath = (scene as Scene).ImagePath; //2020-12-03 修改图片加载方法 ImageUtlis.Current.LoadLocalOrNetworkImages((scene as Scene).ImagePath, view); }; var aep = new SceneEditPage(scene, backAction); MainPage.BasePageView.AddChidren(aep); aep.LoadPage(refreshAction); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; //场景正在倒计时执行中 scene.SceneCountDown(btnShowDelay); } catch (Exception ex) { MainPage.Log("homepage LoadControlView error : " + ex.Message); } } } }