From 03ff92ba7d9f06583f3a292ecb2077cf01e5a5ca Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 10 一月 2020 12:00:15 +0800
Subject: [PATCH] 2019.1.10

---
 ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs               |    3 
 ZigbeeApp/Shared/Common/SceneUI.cs                            |    1 
 ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml                        |   35 ++++--
 ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs          |  103 +++++++++++---------
 ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide                  |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/SceneMainView.cs     |   24 +++-
 ZigbeeApp/Shared/Common/Room.cs                               |  121 ++++++++++++++++++++----
 ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs |    3 
 ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs         |    2 
 9 files changed, 205 insertions(+), 87 deletions(-)

diff --git a/ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml b/ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
index 6fcc2d4..c2a0c08 100644
--- a/ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
+++ b/ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
@@ -2,18 +2,18 @@
   <MonoDevelop.Ide.ItemProperties.GateWay.Droid PreferredExecutionTarget="Android.M7BBB18B19152766" />
   <MonoDevelop.Ide.ItemProperties.GateWay.Ios automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.8c0bdb303f25d82c2a42fb8bfca449bfaca00260" />
   <MonoDevelop.Ide.ItemProperties.ShardLib PreferredExecutionTarget="Android.M7BBB18B19152766" />
-  <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/UserView/UserPage.cs">
+  <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/Device/Room/RoomManagement.cs">
     <Files>
-      <File FileName="Shared/R.cs" Line="1366" Column="1" />
+      <File FileName="Shared/R.cs" Line="1364" Column="1" />
       <File FileName="GateWay.Droid/Assets/Language.ini" />
       <File FileName="Shared/Phone/UserView/UserHomeView.cs" />
-      <File FileName="Shared/Phone/Device/Category/Category.cs" Line="1835" Column="16" />
-      <File FileName="Shared/Phone/Device/CommonForm/SceneCategoryView.cs" Line="434" Column="37" />
-      <File FileName="Shared/Phone/Device/CommonForm/SceneMainView.cs" Line="293" Column="22" />
-      <File FileName="Shared/Phone/Device/CommonForm/SelectZone.cs" Line="23" Column="34" />
-      <File FileName="Shared/Phone/Device/CommonForm/RoomView.cs" Line="86" Column="29" />
-      <File FileName="Shared/Phone/Device/Room/EditRoom.cs" Line="110" Column="29" />
-      <File FileName="Shared/Phone/UserView/UserPage.cs" Line="1" Column="1" />
+      <File FileName="Shared/Phone/Device/Category/Category.cs" />
+      <File FileName="Shared/Phone/Device/CommonForm/SceneCategoryView.cs" />
+      <File FileName="Shared/Phone/Device/CommonForm/SceneMainView.cs" />
+      <File FileName="Shared/Phone/Device/Category/CategoryAddScene.cs" />
+      <File FileName="Shared/Common/SceneUI.cs" />
+      <File FileName="Shared/Common/Room.cs" />
+      <File FileName="Shared/Phone/Device/Room/RoomManagement.cs" Line="1" Column="1" />
     </Files>
     <Pads>
       <Pad Id="ProjectPad">
@@ -36,10 +36,16 @@
                   <Node name="CommonForm" expanded="True" />
                   <Node name="Curtain" expanded="True" />
                   <Node name="Light" expanded="True" />
-                  <Node name="Room" expanded="True" />
+                  <Node name="Room" expanded="True">
+                    <Node name="RoomManagement.cs" selected="True" />
+                  </Node>
                 </Node>
-                <Node name="UserView" expanded="True">
-                  <Node name="UserPage.cs" selected="True" />
+                <Node name="UserCenter" expanded="True">
+                  <Node name="Guide" expanded="True" />
+                </Node>
+                <Node name="UserView" expanded="True" />
+                <Node name="ZigBee" expanded="True">
+                  <Node name="Common" expanded="True" />
                 </Node>
               </Node>
             </Node>
