| | |
| | | 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; |
| | |
| | | |
| | | namespace HDL_ON.UI |
| | | { |
| | | public partial class HomePage : VerticalRefreshLayout |
| | | #if __IOS__ |
| | | public partial class HomePage : VerticalRefreshLayout |
| | | #else |
| | | public partial class HomePage : VerticalScrolViewLayout |
| | | #endif |
| | | { |
| | | |
| | | #region 控件列表 |
| | |
| | | /// 功能区域集合 |
| | | /// </summary> |
| | | List<FrameLayout> functionViews; |
| | | #endregion |
| | | #endregion |
| | | |
| | | #region 区域变量 |
| | | #region 区域变量 |
| | | /// <summary> |
| | | /// 当前显示对控制类型是否是设备功能控制 |
| | | /// </summary> |
| | | bool CurShowTypeIsFunction = true; |
| | | #endregion |
| | | #endregion |
| | | |
| | | #region 报警信息 |
| | | #region 报警信息 |
| | | Button btnMsgBg; |
| | | Button btnMsgTime; |
| | | Button btnMsg; |
| | | Button btnMsgIcon; |
| | | #endregion |
| | | #endregion |
| | | |
| | | public HomePage() |
| | | { |
| | |
| | | MainPage.CurPageIndex = 0; |
| | | try |
| | | { |
| | | this.BeginHeaderRefreshingAction = () => |
| | | bodyView.RemoveAll(); |
| | | #if __IOS__ |
| | | bodyView.BeginHeaderRefreshingAction = () => |
| | | { |
| | | this.EndHeaderRefreshing(); |
| | | bodyView.EndHeaderRefreshing(); |
| | | Common.ApiUtlis.Ins.DownloadData(); |
| | | LoadContentView(); |
| | | if (!CurShowTypeIsFunction) |
| | | { |
| | | contentView.PageIndex = 1; |
| | | } |
| | | }; |
| | | topView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(216), |
| | | BackgroundImagePath = DB_ResidenceData.Instance.residenceImage, |
| | | }; |
| | | bodyView.AddChidren(topView); |
| | | #else |
| | | VerticalRefreshLayout refreshLayout = new VerticalRefreshLayout() |
| | | { |
| | | Height = Application.GetRealHeight(216), |
| | | BackgroundImagePath = DB_ResidenceData.Instance.residenceImage, |
| | | }; |
| | | bodyView.AddChidren(refreshLayout); |
| | | refreshLayout.BeginHeaderRefreshingAction = () => |
| | | { |
| | | refreshLayout.EndHeaderRefreshing(); |
| | | Common.ApiUtlis.Ins.DownloadData(); |
| | | LoadContentView(); |
| | | if(!CurShowTypeIsFunction) |
| | |
| | | contentView.PageIndex = 1; |
| | | } |
| | | }; |
| | | |
| | | #region topView |
| | | |
| | | bodyView.RemoveAll(); |
| | | |
| | | topView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(216), |
| | | BackgroundImagePath = DB_ResidenceData.Instance.residenceImage, |
| | | }; |
| | | bodyView.AddChidren(topView); |
| | | refreshLayout.AddChidren(topView); |
| | | #endif |
| | | #region topView |
| | | |
| | | |
| | | |
| | | Button btnTop; |
| | | btnTop = new Button() |
| | |
| | | //X = Application.GetRealWidth(16), |
| | | Y = btnResidenceName.Bottom, |
| | | Height = Application.GetRealWidth(14), |
| | | BackgroundColor = CSS_Color.LinkTipFail, |
| | | //BackgroundColor = CSS_Color.LinkTipFail, |
| | | TextAlignment = TextAlignment.Center, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextColor = CSS_Color.MainBackgroundColor, |
| | |
| | | int ddd = 0; |
| | | btnResidenceName.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | |
| | | //827a98c98da7469b8bc19bb6a3c7651906 |
| | | //St_00009073b431d8b2490c9df0c5cb0e73 |
| | | //Com.Hdl.HdlToLc.InitData(Shared.Application.Activity,false, "827a98c98da7469b8bc19bb6a3c7651906"); |
| | | //Com.Hdl.HdlToLc.OpenActivity(); |
| | | //new System.Threading.Thread(() => |
| | | //{ |
| | | // var http = new HttpServerRequest(); |
| | | // var pack = http.GetLcSubAccountToken(); |
| | | // if (pack.Code == StateCode.SUCCESS) |
| | | // { |
| | | // if(pack.Data == null || string.IsNullOrEmpty(pack.Data.ToString())) |
| | | // { |
| | | // Application.RunOnMainThread(() => |
| | | // { |
| | | // new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip), Language.StringByID(StringId.huoqushujushibao)); |
| | | // }); |
| | | // } |
| | | // Com.Utils.HdlToLcUtils.Instance.HomeId = DB_ResidenceData.Instance.CurrentRegion.id; |
| | | // Com.Utils.HdlToLcUtils.Instance.Token = UserInfo.Current.AccessToken; |
| | | // Com.Utils.HdlToLcUtils.Instance.SubAccessToken = pack.Data.ToString(); |
| | | // Application.RunOnMainThread(() => |
| | | // { |
| | | // //Com.Utils.HdlToLcUtils.Instance.OpenActivity(); |
| | | // //Com.Utils.HdlToLcUtils.Instance.Play() |
| | | // var backTemp = new AddLcCam(); |
| | | // backTemp.backAction = () => |
| | | // { |
| | | // //Load3tyBrandDeviceList(); |
| | | // }; |
| | | // Com.Utils.HdlToLcUtils.Instance.AddCamera(backTemp); |
| | | // }); |
| | | // } |
| | | // else |
| | | // { |
| | | // Application.RunOnMainThread(() => |
| | | // { |
| | | // new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip), Language.StringByID(StringId.huoqushujushibao) + $"({pack.Code})"); |
| | | // }); |
| | | // } |
| | | //}) |
| | | //{ IsBackground = true }.Start(); |
| | | }; |
| | | #endif |
| | | |
| | |
| | | topView.AddChidren(environmentalView); |
| | | CheckLinkStatus();//2020-12-22 |
| | | |
| | | #region 环境数据 |
| | | #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)); |
| | |
| | | deviceId = enviTemp.deviceId, |
| | | attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = humiAttr.state, curValue = humiAttr.curValue } }, |
| | | }; |
| | | humiSensorList.Add(newTemp); |
| | | humiSensorList.Add(newTemp);//020103CF594C3E00051F0001051F// 1650546588519424001 |
| | | } |
| | | var tempAttr = enviTemp.attributes.Find((obj) => obj.key == "temperature"); |
| | | if (tempAttr != null) |
| | |
| | | deviceId = enviTemp.deviceId, |
| | | attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = tempAttr.state, curValue = tempAttr.curValue } }, |
| | | }; |
| | | tempSensorList.Add(newTemp); |
| | | tempSensorList.Add(newTemp);//020103CF594C3E00051F0001051F |
| | | } |
| | | } |
| | | |
| | |
| | | foreach (var temp in tempSensorList) |
| | | { |
| | | double tempValue = 0; |
| | | double.TryParse(temp.GetAttrState("temperature"), out tempValue); |
| | | 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; |
| | |
| | | foreach (var humi in humiSensorList) |
| | | { |
| | | double humiValue = 0; |
| | | double.TryParse(humi.GetAttrState("humidity"), out humiValue); |
| | | 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; |
| | |
| | | btnPm25Values.Width = btnPm25Values.GetTextWidth(); |
| | | environmentalView.AddChidren(btnPm25Values); |
| | | #endregion |
| | | |
| | | |
| | | btnSecurityStatus = new Button() |
| | | { |
| | |
| | | } |
| | | |
| | | |
| | | #region msg |
| | | #region msg |
| | | FrameLayout msgView; |
| | | msgView = new FrameLayout() |
| | | { |
| | |
| | | |
| | | LoadEvent_GotoMessageCenterPage(); |
| | | |
| | | #endregion |
| | | #endregion |
| | | |
| | | #endregion |
| | | #endregion |
| | | |
| | | #region 功能场景切换 |
| | | #region 功能场景切换 |
| | | |
| | | bodyView.AddChidren(new Button() { Height = Application.GetRealHeight(20), BackgroundColor = 0x00000000 }); |
| | | |
| | |
| | | /// </summary> |
| | | void LoadContentView() |
| | | { |
| | | if (!Common.ApiUtlis.Ins.DownloadDataComplete) |
| | | |
| | | if (!Common.ApiUtlis.Ins.DownloadDataComplete && !MainPage.NoLoginMode) |
| | | { |
| | | var waitPage = new Loading(); |
| | | MainPage.BaseView.AddChidren(waitPage); |
| | |
| | | /// </summary> |
| | | void LoadDeviceFunctionControlZone() |
| | | { |
| | | #region ContextView |
| | | #region ContextView |
| | | deviceFunctionView.RemoveAll(); |
| | | functionViews.Clear(); |
| | | var rowView = new FrameLayout(); |
| | | try |
| | | { |
| | | int index = 0; |
| | | var list = FunctionList.List.GetDeviceFunctionList(); |
| | | var list = new List<Function>(); |
| | | list.AddRange(FunctionList.List.GetDeviceFunctionList()); |
| | | list.AddRange(FunctionList.List.groupControls);//加入群控 |
| | | foreach (var function in list) |
| | | { |
| | | //音乐模块有主从关系,需要特殊处理 |
| | |
| | | MainPage.Log("homepage error : " + ex.Message); |
| | | } |
| | | deviceFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); |
| | | #endregion |
| | | #endregion |
| | | |
| | | } |
| | | /// <summary> |
| | |
| | | btnState.Text = function.lastState; |
| | | } |
| | | } |
| | | |
| | | else |
| | | { |
| | | btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png"; |
| | |
| | | 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 ) |
| | | function.spk == SPK.CurtainSwitch || function.spk == SPK.CurtainTrietex) |
| | | { |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/Curtain/CurtainOnIcon.png"; |
| | |
| | | btnPower.IsSelected = true; |
| | | status = "on"; |
| | | } |
| | | function.SetAttrState("on_off", status); |
| | | function.SetAttrState("on_off", status); |
| | | Dictionary<string, string> dic = new Dictionary<string, string>(); |
| | | dic.Add("on_off", status); |
| | | Music.SendMethod.Current.SendControlCommand(function, dic); |
| | |
| | | Button btnUp; |
| | | btnUp = new Button() |
| | | { |
| | | X = Application.GetRealWidth(84+3), |
| | | X = Application.GetRealWidth(84 + 3), |
| | | Y = Application.GetRealWidth(89), |
| | | Width = Application.GetRealWidth(38), |
| | | Height = Application.GetRealWidth(38), |
| | |
| | | LoadEvent_ControlClothesHanger(function, btnUp, btnDown); |
| | | |
| | | } |
| | | |
| | | |
| | | else if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose) |
| | | { |
| | | //btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}.png"; |
| | |
| | | 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.GroupControl) |
| | | { |
| | | btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/lightswitch_blue.png"; |
| | | btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/lightswitch_white.png"; |
| | | } |
| | | else |
| | | { |
| | | Button btnSwitch; |
| | |
| | | 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); |
| | |
| | | }; |
| | | |
| | | |
| | | var skipControlPageEvent = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollection, btnName, btnZone); |
| | | 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; |
| | |
| | | |
| | | LoadEvent_ControlScene(btnCoverd, btnName, btnZone, btnShowDelay, scene); |
| | | |
| | | btnSettingIcon.MouseUpEventHandler = (sender, e) => { |
| | | Action backAction = () => { |
| | | btnSettingIcon.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | Action backAction = () => |
| | | { |
| | | //LoadSceneFunctionControlZone(); |
| | | }; |
| | | Action refreshAction = () => { |
| | | Action refreshAction = () => |
| | | { |
| | | btnName.Text = scene.name; |
| | | btnZone.Text = scene.GetRoomListName(); |
| | | //view.BackgroundImagePath = (scene as Scene).ImagePath; |
| | |
| | | }; |
| | | var aep = new SceneEditPage(scene, backAction); |
| | | MainPage.BasePageView.AddChidren(aep); |
| | | aep.LoadPage( refreshAction); |
| | | aep.LoadPage(refreshAction); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | //场景正在倒计时执行中 |