From 8b4d79ca03495e522a1953e04ca17527f33c853a Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 28 十月 2019 13:22:17 +0800
Subject: [PATCH] 合并完成代码

---
 ZigbeeApp/Shared/Phone/Device/Category/Category.cs |  250 ++++++++++++++++++++++++-------------------------
 1 files changed, 124 insertions(+), 126 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
index 01dd736..9ed8a71 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -90,7 +90,7 @@
         /// <summary>
         /// 璁惧绫诲瀷RowLayout
         /// </summary>
-        private RowLayout typeRowLayout;
+        private FrameLayout typeRowLayout;
         /// <summary>
         /// 妤煎眰
         /// </summary>
@@ -162,10 +162,10 @@
                             {
                                 case DeviceType.OnOffOutput:
                                     //寮�鍏冲姛鑳�
-                                    if ((common as ToggleLight).DeviceStatusReport.CluterID == 6)
+                                    if (common.DeviceStatusReport.CluterID == 6)
                                     {
                                         var light = deviceUI.CommonDevice as ToggleLight;
-                                        light.DeviceStatusReport = (common as ToggleLight).DeviceStatusReport;
+                                        light.DeviceStatusReport = common.DeviceStatusReport;
                                         for (int j = 0; j < rowLayout.ChildrenCount; j++)
                                         {
                                             var tempView = rowLayout.GetChildren(j);
@@ -187,7 +187,7 @@
                                             }
                                         }
                                     }
-                                    if ((common as ToggleLight).DeviceStatusReport.CluterID == 3)
+                                    if (common.DeviceStatusReport.CluterID == 3)
                                     {
                                         var light = deviceUI.CommonDevice as ToggleLight;
                                         light.IsOnline = 1;
@@ -210,10 +210,10 @@
 
                                 case DeviceType.AirSwitch:
                                     //寮�鍏冲姛鑳�
-                                    if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 6)
+                                    if (common.DeviceStatusReport.CluterID == 6)
                                     {
                                         var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
-                                        airSwitch.DeviceStatusReport = (common as ZigBee.Device.AirSwitch).DeviceStatusReport;
+                                        airSwitch.DeviceStatusReport = common.DeviceStatusReport;
                                         for (int j = 0; j < rowLayout.ChildrenCount; j++)
                                         {
                                             var tempView = rowLayout.GetChildren(j);
@@ -235,7 +235,7 @@
                                             }
                                         }
                                     }
-                                    if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 3)
+                                    if (common.DeviceStatusReport.CluterID == 3)
                                     {
                                         var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
                                         airSwitch.IsOnline = 1;
@@ -256,7 +256,7 @@
                                     }
                                     break;
                                 case DeviceType.WindowCoveringDevice:
-                                    if ((common as Rollershade).DeviceStatusReport.CluterID == 3)
+                                    if (common.DeviceStatusReport.CluterID == 3)
                                     {
                                         var rollerShape = deviceUI.CommonDevice as Rollershade;
                                         //璁板綍鍥炲鏃堕棿
@@ -279,15 +279,15 @@
 
                                 case DeviceType.Thermostat:
                                     //AC鍔熻兘
-                                    if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 513)
+                                    if (common.DeviceStatusReport.CluterID == 513)
                                     {
-                                        var attriButeList = (common as ZigBee.Device.AC).DeviceStatusReport.AttriBute;
+                                        var attriButeList = common.DeviceStatusReport.AttriBute;
                                         if (attriButeList == null || attriButeList.Count == 0)
                                         {
                                             return;
                                         }
                                         var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
-                                        ac.DeviceStatusReport = (common as ZigBee.Device.AC).DeviceStatusReport;
+                                        ac.DeviceStatusReport = common.DeviceStatusReport;
                                         switch (attriButeList[0].AttributeId)
                                         {
                                             case 0:
@@ -336,7 +336,7 @@
                                         }
 
                                     }
-                                    if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 3)
+                                    if (common.DeviceStatusReport.CluterID == 3)
                                     {
                                         var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
                                         ac.IsOnline = 1;
@@ -358,10 +358,10 @@
                                     break;
                                 case DeviceType.DimmableLight:
                                     //璋冨厜鐏姛鑳�
-                                    if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 6)
+                                    if (common.DeviceStatusReport.CluterID == 6)
                                     {
                                         var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
-                                        dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport;
+                                        dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
                                         for (int j = 0; j < rowLayout.ChildrenCount; j++)
                                         {
                                             var tempView = rowLayout.GetChildren(j);
@@ -383,7 +383,7 @@
                                             }
                                         }
                                     }
