From eb424d24e39bab4a245725f35deab3f234ea0f13 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 13 十二月 2019 10:48:50 +0800
Subject: [PATCH] 2019.12.13
---
ZigbeeApp/Shared/Common/Room.cs | 86 +++++++++++++++++++++++++-----------------
1 files changed, 51 insertions(+), 35 deletions(-)
diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs
old mode 100755
new mode 100644
index 8279080..4d255ea
--- a/ZigbeeApp/Shared/Common/Room.cs
+++ b/ZigbeeApp/Shared/Common/Room.cs
@@ -132,12 +132,6 @@
public bool IsSharedRoom = false;
/// <summary>
- /// 鏄惁鍙互鍒锋柊鎴块棿鏁版嵁浜�
- /// 闇�瑕佺瓑鍒濆鍖栨湰鍦拌澶囨暟鎹悗鍦ㄥ彲浠ュ垵濮嬪寲鎴块棿鏁版嵁
- /// </summary>
- public static bool CanInitAllRoom;
-
- /// <summary>
/// 鑾峰彇鍠滅埍鎴块棿鐨勬墍鏈夎澶囪矾寰�
/// </summary>
/// <value>The love room device list.</value>
@@ -282,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)
{
@@ -305,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>
@@ -339,7 +331,6 @@
}
}
homeTemp.Save(false);
- CanInitAllRoom = true;
InitAllRoom();
}
@@ -445,8 +436,21 @@
//璁惧锛坉eviceUI锛�
beforeRoom.DeviceUIList.Clear();
foreach (var deviceFilePath in beforeRoom.DeviceUIFilePathList)
- {
- beforeRoom.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(deviceFilePath));
+ {
+ var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(deviceFilePath));
+ var tempDeviceUI = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceUI>(jsonInfo);
+ if (tempDeviceUI != null)
+ {
+ var delCommon = tempDeviceUIList.Find((obj) => obj.CommonDevice != null && tempDeviceUI.CommonDevice != null && obj.CommonDevice.Type == tempDeviceUI.CommonDevice.Type && obj.CommonDevice.CommonDeviceAddrEpoint == tempDeviceUI.CommonDevice.CommonDeviceAddrEpoint);
+ if (delCommon != null)
+ {
+ beforeRoom.DeviceUIList.Add(delCommon);
+ }
+ else
+ {
+ beforeRoom.AddDevice(deviceFilePath);
+ }
+ }
}
//鍦烘櫙(SceneUI)
beforeRoom.SceneUIList.Clear();
@@ -598,21 +602,25 @@
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
- public List<Room> GetRoomsByFloorId(string id)
+ public List<Room> GetRoomsByFloorId(string id)
{
- return Lists.FindAll((obj) => obj.FloorId==id);
+ if (Config.Instance.Home.FloorDics.Count == 0)
+ {
+ return Lists;
+ }
+ return Lists.FindAll((obj) => obj.FloorId == id);
}
/// <summary>
/// 鑾峰彇褰撳墠妤煎眰鐨勬埧闂村悕绉�
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
- public List<string> GetRoomNamesByFloorId(string id)
+ public List<string> GetRoomNamesByFloorId(string id)
{
List<string> names = new List<string> { };
- foreach(var r in Lists)
+ foreach (var r in Lists)
{
- if(r.FloorId==id)
+ if (r.FloorId == id)
{
names.Add(r.Name);
}
@@ -627,6 +635,10 @@
/// <returns></returns>
public List<Room> GetRoomsByFloorIdAppendLoveRoom(string id)
{
+ if (Config.Instance.Home.FloorDics.Count == 0)
+ {
+ return Lists;
+ }
var r= Lists.FindAll((obj) => obj.FloorId == id);
r.Insert(0, GetLoveRoom());
return r;
@@ -656,7 +668,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)
@@ -670,7 +683,7 @@
var room = this.GetRoomById(roomId);
if (room != null)
{
- room.AddDevice(device);
+ room.AddDevice(device, saveRealRoom);
}
}
@@ -759,14 +772,15 @@
#region 鈼� 娣诲姞璁惧________________________
/// <summary>
- /// 娣诲姞璁惧
+ /// 娣诲姞璁惧(姝ゆ柟娉曠洰鍓嶅彧缁欍�愭垜鐨勫枩鐖便�戜娇鐢�)
/// </summary>
/// <param name="deviceUIFilePath">Device UIF ile path.</param>
public void AddDevice(string deviceUIFilePath)
{
if (string.IsNullOrEmpty(deviceUIFilePath))
- {
- return;
+
+ {
+ return;
}
var deviceUI = Common.LocalDevice.Current.GetDeviceUI(deviceUIFilePath);
if (null == deviceUI.CommonDevice)
@@ -784,10 +798,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)
{
@@ -795,9 +810,6 @@
}
//璁惧淇℃伅淇濆瓨鍒版湰鍦�
device.Save();
-
- //娣诲姞鑷姩澶囦唤
- HdlAutoBackupLogic.AddOrEditorFile(device.FilePath);
var deviceUI = Common.LocalDevice.Current.GetDeviceUI(device);
if (DeviceUIFilePathList.Contains(deviceUI.FileName) == false)
@@ -809,6 +821,11 @@
//娣诲姞鑷姩澶囦唤
HdlAutoBackupLogic.AddOrEditorFile(FileName);
+ if (saveRealRoom == true && LocalDevice.Current.GetDevicesCountByMac(device.DeviceAddr) == 1)
+ {
+ //濡傛灉鍙湁涓�涓洖璺�,鍒欎慨鏀圭湡瀹炵墿鐞嗚澶囩殑鎴块棿
+ LocalDevice.Current.SaveRealDeviceRoomId(new List<CommonDevice>() { device }, this.Id, false);
+ }
}
}
@@ -994,7 +1011,7 @@
return -1;
}
}
-
+
var getSceneIdAllData = await ZigBee.Device.Scene.GetSceneNewIdAsync(sceneName);
if (getSceneIdAllData == null || getSceneIdAllData.getSceneIdData == null)
{
@@ -1205,7 +1222,6 @@
Save();
Global.DeleteFilebyHomeId(sceneUI.FileName);
HdlAutoBackupLogic.DeleteFile(sceneUI.FileName);
- HdlAutoBackupLogic.AddOrEditorFile(FileName);
}
#endregion
@@ -1480,6 +1496,6 @@
}
#endregion
-
+
}
}
--
Gitblit v1.8.0