| | |
| | | }
|
| | | else
|
| | | {
|
| | | var selectHouse = new Device.Category.SelectHouse();
|
| | | var selectHouse = new Category.SelectHouseForm();
|
| | | selectHouse.Init();
|
| | | selectHouse.HouseAction = (houseId) =>
|
| | | {
|
| | |
| | | }
|
| | |
|
| | | //检测是否绑定有网关
|
| | | if (this.CheckHadBindGateway() == false)
|
| | | if (Common.Config.Instance.Home.IsVirtually == false && this.CheckHadBindGateway() == false)
|
| | | {
|
| | | //显示没有绑定过网关的界面
|
| | | this.ShowNoGatewayTip();
|
| | |
| | | }
|
| | |
|
| | | //功能和场景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);
|
| | |
|
| | | //选择功能分栏
|
| | |
| | | bg.UnSelectedImagePath = "Item/NoBindGW.png";
|
| | | this.listBodyContr.frameTable.AddChidren(bg);
|
| | |
|
| | | var tip = new NormalViewControl(Application.GetMinRealAverage(717), Application.GetMinRealAverage(58), false);
|
| | | var tip = new NormalViewControl(this.GetPictrueRealSize(717), this.GetPictrueRealSize(58), false);
|
| | | tip.Y = Application.GetRealHeight(815);
|
| | | tip.Gravity = Gravity.CenterHorizontal;
|
| | | tip.TextID = R.MyInternationalizationString.NewAccountNeedBingGW;
|
| | |
| | |
|
| | | //房间滑动控件左边的虚拟图片
|
| | | var mLeftImageView = new ImageView();
|
| | | mLeftImageView.ImagePath = "RoomIcon/1.jpg";
|
| | | mLeftImageView.ImagePath = "RoomIcon/19.jpg";
|
| | | mLeftImageView.Radius = (uint)Application.GetRealHeight(17);
|
| | | mLeftImageView.Width = Application.GetRealWidth(717);
|
| | | mLeftImageView.Height = Application.GetRealHeight(478);
|
| | | //房间滑动控件右边的虚拟图片
|
| | | var mRightImageView = new ImageView();
|
| | | mRightImageView.ImagePath = "RoomIcon/2.jpg";
|
| | | mRightImageView.ImagePath = "RoomIcon/19.jpg";
|
| | | mRightImageView.Radius = (uint)Application.GetRealHeight(17);
|
| | | mRightImageView.Width = mLeftImageView.Width;
|
| | | mRightImageView.Height = mLeftImageView.Height;
|
| | |
| | | btnRoomLeftShadow.Gravity = Gravity.CenterVertical;
|
| | | btnRoomLeftShadow.BackgroundColor = 0x1c000000;
|
| | | btnRoomLeftShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight);
|
| | | frameBack.AddChidren(btnRoomLeftShadow);
|
| | | //frameBack.AddChidren(btnRoomLeftShadow);//暂时不加遮罩
|
| | |
|
| | | //在房间卡片右边添加遮罩
|
| | | var btnRoomRightShadow = new FrameLayout();
|
| | |
| | | btnRoomRightShadow.Gravity = Gravity.CenterVertical;
|
| | | btnRoomRightShadow.BackgroundColor = btnRoomLeftShadow.BackgroundColor;
|
| | | btnRoomRightShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerBottomLeft);
|
| | | frameBack.AddChidren(btnRoomRightShadow);
|
| | | //frameBack.AddChidren(btnRoomRightShadow);//暂时不加遮罩
|
| | |
|
| | | //控件开始滑动的事件
|
| | | roomPageView.StartScrollAction += () =>
|
| | |
| | | };
|
| | | //设置房间的初始选择
|
| | | roomPageView.PageIndex = curIndex;
|
| | | #if iOS
|
| | | //Ios如果索引是第一个时,它触发不了事件,需要手动触发
|
| | | //如果索引是第一个时,它触发不了事件,需要手动触发
|
| | | if (curIndex == 0)
|
| | | {
|
| | | roomPageView.EndScrollAction();
|
| | | }
|
| | | #endif
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | //当前房间的设备数
|
| | | if (listDevice.Count == 0)
|
| | | {
|
| | | ShowNoFunctionTip();
|
| | | //还没有功能哦
|
| | | this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.NoFunction_Tip));
|
| | | return;
|
| | | }
|
| | | //设备列表容器控件
|
| | |
| | | //设备计数
|
| | | int contrCount = 0;
|
| | | //X轴坐标(图片左边有余白)
|
| | | int XX = Application.GetMinRealAverage(44);
|
| | | int XX = this.GetPictrueRealSize(44);
|
| | | //Y轴坐标
|
| | | int YY = 0;
|
| | | var listContr = new List<Controls.DeviceCardCommon>();
|
| | |
| | | else if (device.Type == DeviceType.Thermostat)
|
| | | {
|
| | | cardContr = new Controls.DeviceAcCardControl();
|
| | | }
|
| | | //新风
|
| | | else if (device.Type == DeviceType.FreshAir)
|
| | | {
|
| | | cardContr = new Controls.DeviceFreshAirCardControl();
|
| | | }
|
| | | //彩灯(调光器)
|
| | | else if (device.Type == DeviceType.DimmableLight)
|
| | |
| | | //设备计数
|
| | | contrCount++;
|
| | | //卡片左右两边有14的余白,每两个后,X轴重置
|
| | | XX = contrCount % 2 == 0 ? Application.GetMinRealAverage(44) : cardContr.Right + Application.GetMinRealAverage(20);
|
| | | XX = contrCount % 2 == 0 ? this.GetPictrueRealSize(44) : cardContr.Right + this.GetPictrueRealSize(20);
|
| | | if (contrCount % 2 == 0)
|
| | | {
|
| | | //没两个之后,Y轴递增
|
| | | YY = cardContr.Bottom + Application.GetMinRealAverage(15);
|
| | | YY = cardContr.Bottom + this.GetPictrueRealSize(15);
|
| | | }
|
| | | //控件记录到缓存中
|
| | | this.dicDeviceCardControl[LocalDevice.Current.GetDeviceMainKeys(device)] = cardContr;
|
| | |
| | | }, ShowErrorMode.NO);
|
| | | }
|
| | | });
|
| | |
|
| | | System.Threading.Thread.Sleep(50);
|
| | | if (contrCount > 6)
|
| | | {
|
| | | //让它呈现一种直接一次性刷出来的效果
|
| | | System.Threading.Thread.Sleep(50);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 显示没有功能
|
| | | /// </summary>
|
| | | private void ShowNoFunctionTip()
|
| | | {
|
| | | var noFunction = new Button
|
| | | {
|
| | | Y = Application.GetRealHeight(69),
|
| | | Width = Application.GetMinRealAverage(683),
|
| | | Height = Application.GetMinRealAverage(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
|
| | |
| | | if (contrCount % 2 == 1)
|
| | | {
|
| | | //第一个固定44
|
| | | XX = Application.GetMinRealAverage(44);
|
| | | XX = this.GetPictrueRealSize(44);
|
| | | }
|
| | | else
|
| | | {
|
| | | //第二个是44+控件宽度+20余白
|
| | | XX = Application.GetMinRealAverage(44) + this.dicDeviceCardControl[mainkey].Width + Application.GetMinRealAverage(20);
|
| | | XX = this.GetPictrueRealSize(44) + this.dicDeviceCardControl[mainkey].Width + this.GetPictrueRealSize(20);
|
| | | }
|
| | |
|
| | | //每两个之后,并且是第一个的时候,Y轴递增
|
| | |
| | | //求商
|
| | | int value = contrCount / 2;
|
| | | //控件的底部有15的间隔
|
| | | YY = value * (this.dicDeviceCardControl[mainkey].Height + Application.GetMinRealAverage(15));
|
| | | YY = value * (this.dicDeviceCardControl[mainkey].Height + this.GetPictrueRealSize(15));
|
| | | }
|
| | | if (canMove == true)
|
| | | {
|
| | |
| | |
|
| | | if (listScene.Count == 0)
|
| | | {
|
| | | //显示没场景
|
| | | this.ShowNoSceneTip();
|
| | | //还没有场景哦
|
| | | this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.NoScene_Tip));
|
| | | return;
|
| | | }
|
| | | //列表控件
|
| | |
| | |
|
| | | HdlThreadLogic.Current.RunThread(() =>
|
| | | {
|
| | | //初始化设备卡片列表控件
|
| | | //初始化场景卡片列表控件
|
| | | this.InitSceneListCardControl(listSceneBackContr, listScene);
|
| | | });
|
| | | }
|
| | |
| | | //场景计数
|
| | | int contrCount = 0;
|
| | | //X轴坐标(图片左边有余白)
|
| | | int XX = Application.GetMinRealAverage(44);
|
| | | int XX = this.GetPictrueRealSize(44);
|
| | | //Y轴坐标
|
| | | int YY = 0;
|
| | | foreach (var sceneUi in listScene)
|
| | |
| | | //设备计数
|
| | | contrCount++;
|
| | | //每两个后,X轴重置
|
| | | XX = contrCount % 2 == 0 ? Application.GetMinRealAverage(44) : cardContr.Right + Application.GetMinRealAverage(20);
|
| | | XX = contrCount % 2 == 0 ? this.GetPictrueRealSize(44) : cardContr.Right + this.GetPictrueRealSize(20);
|
| | | if (contrCount % 2 == 0)
|
| | | {
|
| | | //没两个之后,Y轴递增
|
| | | YY = cardContr.Bottom + Application.GetMinRealAverage(15);
|
| | | YY = cardContr.Bottom + this.GetPictrueRealSize(15);
|
| | | }
|
| | | //控件记录到缓存中
|
| | | this.dicSceneCardControl[sceneUi.Id] = cardContr;
|
| | |
| | | });
|
| | | }
|
| | | });
|
| | | System.Threading.Thread.Sleep(50);
|
| | | if (contrCount > 6)
|
| | | {
|
| | | //让它呈现一种一次性显示出来的效果
|
| | | System.Threading.Thread.Sleep(50);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 显示没场景
|
| | | /// </summary>
|
| | | private void ShowNoSceneTip()
|
| | | {
|
| | | var noScene = new Button
|
| | | {
|
| | | Y = Application.GetRealHeight(69),
|
| | | Width = Application.GetMinRealAverage(683),
|
| | | Height = Application.GetMinRealAverage(392),
|
| | | Gravity = Gravity.CenterHorizontal,
|
| | | UnSelectedImagePath = "Item/NoFunction.png"
|
| | | };
|
| | | bodyFrameLayout.AddChidren(noScene);
|
| | | var noScenceTip = new Button()
|
| | | {
|
| | | Y = noScene.Bottom,
|
| | | Height = Application.GetRealHeight(200),
|
| | | Text = Language.StringByID(R.MyInternationalizationString.NoScene_Tip).Replace("{\\r\\n}", "\r\n"),
|
| | | TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
|
| | | TextAlignment = TextAlignment.Center,
|
| | | IsMoreLines = true
|
| | | };
|
| | | bodyFrameLayout.AddChidren(noScenceTip);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | if (contrCount % 2 == 1)
|
| | | {
|
| | | //第一个固定44
|
| | | XX = Application.GetMinRealAverage(44);
|
| | | XX = this.GetPictrueRealSize(44);
|
| | | }
|
| | | else
|
| | | {
|
| | | //第二个是44+控件宽度+20余白
|
| | | XX = Application.GetMinRealAverage(44) + this.dicSceneCardControl[sceneId].Width + Application.GetMinRealAverage(20);
|
| | | XX = this.GetPictrueRealSize(44) + this.dicSceneCardControl[sceneId].Width + this.GetPictrueRealSize(20);
|
| | | }
|
| | |
|
| | | //每两个之后,并且是第一个时,Y轴递增
|
| | |
| | | //求商
|
| | | int value = contrCount / 2;
|
| | | //控件的底部有15的间隔
|
| | | YY = value * (this.dicSceneCardControl[sceneId].Height + Application.GetMinRealAverage(15));
|
| | | YY = value * (this.dicSceneCardControl[sceneId].Height + this.GetPictrueRealSize(15));
|
| | | }
|
| | | if (canMove == true)
|
| | | {
|
| | |
| | | Config.Instance.Save();
|
| | | //刷新个人中心的内存及线程
|
| | | await UserCenterLogic.InitUserCenterMenmoryAndThread();
|
| | | //初始化全部房间
|
| | | HdlRoomLogic.Current.InitAllRoom();
|
| | |
|
| | | Application.RunOnMainThread(() =>
|
| | | {
|
| | |
| | | //空调是特殊的,它的开关是属性上报来着.已经接收到网关的反馈
|
| | | this.dicDeviceCardControl[mainKeys].SetHadGetResponeResultStatu();
|
| | | }
|
| | | if (report.DeviceStatusReport.CluterID == 514 && report.DeviceStatusReport.AttriBute[0].AttributeId == 0)
|
| | | {
|
| | | //新风是特殊的,它的开关是属性上报来着.已经接收到网关的反馈
|
| | | 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;
|
| | | }
|
| | |
|
| | |
| | | /// </summary>
|
| | | private void ShowSelectFloorForm(NormalViewControl btnFloor)
|
| | | {
|
| | | var floorFL = new Device.Category.SelectFloor();
|
| | | var floorFL = new Category.SelectFloorForm();
|
| | | this.AddChidren(floorFL);
|
| | | floorFL.Init(35, 153);
|
| | | floorFL.changeFloor = true;
|