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/UserView/UserHomeView.cs | 1021 +++++++++++++++++---------------------------------------
 1 files changed, 311 insertions(+), 710 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
index 8004460..8c5ef3f 100755
--- a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -30,14 +30,7 @@
         /// 鍔熻兘鍜屽満鏅痓odyView
         /// </summary>
         private FrameLayout functionSceneBodyView;
-        /// <summary>
-        /// The height of the top frame layout -- 500
-        /// </summary>
-        private static readonly int topFrameLayout_Height = 500;
-        /// <summary>
-        /// 1524
-        /// </summary>
-        private static readonly int midView_Height = 1524;
+
         /// <summary>
         /// The height of the room page view. -- 550
         /// </summary>
@@ -78,6 +71,9 @@
         /// </summary>
         private readonly int sleepSpan = 300;
 
+
+        private FrameLayout itemView;
+
         #endregion
 
         #region 鈼� 鎺ュ彛____________________________
@@ -115,9 +111,8 @@
                         for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++)
                         {
                             var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout;
-                            var rowLayout = rowFL.GetChildren(0) as RowLayout;
-                            var deviceUI = rowLayout.Tag as DeviceUI;
-                            if (deviceUI.CommonDevice == null || rowLayout.ChildrenCount == 0)
+                            var deviceUI = rowFL.Tag as DeviceUI;
+                            if (deviceUI.CommonDevice == null || rowFL.ChildrenCount == 0)
                             {
                                 //璁惧涓虹┖鎴栬�呮帶浠朵负绌�
                                 continue;
@@ -128,7 +123,7 @@
                                 //鍒ゆ柇鏄惁涓哄綋鍓嶈澶�
                                 continue;
                             }
-                            var frameLayout = rowLayout.GetChildren(0) as FrameLayout;
+                            var frameLayout = rowFL.GetChildren(0) as FrameLayout;
                             switch (deviceUI.CommonDevice.Type)
                             {
                                 case DeviceType.OnOffOutput:
@@ -137,46 +132,17 @@
                                     {
                                         var onOffOutputLight = deviceUI.CommonDevice as ZigBee.Device.ToggleLight;
                                         onOffOutputLight.DeviceStatusReport = (common as ZigBee.Device.ToggleLight).DeviceStatusReport;
-                                        for (int j = 0; j < frameLayout.ChildrenCount; j++)
-                                        {
-                                            var tempView = frameLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_OnOffStatus)
-                                            {
-                                                //璁板綍銆佹洿鏂扮姸鎬�
-                                                if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0)
-                                                {
-                                                    continue;
-                                                }
-                                                onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                                (tempView as Button).IsSelected = onOffOutputLight.OnOffStatus == 1;
-                                                //璁板綍鍥炲鏃堕棿
-                                                onOffOutputLight.LastDateTime = DateTime.Now;
-                                            }
-                                        }
-                                    }
-                                    //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                                    if ((common as ZigBee.Device.ToggleLight).DeviceStatusReport.CluterID == 3)
-                                    {
-                                        var onOffOutputLight = deviceUI.CommonDevice as ToggleLight;
-                                        onOffOutputLight.IsOnline = 1;
-                                        for (int j = 0; j < frameLayout.ChildrenCount; j++)
+
+                                        //璁板綍銆佹洿鏂扮姸鎬�
+                                        if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0)
                                         {
-                                            var tempView = frameLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_Online)
-                                            {
-                                                (tempView as Button).IsSelected = onOffOutputLight.IsOnline == 1;
-                                                //璁板綍鍥炲鏃堕棿
-                                                onOffOutputLight.LastDateTime = DateTime.Now;
-                                            }
+                                            continue;
                                         }
+                                        onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                        (rowFL.GetChildren(0) as FunctionMainView).IsSelected = onOffOutputLight.OnOffStatus == 1;
+                                        (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = CommonFormResouce.GetSwitchStatu(onOffOutputLight.OnOffStatus == 1);
+                                        //璁板綍鍥炲鏃堕棿
+                                        onOffOutputLight.LastDateTime = DateTime.Now;
 
                                     }
                                     break;
@@ -356,31 +322,22 @@
                                 case DeviceType.DimmableLight:
                                     //璋冨厜鐏姛鑳�
                                     //寮�鍏冲姛鑳�
-                                    if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 6)
+                                    if ((common as DimmableLight).DeviceStatusReport.CluterID == 6)
                                     {
-                                        var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
-                                        dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport;
-                                        for (int j = 0; j < frameLayout.ChildrenCount; j++)
+                                        var dimmableLight = deviceUI.CommonDevice as DimmableLight;
+                                        dimmableLight.DeviceStatusReport = (common as DimmableLight).DeviceStatusReport;
+                                        //璁板綍銆佹洿鏂扮姸鎬�
+                                        if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0)
                                         {
-                                            var tempView = frameLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_OnOffStatus)
-                                            {
-                                                //璁板綍銆佹洿鏂扮姸鎬�
-                                                if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0)
-                                                {
-                                                    return;
-                                                }
-                                                dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                                (tempView as Button).IsSelected = dimmableLight.OnOffStatus == 1;
-                                                //璁板綍鍥炲鏃堕棿
-                                                dimmableLight.LastDateTime = DateTime.Now;
-                                            }
+                                            return;
                                         }
+                                        dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                        (rowFL.GetChildren(0) as FunctionMainView).IsSelected = dimmableLight.OnOffStatus == 1;
+                                        (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = CommonFormResouce.GetSwitchStatu(dimmableLight.OnOffStatus == 1);
+                                        //璁板綍鍥炲鏃堕棿
+                                        dimmableLight.LastDateTime = DateTime.Now;
                                     }
+
                                     //浜害
                                     if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 8)
                                     {
@@ -412,27 +369,6 @@
                                                 break;
                                         }
                                     }
