From 3a26f6025130dcaae4aa82ea19b16ad902450eb8 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 28 十一月 2019 11:43:47 +0800
Subject: [PATCH] 合并全部代码完成

---
 ZigbeeApp/Shared/Phone/Device/Category/Category.cs |  341 ++++++++++++++++----------------------------------------
 1 files changed, 97 insertions(+), 244 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
index ea4d439..777c8a8 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -283,6 +283,20 @@
                                                 ac.currentSystemMode = attriButeList[0].AttriButeData;
                                                 ac.LastDateTime = DateTime.Now;
                                                 break;
+
+                                            case 4099:
+                                                var value = Convert.ToString(attriButeList[0].AttriButeData, 2).PadLeft(16, '0');
+                                                var modeStr = value.Substring(value.Length - 5, 5);
+                                                for (int j = 0; j < modeStr.Length; j++)
+                                                {
+                                                    ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0;
+                                                }
+                                                break;
+
+                                            case 4097:
+                                                //杩囪檻缃戞竻娲楁爣蹇�:42
+                                                ac.CleanStatu = attriButeList[0].AttriButeData == 42;
+                                                break;
                                         }
 
                                         var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
@@ -384,12 +398,14 @@
                                     row.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
                                     deviceUI.CommonDevice.LastDateTime = DateTime.Now;
                                     break;
+
                                 case DeviceType.AirSwitch:
                                     deviceUI.CommonDevice.IsOnline = common.IsOnline;
                                     var row1 = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                     row1.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
                                     deviceUI.CommonDevice.LastDateTime = DateTime.Now;
                                     break;
+
                                 case DeviceType.WindowCoveringDevice:
                                     deviceUI.CommonDevice.LastDateTime = DateTime.Now;
                                     deviceUI.CommonDevice.IsOnline = common.IsOnline;
@@ -403,6 +419,7 @@
                                     var row3 = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                     row3.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
                                     break;
+
                                 case DeviceType.Thermostat:
                                     deviceUI.CommonDevice.LastDateTime = DateTime.Now;
                                     deviceUI.CommonDevice.IsOnline = common.IsOnline;
@@ -608,9 +625,10 @@
             var floors = new SelectFloor ();
             AddChidren(floors);
             floors.Init(580,330,Direction.Right);
-            floors.FloorAction += (floorName) =>
+            floors.changeFloor = true;
+            floors.FloorAction += (floorId) =>
             {
-                floorBtn.Text = floorName;
+                floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId);
                 RefreshBodyView();
             };
         }
@@ -1071,6 +1089,7 @@
 
                             deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                             {
+
                                 var lightControl = new Phone.Device.Light.AirSwitchControl();
                                 UserView.HomePage.Instance.AddChidren(lightControl);
                                 UserView.HomePage.Instance.PageIndex += 1;
@@ -1219,6 +1238,8 @@
                                     ac.ReadFanMode();
                                     ac.ReadSystemMode();
                                     ac.ReadSystemFansSwingMode();
+                                    ac.ReadModeSupport();
+                                    ac.ReadCleanStatu();
                                 });
                             }
                             else
@@ -1234,12 +1255,14 @@
                                     ac.ReadFanMode();
                                     ac.ReadSystemMode();
                                     ac.ReadSystemFansSwingMode();
+                                    ac.ReadModeSupport();
+                                    ac.ReadCleanStatu();
                                 }
                             }
 
                             var deviceTypeRowLayout = new RowLayout()
                             {
-                                Height = Application.GetRealHeight(127 + 35),
+                                Height = Application.GetRealHeight(129 + 35),
                                 LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                 Tag = deviceUI
                             };
@@ -1337,7 +1360,6 @@
                                     rollerShade.ReadWcdCurrentPositionLiftPercentage();
                                 }
                             }
-
 
                             var deviceTypeRowLayout = new RowLayout()
                             {
@@ -1551,6 +1573,8 @@
                     BorderWidth = 1
                 };
                 row.AddChidren(roomBtn);
+                roomBtn.SetViewShadow(true,5);
+
                 if (room.IsLove)
                 {
                     roomBtn.IsSelected = true;
@@ -1564,7 +1588,7 @@
                     {
                         RefreshFunction(room);
                     }
-                   
+
                 }
                 roomBtn.MouseUpEventHandler += (sender, e) =>
                 {
@@ -1585,7 +1609,7 @@
                     }
                 };
             }