@@ -52,7 +58,10 @@
   <MonoDevelop.Ide.DebuggingService.PinnedWatches />
   <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhoneSimulator" />
   <MonoDevelop.Ide.DebuggingService.Breakpoints>
-    <BreakpointStore />
+    <BreakpointStore>
+      <Breakpoint file="/Users/guoxuecheng/Desktop/HomeApp/ZigbeeApp/Shared/Common/Room.cs" relfile="Shared/Common/Room.cs" line="508" column="1" />
+      <Breakpoint file="/Users/guoxuecheng/Desktop/HomeApp/ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs" relfile="Shared/Phone/Device/Category/SelectFloor.cs" line="137" column="1" />
+    </BreakpointStore>
   </MonoDevelop.Ide.DebuggingService.Breakpoints>
   <MultiItemStartupConfigurations />
 </Properties>
\ No newline at end of file
diff --git a/ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide b/ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide
index 9f64ad8..c81cc3b 100644
--- a/ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide
+++ b/ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide
Binary files differ
diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs
index df0c48c..ce9e8b9 100644
--- a/ZigbeeApp/Shared/Common/Room.cs
+++ b/ZigbeeApp/Shared/Common/Room.cs
@@ -193,6 +193,10 @@
                 var sceneList = new List<SceneUI> { };
                 foreach (var r in Shared.Common.Room.Lists)
                 {
+                    if(r.IsLove)
+                    {
+                        continue;
+                    }
                     if (r.SceneUIList.Count == 0)
                     {
                         continue;
@@ -222,6 +226,11 @@
                 var pathList = new List<string> { };
                 foreach (var r in Lists)
                 {
+                    if(r.IsLove)
+                    {
+                        continue;
+                    }
+
                     if (r.SceneUIFilePathList.Count == 0)
                     {
                         continue;
@@ -263,7 +272,7 @@
                 for (int i = 0; i < Lists.Count; i++)
                 {
                     var room = Lists[i];
-                    if (room.IsSharedRoom)
+                    if (room.IsSharedRoom || room.IsLove)
                     {
                         continue;
                     }
@@ -335,6 +344,7 @@
 
                 }
             }
+
             Config.Instance.Home.InitFloor();
 
             CurrentRoom.RefreshRoomListView();
@@ -709,11 +719,24 @@
         /// <returns></returns>
         public List<Room> GetRoomsByFloorId(string id)
         {
-            if (Config.Instance.Home.FloorDics.Count == 0)
+            try
             {
-                return Lists;
+                if (Lists == null || Lists.Count == 0 || Lists.Count == 1)
+                {
+                    return null;
+                }
+                if (Config.Instance.Home.FloorDics.Count == 0)
+                {
+                    return Lists;
+                }
+                return Lists.FindAll((obj) => obj.FloorId == id);
             }
-            return Lists.FindAll((obj) => obj.FloorId == id);
+            catch(Exception ex)
+            {
+                System.Console.WriteLine(ex.Message);
+                return null;
+            }
+            
         }
         /// <summary>
         /// 鑾峰彇褰撳墠妤煎眰鐨勬埧闂村悕绉�
@@ -1198,17 +1221,8 @@
         /// <param name="scene">Scene.</param>
         public void AddScene(SceneUI scene)
         {
-            //var sceneUI = new SceneUI
-            //{
-            //    Name = scene.Name,
-            //    Id = scene.Id,
-            //    IconPath = scene.IconPath,
-            //    IconPathType = scene.IconPathType,
-            //    AddSceneMemberDataList = scene.AddSceneMemberDataList
-            //};
             SceneUIList.Add(scene);
             SceneUIFilePathList.Add(scene.FileName);
-            scene.Save();
             Save();
         }
 
@@ -1218,10 +1232,13 @@
         /// <param name="scene"></param>
         public void DeleteScene(SceneUI scene)
         {
-            //scene.IsCollected = false;
-            scene.Save();
-            SceneUIList.Remove(scene);
-            SceneUIFilePathList.Remove(scene.FileName);
+            var curScene = SceneUIList.Find((obj) => obj.Id == scene.Id);
+            if (curScene == null)
+            {
+                return;
+            }
+            SceneUIList.Remove(curScene);
+            SceneUIFilePathList.Remove(curScene.FileName);
             Save();
         }
 
@@ -1310,9 +1327,61 @@
             {
                 sceneUI.AddSceneMemberDataList = addCommons;
                 sceneUI.Save();
+                if (IsLove == false)
+                {
+                    var curScene = Common.Room.CurrentRoom.GetLoveRoom().SceneUIList.Find((obj) => obj.Id == sceneUI.Id);
+                    if (curScene != null)
+                    {
+                        curScene.Name = sceneUI.Name;
+                        curScene.IconPath = sceneUI.IconPath;
+                        curScene.IconPathType = sceneUI.IconPathType;
+                        curScene.AddSceneMemberDataList = sceneUI.AddSceneMemberDataList;
+                        curScene.SceneDelayTime = sceneUI.SceneDelayTime;
+                        curScene.Save(false);
+                        Common.Room.CurrentRoom.GetLoveRoom().Save();
+                    }
+                }
                 return 1;
             }
             return 0;
+        }
+
+        /// <summary>
+        /// 璁剧疆銆佸悓姝ュ欢鏃舵椂闂�
+        /// </summary>
+        /// <param name="scene"></param>
+        public void ModifySceneDelayTime(SceneUI scene)
+        {
+            if (IsLove)
+            {
+                foreach (var r in Lists)
+                {
+                    if (r.IsLove || r.SceneUIList.Count == 0)
+                    {
+                        continue;
+                    }
+                    foreach (var sce in r.SceneUIList)
+                    {
+                        if (sce.Id == scene.Id)
+                        {
+                            sce.SceneDelayTime = scene.SceneDelayTime;
+                            sce.Save(false);
+                            r.Save(false);
+                            break;
+                        }
+                    }
+                }
+            }
+            else
+            {
+                var curScene = Common.Room.CurrentRoom.GetLoveRoom().SceneUIList.Find((obj) => obj.Id == scene.Id);
+                if (curScene != null)
+                {
+                    curScene.SceneDelayTime = scene.SceneDelayTime;
+                    curScene.Save(false);
+                    Common.Room.CurrentRoom.GetLoveRoom().Save(false);
+                }
+            }
         }
 
         #endregion
@@ -1329,9 +1398,16 @@
             {
                 return;
             }
-            SceneUIList.Remove(sceneUI);
-            SceneUIFilePathList.Remove(sceneUI.FileName);
-            Save();
+
+            if (sceneUI.IconPathType == 1 || sceneUI.IconPathType == 2)
+            {
+                if (Global.IsExistsByHomeId(sceneUI.IconPath))
+                {
+                    Global.DeleteFilebyHomeId(sceneUI.IconPath);
+                    HdlAutoBackupLogic.DeleteFile(sceneUI.IconPath);
+                }
+            }
+
             if (IsLove == false)
             {
                 if (CurrentRoom.GetLoveRoom().SceneUIList.Find((obj) => obj.Id == sceneUI.Id) != null)
@@ -1339,6 +1415,11 @@
                     CurrentRoom.GetLoveRoom().DeleteScene(sceneUI);
                 }
             }
+
+            SceneUIList.Remove(sceneUI);
+            SceneUIFilePathList.Remove(sceneUI.FileName);
+            Save();
+            
             Global.DeleteFilebyHomeId(sceneUI.FileName);
             HdlAutoBackupLogic.DeleteFile(sceneUI.FileName);
         }