-                                    //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                                    if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 3)
-                                    {
-                                        var dimmableLight = deviceUI.CommonDevice as DimmableLight;
-                                        dimmableLight.IsOnline = 1;
-                                        for (int j = 0; j < frameLayout.ChildrenCount; j++)
-                                        {
-                                            var tempView = frameLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_Online)
-                                            {
-                                                (tempView as Button).IsSelected = dimmableLight.IsOnline == 1;
-                                                //璁板綍鍥炲鏃堕棿
-                                                dimmableLight.LastDateTime = DateTime.Now;
-                                            }
-                                        }
-
-                                    }
                                     break;
 
                             }
@@ -444,130 +380,7 @@
                     }
                 });
             }
-            //璁惧鍦ㄧ嚎鐘舵�佷笂鎶�
-            else if (typeTag == "OnlineStatusChange")
-            {
-                Application.RunOnMainThread(() =>
-                {
-                    try
-                    {
-                        for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++)
-                        {
-                            var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout;
-                            var rowLayout = rowFL.GetChildren(0) as RowLayout;
-                            var deviceUI = rowLayout.Tag as DeviceUI;
-                            if (deviceUI.CommonDevice == null || rowLayout.ChildrenCount == 0)
-                            {
-                                //璁惧涓虹┖鎴栬�呮帶浠朵负绌�
-                                continue;
-                            }
-                            if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint)
-                            {
-                                //鍒ゆ柇鏄惁涓哄綋鍓嶈澶�
-                                continue;
-                            }
-                            var frameLayout = rowLayout.GetChildren(0) as FrameLayout;
-                            switch (deviceUI.CommonDevice.Type)
-                            {
-                                case DeviceType.OnOffOutput:
-                                    var onOffOutputLight = deviceUI.CommonDevice as ToggleLight;
-                                    onOffOutputLight.IsOnline = (common as ToggleLight).IsOnline;
-                                    for (int j = 0; j < frameLayout.ChildrenCount; j++)
-                                    {
-                                        var tempView = frameLayout.GetChildren(j);
-                                        if (tempView.Tag == null)
-                                        {
-                                            continue;
-                                        }
-                                        if (tempView.Tag.ToString() == deviceStatus_Online)
-                                        {
-                                            (tempView as Button).IsSelected = onOffOutputLight.IsOnline == 1;
-                                        }
-                                    }
-                                    //璁板綍鍥炲鏃堕棿
-                                    onOffOutputLight.LastDateTime = DateTime.Now;
-                                    break;
-                                case DeviceType.AirSwitch:
-                                    var airSwitch = deviceUI.CommonDevice as AirSwitch;
-                                    airSwitch.IsOnline = (common as AirSwitch).IsOnline;
-                                    for (int j = 0; j < frameLayout.ChildrenCount; j++)
-                                    {
-                                        var tempView = frameLayout.GetChildren(j);
-                                        if (tempView.Tag == null)
-                                        {
-                                            continue;
-                                        }
-                                        if (tempView.Tag.ToString() == deviceStatus_Online)
-                                        {
-                                            (tempView as Button).IsSelected = airSwitch.IsOnline == 1;
-                                        }
-                                    }
-                                    //璁板綍鍥炲鏃堕棿
-                                    airSwitch.LastDateTime = DateTime.Now;
-                                    break;
-                                case DeviceType.WindowCoveringDevice:
-                                    var rollershade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
-                                    rollershade.IsOnline = (common as Rollershade).IsOnline;
-                                    for (int j = 0; j < frameLayout.ChildrenCount; j++)
-                                    {
-                                        var tempView = frameLayout.GetChildren(j);
-                                        if (tempView.Tag == null)
-                                        {
-                                            continue;
-                                        }
-                                        if (tempView.Tag.ToString() == deviceStatus_Online)
-                                        {
-                                            (tempView as Button).IsSelected = rollershade.IsOnline == 1;
-                                        }
-                                    }
-                                    //璁板綍鍥炲鏃堕棿
-                                    rollershade.LastDateTime = DateTime.Now;
-                                    break;
-                                case DeviceType.Thermostat:
-                                    var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
-                                    ac.IsOnline = (common as ZigBee.Device.AC).IsOnline;
-                                    for (int j = 0; j < frameLayout.ChildrenCount; j++)
-                                    {
-                                        var tempView = frameLayout.GetChildren(j);
-                                        if (tempView.Tag == null)
-                                        {
-                                            continue;
-                                        }
-                                        if (tempView.Tag.ToString() == deviceStatus_Online)
-                                        {
-                                            (tempView as Button).IsSelected = ac.IsOnline == 1;
-                                        }
-                                    }
-                                    //璁板綍鍥炲鏃堕棿
-                                    ac.LastDateTime = DateTime.Now;
-                                    break;
-                                case DeviceType.DimmableLight:
-                                    var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
-                                    dimmableLight.IsOnline = (common as ZigBee.Device.DimmableLight).IsOnline;
-                                    for (int j = 0; j < frameLayout.ChildrenCount; j++)
-                                    {
-                                        var tempView = frameLayout.GetChildren(j);
-                                        if (tempView.Tag == null)
-                                        {
-                                            continue;
-                                        }
-                                        if (tempView.Tag.ToString() == deviceStatus_Online)
-                                        {
-                                            (tempView as Button).IsSelected = dimmableLight.IsOnline == 1;
-                                        }
-                                    }
-                                    //璁板綍鍥炲鏃堕棿
-                                    dimmableLight.LastDateTime = DateTime.Now;
-                                    break;
-                            }
-                        }
-                    }
-                    catch (Exception ex)
-                    {
-                        System.Console.WriteLine($"涓婚〉鍔熻兘鍒锋柊-Error:{ex.Message}");
-                    }
-                });
-            }
+           
         }
         /// <summary>
         /// Changeds the IL ogic status.