-            
+
         }
 
         #endregion
@@ -1613,244 +1637,15 @@
             }
             else
             {
-                var sceneScrolView = new VerticalScrolViewLayout
-                {
-                    //Y = Application.GetRealHeight(58)
-                };
+                var sceneScrolView = new VerticalScrolViewLayout { };
                 functionSceneBodyView.AddChidren(sceneScrolView);
                 foreach (var scene in sceneList)
                 {
-                    var sceneFL = new FrameLayout()
-                    {
-                        Height = Application.GetRealHeight(446),
-                        BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
-                        Tag = scene
-                    };
-                    sceneScrolView.AddChidren(sceneFL);
-                    var sceneRowLayout = new RowLayout
-                    {
-                        Y = Application.GetRealHeight(46),
-                        Height = Application.GetRealHeight(446 - 46),
-                        LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
-                        Radius = CommonPage.BigFormRadius
-                    };
-                    sceneFL.AddChidren(sceneRowLayout);
-
-                    var sceneImg = new Button()
-                    {
-                        X = Application.GetRealWidth(179),
-                        Width = Application.GetRealWidth(844),
-                        Height = Application.GetRealHeight(400),
-                        UnSelectedImagePath = scene.IconPath,
-                        Radius = (uint)Application.GetRealHeight(17)
-                    };
-                    sceneRowLayout.AddChidren(sceneImg);
-
-                    var leftFL = new FrameLayout
-                    {
-                        X = Application.GetRealWidth(CommonFormResouce.X_Left),
-                        Y = Application.GetRealHeight(58),
-                        Width = Application.GetRealWidth(251),
-                        Height = Application.GetRealHeight(282),
-                        BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor2,
-                        Radius = (uint)Application.GetRealHeight(17)
-                    };
-                    sceneRowLayout.AddChidren(leftFL);
-
-                    var collectionBtn = new Button
-                    {
-                        X = Application.GetRealWidth(23),
-                        Y = Application.GetRealHeight(23),
-                        Width = Application.GetMinRealAverage(65),
-                        Height = Application.GetMinRealAverage(65),
-                        UnSelectedImagePath = "Item/Collection.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(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
-                    {
-                        TextID = R.MyInternationalizationString.Delay,
-                        Tag = scene.SceneDelayTime
-                    };
-                    sceneRowLayout.AddLeftView(delayBtn);
-
-                    //缂栬緫
-                    var settingBtn = new Device.CommonForm.RowLayoutEditButton()
-                    {
-                        TextID = R.MyInternationalizationString.Editor,
-                        Tag = scene.SceneDelayTime
-                    };
-                    //鍒犻櫎
-                    var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton
-                    {
-                        Tag = scene
-                    };
-
-
-                    if(room.IsSharedRoom)
-                    {
-
-                    }
-                    else
-                    {
-                        if(room.IsLove)
-                        {
-                            sceneRowLayout.AddRightView(deleteBtn);
-                        }
-                        else
-                        {
-                            sceneRowLayout.AddRightView(settingBtn);
-                            sceneRowLayout.AddRightView(deleteBtn);
-                        }
-                    }
-
-
-                    //璋冪敤鍦烘櫙
-                    EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) =>
-                    {
-                        //1鎴愬姛 0澶辫触
-                        //鍚庨潰琛ヤ笂鐩稿叧鎻愮ず
-                        //瑕佸厛浠庣綉鍏宠鍙栧欢鏃舵槸鍚︽鍦ㄦ墽琛岋紝濡傛灉鏄繘琛屽�掕鏃讹紝涓嶅厑璁稿湪鐐瑰嚮
-                        var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime);
-                        //涓荤綉鍏充笉鍦ㄧ嚎
-                        if (sceneOpenAllData == null)
-                        {
-                            //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine);
-                            CommonPage.Instance.FailureToServer();
-                            return;
-                        }
-                        if (sceneOpenAllData.sceneOpenData == null)
-                        {
-                            CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
-                            return;
-                        }
-                        //鎴愬姛
-                        if (sceneOpenAllData.sceneOpenData.Result == 1)
-                        {
-
-                        }
-                        //澶辫触
-                        else
-                        {
-                            CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
-                            return;
-                        }
-                    };
-                    sceneImg.MouseUpEventHandler += sceneUpHandler;
-                    //鍒犻櫎鍦烘櫙
-                    EventHandler<MouseEventArgs> delEvent = (sender, e) =>
-                    {
-                        if(room.IsLove)
-                        {
-                            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) =>
-                            {
-                                if (e1)
-                                {
-                                    //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;
-                                    }
-                                }
-                            };
-                        }
-                        
-                    };
-                    deleteBtn.MouseUpEventHandler += delEvent;
-                    //缂栬緫鍦烘櫙
-                    settingBtn.MouseUpEventHandler += (sender, e) =>
-                    {
-                        SceneUI.EditScene(scene, room);
-                    };
-                    //缂栬緫寤舵椂
-                    delayBtn.MouseUpEventHandler += (sender, e) =>
-                    {
-                        var timeSelect = new SelectTime();
-                        CommonPage.Instance.AddChidren(timeSelect);
-                        timeSelect.TempTime = scene.SceneDelayTime;
-                        timeSelect.Init();
-                        timeSelect.TimeAction = (t) =>
-                        {
-                            scene.SceneDelayTime = t;
-                        };
-                    };
+                    var sceneView = new SceneCategoryView(0, 0);
+                    sceneScrolView.AddChidren(sceneView);
+                    sceneView.Init(scene, room);
+                    sceneView.SetViewShadow(true);
+                    GetDelayScene(sceneScrolView);
                 }
             }
         }
