gxc
2020-02-28 66a9965c44ecc32a6696abca876ab9d1cd091584
ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs
@@ -13,7 +13,7 @@
        /// <summary>
        /// The action.
        /// </summary>
        public Action action;
        public Action<DeviceUI,Common.Room> action;
        /// <summary>
        /// 收藏按钮
@@ -79,6 +79,19 @@
        /// IsDrawerLockMode
        /// </summary>
        public bool IsDrawerLockMode;
        /// <summary>
        /// ProgressBtn
        /// </summary>
        Button ProgressBtn;
        /// <summary>
        /// ProgressBtnY
        /// </summary>
        int ProgressBtnY;
        /// <summary>
        /// ProgressBtnX
        /// </summary>
        int ProgressBtnX;
        #endregion
@@ -233,8 +246,8 @@
        {
            UserView.HomePage.Instance.ScrollEnabled = true;
            ZigBee.Device.ZbGateway.StatusList.Remove(this);
            //action();
            //action = null;
            action(device,room);
            action = null;
            RemoveUpdateControlDeviceStatuAction();
            if (IsDrawerLockMode)
            {
@@ -285,8 +298,7 @@
                }
            }
            var de = Shared.Common.Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
            if (de == null)
            if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false)
            {
                collectionBtn.IsSelected = false;
            }
@@ -372,9 +384,10 @@
                Width = Application.GetRealWidth(500),
                Height = Application.GetRealHeight(60),
                Gravity = Gravity.CenterHorizontal,
                Text = device.CommonDevice.DeviceEpointName,
                Text = Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice),
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextSize = 15
                TextSize = 15,
                IsBold=true
            };
            itemView.AddChidren(deviceNameBtn);
@@ -385,7 +398,8 @@
                Height = Application.GetRealHeight(60),
                Gravity = Gravity.CenterHorizontal,
                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
                Text = $"{Language.StringByID(R.MyInternationalizationString.Current)} {device.GetDeviceStatu()}"
                Text = $"{Language.StringByID(R.MyInternationalizationString.Current)} {device.GetDeviceStatu()}",
                TextSize = 10
            };
            itemView.AddChidren(StatuBtn);
@@ -449,7 +463,7 @@
            }
            SetCurtainType(itemView, (device.CommonDevice as Rollershade).WcdType);
            var roomBG = new Button
            {
                Y = Application.GetRealHeight(1178 - 50),
@@ -485,7 +499,8 @@
                Height = Application.GetRealHeight(50),
                Text = room.Name,
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = ZigbeeColor.Current.GXCTextWhiteColor
                TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
                TextSize = 12
            };
            itemView.AddChidren(roomName);
        }
@@ -638,9 +653,9 @@
            UserView.HomePage.Instance.AddChidren(detailInfo);
            UserView.HomePage.Instance.PageIndex += 1;
            detailInfo.Show(device, room);
            detailInfo.action = () =>
            detailInfo.EditAction += (curDev,curRoom) =>
            {
                Show(device, room);
                Show(curDev, curRoom);
            };
        }