@@ -845,7 +658,10 @@
             //娑堟伅
             messageBtn.MouseUpEventHandler += (send, e) =>
             {
-
+                var roomList = new Shared.Phone.Device.Room.RoomManagement();
+                HomePage.Instance.AddChidren(roomList);
+                HomePage.Instance.PageIndex += 1;
+                roomList.Show();
             };
 
             #endregion
@@ -914,10 +730,10 @@
                             //    Show();
                             //};
 
-                            var editRoom = new Device.Room.AddRoom();
+                            var editRoom = new Device.Room.EditRoom();
                             HomePage.Instance.AddChidren(editRoom);
                             HomePage.Instance.PageIndex += 1;
-                            editRoom.Show();
+                            editRoom.Show(room);
                             editRoom.action += () =>
                             {
                                 Show();
@@ -1159,7 +975,7 @@
         /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
         private void GoToAddGateWay(object sender, MouseEventArgs mouseEventArgs)
         {
-            UserCenter.GatewayAdd.NewGateWaySelectForm selectNewGateWayForm = new UserCenter.GatewayAdd.NewGateWaySelectForm { };
+            var selectNewGateWayForm = new UserCenter.GatewayAdd.NewGateWaySelectForm { };
             selectNewGateWayForm.AddForm(selectNewGateWayForm);
         }
 
@@ -1172,13 +988,23 @@
         /// </summary>
         private void ShowNoFunctionTip()
         {
+            var noFunction = new Button
+            {
+                Y = Application.GetRealHeight(69),
+                Width = Application.GetMinRealAverage(683),
+                Height = Application.GetMinRealAverage(392),
+                Gravity = Gravity.CenterHorizontal,
+                UnSelectedImagePath = "Item/NoFunction.png"
+            };
+            functionSceneBodyView.AddChidren(noFunction);
+
             var noFunctionTip = new Button()
             {
+                Y=noFunction.Bottom,
                 Height = Application.GetRealHeight(200),
-                TextID = R.MyInternationalizationString.NoFunction,
+                Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}","\r\n"),
                 TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
-                TextAlignment = TextAlignment.Center,
-                Gravity = Gravity.Center
+                IsMoreLines=true
             };
             functionSceneBodyView.AddChidren(noFunctionTip);
         }
@@ -1202,13 +1028,31 @@
             else
             {
                 deviceVerticalScrolViewLayout = new VerticalScrolViewLayout { };
+                
                 functionSceneBodyView.AddChidren(deviceVerticalScrolViewLayout);
-                foreach (var device in deviceList)
+               for(int i=0;i<deviceList.Count;i++)
                 {
+                    int t = i % 2;
+                    int tt = i / 2;
+                    int xx = 43 + i % 2 * (20 + 487);
+                    int yy = 14;
+                    var device = deviceList[i];
                     if (device == null || device.CommonDevice == null)
                     {
                         continue;
                     }
+
+                    if (i % 2 == 0)
+                    {
+                        itemView = new FrameLayout()
+                        {
+                            Height = Application.GetRealHeight(14 + 348),
+                            Tag = device
+                        };
+                        deviceVerticalScrolViewLayout.AddChidren(itemView);
+                    }
+
+                   
                     //鍒犻櫎璁惧
                     EventHandler<MouseEventArgs> delEvent = (sender, e) =>
                     {
@@ -1225,36 +1069,38 @@
                         };
                     };
                     //鏀惰棌
-                    //EventHandler<MouseEventArgs> collectionEvent = (sender, e) =>
-                    //{
-                    //    if ((sender as Button).IsSelected)
-                    //    {
-                    //        Room.Lists[0].DeleteDevice(device.FilePath);
-                    //        (sender as Button).IsSelected = false;
-                    //        if (Room.CurrentRoom == Room.Lists[0])
-                    //        {
-                    //            DeviceVerticalScrolViewLayout.RemoveViewByTag((sender as Button).Tag);
-                    //        }
-                    //    }
-                    //    else
-                    //    {
-                    //        Room.Lists[0].AddDevice(device.FilePath);
-                    //        (sender as Button).IsSelected = true;
-                    //    }
-                    //    //RefreshBodyView();
-                    //};
                     EventHandler<MouseEventArgs> collectionEvent = (sender, e) =>
                     {
-                        if (Room.CurrentRoom == Room.Lists[0])
+                        if ((sender as Button).IsSelected)
                         {
-                            Room.Lists[0].DeleteDevice(device.FileName);
-                            deviceVerticalScrolViewLayout.RemoveViewByTag((sender as Button).Tag);
+                            Shared.Common.Room.GetLoveRoom().DeleteDevice(device.FileName);
+                            (sender as Button).IsSelected = false;
+                        }
+                        else
+                        {
+                            Shared.Common.Room.GetLoveRoom().AddDevice(device.FileName);
+                            (sender as Button).IsSelected = true;
+                        }
+                        if (Room.CurrentRoom.IsLove)
+                        {
+                            RefreshBodyView();
                         }
                     };
 
                     //////鍒ゆ柇璁惧鏄惁鏀寔鐨勫睘鎬� 濡傚紑鍏崇瓑鎺у埗
                     if (device.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
                     {
+                        var lightView = new FunctionMainView(xx, yy);
+                        itemView.AddChidren(lightView);
+                        lightView.Init();
+                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                        lightView.SetStatuText("寮�");
+                        lightView.SetDeviceName("lightee");
+                        //lightView.SetStatu(true);
+                        lightView.IsSelected = true;
+                        lightView.SetCollect(true);
+
+                        continue;
                         //绐楀笜 鍗峰笜
                         var rollerShade = (ZigBee.Device.Rollershade)device.CommonDevice;
                         //涓嶄笂闈炶繙绋�
@@ -1603,6 +1449,7 @@
                     {
                         //寮�鍏崇伅
                         var light = device.CommonDevice as ToggleLight;
+
                         //琛ヤ笂闈炶繙绋�
                         if (light.Gateway == null)
                         {
@@ -1626,96 +1473,29 @@
                             }
                         }
 
+                        var lightView = new FunctionMainView(xx,yy);
+                        itemView.AddChidren(lightView);
+                        lightView.Init();
+                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                        lightView.SetStatuText(CommonFormResouce.GetSwitchStatu(light.OnOffStatus==1));
+                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
+                        lightView.IsSelected = light.OnOffStatus==1;
+                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom,device.FileName));
 
-                        var deviceFL = new FrameLayout
+                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
+                        if (dev == null)
                         {
-                            Height = Application.GetRealHeight(deviceFL_Height),
-                            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                            Tag = device
-                        };
-                        deviceVerticalScrolViewLayout.AddChidren(deviceFL);
-                        var deviceRowLayout = new RowLayout
+                            lightView.CollectButton.IsSelected = false;
+                        }
+                        else
                         {
-                            Y = Application.GetRealHeight(25),
-                            Height = Application.GetRealHeight(deviceFL_Height - 25) - 1,
-                            LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                            BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,
-                            Radius = CommonPage.BigFormRadius,
-                            Tag = device
-                        };
-                        deviceFL.AddChidren(deviceRowLayout);
+                            lightView.CollectButton.IsSelected = true;
+                        }
 
