From f1c3921b08bb22ac6f5db22d620e01d7e8e5c49f Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期一, 30 十二月 2019 13:32:33 +0800
Subject: [PATCH] 2019-12-30-1
---
ZigbeeApp/Shared/Common/Room.cs | 64 +++++++++++++++++++------------
1 files changed, 39 insertions(+), 25 deletions(-)
diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs
index fd52a18..495100a 100755
--- a/ZigbeeApp/Shared/Common/Room.cs
+++ b/ZigbeeApp/Shared/Common/Room.cs
@@ -76,10 +76,26 @@
/// </summary>
public string HumidityDevice = string.Empty;
+ /// <summary>
+ /// 褰撳墠閫夋嫨鐨勬埧闂�
+ /// </summary>
+ private static Room m_CurrentRoom = null;
/// <summary>
/// 褰撳墠閫夋嫨鐨勬埧闂�
/// </summary>
- public static Room CurrentRoom;
+ [Newtonsoft.Json.JsonIgnore]
+ public static Room CurrentRoom
+ {
+ get
+ {
+ if (m_CurrentRoom == null && Lists.Count > 0)
+ {
+ return Lists[0];
+ }
+ return m_CurrentRoom;
+ }
+ set { m_CurrentRoom = value; }
+ }
/// <summary>
/// 鎴块棿閲屾墍鏈夌殑璁惧鍒楄〃
@@ -114,12 +130,6 @@
/// 娉細鍒嗕韩杩囨潵鐨勬埧闂翠笉鑳藉垹闄わ紝涓嶈兘缂栬緫璇ユ埧闂达紝涓嶈兘瀵硅澶囷紙鍔熻兘锛夈�佸満鏅繘琛屽鍒犳敼
/// </summary>
public bool IsSharedRoom = false;
-
- /// <summary>
- /// 鏄惁鍙互鍒锋柊鎴块棿鏁版嵁浜�
- /// 闇�瑕佺瓑鍒濆鍖栨湰鍦拌澶囨暟鎹悗鍦ㄥ彲浠ュ垵濮嬪寲鎴块棿鏁版嵁
- /// </summary>
- public static bool CanInitAllRoom;
/// <summary>
/// 鑾峰彇鍠滅埍鎴块棿鐨勬墍鏈夎澶囪矾寰�
@@ -266,20 +276,16 @@
/// </summary>
public static void InitAllRoom()
{
- if (CanInitAllRoom == false)
- {
- return;
- }
Lists.Clear();
if (Config.Instance.Home.RoomFilePathList.Contains("Room_Favorite.json") == false)
{
//榛樿娣诲姞鍠滅埍鐨勬埧闂�--绂佹淇敼鎴块棿鍚�
- var love = new Room { Name = Language.StringByID(R.MyInternationalizationString.Favorite), BackgroundImage = "Room/r0.png", Id = LoveRoomId };
- love.Save(true);
+ var love = new Room { Name = Language.StringByID(R.MyInternationalizationString.Favorite), BackgroundImage = "RoomIcon/0.JPG", Id = LoveRoomId };
+ love.Save(false);
//娣诲姞鍒癶ouse 鎴块棿璺緞鍒楄〃
var currentHome = Config.Instance.Home;
currentHome.RoomFilePathList.Insert(0, love.FileName);
- currentHome.Save();
+ currentHome.Save(false);
}
foreach (var roomFilePath in Config.Instance.Home.RoomFilePathList)
{
@@ -289,11 +295,13 @@
{
if (room.IsSharedRoom)
{
- room.Name = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){room.Name}";
+ room.Name = $"{room.Name}";
}
Lists.Add(room);
+
}
}
+ Config.Instance.Home.InitFloor();
}
/// <summary>
@@ -323,7 +331,6 @@
}
}
homeTemp.Save(false);
- CanInitAllRoom = true;
InitAllRoom();
}
@@ -622,6 +629,10 @@
/// <returns></returns>
public List<Room> GetRoomsByCurrentFloorIdAppendLoveRoom()
{
+ if(Config.Instance.Home.FloorDics.Count==0)
+ {
+ return Lists;
+ }
var r = Lists.FindAll((obj) => obj.FloorId == Config.Instance.Home.CurrentFloorId);
r.Insert(0, GetLoveRoom());
return r;
@@ -636,7 +647,8 @@
/// </summary>
/// <param name="device">璁惧瀵硅薄</param>
/// <param name="roomId">鏂版埧闂碔d</param>
- public void ChangedRoom(CommonDevice device, string roomId)
+ /// <param name="saveRealRoom">鏄惁淇敼鐪熷疄鐗╃悊璁惧鐨勬埧闂�,涓嶅嚭鎰忓,杩欎釜鍊奸粯璁や负true鍗冲彲</param>
+ public void ChangedRoom(CommonDevice device, string roomId, bool saveRealRoom = true)
{
//鎴块棿鏄惁淇敼
if (this.IsRoomChanged(device, roomId) == false)
@@ -650,7 +662,7 @@
var room = this.GetRoomById(roomId);
if (room != null)
{
- room.AddDevice(device);
+ room.AddDevice(device, saveRealRoom);
}
}
@@ -739,7 +751,7 @@
#region 鈼� 娣诲姞璁惧________________________
/// <summary>
- /// 娣诲姞璁惧
+ /// 娣诲姞璁惧(姝ゆ柟娉曠洰鍓嶅彧缁欍�愭垜鐨勫枩鐖便�戜娇鐢�)
/// </summary>
/// <param name="deviceUIFilePath">Device UIF ile path.</param>
public void AddDevice(string deviceUIFilePath)
@@ -764,10 +776,11 @@
}
/// <summary>
- /// 娣诲姞璁惧
+ /// 娣诲姞璁惧(姝ゆ柟娉曠洰鍓嶅彧缁橰oom閲岄潰浣跨敤)
/// </summary>
/// <param name="device">瑕佹坊鍔犵殑璁惧瀵硅薄</param>
- public void AddDevice(CommonDevice device)
+ /// <param name="saveRealRoom">鏄惁淇敼鐪熷疄鐗╃悊璁惧鐨勬埧闂�,涓嶅嚭鎰忓,杩欎釜鍊奸粯璁や负true鍗冲彲</param>
+ public void AddDevice(CommonDevice device, bool saveRealRoom)
{
if (device == null)
{
@@ -775,9 +788,6 @@
}
//璁惧淇℃伅淇濆瓨鍒版湰鍦�
device.Save();
-
- //娣诲姞鑷姩澶囦唤
- HdlAutoBackupLogic.AddOrEditorFile(device.FilePath);
var deviceUI = Common.LocalDevice.Current.GetDeviceUI(device);
if (DeviceUIFilePathList.Contains(deviceUI.FileName) == false)
@@ -789,6 +799,11 @@
//娣诲姞鑷姩澶囦唤
HdlAutoBackupLogic.AddOrEditorFile(FileName);
+ if (saveRealRoom == true && LocalDevice.Current.GetDevicesCountByMac(device.DeviceAddr) == 1)
+ {
+ //濡傛灉鍙湁涓�涓洖璺�,鍒欎慨鏀圭湡瀹炵墿鐞嗚澶囩殑鎴块棿
+ LocalDevice.Current.SaveRealDeviceRoomId(new List<CommonDevice>() { device }, this.Id, false);
+ }
}
}
@@ -1185,7 +1200,6 @@
Save();
Global.DeleteFilebyHomeId(sceneUI.FileName);
HdlAutoBackupLogic.DeleteFile(sceneUI.FileName);
- HdlAutoBackupLogic.AddOrEditorFile(FileName);
}
#endregion
--
Gitblit v1.8.0