old mode 100755
new mode 100644
| | |
| | | using System.Text;
|
| | | using ZigBee.Device;
|
| | |
|
| | |
|
| | | namespace Shared.Phone.MainPage
|
| | | {
|
| | | /// <summary>
|
| | |
| | | {
|
| | | #region ■ 变量声明___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// The instance.
|
| | | /// </summary>
|
| | | public static HomeMainPageForm Instance;
|
| | | /// <summary>
|
| | | /// 整个界面的上下滑动控件
|
| | | /// </summary>
|
| | |
| | | /// </summary>
|
| | | public void ShowForm()
|
| | | {
|
| | | this.FormID = "HomeMainPageForm";
|
| | | Instance = this;
|
| | | |
| | | //先初始化左滑房间列表界面(在反射里面初始化)
|
| | | if (ListRoomViewFrom.Instance == null) { }
|
| | |
|
| | |
| | | this.AddNormalDeviceReportEvent();
|
| | | //添加传感器状态上报事件
|
| | | this.AddSensorDeviceReportEvent();
|
| | | //将当前的画面保存到内存当中
|
| | | UserCenterLogic.AddActionForm(this);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化头部控件
|
| | | /// </summary>
|
| | | private void InitTopFrameLayoutControl()
|
| | | {
|
| | | { |
| | | |
| | | |
| | |
|
| | | //头部容器
|
| | | base.topFrameLayout = new FrameLayout();
|
| | | topFrameLayout.Y = Application.GetRealHeight(60);
|
| | |
| | | //显示选择楼层的界面
|
| | | this.ShowSelectFloorForm(btnFloorName);
|
| | | };
|
| | | }
|
| | | //安防快捷方式
|
| | | } |
| | | |
| | | //可视对讲快捷方式 |
| | | Shared.Phone.Device.VideoIntercom.VideoMachine.AccountSupportVideo(topFrameLayout); |
| | | |
| | | //var videoIntercomBtn = new Button();
|
| | | //videoIntercomBtn.Gravity = Gravity.CenterVertical;
|
| | | //videoIntercomBtn.UnSelectedImagePath = "Item/videoIntercom.png";
|
| | | //videoIntercomBtn.Width = Application.GetMinRealAverage(69); |
| | | //videoIntercomBtn.Height = Application.GetMinRealAverage(69);
|
| | | //topFrameLayout.AddChidren(videoIntercomBtn); |
| | | //if (UserCenterResourse.ResidenceOption.SafetyShortcut) |
| | | //{ |
| | | // videoIntercomBtn.X = Application.GetRealWidth(746+10);
|
| | | //} |
| | | //else |
| | | //{ |
| | | // videoIntercomBtn.X = Application.GetRealWidth(850+10); |
| | | //} |
| | | //videoIntercomBtn.MouseUpEventHandler += (sender, e) => |
| | | //{ |
| | | // var videoMachine = new Device.VideoIntercom.VideoMachine(); |
| | | // UserView.HomePage.Instance.AddChidren(videoMachine); |
| | | // UserView.HomePage.Instance.PageIndex += 1; |
| | | // videoMachine.Show(); |
| | | //}; |
| | | |
| | | |
| | | |
| | | |
| | | //安防快捷方式 |
| | | if (UserCenterResourse.ResidenceOption.SafetyShortcut)
|
| | | {
|
| | | var btnSafety = new Controls.SafetyShortcutControl();
|
| | |
| | | btnSafety.Gravity = Gravity.CenterVertical;
|
| | | topFrameLayout.AddChidren(btnSafety);
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | //消息图标
|
| | | var btnMessage = new MessageManagementControl();
|
| | | btnMessage.X = Application.GetRealWidth(953);
|
| | |
| | | selectHouse.Init();
|
| | | selectHouse.HouseAction = (houseId) =>
|
| | | {
|
| | | ChangeResidence(House.GetHouseByHouseId(houseId));
|
| | | ChangeResidence(HdlResidenceLogic.Current.GetHouseByHouseId(houseId));
|
| | | };
|
| | | }
|
| | | };
|
| | |
| | | }
|
| | |
|
| | | //功能和场景bodyView
|
| | | this.bodyFrameLayout = new FrameLayout()
|
| | | {
|
| | | Y = functionSceneView.Bottom,
|
| | | Height = Application.GetRealHeight(750),
|
| | | Gravity = Gravity.CenterHorizontal,
|
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
|
| | | };
|
| | | this.bodyFrameLayout = new FrameLayout();
|
| | | bodyFrameLayout.Y = functionSceneView.Bottom;
|
| | | bodyFrameLayout.Height = this.listBodyContr.frameTable.Height - functionSceneView.Bottom;
|
| | | bodyFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
|
| | | this.listBodyContr.frameTable.AddChidren(bodyFrameLayout);
|
| | |
|
| | | //选择功能分栏
|
| | |
| | |
|
| | | //当前房间
|
| | | var listRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
|
| | | if (HdlRoomLogic.Current.NowMainPageRoom == null)
|
| | | {
|
| | | //设置第一个为初始房间
|
| | | HdlRoomLogic.Current.NowMainPageRoom = listRoom[0];
|
| | | }
|
| | | var curIndex = 0;
|
| | | for (int i = 0; i < listRoom.Count; i++)
|
| | | {
|
| | |
| | | roomPageView.AddChidren(roomView);
|
| | | roomView.Init(listRoom[i]);
|
| | |
|
| | | if (listRoom[i].Id == HdlRoomLogic.Current.CurrentRoom.Id)
|
| | | if (listRoom[i].Id == HdlRoomLogic.Current.NowMainPageRoom.Id)
|
| | | {
|
| | | //当前房间,则显示那些数据出来
|
| | | roomView.HideName(false);
|
| | |
| | | btnRoomRightShadow.Visible = true;
|
| | | btnRoomBottomShadow.Visible = true;
|
| | | //切换当前房间
|
| | | HdlRoomLogic.Current.CurrentRoom = listRoom[curIndex];
|
| | | HdlRoomLogic.Current.NowMainPageRoom = listRoom[curIndex];
|
| | | //刷新设备桌布控件
|
| | | this.isRoomChanging = false;
|
| | | this.RefreshBodyView();
|
| | |
| | | this.dicDeviceCardControl.Clear();
|
| | |
|
| | | var listDevice = new List<CommonDevice>();
|
| | | foreach (var mainkeys in HdlRoomLogic.Current.CurrentRoom.ListDevice)
|
| | | foreach (var mainkeys in HdlRoomLogic.Current.NowMainPageRoom.ListDevice)
|
| | | {
|
| | | var device = LocalDevice.Current.GetDevice(mainkeys);
|
| | | //判断该设备能否显示在主页
|
| | |
| | | //当前房间的设备数
|
| | | if (listDevice.Count == 0)
|
| | | {
|
| | | ShowNoFunctionTip();
|
| | | //还没有功能哦
|
| | | this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.NoFunction_Tip));
|
| | | return;
|
| | | }
|
| | | //设备列表容器控件
|
| | |
| | | {
|
| | | cardContr = new Controls.DeviceAcCardControl();
|
| | | }
|
| | | //新风
|
| | | else if (device.Type == DeviceType.FreshAir)
|
| | | {
|
| | | cardContr = new Controls.DeviceFreshAirCardControl();
|
| | | }
|
| | | //彩灯(调光器)
|
| | | else if (device.Type == DeviceType.DimmableLight)
|
| | | {
|
| | |
| | | {
|
| | | cardContr = new Controls.DeviceDoorLockCardControl();
|
| | | }
|
| | | //色温灯
|
| | | else if (device.Type == DeviceType.ColorTemperatureLight)
|
| | | {
|
| | | cardContr = new Controls.DeviceColorTemperatureCardControl();
|
| | | }
|
| | | //无法识别
|
| | | else
|
| | | {
|
| | |
| | | cardContr.X = XX;
|
| | | cardContr.Y = YY;
|
| | | listDeviceBackContr.AddChidren(cardContr);
|
| | | cardContr.InitControl(device);
|
| | | cardContr.InitControl(device, HdlRoomLogic.Current.NowMainPageRoom);
|
| | | //卡片需要被移除的事件
|
| | | cardContr.CardNeedRemoveEvent += () =>
|
| | | {
|
| | |
| | | System.Threading.Thread.Sleep(50);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 显示没有功能
|
| | | /// </summary>
|
| | | private void ShowNoFunctionTip()
|
| | | {
|
| | | var noFunction = new Button
|
| | | {
|
| | | Y = Application.GetRealHeight(69),
|
| | | Width = this.GetPictrueRealSize(683),
|
| | | Height = this.GetPictrueRealSize(392),
|
| | | Gravity = Gravity.CenterHorizontal,
|
| | | UnSelectedImagePath = "Item/NoFunction.png"
|
| | | };
|
| | | bodyFrameLayout.AddChidren(noFunction);
|
| | |
|
| | | var noFunctionTip = new Button()
|
| | | {
|
| | | Y = noFunction.Bottom,
|
| | | Height = Application.GetRealHeight(200),
|
| | | Text = Language.StringByID(R.MyInternationalizationString.NoFunction_Tip).Replace("{\\r\\n}", "\r\n"),
|
| | | TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
|
| | | TextAlignment = TextAlignment.Center,
|
| | | IsMoreLines = true
|
| | | };
|
| | | bodyFrameLayout.AddChidren(noFunctionTip);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | this.dicDeviceCardControl.Clear();
|
| | |
|
| | | var listScene = new List<SceneUI>();
|
| | | foreach (int sceneId in HdlRoomLogic.Current.CurrentRoom.ListSceneId)
|
| | | foreach (int sceneId in HdlRoomLogic.Current.NowMainPageRoom.ListSceneId)
|
| | | {
|
| | | var sceneUi = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId);
|
| | | if (sceneUi == null)
|
| | |
| | |
|
| | | if (listScene.Count == 0)
|
| | | {
|
| | | //显示没场景
|
| | | this.ShowNoSceneTip();
|
| | | //还没有场景哦
|
| | | this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.NoScene_Tip));
|
| | | return;
|
| | | }
|
| | | //列表控件
|
| | |
| | | System.Threading.Thread.Sleep(50);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 显示没场景
|
| | | /// </summary>
|
| | | private void ShowNoSceneTip()
|
| | | {
|
| | | var picNoFunc = new PicViewControl(683, 392);
|
| | | picNoFunc.Y = Application.GetRealHeight(69);
|
| | | picNoFunc.Gravity = Gravity.CenterHorizontal;
|
| | | picNoFunc.UnSelectedImagePath = "Item/NoFunction.png";
|
| | | bodyFrameLayout.AddChidren(picNoFunc);
|
| | |
|
| | | var btnTip = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(200), false);
|
| | | btnTip.Y = picNoFunc.Bottom;
|
| | | btnTip.Text = Language.StringByID(R.MyInternationalizationString.NoScene_Tip).Replace("{\\r\\n}", "\r\n");
|
| | | btnTip.TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
|
| | | btnTip.TextAlignment = TextAlignment.Center;
|
| | | btnTip.IsMoreLines = true;
|
| | | bodyFrameLayout.AddChidren(btnTip);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | new System.Threading.Thread(async () =>
|
| | | {
|
| | | Config.Instance.HomeId = home.Id;
|
| | | Config.Instance.Home = House.GetHouseByFilePath(home.FileName);
|
| | | Config.Instance.Home = HdlResidenceLogic.Current.GetHouseByHouseId(home.Id);
|
| | | Global.CreateHomeDirectory(home.Id);
|
| | | Config.Instance.Save();
|
| | | //刷新个人中心的内存及线程
|
| | |
| | |
|
| | | Application.RunOnMainThread(() =>
|
| | | {
|
| | | ShowForm();
|
| | | //刷新界面
|
| | | this.ShowForm();
|
| | |
|
| | | CommonPage.Loading.Hide();
|
| | | });
|
| | | })
|
| | |
| | | {
|
| | | //刷新卡片信息
|
| | | var locadevice = LocalDevice.Current.GetDevice(mainKeys);
|
| | | if (report.DeviceStatusReport.CluterID == 513 && report.DeviceStatusReport.AttriBute[0].AttributeId == 28)
|
| | | {
|
| | | //空调是特殊的,它的开关是属性上报来着.已经接收到网关的反馈
|
| | | this.dicDeviceCardControl[mainKeys].SetHadGetResponeResultStatu();
|
| | | }
|
| | | //已经接收到网关的反馈 2020.05.09:删除Ack主题
|
| | | this.dicDeviceCardControl[mainKeys].SetHadGetResponeResultStatu();
|
| | | //刷新控件
|
| | | this.dicDeviceCardControl[mainKeys].RefreshControlInfo(locadevice);
|
| | | }
|
| | | }, ShowErrorMode.NO);
|
| | |
| | | if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
|
| | | {
|
| | | //刷新卡片状态
|
| | | this.dicDeviceCardControl[mainKeys].SetCardOnlineStatu(report.IsOnline == 1);
|
| | | bool bolOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(report);
|
| | | this.dicDeviceCardControl[mainKeys].SetCardOnlineStatu(bolOnline);
|
| | | return;
|
| | | }
|
| | |
|
| | | }, ShowErrorMode.NO);
|
| | | });
|
| | |
|
| | | //设备控制反馈上报
|
| | | HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceRespone", ReceiveComandDiv.A节点控制反馈, (report) =>
|
| | | {
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
|
| | | if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
|
| | | {
|
| | | //设备卡片
|
| | | var deviceCardContr = this.dicDeviceCardControl[mainKeys];
|
| | | //已经接收到网关的反馈
|
| | | deviceCardContr.SetHadGetResponeResultStatu();
|
| | | }
|
| | |
|
| | | }, ShowErrorMode.NO);
|
| | |
| | | floorFL.changeFloor = true;
|
| | | floorFL.FloorAction = (floorId) =>
|
| | | {
|
| | | btnFloor.Text = Config.Instance.Home.GetFloorNameById(floorId);
|
| | | HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom();
|
| | | btnFloor.Text = HdlResidenceLogic.Current.GetFloorNameById(floorId);
|
| | | HdlRoomLogic.Current.NowMainPageRoom = HdlRoomLogic.Current.GetLoveRoom();
|
| | | this.ShowForm();
|
| | | };
|
| | | }
|
| | |
| | | /// </summary>
|
| | | public override void CloseFormBefore()
|
| | | {
|
| | | //把静态变量的这个东西置空
|
| | | Instance = null;
|
| | |
|
| | | HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewDeviceOnline");
|
| | | HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewDeviceRespone");
|
| | | HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewDeviceStatus");
|
| | | HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewSensor");
|
| | |
|