-                        var deviceItemFL = new FrameLayout()
+                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                         {
-                            BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,
-                            Radius = CommonPage.BigFormRadius
-                        };
-                        deviceRowLayout.AddChidren(deviceItemFL);
-                        var deviceIMG = new Button()
-                        {
-                            X = Application.GetRealWidth(50),
-                            Y = Application.GetRealHeight(30),
-                            Width = Application.GetMinRealAverage(110),
-                            Height = Application.GetMinRealAverage(110),
-                            UnSelectedImagePath = device.IconPath,
-                            SelectedImagePath = device.OnlineIconPath,
-                            IsSelected = light.IsOnline == 1,
-                            Tag = deviceStatus_Online
-                        };
-                        deviceItemFL.AddChidren(deviceIMG);
-                        var deviceName = new Button()
-                        {
-                            X = Application.GetRealWidth(10),
-                            Y = deviceIMG.Bottom,
-                            Width = Application.GetRealWidth(180),
-                            Height = Application.GetRealHeight(80),
-                            TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                            TextAlignment = TextAlignment.Center,
-                            Text = device.CommonDevice.DeviceEpointName,
-                            TextSize = 10,
-                            IsMoreLines = true
-                        };
-                        deviceItemFL.AddChidren(deviceName);
-
-                        var collectionBtn = new Button()
-                        {
-                            X = deviceItemFL.Right - Application.GetRealWidth(150),
-                            Y = Application.GetRealHeight(20),
-                            Width = Application.GetMinRealAverage(80),
-                            Height = Application.GetMinRealAverage(80),
-                            UnSelectedImagePath = "Item/Collection.png",
-                            SelectedImagePath = "Item/CollectionSelected.png",
-                            Tag = device
-                        };
-                        //***鍏堥殣钘�******
-                        //deviceItemFL.AddChidren(collectionBtn);
-                        var switchBtnBG = new Button
-                        {
-                            X = deviceItemFL.Right - Application.GetRealWidth(250),
-                            Width = Application.GetMinRealAverage(250),
-                            Height = Application.GetMinRealAverage(250),
-                            Gravity = Gravity.CenterVertical
-                        };
-                        deviceItemFL.AddChidren(switchBtnBG);
-
-                        var switchBtn = new Button
-                        {
-                            X = deviceItemFL.Right - Application.GetRealWidth(200),
-                            //Y = deviceItemFL.Bottom - Application.GetRealHeight(120),
-                            Width = Application.GetMinRealAverage(183),
-                            Height = Application.GetMinRealAverage(123),
-                            UnSelectedImagePath = "Item/Switch.png",
-                            SelectedImagePath = "Item/SwitchSelected.png",
-                            IsSelected = light.OnOffStatus == 1,
-                            Tag = deviceStatus_OnOffStatus,
-                            //Visible=false
-                            Gravity = Gravity.CenterVertical
-                        };
-                        deviceItemFL.AddChidren(switchBtn);
-                        switchBtn.MouseUpEventHandler += (send2, e2) =>
-                        {
-                            switchBtn.IsSelected = !switchBtn.IsSelected;
-                            if (switchBtn.IsSelected == true)
+                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
+                            if ((sender as Button).IsSelected)
                             {
                                 zbGateway = device.CommonDevice.Gateway;
                                 sendedControlCommand = false;
@@ -1724,8 +1504,11 @@
 
                                 light.SwitchControl(1);
 
-                                    //鎺у埗寤舵椂鍥炶皟
-                                    DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(true));
+                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
+
+                                //鎺у埗寤舵椂鍥炶皟
+                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                 {
                                     if (Parent == null)
                                     {
@@ -1747,8 +1530,11 @@
 
                                 light.SwitchControl(0);
 
-                                    //鎺у埗寤舵椂鍥炶皟
-                                    DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(false));
+                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
+
+                                //鎺у埗寤舵椂鍥炶皟
+                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                 {
                                     if (Parent == null)
                                     {
@@ -1763,31 +1549,7 @@
                             }
                         };
 
-
-                        var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton
-                        {
-                            Tag = device,
-                            IsMoreLines = true
-                        };
-                        if (Room.CurrentRoom.IsLove)
-                        {
-                            deleteBtn.TextID = R.MyInternationalizationString.CancelCollect;
-                            deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor;
-                            deleteBtn.MouseUpEventHandler += collectionEvent;
-                            deviceRowLayout.AddRightView(deleteBtn);
-                        }
-                        else if (Room.CurrentRoom.IsSharedRoom)
-                        {
-                            //涓嶅鐞�
-                        }
-                        else
-                        {
-                            deleteBtn.MouseUpEventHandler += delEvent;
-                            deviceRowLayout.AddRightView(deleteBtn);
-                        }
-
-
-                        EventHandler<MouseEventArgs> lightHandler = (sender, e) =>
+                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                         {
                             var lightControl = new Phone.Device.Light.LightControl();
                             UserView.HomePage.Instance.AddChidren(lightControl);
@@ -1795,44 +1557,25 @@
                             lightControl.action = RefreshBodyView;
                             lightControl.Show(device, Room.CurrentRoom);
                         };
-                        //deviceItemFL.MouseLongEventHandler += lightHandler;
-                        deviceItemFL.MouseUpEventHandler += lightHandler;
-                        deviceName.MouseUpEventHandler += lightHandler;
-                        deviceIMG.MouseUpEventHandler += lightHandler;
 
-                        //collectionBtn.MouseUpEventHandler += (sender, e) =>
-                        //{
-                        //    if (collectionBtn.IsSelected)
-                        //    {
-                        //        Room.Lists[0].DeleteDevice(device.FilePath);
-                        //        collectionBtn.IsSelected = false;
-                        //        if(Room.CurrentRoom==Room.Lists[0])
-                        //        {
-                        //            RefreshBodyView();
-                        //        }
-                        //    }
-                        //    else
-                        //    {
-                        //        Room.Lists[0].AddDevice(device.FilePath);
-                        //        collectionBtn.IsSelected = true;
-                        //    }
-                        //    //RefreshBodyView();
-                        //};
-                        collectionBtn.MouseUpEventHandler += collectionEvent;
-
-                        //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FilePath);
-                        //if (dev == null)
-                        //{
-                        //    collectionBtn.IsSelected = false;
-                        //}
-                        //else
-                        //{
-                        //    collectionBtn.IsSelected = true;
-                        //}
+                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
 
                     }
                     else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch)
                     {
+
+                        var lightView = new FunctionMainView(xx, yy);
+                        itemView.AddChidren(lightView);
+                        lightView.Init();
+                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                        lightView.SetStatuText("寮�");
+                        lightView.SetDeviceName("airSwitch");
+                        //lightView.SetStatu(true);
+                        lightView.IsSelected = true;
+                        lightView.SetCollect(true);
+
+                        continue;
+
                         //绌烘皵寮�鍏�
                         var airSwitch = device.CommonDevice as AirSwitch;
 
@@ -2063,6 +1806,18 @@
                     }
                     else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat)
                     {
+
+                        var lightView = new FunctionMainView(xx, yy);
+                        itemView.AddChidren(lightView);
+                        lightView.Init();
+                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                        lightView.SetStatuText("寮�");
+                        lightView.SetDeviceName("绌鸿皟");
+                        //lightView.SetStatu(true);
+                        lightView.IsSelected = true;
+                        lightView.SetCollect(true);
+
+                        continue;
                         //鎭掓俯鍣�-AC-绌鸿皟
                         var ac = device.CommonDevice as AC;
 
@@ -2417,7 +2172,6 @@
                     {
                         //璋冨厜鐏�
                         var dimmableLight = device.CommonDevice as DimmableLight;
-
                         //琛ヤ笂闈炶繙绋�
                         if (dimmableLight.Gateway == null)
                         {
@@ -2430,7 +2184,6 @@
                             {
                                 dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                 dimmableLight.ReadOnOffStatus();
-                                dimmableLight.ReadLevel();
                             });
                         }
                         else
@@ -2440,189 +2193,86 @@
                             {
                                 dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                 dimmableLight.ReadOnOffStatus();
-                                dimmableLight.ReadLevel();
                             }
                         }
 