-                                    if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 3)
+                                    if (common.DeviceStatusReport.CluterID == 3)
                                     {
                                         var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
                                         dimmableLight.IsOnline = 1;
@@ -705,7 +705,7 @@
         {
             var floors = new SelectFloor ();
             AddChidren(floors);
-            floors.Init(599,357,Direction.Right);
+            floors.Init(580,330,Direction.Right);
             floors.FloorAction += (floorName) =>
             {
                 floorBtn.Text = floorName;
@@ -1006,8 +1006,8 @@
                                 sendedControlCommand = false;
                                 zbGateway.ReportAction += UpdateDeviceControllStatu;
                                 AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-                                (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
-                                if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
+                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
+                                if ((send2 as Button).IsSelected)
                                 {
                                     light.SwitchControl(1);
                                 }
@@ -1418,10 +1418,9 @@
 
                 foreach (var deviceType in Common.Room.GetdeviceTypes(room))
                 {
-                    typeRowLayout = new RowLayout()
+                    typeRowLayout = new FrameLayout()
                     {
                         Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5),
-                        LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                         Tag = deviceType
                     };
                     functionTypeScrowView.AddChidren(typeRowLayout);
@@ -1434,19 +1433,14 @@
                     functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType));
                     typeRowLayout.AddChidren(functionTypeIMG);
 
-
-                    functionTypeIMG.ImageBtn.MouseUpEventHandler += ShowSameTypeFunction;
-                    functionTypeIMG.NameBtn.MouseUpEventHandler += ShowSameTypeFunction;
-                    functionTypeIMG.ImageBG.MouseUpEventHandler += ShowSameTypeFunction;
+                    functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction;
+                   
 
                     if (deviceType == room.DeviceUIList[0].CommonDevice.Type)
                     {
                         ShowSameTypeFunction(functionTypeIMG.ImageBtn, null);
                     }
-
                 }
-
-
             }
         }
 
@@ -1476,11 +1470,10 @@
             Button curBtn = new Button();
             foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom())
             {
-                var row = new RowLayout()
+                var row = new FrameLayout()
                 {
                     Width = Application.GetRealWidth(187 + 50),
-                    Height = Application.GetRealHeight(167),
-                    LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor
+                    Height = Application.GetRealHeight(167)
                 };
                 roomFL.AddChidren(row);
 
@@ -1553,6 +1546,7 @@
         /// <param name="room"></param>
         public void RefreshScene(Common.Room room)
         {
+            functionSceneBodyView.RemoveAll();
             var sceneList = room.SceneUIList;
             if (sceneList.Count == 0)
             {
@@ -1612,20 +1606,48 @@
                         Width = Application.GetMinRealAverage(65),
                         Height = Application.GetMinRealAverage(65),
                         UnSelectedImagePath = "Item/Collection.png",
-                        SelectedImagePath = "Item/CollectionSelected.png"
+                        SelectedImagePath = "Item/CollectionSelected.png",
+                        IsSelected = Common.Room.CurrentRoom.GetLoveRoom().SceneUIFilePathList.Contains(scene.FileName),
+                        Tag = scene
                     };
                     leftFL.AddChidren(collectionBtn);
-
+                    
                     var sceneNameBtn = new Button()
                     {
                         Width = Application.GetRealWidth(176),
-                        Height = Application.GetRealHeight(200),
+                        Height = Application.GetRealHeight(150),
                         TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
                         Text = scene.Name,
                         Gravity = Gravity.Center,
                         IsMoreLines = true
                     };
                     leftFL.AddChidren(sceneNameBtn);
+
+                    var collection = new Button
+                    {
+                        Tag=scene
+                    };
+                    leftFL.AddChidren(collection);
+                    collection.MouseUpEventHandler += (sender, e) =>
+                    {
+                        if (room.IsLove)
+                        {
+                            Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene);
+                            sceneScrolView.RemoveViewByTag(collectionBtn.Tag);
+                        }
+                        else
+                        {
+                            collectionBtn.IsSelected = !collectionBtn.IsSelected;
+                            if (collectionBtn.IsSelected)
+                            {
+                                Common.Room.CurrentRoom.GetLoveRoom().AddScene(scene);
+                            }
+                            else
+                            {
+                                Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene);
+                            }
+                        }
+                    };
 
                     //瀹氭椂
                     var delayBtn = new RowLayoutDeleteButton