diff --git a/ZigbeeApp/Shared/Common/SceneUI.cs b/ZigbeeApp/Shared/Common/SceneUI.cs
index 5d7b5a1..3f4cd40 100644
--- a/ZigbeeApp/Shared/Common/SceneUI.cs
+++ b/ZigbeeApp/Shared/Common/SceneUI.cs
@@ -232,6 +232,7 @@
                 }
             });
         }
+
         #endregion
 
         #region 鈼� 淇濆瓨____________________________
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs b/ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs
index 965cad9..a45ccfe 100644
--- a/ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/SelectFloor.cs
@@ -133,7 +133,7 @@
             if(changeFloor)
             {
                 Config.Instance.Home.CurrentFloorId = (sender as CommonForm.LeftIconButtonRow).Tag.ToString();
-                Config.Instance.Home.Save();
+                Config.Instance.Home.Save(false);
                 Common.Room.CurrentRoom.RefreshRoomListView();
             }
             RemoveView();
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
index 7fe0130..5f8edaa 100644
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
@@ -373,6 +373,8 @@
                 {
                     scene.SceneDelayTime = t;
                     delayTimeBtn.Text = CommonFormResouce.GetTimeString(t);
+
+                    room.ModifySceneDelayTime(scene);
                 };
             };
         }
@@ -422,6 +424,7 @@
 
             scene.RemainTime = scene.SceneDelayTime;
             scene.SceneDelayTime = 0;