-                        var deviceFL = new FrameLayout
-                        {
-                            Height = Application.GetRealHeight(deviceFL_Height),
-                            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                            Tag = device
-                        };
-                        deviceVerticalScrolViewLayout.AddChidren(deviceFL);
-                        var deviceRowLayout = new RowLayout
-                        {
-                            Y = Application.GetRealHeight(25),
-                            Height = Application.GetRealHeight(deviceFL_Height - 25) - 1,
-                            LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                            BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,
-                            Radius = CommonPage.BigFormRadius,
-                            Tag = device
-                        };
-                        deviceFL.AddChidren(deviceRowLayout);
+                        var lightView = new FunctionMainView(xx, yy);
+                        itemView.AddChidren(lightView);
+                        lightView.Init();
+                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                        lightView.SetStatuText(CommonFormResouce.GetSwitchStatu(dimmableLight.OnOffStatus == 1));
+                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
+                        lightView.IsSelected = dimmableLight.OnOffStatus == 1;
+                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
 
-                        var deviceItemFL = new FrameLayout()
+                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
+                        if (dev == null)
                         {
-                            BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,
-                            Radius = CommonPage.BigFormRadius
-                        };
-                        deviceRowLayout.AddChidren(deviceItemFL);
-                        var deviceIMG = new Button()
-                        {
-                            X = Application.GetRealWidth(50),
-                            Y = Application.GetRealHeight(30),
-                            Width = Application.GetMinRealAverage(110),
-                            Height = Application.GetMinRealAverage(110),
-                            UnSelectedImagePath = device.IconPath,
-                            SelectedImagePath = device.OnlineIconPath,
-                            IsSelected = dimmableLight.IsOnline == 1,
-                            Tag = deviceStatus_Online
-                        };
-                        deviceItemFL.AddChidren(deviceIMG);
-                        var deviceName = new Button()
-                        {
-                            X = Application.GetRealWidth(10),
-                            Y = deviceIMG.Bottom,
-                            Width = Application.GetRealWidth(180),
-                            Height = Application.GetRealHeight(80),
-                            TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                            TextAlignment = TextAlignment.Center,
-                            Text = device.CommonDevice.DeviceEpointName,
-                            TextSize = 10,
-                            IsMoreLines = true
-                        };
-                        deviceItemFL.AddChidren(deviceName);
-
-                        var levelSeekBar = new HorizontalSeekBar()
-                        {
-                            X = deviceIMG.Right + Application.GetRealWidth(50),
-                            Width = Application.GetRealWidth(500),
-                            Height = Application.GetRealHeight(80),
-                            Gravity = Gravity.CenterVertical,
-                            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
-                        };
-                        deviceItemFL.AddChidren(levelSeekBar);
-                        levelSeekBar.ProgressChanged += (send2, e2) =>
-                        {
-                            dimmableLight.SetLevel(levelSeekBar.Progress);
-                        };
-
-                        var collectionBtn = new Button()
-                        {
-                            X = deviceItemFL.Right - Application.GetRealWidth(150),
-                            Y = Application.GetRealHeight(20),
-                            Width = Application.GetMinRealAverage(80),
-                            Height = Application.GetMinRealAverage(80),
-                            UnSelectedImagePath = "Item/Collection.png",
-                            SelectedImagePath = "Item/CollectionSelected.png",
-                            Tag = device
-                        };
-                        //***鍏堥殣钘�******
-                        //deviceItemFL.AddChidren(collectionBtn);
-                        var switchBtnBG = new Button
-                        {
-                            X = deviceItemFL.Right - Application.GetRealWidth(250),
-                            Width = Application.GetMinRealAverage(250),
-                            Height = Application.GetMinRealAverage(250),
-                            Gravity = Gravity.CenterVertical
-                        };
-                        deviceItemFL.AddChidren(switchBtnBG);
-                        var switchBtn = new Button
-                        {
-                            X = deviceItemFL.Right - Application.GetRealWidth(200),
-                            //Y = deviceItemFL.Bottom - Application.GetRealHeight(120),
-                            Width = Application.GetMinRealAverage(183),
-                            Height = Application.GetMinRealAverage(123),
-                            UnSelectedImagePath = "Item/Switch.png",
-                            SelectedImagePath = "Item/SwitchSelected.png",
-                            IsSelected = dimmableLight.OnOffStatus == 1,
-                            Tag = deviceStatus_OnOffStatus,
-                            //Visible=false
-                            Gravity = Gravity.CenterVertical
-                        };
-                        deviceItemFL.AddChidren(switchBtn);
-                        switchBtn.MouseUpEventHandler += (send2, e2) =>
-                        {
-                            switchBtn.IsSelected = !switchBtn.IsSelected;
-                            if (switchBtn.IsSelected == true)
-                            {
-                                    //zbGateway = device.CommonDevice.Gateway;
-                                    //sendedControlCommand = false;
-                                    //zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                    //AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
-
-                                    dimmableLight.SwitchControl(1);
-
-                                    //鎺у埗寤舵椂鍥炶皟
-                                    //DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
-                                    //{
-                                    //if (Parent == null)
-                                    //{
-                                    //    return;
-                                    //}
-                                    //RemoveUpdateControlDeviceStatuAction(zbGateway);
-                                    //if (sendedControlCommand == false)
-                                    //{
-                                    //    DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                                    //}
-                                    //});
-                                }
-                            else
-                            {
-                                    //zbGateway = device.CommonDevice.Gateway;
-                                    //sendedControlCommand = false;
-                                    //zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                    //AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
-
-                                    dimmableLight.SwitchControl(0);
-
-                                    //鎺у埗寤舵椂鍥炶皟
-                                    //DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
-                                    //{
-                                    //    if (Parent == null)
-                                    //    {
-                                    //        return;
-                                    //    }
-                                    //    RemoveUpdateControlDeviceStatuAction(zbGateway);
-                                    //    if (sendedControlCommand == false)
-                                    //    {
-                                    //        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                                    //    }
-                                    //});
-                                }
-                        };
-
-                        var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton
-                        {
-                            Tag = device,
-                            IsMoreLines = true
-                        };
-                        if (Room.CurrentRoom.IsLove)
-                        {
-                            deleteBtn.TextID = R.MyInternationalizationString.CancelCollect;
-                            deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor;
-                            deleteBtn.MouseUpEventHandler += collectionEvent;
-                            deviceRowLayout.AddRightView(deleteBtn);
-                        }
-                        else if (Room.CurrentRoom.IsSharedRoom)
-                        {
-                            //涓嶅鐞�
+                            lightView.CollectButton.IsSelected = false;
                         }
                         else
                         {
-                            deleteBtn.MouseUpEventHandler += delEvent;
-                            deviceRowLayout.AddRightView(deleteBtn);
+                            lightView.CollectButton.IsSelected = true;
                         }
 