@@ -1638,7 +1660,7 @@
                     //缂栬緫
                     var settingBtn = new Device.CommonForm.RowLayoutEditButton()
                     {
-                        TextID = R.MyInternationalizationString.Setting,
+                        TextID = R.MyInternationalizationString.Editor,
                         Tag = scene.SceneDelayTime
                     };
                     //鍒犻櫎
@@ -1688,83 +1710,75 @@
                     //鍒犻櫎鍦烘櫙
                     EventHandler<MouseEventArgs> delEvent = (sender, e) =>
                     {
-                        var tip = new CustomAlert { };
-                        AddChidren(tip);
-                        tip.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete));
-                        
-                        //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();
-                        tip.ResultEventHandler += async (e1) =>
+                        if(room.IsLove)
                         {
-                            if (e1)
+                            Shared.Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene);
+                            sceneScrolView.RemoveViewByTag((sender as Button).Tag);
+                        }
+                        else
+                        {
+                            var tip = new CustomAlert { };
+                            AddChidren(tip);
+                            tip.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete));
+
+                            //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();
+                            tip.ResultEventHandler += async (e1) =>
                             {
-                                //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅�
-                                var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id);
-                                if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null)
+                                if (e1)
                                 {
-                                    //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine);
-                                    CommonPage.Instance.FailureToServer();
-                                    return;
+                                    //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅�
+                                    var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id);
+                                    if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null)
+                                    {
+                                        //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine);
+                                        CommonPage.Instance.FailureToServer();
+                                        return;
+                                    }
+                                    //1鎴愬姛
+                                    if (removeSceneAllData.removeSceneData.Result == 1)
+                                    {
+                                        room.RemoveScene(scene);
+                                        //RefreshBodyView();
+                                        sceneScrolView.RemoveViewByTag((sender as Button).Tag);
+                                    }
+                                    //0 绉婚櫎澶辫触
+                                    else if (removeSceneAllData.removeSceneData.Result == 0)
+                                    {
+                                        CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
+                                        return;
+                                    }
+                                    //2 娌℃湁璇ュ満鏅�
+                                    else if (removeSceneAllData.removeSceneData.Result == 2)
+                                    {
+                                        room.RemoveScene(scene);
+                                        //RefreshBodyView();
+                                        sceneScrolView.RemoveViewByTag((sender as Button).Tag);
+                                        CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull);
+                                        return;
+                                    }
                                 }
-                                //1鎴愬姛
-                                if (removeSceneAllData.removeSceneData.Result == 1)
-                                {
-                                    room.RemoveScene(scene);
-                                    //RefreshBodyView();
-                                    sceneScrolView.RemoveViewByTag((sender as Button).Tag);
-                                }
-                                //0 绉婚櫎澶辫触
-                                else if (removeSceneAllData.removeSceneData.Result == 0)
-                                {
-                                    CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
-                                    return;
-                                }
-                                //2 娌℃湁璇ュ満鏅�
-                                else if (removeSceneAllData.removeSceneData.Result == 2)
-                                {
-                                    room.RemoveScene(scene);
-                                    //RefreshBodyView();
-                                    sceneScrolView.RemoveViewByTag((sender as Button).Tag);
-                                    CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull);
-                                    return;
-                                }
-                            }
-                        };
+                            };
+                        }
+                        
                     };
                     deleteBtn.MouseUpEventHandler += delEvent;
                     //缂栬緫鍦烘櫙
                     settingBtn.MouseUpEventHandler += (sender, e) =>
                     {
-                        SceneRoomUI.EditScene(scene,room);
+                        SceneUI.EditScene(scene, room);
                     };
                     //缂栬緫寤舵椂
                     delayBtn.MouseUpEventHandler += (sender, e) =>
                     {
-                        var tList = new List<string>() { };
-
-                        for (int i = 0; i < 60; i++)
+                        var timeSelect = new SelectTime();
+                        CommonPage.Instance.AddChidren(timeSelect);
+                        timeSelect.TempTime = scene.SceneDelayTime;
+                        timeSelect.Init();
+                        timeSelect.TimeAction = (t) =>
                         {
-                            tList.Add($"{i} {Language.StringByID(R.MyInternationalizationString.Second)}");
-                        }
-                        //int beforeIndex = (int)(sender as CommonForm.RowLayoutEditButton).Tag;
-                        //PickerView.Show(tList, (obj) =>
-                        //{
-                        //    var tempRoom = Shared.Common.Room.GetRoomByFilePath(sceneRoomUI.room.FileName);
-                        //    if (tempRoom == null)
-                        //    {
-                        //        return;
-                        //    }
-                        //    foreach (var ss in tempRoom.SceneUIList)
-                        //    {
-                        //        if (ss.Id == sceneRoomUI.sceneUI.Id)
-                        //        {
-                        //            //ss.SceneDelayTime = int.Parse(obj.Split(' ')[0]);
-                        //            sceneRoomUI.room.Save();
-                        //            RefreshBodyView();
-                        //            return;
-                        //        }
-                        //    }
-                        //}, Language.StringByID(R.MyInternationalizationString.Confrim), tList[(int)(sender as CommonForm.RowLayoutEditButton).Tag]);
+                            scene.SceneDelayTime = t;
+                        };
                     };
                 }
             }