@@ -1885,6 +1680,63 @@
         }
 
 
+        /// <summary>
+        /// GetDelayScene
+        /// </summary>
+        /// <param name="scrolViewLayout"></param>
+        private void GetDelayScene(VerticalScrolViewLayout scrolViewLayout)
+        {
+            new System.Threading.Thread(async () =>
+            {
+                var catDelaySceneResponseAllData = await Scene.CatDelaySceneAsync();
+                if (catDelaySceneResponseAllData == null)
+                {
+                    return;
+                }
+                var catDelaySceneResponseData = catDelaySceneResponseAllData.catDelaySceneResponseData;
+                if (catDelaySceneResponseData == null || catDelaySceneResponseData.DelayScenesList.Count == 0)
+                {
+                    return;
+                }
+                var delayList = catDelaySceneResponseData.DelayScenesList;
+
+                Application.RunOnMainThread(() =>
+                {
+                    for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++)
+                    {
+                        var sceneView = scrolViewLayout.GetChildren(i) as SceneCategoryView;
+                        foreach (var delayScenesListResponseInfo in delayList)
+                        {
+                            if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id)
+                            {
+                                sceneView.scene.RemainTime = delayScenesListResponseInfo.RemainTime;
+                                new System.Threading.Thread(() =>
+                                {
+                                    while (sceneView.scene.RemainTime > 0)
+                                    {
+                                        System.Threading.Thread.Sleep(1000);
+                                        Application.RunOnMainThread(() =>
+                                        {
+                                            sceneView.SetTimeText(CommonFormResouce.GetTimeString(sceneView.scene.RemainTime));
+                                        });
+                                        sceneView.scene.RemainTime -= 1;
+                                    }
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        sceneView.SetTimeImage();
+                                    });
+                                })
+                                { IsBackground = true }.Start();
+
+                                break;
+                            }
+                        }
+                    }
+                });
+            })
+            { IsBackground = true }.Start();
+        }
+
         #endregion
 
         #region 鈼� 鑷姩鍖朹_________________________
@@ -1902,11 +1754,11 @@
                 Height = Application.GetRealHeight(170),
                 BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
                 X = Application.GetRealWidth(58),
-                Radius = (uint)Application.GetRealHeight(50),
+                //Radius = (uint)Application.GetRealHeight(50),
                 Y = Application.GetRealHeight(30),
             };
             functionSceneAutoBodyView.AddChidren(bjFrameLayout);
-
+            bjFrameLayout.SetCornerWithSameRadius(25, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerBottomLeft);
             var sigBtn = new Button
             {
                 Width = Application.GetMinRealAverage(84),
@@ -1957,10 +1809,11 @@
                 Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30),
                 BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
                 X = Application.GetRealWidth(58),
-                Radius = (uint)Application.GetRealHeight(50),
+                //Radius = (uint)Application.GetRealHeight(50),
                 Y = scenehorizontalScrol.Bottom,
             };
             functionSceneAutoBodyView.AddChidren(logicScrolView);
+            logicScrolView.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerBottomLeft);
 
 
             recommendswitchBtn.MouseUpEventHandler += (sender, e) =>

--
Gitblit v1.8.0