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/Light/DimmableLightControl.cs |  413 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 236 insertions(+), 177 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs b/ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs
index 8c802bc..0695856 100644
--- a/ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs
@@ -1,5 +1,7 @@
 锘縰sing System;
 using Shared.Common;
+using Shared.Phone.Device.CommonForm;
+using Shared.Phone.Device.DeviceLogic;
 using ZigBee.Device;
 
 namespace Shared.Phone.Device.Light
@@ -11,15 +13,11 @@
         /// <summary>
         /// The action.
         /// </summary>
-        public Action action;
+        public Action<DeviceUI, Common.Room> action;
         ///// <summary>
         ///// The top view.
         ///// </summary>
-        private CommonForm.TopFrameLayout topFL;
-        /// <summary>
-        /// 鏇村璁剧疆
-        /// </summary>
-        private Button moreBtn;
+        private CommonForm.TopFrameLayout top;
         /// <summary>
         /// 浼犺繃鏉ョ殑璁惧
         /// </summary>
@@ -33,25 +31,14 @@
         /// </summary>
         private Shared.Common.Room room;
         /// <summary>
-        /// The middle fl.
+        /// bodyFrameLayout
         /// </summary>
-        private FrameLayout midFL;
+        private FrameLayout bodyFrameLayout;
         /// <summary>
         /// 鏀惰棌鎸夐挳
         /// </summary>
         private Button collectionBtn;
-        /// <summary>
-        /// 璁惧鏄惁鍦ㄧ嚎鏍囪瘑--Online
-        /// </summary>
-        private readonly string DeviceStatus_Online = "Online";
-        /// <summary>
-        /// 璁惧鐘舵�佸紑鍏虫爣璇�--Switch
-        /// </summary>
-        private readonly string DeviceStatus_OnOffStatus = "Switch";
-        /// <summary>
-        /// The light image.
-        /// </summary>
-        private Button deviceIMG;
+
         /// <summary>
         /// 寮�鍏�
         /// </summary>
@@ -59,11 +46,35 @@
         /// <summary>
         /// 婊戞潯
         /// </summary>
-        private HorizontalSeekBar levelSeekBar;
+        private WaveSeekBar levelSeekBar;
+
+
+        private Button StatuBtn;
         /// <summary>
-        /// 寤舵椂 300姣
+        /// 鎴块棿
         /// </summary>
-        private int sleepSpan = 300;
+        private Button roomBtn;
+        /// <summary>
+        /// 鎴块棿鍚�
+        /// </summary>
+        private Button roomName;
+        /// <summary>
+        /// MaxLevel
+        /// </summary>
+        private const int MaxLevel = 254;
+
+        /// <summary>
+        /// IsDrawerLockMode
+        /// </summary>
+        public bool IsDrawerLockMode;
+        /// <summary>
+        /// ProgressBtn
+        /// </summary>
+        Button ProgressBtn;
+        /// <summary>
+        /// ProgressBtnY
+        /// </summary>
+        int ProgressBtnY;
 
         #endregion
 
@@ -124,24 +135,35 @@
                         }
                         if (deviceUI.CommonDevice.Type == DeviceType.DimmableLight)
                         {
-                            if ((common as DimmableLight).DeviceStatusReport.CluterID == 6)
+                            if (common.DeviceStatusReport.CluterID == 6)
                             {
                                 dimmableLight = deviceUI.CommonDevice as DimmableLight;
-                                dimmableLight.DeviceStatusReport = (common as DimmableLight).DeviceStatusReport;
-                                //璁板綍銆佹洿鏂扮姸鎬�
+                                dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
                                 if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0)
                                 {
                                     return;
                                 }
                                 dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
                                 switchBtn.IsSelected = dimmableLight.OnOffStatus == 1;
+                                StatuBtn.Text = switchBtn.IsSelected ? $"{Language.StringByID(R.MyInternationalizationString.CurrentLightLevel)} { device.GetDeviceStatu()}" : $"{Language.StringByID(R.MyInternationalizationString.Current)} {Language.StringByID(R.MyInternationalizationString.Shut)}";
+
+                                if (switchBtn.IsSelected == true)
+                                {
+                                    levelSeekBar.IsClickable = true;
+                                    levelSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarColor_Start, ZigbeeColor.Current.GXCWaveSeekBarColor_End);
+                                }
+                                else
+                                {
+                                    levelSeekBar.IsClickable = false;
+                                    levelSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor);
+                                }
                                 dimmableLight.LastDateTime = DateTime.Now;
                             }
                             //浜害
