From 4f92fe4e4397b05bc97d17e8ad02818a689acdb8 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 10 十月 2019 13:13:33 +0800
Subject: [PATCH] 个人中心添加楼层和创建房间,实装二级验证

---
 ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs |  459 +++++++++++++++++++++++++++------------------------------
 1 files changed, 219 insertions(+), 240 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs b/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs
index fc3c116..3e280d9 100755
--- a/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs
@@ -1,6 +1,7 @@
 锘縰sing System;
 using System.Collections.Generic;
 using Shared.Common;
+using Shared.Phone.Device.CommonForm;
 using Shared.Phone.UserView;
 using ZigBee.Device;
 namespace Shared.Phone.Device.Light
@@ -12,14 +13,6 @@
     {
         #region 鈼� 鍙橀噺__________________________
         /// <summary>
-        /// 璁惧鏄惁鍦ㄧ嚎鏍囪瘑--Online
-        /// </summary>
-        private readonly string DeviceStatus_Online = "Online";
-        /// <summary>
-        /// 璁惧鐘舵�佸紑鍏虫爣璇�--Switch
-        /// </summary>
-        private readonly string DeviceStatus_OnOffStatus = "Switch";
-        /// <summary>
         /// 寮�鍏�
         /// </summary>
         private Button switchBtn;
@@ -27,10 +20,7 @@
         /// The action.
         /// </summary>
         public Action action;
-        /// <summary>
-        /// The light view.
-        /// </summary>
-        private FrameLayout deviceView;
+
         /// <summary>
         /// The light image.
         /// </summary>
@@ -47,10 +37,7 @@
         /// 浼犺繃鏉ョ殑鎴块棿
         /// </summary>
         private Shared.Common.Room room;
-        /// <summary>
-        /// 鏇村璁剧疆
-        /// </summary>
-        private Button moreBtn;
+ 
         /// <summary>
         /// 鎴块棿
         /// </summary>
@@ -67,6 +54,13 @@
         /// 鏄惁鍙戦�佹帶鍒跺懡浠ゆ垚鍔熶簡
         /// </summary>
         private bool sendedControlCommand = false;
+
+        /// <summary>
+        /// bodyFrameLayout
+        /// </summary>
+        private FrameLayout bodyFrameLayout;
+
+        private Button StatuBtn;
 
         #endregion
 
@@ -114,7 +108,7 @@
                 {
                     try
                     {
-                        var deviceUI = deviceView.Tag as DeviceUI;
+                        var deviceUI = device;
                         //璁惧涓虹┖
                         if (deviceUI.CommonDevice == null)
                         {
@@ -132,20 +126,13 @@
                                 var light = deviceUI.CommonDevice as ToggleLight;
                                 light.DeviceStatusReport = (common as ToggleLight).DeviceStatusReport;
                                 //璁板綍銆佹洿鏂扮姸鎬�
-                                if(light.DeviceStatusReport.AttriBute==null || light.DeviceStatusReport.AttriBute.Count==0)
+                                if (light.DeviceStatusReport.AttriBute == null || light.DeviceStatusReport.AttriBute.Count == 0)
                                 {
                                     return;
                                 }
                                 light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                switchBtn.IsSelected = light.OnOffStatus == 1;
-                                light.LastDateTime = DateTime.Now;
-                            }
-                            //***鏂版敼***璁惧鐘舵�佷笂鎶ヤ腑锛屽綋CluterID=3,璇佹槑璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                            else if ((common as ToggleLight).DeviceStatusReport.CluterID == 3)
-                            {
-                                var light = deviceUI.CommonDevice as ToggleLight;
-                                light.IsOnline = 1;
-                                deviceIMG.IsSelected = light.IsOnline == 1;
+                                deviceIMG.IsSelected = switchBtn.IsSelected = light.OnOffStatus == 1;
+                                StatuBtn.Text = CommonFormResouce.GetSwitchStatu(deviceIMG.IsSelected);
                                 light.LastDateTime = DateTime.Now;
                             }
                         }
@@ -158,75 +145,49 @@
             }
             else if (typeTag == "OnlineStatusChange")
             {
-                Application.RunOnMainThread(() =>
-                {
-                    try
-                    {
-                        var deviceUI = deviceView.Tag as DeviceUI;
-                        //璁惧涓虹┖
-                        if (deviceUI.CommonDevice == null)
-                        {
-                            return;
-                        }
-                        //鏄惁涓哄綋鍓嶈澶�
-                        if (deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint || deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr)
-                        {
-                            return;
-                        }
-                        if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput)
-                        {
-                            var light = deviceUI.CommonDevice as ToggleLight;
-                            light.IsOnline = (common as ToggleLight).IsOnline;
-                            deviceIMG.IsSelected = light.IsOnline == 1;
-                            light.LastDateTime = DateTime.Now;
-                        }
-                    }
-                    catch (Exception ex)
-                    {
-                        System.Console.WriteLine($"Error:{ex.Message}");
-                    }
-                });
+
             }
         }
         #endregion
 