+            room.ModifySceneDelayTime(scene);
             new System.Threading.Thread(() =>
             {
                 while (scene.RemainTime > 0)
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneMainView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneMainView.cs
index 90b6b05..0defd1b 100644
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneMainView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneMainView.cs
@@ -37,6 +37,10 @@
         /// scene
         /// </summary>
         public SceneUI scene;
+        /// <summary>
+        /// CollectionAction
+        /// </summary>
+        public Action CollectionAction;
 
         /// <summary>
         /// IsSelected
@@ -284,6 +288,7 @@
 
             scene.RemainTime = scene.SceneDelayTime;
             scene.SceneDelayTime = 0;
+            Common.Room.CurrentRoom.ModifySceneDelayTime(scene);
             new System.Threading.Thread(() =>
             {
                 while (scene.RemainTime > 0)
@@ -310,16 +315,23 @@
         /// <param name="mouseEventArgs"></param>
         private void  CollectionEvent(object sender,MouseEventArgs mouseEventArgs)
         {
-            (sender as Button).IsSelected = !(sender as Button).IsSelected;
-            if ((sender as Button).IsSelected)
+            if (Common.Room.CurrentRoom.IsLove)
             {
-                Shared.Common.Room.CurrentRoom.GetLoveRoom().AddScene(scene);
+                Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene);
+                CollectionAction?.Invoke();
             }
             else
             {
-                Shared.Common.Room.CurrentRoom.GetLoveRoom().RemoveScene(scene);
+                (sender as Button).IsSelected = !(sender as Button).IsSelected;
+                if ((sender as Button).IsSelected)
+                {
+                    Common.Room.CurrentRoom.GetLoveRoom().AddScene(scene);
+                }
+                else
+                {
+                    Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene);
+                }
             }
-            scene.Save();
         }
 
         /// <summary>
@@ -342,6 +354,8 @@
             {
                 scene.SceneDelayTime = t;
                 SetTimeByDelayTime(t);
+
+                Common.Room.CurrentRoom.ModifySceneDelayTime(scene);
             };
         }
 
diff --git a/ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs b/ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs
index cae7db4..4013426 100644
--- a/ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/RoomManagement.cs
@@ -149,67 +149,76 @@
 
             var roomScrolView = new VerticalScrolViewLayout { };
             bodyFrameLayout.AddChidren(roomScrolView);
-            var roomList = Common.Room.CurrentRoom.GetRoomsByFloorId(floorId);
-            if (roomList == null)
+            try
             {
-                return;
-            }
-            for (int i = 0; i < roomList.Count+1; i++)
-            {
-                int xx = 43 + i % 2 * (20 + 487);
-                int yy = 0;
-                if (i == 0 || i == 1)
+                System.Console.WriteLine("roomlist0");
+                var roomList = Common.Room.CurrentRoom.GetRoomsByFloorId(floorId);
+                System.Console.WriteLine("roomlist" + roomList);
+                if (roomList == null || roomList.Count == 0)
                 {
-                    if (i % 2 == 0)
+                    return;
+                }
+                for (int i = 0; i < roomList.Count + 1; i++)
+                {
+                    int xx = 43 + i % 2 * (20 + 487);
+                    int yy = 0;
+                    if (i == 0 || i == 1)
+                    {
+                        if (i % 2 == 0)
+                        {
+                            itemView = new FrameLayout()
+                            {
+                                Height = Application.GetRealHeight(354 + 58)
+                            };
+                            roomScrolView.AddChidren(itemView);
+                        }
+                        yy = 58;
+                    }
+                    else if (i % 2 == 0)
                     {
                         itemView = new FrameLayout()
                         {
-                            Height = Application.GetRealHeight(354 + 58)
+                            Height = Application.GetRealHeight(354)
                         };
                         roomScrolView.AddChidren(itemView);
                     }
-                    yy = 58;
-                }
-                else if (i % 2 == 0)
-                {
-                    itemView = new FrameLayout()
-                    {
-                        Height = Application.GetRealHeight(354)
-                    };
-                    roomScrolView.AddChidren(itemView);
-                }
 
-                if (i< roomList.Count)
-                {
-                    var room = roomList[i];
-                    var roomView = new RoomMainView(xx, yy);
-                    itemView.AddChidren(roomView);
-                    roomView.Init(this,room);
-                    roomView.SetRoomName(room.Name);
-                    roomView.SetRoomIcon(room.BackgroundImageType == 0 ? room.BackgroundImage : System.IO.Path.Combine(Config.Instance.FullPath, room.BackgroundImage));
-                    roomView.ClickBtn.MouseUpEventHandler += (sender, e) =>
+                    if (i < roomList.Count)
                     {
-                        if (CanClick == false)
+                        var room = roomList[i];
+                        var roomView = new RoomMainView(xx, yy);
+                        itemView.AddChidren(roomView);
+                        roomView.Init(this, room);
+                        roomView.SetRoomName(room.Name);
+                        roomView.SetRoomIcon(room.BackgroundImageType == 0 ? room.BackgroundImage : System.IO.Path.Combine(Config.Instance.FullPath, room.BackgroundImage));
+                        roomView.ClickBtn.MouseUpEventHandler += (sender, e) =>
                         {
-                            return;
-                        }
-                        CommonPage.Instance.CloseLeftMenu();
-                        Common.Room.CurrentRoom = room;
-                        Config.Instance.Home.CurrentFloorId = room.FloorId;
-                        UserPage.Instance.Fresh();
-                    };
-                }
-                else
-                {
-                    var roomView = new RoomNoNameMainView(xx, yy);
-                    itemView.AddChidren(roomView);
-                    roomView.Init();
+                            if (CanClick == false)
+                            {
+                                return;
+                            }
+                            CommonPage.Instance.CloseLeftMenu();
+                            Common.Room.CurrentRoom = room;
+                            Config.Instance.Home.CurrentFloorId = room.FloorId;
+                            UserPage.Instance.Fresh();
+                        };
+                    }
+                    else
+                    {
+                        var roomView = new RoomNoNameMainView(xx, yy);
+                        itemView.AddChidren(roomView);
+                        roomView.Init();
 
-                    roomView.Icon.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
-                    roomView.RoomNameButton.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
-                    roomView.iconFL.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
+                        roomView.Icon.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
+                        roomView.RoomNameButton.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
+                        roomView.iconFL.MouseUpEventHandler += ShowUnallocatedRoom_MouseUpEvent;
+                    }
                 }
             }
+            catch (Exception ex)
+            {
+                string tt=ex.Message;
+            }
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
index 3accaa7..40422ba 100644
--- a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -1813,8 +1813,9 @@
                     }
 
                     var sceneView = new SceneMainView(xx, yy);
-                    itemView.AddChidren(sceneView);
                     sceneView.Init(scene);
+                    itemView.AddChidren(sceneView);
+                    sceneView.CollectionAction += ShowScene;
                 }
                 GetDelayScene(sceneScrolView);
             }

--
Gitblit v1.8.0