From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期五, 28 二月 2020 15:25:13 +0800 Subject: [PATCH] 2020.2.28 --- ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs | 149 +++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 136 insertions(+), 13 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs b/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs index 594075f..fbeff98 100644 --- a/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs +++ b/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 -- Gitblit v1.8.0