-        #region 鈼� 鍒濆鍖朹_______________________
+        #region 鈼� 鍒濆鍖朹____________________
+        /// <summary>
+        /// 閲嶅啓绉婚櫎鏂规硶
+        /// </summary>
+        public override void RemoveFromParent()
+        {
+            ZbGateway.StatusList.Remove(this);
+            action();
+            action = null;
+            RemoveUpdateControlDeviceStatuAction();
+            base.RemoveFromParent();
+        }
+
+        /// <summary>
+        /// 鏋勯�犳柟娉�
+        /// </summary>
+        public LightControl()
+        {
+            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            ZbGateway.StatusList.Add(this);
+        }
         /// <summary>
         /// 鏄剧ず鐣岄潰
         /// </summary>
-        /// <param name="device">Device.</param>
+        /// <param name="dev">Device.</param>
         /// <param name="room">Room.</param>
-        public void Show(DeviceUI device,Shared.Common.Room  room)
+        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;
-            var light = device.CommonDevice as ToggleLight;
+
+            AddTop();
+
+            AddBodyView(device);
+
+
+            var light = dev.CommonDevice as ToggleLight;
             //琛ヤ笂闈炶繙绋�
             if (light.Gateway == null)
             {
@@ -249,122 +210,9 @@
                     light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                 }
             }
-            #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()
-            {
-                X = Application.GetRealWidth(50),
-                Y = Application.GetRealHeight(50),
-                Width = Application.GetRealWidth(CommonPage.AppRealWidth - 100),
-                Height = Application.GetRealHeight(850),
-                Radius = CommonPage.BigFormRadius,
-                Gravity = Gravity.CenterHorizontal,
-                BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor
-            };
-            midFL.AddChidren(itemView);
-            deviceView = new FrameLayout()
-            {
-                X = 2,
-                Y = 2,
-                Width = itemView.Width - 4,
-                Height = itemView.Height - Application.GetRealHeight(130),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                Tag = device
-            };
-            itemView.AddChidren(deviceView);
-
-            collectionBtn = new Button()
-            {
-                X = deviceView.Width - Application.GetRealWidth(130),
-                Y = Application.GetRealHeight(20),
-                Width = Application.GetMinReal(110),
-                Height = Application.GetMinReal(110),
-                UnSelectedImagePath = "Item/Collection.png",
-                SelectedImagePath = "Item/CollectionSelected.png"
-            };
-            deviceView.AddChidren(collectionBtn);
-
-            deviceIMG = new Button()
-            {
-                Y = Application.GetRealHeight(100),
-                Height = Application.GetMinRealAverage(240),
-                Width = Application.GetMinRealAverage(240),
-                Gravity = Gravity.CenterHorizontal,
-                UnSelectedImagePath = device.IconPath,
-                SelectedImagePath = device.OnlineIconPath,
-                IsSelected = light.IsOnline == 1,
-                Tag = DeviceStatus_Online
-            };
-            deviceView.AddChidren(deviceIMG);
-
-            var lightName = new Button()
-            {
-                Y = deviceIMG.Bottom,
-                Height = Application.GetRealHeight(85),
-                Gravity = Gravity.CenterHorizontal,
-                Text = device.CommonDevice.DeviceEpointName,
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor
-            };
-            deviceView.AddChidren(lightName);
-
-            switchBtn = new Button()
-            {
-                Y = lightName.Bottom + Application.GetRealHeight(70),
-                Gravity = Gravity.CenterHorizontal,
-                Width = Application.GetMinRealAverage(180),
-                Height = Application.GetMinRealAverage(120),
-                UnSelectedImagePath = "Item/Switch.png",
-                SelectedImagePath = "Item/SwitchSelected.png",
-                Tag = DeviceStatus_OnOffStatus,
-                IsSelected = light.OnOffStatus == 1
-            };
-            deviceView.AddChidren(switchBtn);
-
-            roomBtn = new Button()
-            {
-                X = Application.GetRealWidth(50),
-                Y = Application.GetRealHeight(25) + deviceView.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 moreBtn = new Button()
-            //{
-            //    X = itemView.Width - Application.GetRealWidth(130),
-            //    Y = roomBtn.Y,
-            //    Width = Application.GetMinReal(80),
-            //    Height = Application.GetMinReal(80),
-            //    UnSelectedImagePath = "Item/More.png",
-            //    SelectedImagePath = "Item/MoreSelected.png",
-            //};
-            //itemView.AddChidren(moreBtn);
-            var dev = Shared.Common.Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
-            if (dev == null)
+            var de = Shared.Common.Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
+            if (de == null)
             {
                 collectionBtn.IsSelected = false;
             }
@@ -372,29 +220,172 @@
             {
                 collectionBtn.IsSelected = true;
             }
-            this.BindEvent();
-            #endregion
+
+
+            BindEvent();
+
         }
 
