HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2020-06-10 dce6c3481a37216292724013ff9d2b75ceb82f86
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs
@@ -49,17 +49,9 @@
        /// </summary>
        private ZbGateway realGateway = null;
        /// <summary>
        /// 进度条
        /// 进度条控件
        /// </summary>
        private FrameLayout btnProgressBar = null;
        /// <summary>
        /// 进度值显示文本的整体
        /// </summary>
        private FrameLayout frameProgress = null;
        /// <summary>
        /// 进度值的显示文本
        /// </summary>
        private NormalViewControl btnProgressView = null;
        private ProgressRowBar btnProgressBar = null;
        /// <summary>
        /// 网关是否允许入网的标识
        /// </summary>
@@ -113,36 +105,11 @@
            bodyFrameLayout.AddChidren(btnSearch);
            //进度条
            var btnProRow = new FrameLayout();
            btnProRow.Gravity = Gravity.CenterHorizontal;
            btnProRow.Y = Application.GetRealHeight(861);
            btnProRow.Width = Application.GetRealWidth(559);
            btnProRow.Height = Application.GetRealHeight(29);
            btnProRow.BackgroundColor = 0xffe6e6e6;
            btnProRow.Radius = (uint)Application.GetRealHeight(29) / 2;
            bodyFrameLayout.AddChidren(btnProRow);
            this.btnProgressBar = new FrameLayout();
            btnProgressBar.Width = 0;
            btnProgressBar.Height = btnProRow.Height;
            btnProgressBar.BackgroundColor = 0xfffb744a;
            btnProgressBar.Radius = (uint)Application.GetRealHeight(29) / 2;
            btnProRow.AddChidren(btnProgressBar);
            //进度值文本
            this.frameProgress = new FrameLayout();
            frameProgress.Width = Application.GetRealWidth(84);
            frameProgress.Height = Application.GetRealHeight(60);
            frameProgress.Y = Application.GetRealHeight(772);
            bodyFrameLayout.AddChidren(frameProgress);
            frameProgress.X = btnProRow.X + btnProgressBar.Right - frameProgress.Width / 2;
            var btnProgressPic = new PicViewControl(84, 60);
            btnProgressPic.UnSelectedImagePath = "Item/ProgressMsg.png";
            frameProgress.AddChidren(btnProgressPic);
            this.btnProgressView = new NormalViewControl(84, 32, true);
            btnProgressView.TextSize = 10;
            btnProgressView.TextAlignment = TextAlignment.Center;
            btnProgressView.Text = "0%";
            frameProgress.AddChidren(btnProgressView);
            this.btnProgressBar = new ProgressRowBar(559, 29);
            btnProgressBar.Gravity = Gravity.CenterHorizontal;
            btnProgressBar.Y = Application.GetRealHeight(861);
            bodyFrameLayout.AddChidren(btnProgressBar);
            btnProgressBar.StartMode1(true);
            if (this.realGateway != null)
            {
@@ -206,7 +173,7 @@
                //给新设备设置主键属性
                Common.LocalDevice.Current.SetNewDeviceMainKeys(device, jobject);
                device.CurrentGateWayId = HdlGatewayLogic.Current.GetGatewayId(this.realGateway);
                device.CurrentGateWayId = this.realGateway.GwId;
                //将DeviceInfo的属性设置到主属性中
                Common.LocalDevice.Current.SetDeviceInfoToMain(device, device);
@@ -402,7 +369,7 @@
                    return 0;
                }
                //网关告知客户端有设备声明
                this.SetDeviceProgressValue(1);
                this.btnProgressBar.SetValue(1, 6);
                return 2;
            }
            else if (topic == gatewayId + "/Device/DeviceGetActiveEP_Respon")
@@ -419,7 +386,7 @@
                    return 2;
                }
                //设置进度值
                this.SetDeviceProgressValue(2);
                this.btnProgressBar.SetValue(2, 6);
                return 2;
            }
            else if (topic == gatewayId + "/Device/DeviceGetActiveEPSimpleDesc_Respon")
@@ -436,7 +403,7 @@
                    return 2;
                }
                //设置进度值
                this.SetDeviceProgressValue(3);
                this.btnProgressBar.SetValue(3, 6);
                return 2;
            }
            else if (topic == gatewayId + "/Device/DeviceGetDefaultBind_Respon")
@@ -453,7 +420,7 @@
                    return 2;
                }
                //设置进度值
                this.SetDeviceProgressValue(4);
                this.btnProgressBar.SetValue(4, 6);
                return 2;
            }
            else if (topic == gatewayId + "/Device/DeviceAutoBindZBCoord_Respon")
@@ -470,42 +437,17 @@
                    return 2;
                }
                //设置进度值
                this.SetDeviceProgressValue(5);
                this.btnProgressBar.SetValue(5, 6);
                return 2;
            }
            else if (topic == gatewayId + "/DeviceInComingRespon")
            {
                this.topTimeOut = topMaxTime;
                //网关最终上报节点设备信息
                this.SetDeviceProgressValue(6);
                this.btnProgressBar.SetValue(6, 6);
                return 1;
            }
            return 0;
        }
        /// <summary>
        /// 设置设备的进度值
        /// </summary>
        /// <param name="value"></param>
        private void SetDeviceProgressValue(decimal value)
        {
            Application.RunOnMainThread(() =>
            {
                //进度条
                decimal result = value / 6;
                int width = (int)(result * Application.GetRealWidth(559));
                if (btnProgressBar.Width >= width)
                {
                    //有些设备会上报两次,这里不能让它的进度条往回走
                    return;
                }
                btnProgressBar.Width = width;
                //文本显示
                btnProgressView.Text = ((int)(result * 100)) + "%";
                //文本显示的那个图片框移动
                frameProgress.X = Application.GetRealWidth(262) + btnProgressBar.Right - frameProgress.Width / 2;
            });
        }
        /// <summary>