-                            if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 8)
+                            if (common.DeviceStatusReport.CluterID == 8)
                             {
                                 dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
-                                dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport;
+                                dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
                                 var attriButeList = dimmableLight.DeviceStatusReport.AttriBute;
                                 if (attriButeList == null || attriButeList.Count == 0)
                                 {
@@ -153,18 +175,12 @@
                                         //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴�
                                         dimmableLight.Level = attriButeList[0].AttriButeData;
                                         dimmableLight.LastDateTime = DateTime.Now;
-                                        levelSeekBar.Progress = dimmableLight.Level;
+                                        levelSeekBar.Progress = (int)(dimmableLight.Level*1.0/MaxLevel*100);
+                                        StatuBtn.Text = switchBtn.IsSelected ? $"{Language.StringByID(R.MyInternationalizationString.CurrentLightLevel)} { device.GetDeviceStatu()}" : $"{Language.StringByID(R.MyInternationalizationString.Current)} {Language.StringByID(R.MyInternationalizationString.Shut)}";
                                         break;
                                 }
                             }
-                            //***鏂版敼***璁惧鐘舵�佷笂鎶ヤ腑锛屽綋CluterID=3,璇佹槑璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                            else if ((common as DimmableLight).DeviceStatusReport.CluterID == 3)
-                            {
-                                dimmableLight = deviceUI.CommonDevice as DimmableLight;
-                                dimmableLight.IsOnline = 1;
-                                deviceIMG.IsSelected = dimmableLight.IsOnline == 1;
-                                dimmableLight.LastDateTime = DateTime.Now;
-                            }
+
                         }
                     }
                     catch (Exception ex)
@@ -175,34 +191,7 @@
             }
             else if (typeTag == "OnlineStatusChange")
             {
-                Application.RunOnMainThread(() =>
-                {
-                    try
-                    {
-                        var deviceUI = device;
-                        //璁惧涓虹┖
-                        if (deviceUI.CommonDevice == null)
-                        {
-                            return;
-                        }
-                        //鏄惁涓哄綋鍓嶈澶�
-                        if (deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint || deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr)
-                        {
-                            return;
-                        }
-                        if (deviceUI.CommonDevice.Type == DeviceType.DimmableLight)
-                        {
-                            dimmableLight = deviceUI.CommonDevice as DimmableLight;
-                            dimmableLight.IsOnline = (common as DimmableLight).IsOnline;
-                            deviceIMG.IsSelected = dimmableLight.IsOnline == 1;
-                            dimmableLight.LastDateTime = DateTime.Now;
-                        }
-                    }
-                    catch (Exception ex)
-                    {
-                        System.Console.WriteLine($"Error:{ex.Message}");
-                    }
-                });
+
             }
         }
 
@@ -217,6 +206,12 @@
         {
             ZbGateway.StatusList.Remove(this);
             UserView.HomePage.Instance.ScrollEnabled = true;
+            action(device, room);
+            action = null;
+            if (IsDrawerLockMode)
+            {
+                CommonPage.Instance.IsDrawerLockMode = false;
+            }
             base.RemoveFromParent();
         }
 
@@ -228,7 +223,9 @@
         /// </summary>
         public DimmableLightControl()
         {
+            UserView.HomePage.Instance.ScrollEnabled = false;
             BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            ZbGateway.StatusList.Add(this);
         }
 
         #endregion
@@ -241,7 +238,6 @@
         /// <param name="room">Room.</param>
         public void Show(DeviceUI device, Shared.Common.Room room)
         {
-            ZbGateway.StatusList.Add(this);
             this.device = device;
             this.room = room;
             this.dimmableLight = device.CommonDevice as ZigBee.Device.DimmableLight;
@@ -249,7 +245,7 @@
             //娣诲姞topview
             AddTopView();
             //娣诲姞midview
-            AddMidview();
+            AddBodyView(this.device);
             //缁戝畾浜嬩欢
             BindEvent();
             //鏀惰棌
@@ -260,9 +256,7 @@
                 //鍙戦�佽鍙栫姸鎬佸懡浠�
                 UserView.UserHomeView.ReadStatus(dimmableLight, () =>
                 {
-                    dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
-                    dimmableLight.ReadOnOffStatus();
-                    dimmableLight.ReadLevel();
+                    ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice);
                 });
             }
             else