-                        EventHandler<MouseEventArgs> dimmableLightHandler = (sender, e) =>
+                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
+                        {
+                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
+                            if ((sender as Button).IsSelected)
+                            {
+                                zbGateway = device.CommonDevice.Gateway;
+                                sendedControlCommand = false;
+                                zbGateway.ReportAction += UpdateDeviceControllStatu;
+                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
+
+                                dimmableLight.SwitchControl(1);
+
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(true));
+                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
+
+                                //鎺у埗寤舵椂鍥炶皟
+                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
+                                {
+                                    if (Parent == null)
+                                    {
+                                        return;
+                                    }
+                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
+                                    if (sendedControlCommand == false)
+                                    {
+                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                    }
+                                });
+                            }
+                            else
+                            {
+                                zbGateway = device.CommonDevice.Gateway;
+                                sendedControlCommand = false;
+                                zbGateway.ReportAction += UpdateDeviceControllStatu;
+                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
+
+                                dimmableLight.SwitchControl(0);
+
+                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(false));
+                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
+
+                                //鎺у埗寤舵椂鍥炶皟
+                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
+                                {
+                                    if (Parent == null)
+                                    {
+                                        return;
+                                    }
+                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
+                                    if (sendedControlCommand == false)
+                                    {
+                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                                    }
+                                });
+                            }
+                        };
+
+                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                         {
                             var dimmableLightControl = new Phone.Device.Light.DimmableLightControl();
                             UserView.HomePage.Instance.AddChidren(dimmableLightControl);
@@ -2631,43 +2281,22 @@
                             dimmableLightControl.action = RefreshBodyView;
                             dimmableLightControl.Show(device, Room.CurrentRoom);
                         };