@@ -1807,7 +1821,7 @@
         /// <summary>
         /// 鑷姩鍖�
         /// </summary>
-        public async void ShowAutotion()
+        private async void ShowAutotion()
         {
 
             functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
@@ -1975,34 +1989,19 @@
             CommonPage.Loading.Start();
             if (Common.Logic.LogicList.Count == 0)
             {
-                //var Idlist = await Logic.Send.GetLogicId();
-                //if (Idlist.Count != 0)
-                //{
-                //    foreach (var LogicId in Idlist)
-                //    {
-                //        var logic = await Logic.Send.GetLogic(LogicId);
-                //        if (logic != null)
-                //        {
-                //            Common.Logic.LogicList.Add(logic);
-                //        }
-                //    }
-                //}
-                var Idlist = await Logic.Send.GetLogicId();
+                var Idlist = await Logic.Send.GetLogicId(0);
                 if (Idlist.Count != 0)
                 {
-                    var listlogic = await Logic.Send.ReadList(Idlist.Count);
-                    for (int i = 0; i < Idlist.Count; i++)
+                    var listlogic = await Logic.Send.ReadList(Idlist.Count,0);
+                    //foreach鍙兘闆嗗悎宸茶淇敼,鏋氫妇鎿嶄綔鍙兘涓嶄細鎵ц,鍙兘鍑虹幇宕╂簝(寤鸿for)銆�
+                    for (int j = 0; j < listlogic.Count; j++)
                     {
-                        var LogicId = Idlist[i];
-                        //foreach鍙兘闆嗗悎宸茶淇敼,鏋氫妇鎿嶄綔鍙兘涓嶄細鎵ц,鍙兘鍑虹幇宕╂簝(寤鸿for)銆�
-                        for (int j = 0; j < listlogic.Count; j++)
+                        var logic = listlogic[j];
+                        if (logic.LogicType != 0)
                         {
-                            var logic = listlogic[j];
-                            if (logic.LogicId == LogicId)
-                            {
-                                Common.Logic.LogicList.Add(logic);
-                            }
+                            continue;
                         }
+                        Common.Logic.LogicList.Add(logic);
                     }
                 }
             }
@@ -2015,7 +2014,7 @@
         /// 鑷姩鍖栧垪琛ㄧ晫闈�
         /// </summary>
         /// <param name="refresview">Refresview.</param>
-        public async void Automationview(VerticalScrolViewLayout refresview)
+        private async void Automationview(VerticalScrolViewLayout refresview)
         {
             refresview.RemoveAll();
             foreach (var logic in Common.Logic.LogicList)
@@ -2100,7 +2099,7 @@
                     Text = Language.StringByID(MyInternationalizationString.edit),
                     TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
                 };
-                bjRow.AddRightView(edit);
+                logicRowlayout.AddRightView(edit);
                 edit.MouseUpEventHandler += (sender, e) =>
                 {
                     Common.Logic.LogicDviceList.Clear();
@@ -2124,7 +2123,7 @@
                     Text = Language.StringByID(MyInternationalizationString.del),
                     TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
                 };
-                bjRow.AddRightView(del);
+                logicRowlayout.AddRightView(del);
                 del.MouseUpEventHandler += (sender, e) =>
                 {
                     var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete),
@@ -2146,8 +2145,6 @@
 
 
         }
-
-        #endregion
 
         #region 鈼� 鎺у埗鐘舵�乢________________________
 
@@ -2614,5 +2611,6 @@
                 }
             }
         }
+        #endregion
     }
 }

--
Gitblit v1.8.0