@@ -270,9 +264,7 @@
                 //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵��
                 if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                 {
-                    dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
-                    dimmableLight.ReadOnOffStatus();
-                    dimmableLight.ReadLevel();
+                    ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice);
                 }
             }
         }
@@ -286,30 +278,26 @@
         /// </summary>
         private void AddTopView()
         {
-            topFL = new CommonForm.TopFrameLayout(this) { };
-            AddChidren(topFL);
-
-            AddMoreview();
-        }
-
-        /// <summary>
-        /// Adds the moreview.
-        /// </summary>
-        private void AddMoreview()
-        {
-            moreBtn = new CommonForm.SelectedStatuButton()
+            top = new CommonForm.TopFrameLayout();
+            AddChidren(top);
+            top.InitTopview();
+            top.backButton.MouseUpEventHandler += (sender, e) =>
             {
-                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",
+                RemoveFromParent();
             };
-            topFL.topView.AddChidren(moreBtn);
+
+            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 += MoreEvent;
         }
-
         /// <summary>
         /// 鏇村璁剧疆
         /// </summary>
@@ -321,9 +309,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);
             };
         }
 
@@ -332,17 +320,17 @@
         #region 鈼� midview_______________________
 
         /// <summary>
-        /// Adds the midview.
+        /// AddBodyView
         /// </summary>
-        private void AddMidview()
+        public void AddBodyView(DeviceUI device)
         {
-            midFL = new FrameLayout()
+            bodyFrameLayout = new FrameLayout()
             {
-                Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.Navigation_Height),
-                Y = topFL.Bottom,
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+                Y = Application.GetRealHeight(184),
+                Height = Application.GetRealHeight(1737),
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
             };
-            AddChidren(midFL);
+            AddChidren(bodyFrameLayout);
 
             AddItemview();
         }
@@ -360,113 +348,182 @@
                 Y = Application.GetRealHeight(115),
                 Width = Application.GetRealWidth(965),
                 Height = Application.GetRealHeight(1316),
-                Radius = CommonPage.BigFormRadius,
+                Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius),
                 Gravity = Gravity.CenterHorizontal,
-                BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
             };
-            midFL.AddChidren(itemView);
-            var deviceView = new FrameLayout()
-            {
-                X = 2,
-                Y = 2,
-                Width = itemView.Width - 4,
-                Height = itemView.Height - Application.GetRealHeight(138),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                Tag = device
-            };
-            itemView.AddChidren(deviceView);
+            bodyFrameLayout.AddChidren(itemView);
 
             collectionBtn = new Button()
             {
-                X = deviceView.Width - Application.GetRealWidth(130),
-                Y = Application.GetRealHeight(20),
-                Width = Application.GetMinReal(110),
-                Height = Application.GetMinReal(110),
+                X = Application.GetRealWidth(850),
+                Y = Application.GetRealHeight(46),
+                Width = Application.GetMinReal(69),
+                Height = Application.GetMinReal(69),
                 UnSelectedImagePath = "Item/Collection.png",
                 SelectedImagePath = "Item/CollectionSelected.png"
             };
-            deviceView.AddChidren(collectionBtn);
+            itemView.AddChidren(collectionBtn);
 
-            deviceIMG = new Button()
+            var deviceNameBtn = new Button()
             {
-                Y = Application.GetRealHeight(100),
-                Height = Application.GetMinRealAverage(240),
-                Width = Application.GetMinRealAverage(240),
+                Y = Application.GetRealHeight(46),
+                Width = Application.GetRealWidth(500),
+                Height = Application.GetRealHeight(60),
                 Gravity = Gravity.CenterHorizontal,
-                UnSelectedImagePath = device.IconPath,
-                SelectedImagePath = device.OnlineIconPath,
-                IsSelected = dimmableLight.IsOnline == 1,
-                Tag = DeviceStatus_Online
+                Text = Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice),
+                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                TextSize = 15,
+                IsBold=true
             };
-            deviceView.AddChidren(deviceIMG);
+            itemView.AddChidren(deviceNameBtn);
 