-                        //deviceItemFL.MouseLongEventHandler += dimmableLightHandler;
-                        deviceItemFL.MouseUpEventHandler += dimmableLightHandler;
-                        deviceName.MouseUpEventHandler += dimmableLightHandler;
-                        deviceIMG.MouseUpEventHandler += dimmableLightHandler;
 
-                        //collectionBtn.MouseUpEventHandler += (sender, e) =>
-                        //{
-                        //    if (collectionBtn.IsSelected)
-                        //    {
-                        //        Room.Lists[0].DeleteDevice(device.FilePath);
-                        //        collectionBtn.IsSelected = false;
-                        //        if(Room.CurrentRoom==Room.Lists[0])
-                        //        {
-                        //            RefreshBodyView();
-                        //        }
-                        //    }
-                        //    else
-                        //    {
-                        //        Room.Lists[0].AddDevice(device.FilePath);
-                        //        collectionBtn.IsSelected = true;
-                        //    }
-                        //    //RefreshBodyView();
-                        //};
-                        collectionBtn.MouseUpEventHandler += collectionEvent;
-
-                        //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FilePath);
-                        //if (dev == null)
-                        //{
-                        //    collectionBtn.IsSelected = false;
-                        //}
-                        //else
-                        //{
-                        //    collectionBtn.IsSelected = true;
-                        //}
+                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                     }
                     else if (device.CommonDevice.Type == DeviceType.OnOffSwitch)
                     {
+                        var lightView = new FunctionMainView(xx, yy);
+                        itemView.AddChidren(lightView);
+                        lightView.Init();
+                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
+                        lightView.SetStatuText("寮�");
+                        lightView.SetDeviceName("鎸夐敭");
+                        //lightView.SetStatu(true);
+                        lightView.IsSelected = true;
+                        lightView.SetCollect(true);
+
+                        continue;
                         //鎸夐敭
                         var panel = (Panel)device.CommonDevice;
 
@@ -2686,13 +2315,22 @@
         /// </summary>
         private void ShowNoSceneTip()
         {
+            var noScene = new Button
+            {
+                Y = Application.GetRealHeight(69),
+                Width = Application.GetMinRealAverage(683),
+                Height = Application.GetMinRealAverage(392),
+                Gravity = Gravity.CenterHorizontal,
+                UnSelectedImagePath = "Item/NoFunction.png"
+            };
+            functionSceneBodyView.AddChidren(noScene);
             var noScenceTip = new Button()
             {
+                Y=noScene.Bottom,
                 Height = Application.GetRealHeight(200),
-                TextID = R.MyInternationalizationString.NoScene,
+                Text =Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}","\r\n"),
                 TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
-                TextAlignment = TextAlignment.Center,
-                Gravity = Gravity.Center,
+                IsMoreLines=true
             };
             functionSceneBodyView.AddChidren(noScenceTip);
         }