@@ -695,11 +710,36 @@
                curtainRollSeekBar.Gravity = Gravity.CenterHorizontal;
                curtainRollSeekBar.Progress = (device.CommonDevice as Rollershade).WcdCurrentPositionLiftPercentage;
                layout.AddChidren(curtainRollSeekBar);
                curtainRollSeekBar.IsProgressTextShow = false;
                curtainRollSeekBar.CurtainPaddingTop = Application.GetRealHeight(110);
                curtainRollSeekBar.OnStopTrackingTouchEvent += (sender, e) =>
                {
                    (device.CommonDevice as Rollershade).WcdGoToTiltValue(curtainRollSeekBar.Progress);
                };
                curtainRollSeekBar.OnStartTrackingTouchEvent += (sender, e) =>
                {
                    OnProgressButtonMove(curtainRollSeekBar.Progress);
                    ProgressBtn.Visible = true;
                };
                curtainRollSeekBar.OnStopTrackingTouchEvent += (sender, e) =>
                {
                    ProgressBtn.Visible = false;
                };
                curtainRollSeekBar.OnProgressChangedEvent += (send2, e2) =>
                {
                    OnProgressButtonMove(e2);
                    //判断是否300ms屏蔽
                    //if (curtainRollSeekBar.IsProgressChangeDelay()) return;
                    //(device.CommonDevice as Rollershade).WcdGoToTiltValue(curtainRollSeekBar.Progress);
                };
                InitProgressBtn(layout);
            }
            else
            {
@@ -707,6 +747,7 @@
                curtainSeekBar.Width = Application.GetRealWidth(570);
                curtainSeekBar.Height = Application.GetRealHeight(513);
                curtainSeekBar.Gravity = Gravity.CenterHorizontal;
                curtainSeekBar.IsProgressTextShow = false;
                curtainSeekBar.Progress = (device.CommonDevice as Rollershade).WcdCurrentPositionLiftPercentage;
                layout.AddChidren(curtainSeekBar);
@@ -714,10 +755,92 @@
                {
                    (device.CommonDevice as Rollershade).WcdGoToTiltValue(curtainSeekBar.Progress);
                };
                curtainSeekBar.OnStartTrackingTouchEvent += (sender, e) =>
                {
                    OnProgressButtonMoveForCurtain(curtainSeekBar.Progress);
                    ProgressBtn.Visible = true;
                };
                curtainSeekBar.OnStopTrackingTouchEvent += (sender, e) =>
                {
                    ProgressBtn.Visible = false;
                };
                curtainSeekBar.OnProgressChangedEvent += (send2, e2) =>
                {
                    OnProgressButtonMoveForCurtain(e2);
                    //判断是否300ms屏蔽
                    //if (curtainRollSeekBar.IsProgressChangeDelay()) return;
                    //(device.CommonDevice as Rollershade).WcdGoToTiltValue(curtainRollSeekBar.Progress);
                };
                InitProgressBtnForCurtain(layout);
            }
        }
        /// <summary>
        /// 添加进度按钮
        /// </summary>
        private void InitProgressBtn(FrameLayout layout)
        {
            ProgressBtnY = curtainRollSeekBar.Y - Application.GetMinReal(204);
            ProgressBtn = new Button()
            {
                Y = ProgressBtnY,
                Width = Application.GetMinReal(135),
                Height = Application.GetMinReal(104),
                UnSelectedImagePath = "Item/ProgressBubbles.png",
                Visible = false,
                Gravity = Gravity.CenterHorizontal,
                TextSize=14,
                IsBold=true,
                TextColor=ZigbeeColor.Current.GXCTextWhiteColor
            };
            layout.AddChidren(ProgressBtn);
        }
        /// <summary>
        /// OnProgressButtonMove
        /// </summary>
        private void OnProgressButtonMove(int mProgress)
        {
            ProgressBtn.Y = ProgressBtnY + curtainRollSeekBar.NowProgressY;
            ProgressBtn.Text = mProgress + "%";
        }
        /// <summary>
        /// 添加进度按钮
        /// </summary>
        private void InitProgressBtnForCurtain(FrameLayout layout)
        {
            ProgressBtnX = curtainSeekBar.X - Application.GetMinReal(20);
            ProgressBtn = new Button()
            {
                X = ProgressBtnX,
                Y = curtainSeekBar.Y + curtainSeekBar.Height / 2 - Application.GetMinReal(180),
                Width = Application.GetMinReal(135),
                Height = Application.GetMinReal(104),
                UnSelectedImagePath = "Item/ProgressBubbles.png",
                Visible = false,
                TextSize = 14,
                IsBold = true,
                TextColor = ZigbeeColor.Current.GXCTextWhiteColor
            };
            layout.AddChidren(ProgressBtn);
        }
        /// <summary>
        /// OnProgressButtonMove
        /// </summary>
        private void OnProgressButtonMoveForCurtain(int mProgress)
        {
            ProgressBtn.X = ProgressBtnX + curtainSeekBar.NowProgressX- Application.GetMinReal(5);
            ProgressBtn.Text = mProgress + "%";
        }
        #endregion