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 | 784 ++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 508 insertions(+), 276 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs b/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs index 7474656..fbeff98 100644 --- a/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs +++ b/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs @@ -1,5 +1,7 @@ 锘縰sing System; using Shared.Common; +using Shared.Phone.Device.CommonForm; +using Shared.Phone.Device.DeviceLogic; using Shared.Phone.UserView; using ZigBee.Device; @@ -9,41 +11,14 @@ { #region 鈼� 鍙橀噺__________________________ /// <summary> - /// 璁惧鏄惁鍦ㄧ嚎鏍囪瘑--Online + /// The action. /// </summary> - private readonly string DeviceStatus_Online = "Online"; - public HorizontalSeekBar SeekBar; - public Button seekBarTitle; - public Action action; - public Button rollerShadeIMG; + public Action<DeviceUI,Common.Room> action; + /// <summary> /// 鏀惰棌鎸夐挳 /// </summary> - public Button collectionBtn; - /// <summary> - /// 鏇村璁剧疆 - /// </summary> - private Button moreBtn; - /// <summary> - /// 涓嬨�佸叧 - /// </summary> - private Button downBtn; - /// <summary> - /// 鍋� - /// </summary> - private Button stopBtn; - /// <summary> - /// 涓娿�佸紑 - /// </summary> - private Button upBtn; - /// <summary> - /// 鎴块棿 - /// </summary> - private Button roomBtn; - /// <summary> - /// 鎴块棿鍚� - /// </summary> - private Button roomName; + private Button collectionBtn; /// <summary> /// 浼犺繃鏉ョ殑璁惧 /// </summary> @@ -52,6 +27,15 @@ /// 浼犺繃鏉ョ殑鎴块棿 /// </summary> private Shared.Common.Room room; + + /// <summary> + /// 鎴块棿 + /// </summary> + private Button roomBtn; + /// <summary> + /// 鎴块棿鍚� + /// </summary> + private Button roomName; /// <summary> /// 缃戝叧 /// </summary> @@ -62,9 +46,52 @@ private bool sendedControlCommand = false; /// <summary> - ///寤舵椂 300姣 + /// bodyFrameLayout /// </summary> - private int sleepSpan = 300; + private FrameLayout bodyFrameLayout; + /// <summary> + /// StatuBtn + /// </summary> + private Button StatuBtn; + + /// <summary> + /// OpenOrUpBtn + /// </summary> + public Button OpenOrUpBtn; + /// <summary> + /// OpenOrUpBtn + /// </summary> + public Button CloseOrDownBtn; + /// <summary> + /// StopBtn + /// </summary> + public Button StopBtn; + /// <summary> + /// 寮�鍚堝笜 + /// </summary> + private CurtainSeekBar curtainSeekBar = new CurtainSeekBar { }; + /// <summary> + /// 鍗峰笜 + /// </summary> + private CurtainRollSeekBar curtainRollSeekBar = new CurtainRollSeekBar { }; + + /// <summary> + /// IsDrawerLockMode + /// </summary> + public bool IsDrawerLockMode; + + /// <summary> + /// ProgressBtn + /// </summary> + Button ProgressBtn; + /// <summary> + /// ProgressBtnY + /// </summary> + int ProgressBtnY; + /// <summary> + /// ProgressBtnX + /// </summary> + int ProgressBtnX; #endregion @@ -96,7 +123,7 @@ { try { - var deviceUI = SeekBar.Tag as DeviceUI; + var deviceUI = this.device; //璁惧涓虹┖ if (deviceUI.CommonDevice == null) { @@ -107,26 +134,41 @@ { return; } - if ((common as Rollershade).DeviceStatusReport.CluterID == 258) + if (common.DeviceStatusReport.CluterID == 258) { - if ((common as Rollershade).DeviceStatusReport.AttriBute[0].AttributeId == 8) + if (common.DeviceStatusReport.AttriBute[0].AttributeId == 8) { //绐楀笜鐧惧垎姣� var rollerShade = deviceUI.CommonDevice as Rollershade; - rollerShade.DeviceStatusReport = (common as Rollershade).DeviceStatusReport; - rollerShade.WcdCurrentPositionLiftPercentage = (common as Rollershade).DeviceStatusReport.AttriBute[0].AttriButeData; - SeekBar.Progress = rollerShade.WcdCurrentPositionLiftPercentage; - seekBarTitle.Text = $"{SeekBar.Progress} %"; + rollerShade.DeviceStatusReport = common.DeviceStatusReport; + rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData; + StatuBtn.Text = $"{Language.StringByID(R.MyInternationalizationString.Current)} { deviceUI.GetDeviceStatu()}"; + if(rollerShade.WcdType==0) + { + curtainRollSeekBar.Progress = rollerShade.WcdCurrentPositionLiftPercentage; + } + else if(rollerShade.WcdType==4) + { + curtainSeekBar.Progress = rollerShade.WcdCurrentPositionLiftPercentage; + } + rollerShade.LastDateTime = DateTime.Now; + } + else if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0) + { + ////绐楀笜绫诲瀷 + var rollerShade = device.CommonDevice as Rollershade; + rollerShade.DeviceStatusReport = common.DeviceStatusReport; + rollerShade.WcdType = common.DeviceStatusReport.AttriBute[0].AttriButeData; rollerShade.LastDateTime = DateTime.Now; } } //***鏂版敼***璁惧鐘舵�佷笂鎶ヤ腑锛屽綋CluterID=3,璇佹槑璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� - else if ((common as Rollershade).DeviceStatusReport.CluterID == 3) + else if (common.DeviceStatusReport.CluterID == 3) { - var rollerShade = deviceUI.CommonDevice as Rollershade; - rollerShade.IsOnline = 1; - rollerShadeIMG.IsSelected = rollerShade.IsOnline == 1; - rollerShade.LastDateTime = DateTime.Now; + //var rollerShade = deviceUI.CommonDevice as Rollershade; + //rollerShade.IsOnline = 1; + //rollerShadeIMG.IsSelected = rollerShade.IsOnline == 1; + //rollerShade.LastDateTime = DateTime.Now; } } catch (Exception ex) @@ -141,21 +183,21 @@ { try { - var deviceUI = SeekBar.Tag as DeviceUI; - //璁惧涓虹┖ - if (deviceUI.CommonDevice == null) - { - return; - } - //鏄惁涓哄綋鍓嶈澶� - if (deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint || deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr) - { - return; - } - var rollerShade = deviceUI.CommonDevice as Rollershade; - rollerShade.IsOnline = (common as Rollershade).IsOnline; - rollerShadeIMG.IsSelected = rollerShade.IsOnline == 1; - rollerShade.LastDateTime = DateTime.Now; + //var deviceUI = SeekBar.Tag as DeviceUI; + ////璁惧涓虹┖ + //if (deviceUI.CommonDevice == null) + //{ + // return; + //} + ////鏄惁涓哄綋鍓嶈澶� + //if (deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint || deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr) + //{ + // return; + //} + //var rollerShade = deviceUI.CommonDevice as Rollershade; + //rollerShade.IsOnline = (common as Rollershade).IsOnline; + //rollerShadeIMG.IsSelected = rollerShade.IsOnline == 1; + //rollerShade.LastDateTime = DateTime.Now; } catch (Exception ex) { @@ -204,8 +246,13 @@ { UserView.HomePage.Instance.ScrollEnabled = true; ZigBee.Device.ZbGateway.StatusList.Remove(this); - action(); + action(device,room); + action = null; RemoveUpdateControlDeviceStatuAction(); + if (IsDrawerLockMode) + { + CommonPage.Instance.IsDrawerLockMode = false; + } base.RemoveFromParent(); } @@ -214,36 +261,20 @@ #region 鈼� 鏄剧ず鐣岄潰________________________ /// <summary> - /// 鏄剧ず鍗峰笜鎺у埗鐣岄潰 + /// 鏄剧ず鐣岄潰 /// </summary> - public void Show(DeviceUI device, Shared.Common.Room room) + /// <param name="dev">Device.</param> + /// <param name="room">Room.</param> + public void Show(DeviceUI dev, Shared.Common.Room room) { - #region topview - var topBGView = new FrameLayout()鈥� {鈥� Height = Application.GetRealHeight(CommonPage.Navigation_Height),鈥� BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor鈥� };鈥� AddChidren(topBGView);鈥� var topView = new FrameLayout()鈥� {鈥� Y = Application.GetRealHeight(CommonPage.NavigationTitle_Y),鈥� Height = Application.GetRealHeight(CommonPage.Navigation_Height - CommonPage.NavigationTitle_Y),鈥� BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,鈥� };鈥� AddChidren(topView); - - moreBtn = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(CommonPage.AppRealWidth - 150), - Width = Application.GetMinReal(110), - Height = Application.GetMinReal(110), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "Item/More.png", - SelectedImagePath = "Item/MoreSelected.png", - }; - topView.AddChidren(moreBtn); - - var back = new Device.CommonForm.BackButton() { };鈥� topView.AddChidren(back); - back.MouseUpEventHandler += (sender, e) => - { - this.RemoveFromParent(); - }; - if (device == null || device.CommonDevice == null || room == null) - { - return; - } - this.device = device; - this.zbGateway = this.device.CommonDevice.Gateway; + device = dev; + zbGateway = this.device.CommonDevice.Gateway; this.room = room; + + AddTop(); + + AddBodyView(device); + var rollerShade = device.CommonDevice as ZigBee.Device.Rollershade; //涓嶄笂闈炶繙绋� @@ -255,8 +286,7 @@ { UserHomeView.ReadStatus(rollerShade, () => { - rollerShade.ReadWcdCurrentPositionLiftPercentage(); - rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice); }); } else @@ -264,168 +294,11 @@ //闃叉鐭椂闂村唴澶氭璇诲彇 if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) { - rollerShade.ReadWcdCurrentPositionLiftPercentage(); - rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice); } } - #endregion - - #region midFL - var midFL = new FrameLayout() - { - Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.Navigation_Height), - Y = topView.Bottom, - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, - }; - this.AddChidren(midFL); - - var itemView = new FrameLayout() - { - Y = Application.GetRealHeight(50), - Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonPage.XLeft*2), - Height = midFL.Height - Application.GetRealHeight(100), - Radius = CommonPage.BigFormRadius, - Gravity = Gravity.CenterHorizontal, - BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor - }; - midFL.AddChidren(itemView); - var rollerShadeView = new FrameLayout() - { - X = 2, - Y = 2, - Width = itemView.Width - 4, - Height = itemView.Height - Application.GetRealHeight(130), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag=device - }; - itemView.AddChidren(rollerShadeView); - - collectionBtn = new Button() - { - X = rollerShadeView.Width - Application.GetRealWidth(130), - Y = Application.GetRealHeight(20), - Width = Application.GetMinReal(110), - Height = Application.GetMinReal(110), - UnSelectedImagePath = "Item/Collection.png", - SelectedImagePath = "Item/CollectionSelected.png" - }; - rollerShadeView.AddChidren(collectionBtn); - - rollerShadeIMG = new Button() - { - Y = Application.GetRealHeight(80), - Height = Application.GetMinRealAverage(240), - Width = Application.GetMinRealAverage(240), - Gravity = Gravity.CenterHorizontal, - UnSelectedImagePath = device.IconPath, - SelectedImagePath = device.OnlineIconPath, - IsSelected=rollerShade.IsOnline==1, - Tag=DeviceStatus_Online - }; - rollerShadeView.AddChidren(rollerShadeIMG); - - var rollerShadeName = new Button() - { - Y = rollerShadeIMG.Bottom, - Height = Application.GetRealHeight(85), - Width = rollerShadeView.Width - Application.GetRealWidth(100), - Gravity = Gravity.CenterHorizontal, - Text = device.CommonDevice.DeviceEpointName, - TextColor = ZigbeeColor.Current.GXCTextBlackColor - }; - rollerShadeView.AddChidren(rollerShadeName); - //婊戞潯 - SeekBar = new HorizontalSeekBar() - { - Y = rollerShadeName.Bottom + Application.GetRealHeight(350), - Width = rollerShadeView.Width - Application.GetRealWidth(100), - Height = Application.GetRealHeight(80), - Gravity = Gravity.CenterHorizontal, - BackgroundColor = ZigbeeColor.Current.GXCSliderUnSelectedColor, - ThumbColor = ZigbeeColor.Current.GXCButtonBlueColor, - BorderColor = ZigbeeColor.Current.GXCButtonBlueColor, - ProgressColor = ZigbeeColor.Current.GXCButtonBlueColor, - Max = 100, - Tag=device, - Progress = rollerShade.WcdCurrentPositionLiftPercentage, - SleepTime=sleepSpan - }; - rollerShadeView.AddChidren(SeekBar); - - seekBarTitle = new Button() - { - Y = rollerShadeName.Bottom + Application.GetRealHeight(250), - Width = Application.GetRealWidth(300), - Height = Application.GetRealHeight(80), - Gravity = Gravity.CenterHorizontal, - Text = $"{SeekBar.Progress}%", - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - Tag=device - }; - rollerShadeView.AddChidren(seekBarTitle); - - downBtn = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(50), - Y = Application.GetRealHeight(300) + SeekBar.Bottom, - Width = Application.GetMinRealAverage(160), - Height = Application.GetMinRealAverage(160), - UnSelectedImagePath = "WindowCovering/RollerShadeClose.png", - SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png", - //IsSelected = !((device.CommonDevice as ZigBee.Device.Rollershade).WcdCurrentPositionLiftPercentage > 0) - }; - rollerShadeView.AddChidren(downBtn); - - stopBtn = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(200) + downBtn.Right, - Y = Application.GetRealHeight(300) + SeekBar.Bottom, - Width = Application.GetMinRealAverage(160), - Height = Application.GetMinRealAverage(160), - UnSelectedImagePath = "WindowCovering/RollerShadeStop.png", - SelectedImagePath = "WindowCovering/RollerShadeStopSelected.png", - }; - rollerShadeView.AddChidren(stopBtn); - - upBtn = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(200) + stopBtn.Right, - Y = Application.GetRealHeight(300) + SeekBar.Bottom, - Width = Application.GetMinRealAverage(160), - Height = Application.GetMinRealAverage(160), - UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png", - SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png", - //IsSelected = (device.CommonDevice as ZigBee.Device.Rollershade).WcdCurrentPositionLiftPercentage > 0 - }; - rollerShadeView.AddChidren(upBtn); - - roomBtn = new Button() - { - X = Application.GetRealWidth(50), - Y = Application.GetRealHeight(25) + rollerShadeView.Bottom, - Width = Application.GetMinReal(80), - Height = Application.GetMinReal(80), - UnSelectedImagePath = "Item/Room.png", - SelectedImagePath = "Item/RoomSelected.png" - }; - itemView.AddChidren(roomBtn); - - roomName = new Button() - { - X = roomBtn.Right + Application.GetRealWidth(20), - Y = roomBtn.Y, - Width = Application.GetRealWidth(400), - Height = Application.GetRealHeight(80), - Text = room.Name, - TextAlignment = TextAlignment.CenterLeft, - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor - }; - itemView.AddChidren(roomName); - - var dev =Shared.Common.Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName); - if (dev == null) + if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false) { collectionBtn.IsSelected = false; } @@ -433,9 +306,203 @@ { collectionBtn.IsSelected = true; } - #endregion + BindEvent(); + + } + + #endregion + + #region 鈼� Add______________________________ + + /// <summary> + /// AddTop + /// </summary> + public void AddTop() + { + var top = new TopFrameLayout(); + AddChidren(top); + top.InitTopview(); + top.backButton.MouseUpEventHandler += (sender, e) => + { + RemoveFromParent(); + }; + + + var moreBtn = new Button + { + X = Application.GetRealWidth(953), + Width = Application.GetMinReal(69), + Height = Application.GetMinReal(69), + Gravity = Gravity.CenterVertical, + UnSelectedImagePath = "Item/More.png" + }; + top.topView.AddChidren(moreBtn); + + moreBtn.MouseUpEventHandler += More; + + } + /// <summary> + /// AddBodyView + /// </summary> + public void AddBodyView(DeviceUI device) + { + bodyFrameLayout = new FrameLayout() + { + Y = Application.GetRealHeight(184), + Height = Application.GetRealHeight(1737), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, + }; + AddChidren(bodyFrameLayout); + + var itemView = new FrameLayout() + { + Y = Application.GetRealHeight(115), + Width = Application.GetRealWidth(965), + Height = Application.GetRealHeight(1316), + Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius), + Gravity = Gravity.CenterHorizontal, + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + bodyFrameLayout.AddChidren(itemView); + + collectionBtn = new Button() + { + X = Application.GetRealWidth(850), + Y = Application.GetRealHeight(46), + Width = Application.GetMinReal(69), + Height = Application.GetMinReal(69), + UnSelectedImagePath = "Item/Collection.png", + SelectedImagePath = "Item/CollectionSelected.png" + }; + itemView.AddChidren(collectionBtn); + + var deviceNameBtn = new Button() + { + Y = Application.GetRealHeight(46), + Width = Application.GetRealWidth(500), + Height = Application.GetRealHeight(60), + Gravity = Gravity.CenterHorizontal, + Text = Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice), + TextColor = ZigbeeColor.Current.GXCTextBlackColor, + TextSize = 15, + IsBold=true + }; + itemView.AddChidren(deviceNameBtn); + + StatuBtn = new Button + { + Y = Application.GetRealHeight(118), + Width = Application.GetRealWidth(600), + Height = Application.GetRealHeight(60), + Gravity = Gravity.CenterHorizontal, + TextColor = ZigbeeColor.Current.GXCTextGrayColor, + Text = $"{Language.StringByID(R.MyInternationalizationString.Current)} {device.GetDeviceStatu()}", + TextSize = 10 + }; + itemView.AddChidren(StatuBtn); + + + OpenOrUpBtn = new Button + { + X = Application.GetRealWidth(253), + Y = Application.GetRealHeight(994), + Width = Application.GetMinRealAverage(81), + Height = Application.GetMinRealAverage(81) + }; + itemView.AddChidren(OpenOrUpBtn); + OpenOrUpBtn.MouseUpEventHandler += (sender, e) => + { + (device.CommonDevice as Rollershade).CurtainUpDownStopControl(0); + }; + + StopBtn = new Button + { + X = Application.GetRealWidth(441), + Y=Application.GetRealHeight(994), + Width = Application.GetMinRealAverage(81), + Height = Application.GetMinRealAverage(81), + SelectedImagePath = "RollerShade/StopSelected.png", + UnSelectedImagePath = "RollerShade/Stop.png", + }; + itemView.AddChidren(StopBtn); + StopBtn.MouseUpEventHandler += (sender, e) => + { + (device.CommonDevice as Rollershade).CurtainUpDownStopControl(2); + }; + + CloseOrDownBtn = new Button + { + X = Application.GetRealWidth(631), + Y = Application.GetRealHeight(994), + Width = Application.GetMinRealAverage(81), + Height = Application.GetMinRealAverage(81) + }; + itemView.AddChidren(CloseOrDownBtn); + CloseOrDownBtn.MouseUpEventHandler += (sender, e) => + { + (device.CommonDevice as Rollershade).CurtainUpDownStopControl(1); + }; + + if ((device.CommonDevice as Rollershade).WcdType == -1) + { + CommonPage.Loading.Start(); + new System.Threading.Thread(() => + { + Rollershade.ReadWcdTypeAction(device.CommonDevice, () => + { + Application.RunOnMainThread(() => + { + SetRollerShadeIcon((device.CommonDevice as Rollershade).WcdType); + CommonPage.Loading.Hide(); + }); + }); + }) + { IsBackground = true }.Start(); + } + + SetCurtainType(itemView, (device.CommonDevice as Rollershade).WcdType); + + var roomBG = new Button + { + Y = Application.GetRealHeight(1178 - 50), + Height = Application.GetRealHeight(138 + 50), + BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor, + Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius) + }; + itemView.AddChidren(roomBG); + + var roomBG2 = new Button + { + Y = Application.GetRealHeight(1178 - 50), + Height = Application.GetRealHeight(50), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, + }; + itemView.AddChidren(roomBG2); + + roomBtn = new Button() + { + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Y = Application.GetRealHeight(1207), + Width = Application.GetMinReal(80), + Height = Application.GetMinReal(80), + UnSelectedImagePath = "Item/Room.png" + }; + itemView.AddChidren(roomBtn); + + roomName = new Button() + { + X = Application.GetRealWidth(150), + Y = Application.GetRealHeight(1224), + Width = Application.GetRealWidth(400), + Height = Application.GetRealHeight(50), + Text = room.Name, + TextAlignment = TextAlignment.CenterLeft, + TextColor = ZigbeeColor.Current.GXCTextWhiteColor, + TextSize = 12 + }; + itemView.AddChidren(roomName); } #endregion @@ -447,31 +514,15 @@ /// </summary> private void BindEvent() { - upBtn.MouseUpEventHandler += Up; - stopBtn.MouseUpEventHandler += Stop; - downBtn.MouseUpEventHandler += Down; - SeekBar.ProgressChanged += SeekBar_ProgressChange; + //upBtn.MouseUpEventHandler += Up; + //stopBtn.MouseUpEventHandler += Stop; + //downBtn.MouseUpEventHandler += Down; collectionBtn.MouseUpEventHandler += Collection; - moreBtn.MouseUpEventHandler += More; - roomBtn.MouseUpEventHandler += BackToRoomHandler; - roomName.MouseUpEventHandler += BackToRoomHandler; } #endregion - #region 鈼� 鎺у埗___________________________ - - /// <summary> - /// 婊戞潯绉诲姩鍙戦�佸懡浠� - /// </summary> - /// <param name="sender">Sender.</param> - /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> - private void SeekBar_ProgressChange(object sender, int mouseEventArgs) - { - seekBarTitle.Text = $"{SeekBar.Progress}%"; - (device.CommonDevice as ZigBee.Device.Rollershade).WcdGoToTiltValue(SeekBar.Progress); - } - + #region 鈼� 鎺у埗__________________________ /// <summary> /// 涓娿�佸紑 @@ -602,10 +653,193 @@ 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); }; + } + + /// <summary> + /// SetCurtainType + /// </summary> + /// <param name="layout"></param> + /// <param name="type"></param> + private void SetCurtainType(FrameLayout layout, int type) + { + SetRollerShadeIcon(type); + SetRollerSeekBar(layout, type); + } + + /// <summary> + /// WcdType=4锛氬紑鍚堝笜 + /// WcdType=0锛氬嵎甯� + /// </summary> + /// <param name="type"></param> + private void SetRollerShadeIcon(int type) + { + if (type == 0) + { + OpenOrUpBtn.UnSelectedImagePath = "RollerShade/Up.png"; + OpenOrUpBtn.SelectedImagePath = "RollerShade/UpSelected.png"; + + CloseOrDownBtn.UnSelectedImagePath = "RollerShade/Down.png"; + CloseOrDownBtn.SelectedImagePath = "RollerShade/DownSelected.png"; + } + else + { + OpenOrUpBtn.UnSelectedImagePath = "RollerShade/Open.png"; + OpenOrUpBtn.SelectedImagePath = "RollerShade/OpenSelected.png"; + + CloseOrDownBtn.UnSelectedImagePath = "RollerShade/Close.png"; + CloseOrDownBtn.SelectedImagePath = "RollerShade/CloseSelected.png"; + } + } + + /// <summary> + /// SetRollerSeekBar + /// </summary> + /// <param name="layout"></param> + /// <param name="type"></param> + private void SetRollerSeekBar(FrameLayout layout,int type) + { + if(type == 0) + { + curtainRollSeekBar.Y = Application.GetRealHeight(300); + curtainRollSeekBar.Width = Application.GetRealWidth(438); + curtainRollSeekBar.Height = Application.GetRealHeight(576); + 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 + { + curtainSeekBar.Y = Application.GetRealHeight(334); + 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); + + curtainSeekBar.OnStopTrackingTouchEvent += (sender, e) => + { + (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 @@ -619,18 +853,16 @@ /// <param name="e">E.</param> private void Collection(object sender, MouseEventArgs e) { - //collection if (collectionBtn.IsSelected) { - Shared.Common.Room.Lists[0].DeleteDevice(device.FileName); + Common.Room.CurrentRoom.GetLoveRoom().DeleteDevice(device.FileName); collectionBtn.IsSelected = false; } else { - Shared.Common.Room.Lists[0].AddDevice(device.FileName); + Common.Room.CurrentRoom.GetLoveRoom().AddDevice(device.FileName); collectionBtn.IsSelected = true; } - action?.Invoke(); } #endregion -- Gitblit v1.8.0