-        /// <summary>
-        /// 閲嶅啓绉婚櫎鏂规硶
-        /// </summary>
-        public override void RemoveFromParent()
-        {
-            ZbGateway.StatusList.Remove(this);
-            action();
-            action = null;
-            RemoveUpdateControlDeviceStatuAction();
-            base.RemoveFromParent();
-        }
+        #endregion
+
+        #region 鈼� Add______________________________
 
         /// <summary>
-        /// 鏋勯�犳柟娉�
+        /// AddTop
         /// </summary>
-        public LightControl()
+        public void AddTop()
         {
-            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
-            ZbGateway.StatusList.Add(this);
+            var top = new TopFrameLayout();
+            AddChidren(top);
+            top.InitTopview();
+            top.backButton.MouseUpEventHandler += (sender, e) =>
+            {
+                RemoveFromParent();
+            };
+
+            var sharedBtn = new Button
+            {
+                X = Application.GetRealWidth(850),
+                Width = Application.GetMinReal(69),
+                Height = Application.GetMinReal(69),
+                Gravity = Gravity.CenterVertical,
+                UnSelectedImagePath = "Item/Shared.png"
+            };
+            top.topView.AddChidren(sharedBtn);
+
+            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 = device.CommonDevice.DeviceEpointName,
+                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                TextSize=15
+            };
+            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=CommonFormResouce.GetSwitchStatu(device.CommonDevice.IsOnline==1)
+            };
+            itemView.AddChidren(StatuBtn);
+
+            deviceIMG = new Button()
+            {
+                Y = Application.GetRealHeight(389),
+                Width = Application.GetMinRealAverage(377),
+                Height = Application.GetMinRealAverage(435),
+                Gravity = Gravity.CenterHorizontal,
+                UnSelectedImagePath = "Light/DeskLamp.png",
+                SelectedImagePath = "Light/DeskLampSelected.png",
+                IsSelected =  (device.CommonDevice as ToggleLight).OnOffStatus == 1
+            };
+            itemView.AddChidren(deviceIMG);
+
+            switchBtn = new Button()
+            {
+                Y = Application.GetRealHeight(996),
+                Width = Application.GetMinRealAverage(81),
+                Height = Application.GetMinRealAverage(81),
+                Gravity = Gravity.CenterHorizontal,
+                UnSelectedImagePath = "Item/Switch.png",
+                SelectedImagePath = "Item/SwitchSelected.png",
+                IsSelected = (device.CommonDevice as ToggleLight).OnOffStatus == 1
+            };
+            itemView.AddChidren(switchBtn);
+
+            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
+            };
+            itemView.AddChidren(roomName);
         }
 
         #endregion
@@ -406,10 +397,8 @@
         private void BindEvent()
         {
             switchBtn.MouseUpEventHandler += Switch;
+            deviceIMG.MouseUpEventHandler += Switch;
             collectionBtn.MouseUpEventHandler += Collection;
-            moreBtn.MouseUpEventHandler += More;
-            roomBtn.MouseUpEventHandler += BackToRoomHandler;
-            roomName.MouseUpEventHandler += BackToRoomHandler;
         }
 
         #endregion
@@ -426,6 +415,8 @@
             sendedControlCommand = false;
             zbGateway.ReportAction += UpdateDeviceControllStatu;
             switchBtn.IsSelected = !switchBtn.IsSelected;
+            deviceIMG.IsSelected = !deviceIMG.IsSelected;
+            StatuBtn.Text = CommonFormResouce.GetSwitchStatu(deviceIMG.IsSelected);
             if (switchBtn.IsSelected == true)
             {
                 (device.CommonDevice as ToggleLight).SwitchControl(1);
@@ -448,6 +439,8 @@
                  }
              });
         }
+
+    
 
         #endregion
 
@@ -480,30 +473,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.GetLoveRoom().DeleteDevice(device.FileName);
+                (sender as Button).IsSelected = false;
             }
             else
             {
-                Shared.Common.Room.Lists[0].AddDevice(device.FileName);
-                collectionBtn.IsSelected = true;
+                Shared.Common.Room.GetLoveRoom().AddDevice(device.FileName);
+                (sender as Button).IsSelected = true;
             }
-        }
-
-        #endregion
-
-        #region 鈼� 鍥炲埌涓婚〉________________________
-        /// <summary>
-        /// 鍥炲埌涓婚〉
-        /// </summary>
-        /// <param name="sender">Sender.</param>
-        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
-        private void BackToRoomHandler(object sender, MouseEventArgs mouseEventArgs )
-        {
-            //backToRoom
-
         }
 
         #endregion

--
Gitblit v1.8.0