From 9904031f5291daaf56985146bb671f25e18ebbdf Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 02 四月 2020 19:51:31 +0800
Subject: [PATCH] 最新代码

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs |   52 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 43 insertions(+), 9 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs
index a44eb08..4952414 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs
@@ -136,7 +136,7 @@
         {
             Application.RunOnMainThread(() =>
             {
-                Phone.Device.Room.RoomManagement.Instance.Show();
+                MainPage.ListRoomViewFrom.Instance?.ShowForm();
             });
         }
 
@@ -510,6 +510,13 @@
         /// <param name="saveRealRoom">鏄惁淇敼鐪熷疄鐗╃悊璁惧鐨勬埧闂�,涓嶅嚭鎰忓,杩欎釜鍊奸粯璁や负true鍗冲彲</param>
         public void ChangedRoom(CommonDevice device, string roomId, bool saveRealRoom = true)
         {
+            //閫夋嫨鐨勬槸鏈垎閰�
+            if (roomId == string.Empty)
+            {
+                //浠庡師鏉ョ殑鎴块棿绉婚櫎璁惧
+                this.DeleteDevice(device);
+                return;
+            }
             //鎴块棿鏄惁淇敼
             if (this.IsRoomChanged(device, roomId) == false)
             {
@@ -683,12 +690,28 @@
         /// <returns></returns>
         public List<CommonDevice> GetRoomListDevice(Room i_room)
         {
-            var listDevice = new List<CommonDevice>();
+            var dicSort = new Dictionary<string, List<int>>();
             foreach (var mainKeys in i_room.ListDevice)
             {
                 var device = LocalDevice.Current.GetDevice(mainKeys);
                 if (device != null)
                 {
+                    if (dicSort.ContainsKey(device.DeviceAddr) == false)
+                    {
+                        dicSort[device.DeviceAddr] = new List<int>();
+                    }
+                    dicSort[device.DeviceAddr].Add(device.DeviceEpoint);
+                }
+            }
+            var listDevice = new List<CommonDevice>();
+            foreach (var strMac in dicSort.Keys)
+            {
+                var listEpont = dicSort[strMac];
+                //鎺掑簭
+                listEpont.Sort();
+                for (int i = 0; i < listEpont.Count; i++)
+                {
+                    var device = LocalDevice.Current.GetDevice(strMac, listEpont[i]);
                     listDevice.Add(device);
                 }
             }
@@ -747,6 +770,11 @@
             var listEsxit = new HashSet<string>();
             foreach (var room in this.dicRooms.Values)
             {
+                if (room.IsLove == true)
+                {
+                    //涓嶅寘鍚敹钘忔埧闂�
+                    continue;
+                }
                 foreach (string mainkeys in room.ListDevice)
                 {
                     if (listEsxit.Contains(mainkeys) == false)
@@ -760,15 +788,16 @@
             var commonDeviceList = LocalDevice.Current.listAllDevice;
             foreach (var device in commonDeviceList)
             {
+                //鍒ゆ柇璇ヨ澶囪兘鍚︽樉绀哄湪涓婚〉
+                if (LocalDevice.Current.CanShowInHomeHomeMainPage(device) == false)
+                {
+                    continue;
+                }
                 string mainkeys = LocalDevice.Current.GetDeviceMainKeys(device);
                 if (listEsxit.Contains(mainkeys) == false)
                 {
                     listDevice.Add(device);
                 }
-            }
-            if (listDevice.Count == 0)
-            {
-                return null;
             }
             return listDevice;
         }
@@ -825,7 +854,7 @@
         #region 鈻� 妤煎眰鍜屾埧闂撮『搴忕浉鍏砡________________
 
         /// <summary>
-        /// 鏍规嵁妤煎眰鐨勪富閿幏鍙栨帓搴忓悗鐨勬埧闂村垪琛�
+        /// 鏍规嵁妤煎眰鐨勪富閿幏鍙栨帓搴忓悗鐨勬埧闂村垪琛�(鏀寔鏃犳ゼ灞傛ā寮�)
         /// </summary>
         /// <param name="i_floorKeys">妤煎眰鐨勪富閿�</param>
         /// <param name="getShard">鍒嗕韩鐨勬埧闂存槸鍚︿篃鑾峰彇</param>
@@ -854,9 +883,14 @@
             var dicRoom = new Dictionary<string, Common.Room>();
             foreach (var room in this.dicRooms.Values)
             {
-                if (room.FloorId != i_floorKeys || room.IsLove == true)
+                if (room.FloorId != i_floorKeys && i_floorKeys != string.Empty)
                 {
                     //涓嶆槸鍚屼竴涓ゼ灞�
+                    continue;
+                }
+                if (room.IsLove == true)
+                {
+                    //涓嶈鎴戠殑鍠滅埍
                     continue;
                 }
                 if (listRoomSort.Contains(room.Id) == false)
@@ -993,7 +1027,7 @@
             if (Config.Instance.Home.ListRooms.Contains("Favorite") == false)
             {
                 //榛樿娣诲姞鍠滅埍鐨勬埧闂�--绂佹淇敼鎴块棿鍚�
-                var love = new Room { Name = Language.StringByID(R.MyInternationalizationString.Favorite), BackgroundImage = "RoomIcon/0.JPG", Id = "Favorite" };
+                var love = new Room { Name = Language.StringByID(R.MyInternationalizationString.Favorite), BackgroundImage = "RoomIcon/0.jpg", Id = "Favorite" };
                 love.Save(false);
                 //娣诲姞鍒癶ouse 鎴块棿璺緞鍒楄〃
                 var currentHome = Config.Instance.Home;

--
Gitblit v1.8.0