@@ -2716,81 +2354,66 @@
             {
                 var sceneScrolView = new VerticalScrolViewLayout { };
                 functionSceneBodyView.AddChidren(sceneScrolView);
-                foreach (var scene in sceneList)
+                for(int i=0;i<sceneList.Count;i++)
                 {
+                    var scene = sceneList[i];
+                    int xx = 43 + i % 2 * (20 + 487);
+                    int yy = 14;
                     if (scene == null)
                     {
                         continue;
                     }
-                    var sceneFL = new FrameLayout()
+
+                    if (i % 2 == 0)
                     {
-                        Height = Application.GetRealHeight(400),
-                        BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                        Tag = scene
-                    };
-                    sceneScrolView.AddChidren(sceneFL);
-                    var sceneRowLayout = new RowLayout()
-                    {
-                        Y = Application.GetRealHeight(30),
-                        Height = Application.GetRealHeight(400 - 10 - 30),
-                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
-                        Radius = CommonPage.BigFormRadius
-                    };
-                    sceneFL.AddChidren(sceneRowLayout);
-                    var sceneItemFL = new FrameLayout()
-                    {
-                        BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                        Radius = CommonPage.BigFormRadius
-                    };
-                    sceneRowLayout.AddChidren(sceneItemFL);
-                    var sceneImg = new Button()
-                    {
-                        UnSelectedImagePath = scene.IconPath,
-                        Radius = CommonPage.BigFormRadius
-                    };
-                    sceneItemFL.AddChidren(sceneImg);
-                    var hardBlackBG = new Button()
-                    {
-                        BackgroundColor = ZigbeeColor.Current.GXCBlack70Color,
-                        SelectedBackgroundColor = ZigbeeColor.Current.GXCBlack80Color,
-                        Radius = CommonPage.BigFormRadius
-                    };
-                    sceneItemFL.AddChidren(hardBlackBG);
-                    var sceneNameBtn = new Button()
-                    {
-                        Text = scene.Name,
-                        TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                        TextSize = 20
-                    };
-                    sceneItemFL.AddChidren(sceneNameBtn);
-                    //缂栬緫
-                    var editBtn = new Device.CommonForm.RowLayoutEditButton
-                    {
-                        TextID = R.MyInternationalizationString.Edit,
-                        Tag = scene
-                    };
-                    //鍒犻櫎
-                    var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton
-                    {
-                        Tag = scene
-                    };
-                    if (!Room.CurrentRoom.IsSharedRoom)
-                    {
-                        sceneRowLayout.AddRightView(editBtn);
-                        sceneRowLayout.AddRightView(deleteBtn);
+                        itemView = new FrameLayout()
+                        {
+                            Height = Application.GetRealHeight(14 + 348),
+                            Tag = scene
+                        };
+                        sceneScrolView.AddChidren(itemView);
                     }
 
-                    EventHandler<MouseEventArgs> sceneDownHandler = (sender, e) =>
+                    var sceneView = new SceneMainView(xx, yy);
+                    itemView.AddChidren(sceneView);
+                    sceneView.Init();
+                    sceneView.SetSceneNameText(scene.Name);
+                    sceneView.SetIcon($"SceneIcon/{i}.png");
+                    sceneView.SetCollect(scene.IsCollected);
+
+                    if (scene.SceneDelayTime == 0)
                     {
-                        hardBlackBG.IsSelected = true;
+                        sceneView.SetTimeImage();
+                    }
+                    else
+                    {
+                        sceneView.SetTimeText(scene.SceneDelayTime.ToString());
+                    }
+
+                    sceneView.TimeButton.MouseUpEventHandler += (sender, e) =>
+                    {
+                        var timeSelect = new SelectTime();
+                        CommonPage.Instance.AddChidren(timeSelect);
+                        timeSelect.TempTime = scene.DelayTime;
+                        timeSelect.Init();
+                        timeSelect.TimeAction = (t) =>
+                        {
+                            scene.SceneDelayTime = t;
+                            if(t>0)
+                            {
+                                sceneView.SetTimeText(CommonFormResouce.GetTimeString(scene.SceneDelayTime));
+                            }
+                            else
+                            {
+                                sceneView.SetTimeImage();
+                            }
+                        };
+
                     };
-                    sceneNameBtn.MouseDownEventHandler += sceneDownHandler;
-                    hardBlackBG.MouseDownEventHandler += sceneDownHandler;
 
                     //璋冪敤鍦烘櫙
                     EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) =>
                     {
-                        hardBlackBG.IsSelected = false;
                             //1鎴愬姛 0澶辫触
                             //鍚庨潰琛ヤ笂鐩稿叧鎻愮ず
                             // Error鍙傛暟鍚箟
@@ -2799,7 +2422,7 @@
                             //<para>3锛氭搷浣滆澶�/缁�/鍦烘櫙涓嶅瓨鍦�</para>
                             //<para>4锛氬叾浠栭敊璇�</para>
                             //<para>5锛氭暟鎹紶杈撻敊璇紙鍦ㄦ煇娆″鎴风鍚戠綉鍏冲彂閫佹暟鎹殑杩囩▼涓紝缃戝叧鍦ㄥ悎鐞嗘椂闂磋寖鍥村唴鎺ユ敹瀹㈡埛绔暟鎹笉瀹屾暣瀵艰嚧璇ラ敊璇彂鐢熴�傚瀹㈡埛绔悜缃戝叧涓�娆″彂閫�100涓瓧鑺傜殑鏁版嵁锛屼絾缃戝叧绛夊緟鎺ユ敹浜嗕竴绉掑彧鎺ユ敹浜�80涓瓧鑺傘�傚彂鐢熻閿欒锛岀綉鍏冲皢涓诲姩鍏抽棴瀹㈡埛绔繛鎺ワ級</para>
-                            var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, 0);
+                            var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime);
                         if (sceneOpenAllData == null || sceneOpenAllData.sceneOpenData == null)
                         {
                             return;
@@ -2813,54 +2436,32 @@
                             CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ControlSceneFail);
                         }
                     };
-                    sceneNameBtn.MouseUpEventHandler += sceneUpHandler;
-                    hardBlackBG.MouseUpEventHandler += sceneUpHandler;
-
-                    //缂栬緫鍦烘櫙
-                    EventHandler<MouseEventArgs> editEvent = (sender, e) =>
+                    //鏀惰棌
+                    EventHandler<MouseEventArgs> collectionEvent = (sender, e) =>
                     {
-                        SceneRoomUI.EditScene(scene, Room.CurrentRoom);
-                    };
-                    editBtn.MouseUpEventHandler += editEvent;
-
-                    //鍒犻櫎鍦烘櫙
-                    EventHandler<MouseEventArgs> delEvent = (sender, e) =>
-                    {
-                        var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.ConfirmDelete), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
-                        alert.Show();
-                        alert.ResultEventHandler += async (send1, e1) =>
+                        if ((sender as Button).IsSelected)
                         {
-                            if (e1)
-                            {
-                                    //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅�
-                                    var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id);
-                                if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null)
-                                {
-                                    return;
-                                }
-                                if (removeSceneAllData.removeSceneData.Result == 1)
-                                {
-                                        //1鎴愬姛
-                                        Room.CurrentRoom.RemoveScene(scene);
-                                        //RefreshBodyView();
-                                        sceneScrolView.RemoveViewByTag((sender as Button).Tag);
-                                }
-                                else if (removeSceneAllData.removeSceneData.Result == 0)
-                                {
-                                        //0 绉婚櫎澶辫触
-                                        CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.DeleteSceneFail);
-                                }
-                                else if (removeSceneAllData.removeSceneData.Result == 2)
-                                {
-                                        //2 娌℃湁璇ュ満鏅�
-                                        Room.CurrentRoom.RemoveScene(scene);
-                                        //RefreshBodyView();
-                                        sceneScrolView.RemoveViewByTag((sender as Button).Tag);
-                                }
-                            }
-                        };
+                            scene.Collect(false);
+                            (sender as Button).IsSelected = false;
+                        }
+                        else
+                        {
+                            scene.Collect(true);
+                            (sender as Button).IsSelected = true;
+                        }
+                        scene.Save();
+                        //if (Room.CurrentRoom.IsLove)
+                        //{
+                        //    RefreshBodyView();
+                        //}
+
                     };
-                    deleteBtn.MouseUpEventHandler += delEvent;
+
+                    sceneView.CollectButton.MouseUpEventHandler += collectionEvent;
+                    sceneView.MouseUpEventHandler += sceneUpHandler;
+                    sceneView.SceneIcon.MouseUpEventHandler+= sceneUpHandler;
+                    sceneView.SceneNameButton.MouseUpEventHandler += sceneUpHandler;
+
                 }
             }
 

--
Gitblit v1.8.0