-            var lightName = new Button()
+            StatuBtn = new Button
             {
-                Y = deviceIMG.Bottom,
-                Height = Application.GetRealHeight(85),
+                Y = Application.GetRealHeight(118),
+                Width = Application.GetRealWidth(600),
+                Height = Application.GetRealHeight(60),
                 Gravity = Gravity.CenterHorizontal,
-                Text = device.CommonDevice.DeviceEpointName,
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor
+                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+                Text = dimmableLight.Level>0?$"{Language.StringByID(R.MyInternationalizationString.CurrentLightLevel)} { device.GetDeviceStatu()}" :$"{Language.StringByID(R.MyInternationalizationString.Current)} {Language.StringByID(R.MyInternationalizationString.Shut)}",
+                TextSize=10
             };
-            deviceView.AddChidren(lightName);
 
-            levelSeekBar = new HorizontalSeekBar()
+            itemView.AddChidren(StatuBtn);
+
+            levelSeekBar = new WaveSeekBar()
             {
-                Y = lightName.Bottom + Application.GetRealHeight(150),
-                Width = Application.GetRealWidth(800),
-                Height = Application.GetRealHeight(80),
+                Y = Application.GetRealHeight(377),
+                Width = Application.GetRealWidth(271),
+                Height = Application.GetRealHeight(533),
                 Gravity = Gravity.CenterHorizontal,
-                BackgroundColor = ZigbeeColor.Current.GXCSliderUnSelectedColor,
-                ThumbColor = ZigbeeColor.Current.GXCButtonBlueColor,
-                BorderColor = ZigbeeColor.Current.GXCButtonBlueColor,
-                ProgressColor = ZigbeeColor.Current.GXCButtonBlueColor,
-                Max = 254,
-                Tag = "LevelSeekBar",
-                Progress = dimmableLight.Level,
-                SleepTime=sleepSpan,
+                WavePadding = Application.GetRealWidth(8),
+                MaxValue=100,
+                Progress = (int)(dimmableLight.Level*1.0/MaxLevel*100),
+
+                CornerRadius= Application.GetRealHeight(58)
             };
-            deviceView.AddChidren(levelSeekBar);
-            levelSeekBar.ProgressChanged += (send2, e2) =>
+
+            itemView.AddChidren(levelSeekBar);
+
+            if (dimmableLight.OnOffStatus == 1)
             {
-                dimmableLight.SetLevel(levelSeekBar.Progress);
-            };
+                levelSeekBar.IsClickable = true;
+                levelSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarColor_Start, ZigbeeColor.Current.GXCWaveSeekBarColor_End);
+            }
+            else
+            {
+                levelSeekBar.IsClickable = false;
+                levelSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor);
+            }
+
+            levelSeekBar.OnStartTrackingTouchEvent += (sender, e) =>
+            {
+                OnProgressButtonMove(levelSeekBar.Progress);
+                levelSeekBar.IsProgressTextShow = false;
+                ProgressBtn.Visible = true;
+            };
+
+            levelSeekBar.OnStopTrackingTouchEvent += (sender, e) =>
+            {
+                ProgressBtn.Visible = false;
+                levelSeekBar.IsProgressTextShow = true;
+                dimmableLight.SetLevel((int)(levelSeekBar.Progress * MaxLevel / 100.0));
+            };
+
+            levelSeekBar.OnProgressChangedEvent += (send2, e2) =>
+            {
+
+                OnProgressButtonMove(e2);
+
+                //鍒ゆ柇鏄惁300ms灞忚斀
+                //if (levelSeekBar.IsProgressChangeDelay()) return;
+                //dimmableLight.SetLevel((int)(levelSeekBar.Progress * MaxLevel / 100.0));
+            };
+
+            InitProgressBtn(itemView);
 
             switchBtn = new Button()
             {
-                Y = levelSeekBar.Bottom + Application.GetRealHeight(150),
+                Y = Application.GetRealHeight(1005),
+                Width = Application.GetMinRealAverage(81),
+                Height = Application.GetMinRealAverage(81),
                 Gravity = Gravity.CenterHorizontal,
-                Width = Application.GetMinRealAverage(180),
-                Height = Application.GetMinRealAverage(120),
                 UnSelectedImagePath = "Item/Switch.png",
                 SelectedImagePath = "Item/SwitchSelected.png",
-                Tag = DeviceStatus_OnOffStatus,
-                IsSelected = dimmableLight.OnOffStatus == 1
+                IsSelected = (device.CommonDevice as DimmableLight).OnOffStatus == 1
             };
