黄学彪
2020-05-09 21736b2944d5e88cd705a39ff87fd73d5a16e609
ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
@@ -161,7 +161,7 @@
                }
                else
                {
                    var selectHouse = new Device.Category.SelectHouse();
                    var selectHouse = new Category.SelectHouseForm();
                    selectHouse.Init();
                    selectHouse.HouseAction = (houseId) =>
                    {
@@ -187,7 +187,7 @@
            }
            //检测是否绑定有网关
            if (this.CheckHadBindGateway() == false)
            if (Common.Config.Instance.Home.IsVirtually == false && this.CheckHadBindGateway() == false)
            {
                //显示没有绑定过网关的界面
                this.ShowNoGatewayTip();
@@ -250,13 +250,10 @@
            }
            //功能和场景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);
            //选择功能分栏
@@ -312,7 +309,7 @@
            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;
@@ -549,7 +546,8 @@
            //当前房间的设备数
            if (listDevice.Count == 0)
            {
                ShowNoFunctionTip();
                //还没有功能哦
                this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.NoFunction_Tip));
                return;
            }
            //设备列表容器控件
@@ -573,7 +571,7 @@
            //设备计数
            int contrCount = 0;
            //X轴坐标(图片左边有余白)
            int XX = Application.GetMinRealAverage(44);
            int XX = this.GetPictrueRealSize(44);
            //Y轴坐标
            int YY = 0;
            var listContr = new List<Controls.DeviceCardCommon>();
@@ -606,6 +604,11 @@
                    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)
@@ -647,11 +650,11 @@
                    //设备计数
                    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;
@@ -691,33 +694,6 @@
            }
        }
        /// <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
        #region ■ 重置设备卡片控件坐标_______________
@@ -755,12 +731,12 @@
                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轴递增
@@ -769,7 +745,7 @@
                    //求商
                    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)
                {
@@ -824,8 +800,8 @@
            if (listScene.Count == 0)
            {
                //显示没场景
                this.ShowNoSceneTip();
                //还没有场景哦
                this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.NoScene_Tip));
                return;
            }
            //列表控件
@@ -910,26 +886,6 @@
        }
        /// <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>
        /// 设置场景的延迟状态
        /// </summary>
        /// <param name="listSceneBackContr"></param>
@@ -1009,12 +965,12 @@
                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轴递增
@@ -1023,7 +979,7 @@
                    //求商
                    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)
                {
@@ -1095,8 +1051,6 @@
                    Config.Instance.Save();
                    //刷新个人中心的内存及线程
                    await UserCenterLogic.InitUserCenterMenmoryAndThread();
                    //初始化全部房间
                    HdlRoomLogic.Current.InitAllRoom();
                    Application.RunOnMainThread(() =>
                    {
@@ -1141,6 +1095,11 @@
                            //空调是特殊的,它的开关是属性上报来着.已经接收到网关的反馈
                            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);
@@ -1155,7 +1114,8 @@
                    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;
                    }
@@ -1217,7 +1177,7 @@
        /// </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;