-            deviceView.AddChidren(switchBtn);
+            itemView.AddChidren(switchBtn);
 
-            var roomBtn = new Button()
+            var roomBG = new Button
             {
-                X = Application.GetRealWidth(50),
-                Y = Application.GetRealHeight(25) + deviceView.Bottom,
+                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",
-                SelectedImagePath = "Item/RoomSelected.png"
+                UnSelectedImagePath = "Item/Room.png"
             };
             itemView.AddChidren(roomBtn);
 
-            var roomName = new Button()
+            roomName = new Button()
             {
-                X = roomBtn.Right + Application.GetRealWidth(20),
-                Y = roomBtn.Y,
+                X = Application.GetRealWidth(150),
+                Y = Application.GetRealHeight(1224),
                 Width = Application.GetRealWidth(400),
-                Height = Application.GetRealHeight(80),
+                Height = Application.GetRealHeight(50),
                 Text = room.Name,
                 TextAlignment = TextAlignment.CenterLeft,
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor
+                TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
+                TextSize = 12
             };
             itemView.AddChidren(roomName);
+        }
+
+        /// <summary>
+        /// OnProgressButtonMove
+        /// </summary>
+        private void OnProgressButtonMove(int mProgress)
+        {
+            ProgressBtn.Y = ProgressBtnY + levelSeekBar.NowProgressY;
+            ProgressBtn.Text = mProgress + "%";
+        }
+
+        /// <summary>
+        /// 娣诲姞杩涘害鎸夐挳
+        /// </summary>
+        private void InitProgressBtn(FrameLayout layout)
+        {
+            ProgressBtnY = levelSeekBar.Y - Application.GetMinReal(154);
+            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);
         }
 
         #endregion
@@ -479,7 +536,6 @@
         {
             switchBtn.MouseUpEventHandler += Switch_MouseUpEvent;
             collectionBtn.MouseUpEventHandler += Collection;
-            moreBtn.MouseUpEventHandler += MoreEvent;
         }
 
         #endregion
@@ -494,13 +550,18 @@
         private void Switch_MouseUpEvent(object sender, MouseEventArgs eventArgs)
         {
             switchBtn.IsSelected = !switchBtn.IsSelected;
+            StatuBtn.Text = switchBtn.IsSelected ? $"{Language.StringByID(R.MyInternationalizationString.CurrentLightLevel)} { device.GetDeviceStatu()}" : $"{Language.StringByID(R.MyInternationalizationString.Current)} {Language.StringByID(R.MyInternationalizationString.Shut)}";
             if (switchBtn.IsSelected == true)
             {
                 dimmableLight.SwitchControl(1);
+                levelSeekBar.IsClickable = true;
+                levelSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarColor_Start, ZigbeeColor.Current.GXCWaveSeekBarColor_End);
             }
             else
             {
                 dimmableLight.SwitchControl(0);
+                levelSeekBar.IsClickable = false;
+                levelSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor);
             }
         }
 
@@ -513,8 +574,7 @@
         /// </summary>
         private void InitCollection()
         {
-            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;
             }
@@ -531,17 +591,16 @@
         private void Collection(object sender, MouseEventArgs e)
         {
             //collection
-            if (collectionBtn.IsSelected)
+            if ((sender as Button).IsSelected)
             {
-                Shared.Common.Room.Lists[0].DeleteDevice(device.FileName);
-                collectionBtn.IsSelected = false;
+                Shared.Common.Room.CurrentRoom.GetLoveRoom().DeleteDevice(device.FileName);
+                (sender as Button).IsSelected = false;
             }
             else
             {
-                Shared.Common.Room.Lists[0].AddDevice(device.FileName);
-                collectionBtn.IsSelected = true;
+                Shared.Common.Room.CurrentRoom.GetLoveRoom().AddDevice(device.FileName);
+                (sender as Button).IsSelected = true;
             }
-            action?.Invoke();
         }
 
         #endregion

--
Gitblit v1.8.0