From 5eeafe3af80bfd88306bd8ad9e76c8f4b51ca35f Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期四, 17 十二月 2020 14:16:20 +0800
Subject: [PATCH] 增加本地发送的重发机制

---
 HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs |  249 ++++++++++++++++++++++++++-----------------------
 1 files changed, 130 insertions(+), 119 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
index 60cbac3..1e9ab60 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -71,7 +71,7 @@
         {
             bodyView = this;
             roomsShowed = new List<Room>();
-            roomsShowed.AddRange(DB_ResidenceData.Rooms);
+            roomsShowed.AddRange(SpatialInfo.CurrentSpatial.RoomList);
         }
 
         public void LoadPage()
@@ -177,7 +177,7 @@
                 TextColor = CSS_Color.FirstLevelTitleColor,
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                 TextAlignment = TextAlignment.CenterLeft,
-                Text = DB_ResidenceData.residenceData.CurFoor,
+                Text = DB_ResidenceData.Instance.CurFloor.roomName,
             };
             roomFloorChangeView.AddChidren(btnFloor);
             /// <summary>
@@ -226,7 +226,7 @@
                     Width = Application.GetRealWidth(343),
                     Height = Application.GetRealWidth(192),//2020-12-01 鎴块棿鍥剧墖姣斾緥鏀瑰洖16:9
                     Radius = (uint)Application.GetRealWidth(12),
-                    Tag = room.uid,
+                    Tag = room.roomId,
                 };
                 roomListView.AddChidren(roomView);
 
@@ -234,10 +234,13 @@
                 {
                     Width = Application.GetRealWidth(343),
                     Height = Application.GetRealWidth(192),//2020-12-01 鎴块棿鍥剧墖姣斾緥鏀瑰洖16:9
-                    ImagePath = room.backgroundImage,
+                    //ImagePath = room.backgroundImage,
                     Radius = (uint)Application.GetRealWidth(12),
                 };
                 roomView.AddChidren(roomViewbg);
+
+                //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
+                ImageUtlis.Current.LoadLocalOrNetworkImages(room.backgroundImage, roomViewbg);
 
                 var roomViewbgColor = new Button()
                 {
@@ -260,88 +263,88 @@
                 roomView.AddChidren(btnFloorAndRoomName);
 
                 #region 鐜鏁版嵁
-                var environmentalView = new FrameLayout()
-                                {
-                                    Y = Application.GetRealHeight(2) + btnFloorAndRoomName.Bottom,
-                                    Height = Application.GetRealHeight(32),
-                                    Tag = "EnvironmentalView",
-                                };
-                                roomView.AddChidren(environmentalView);
+                //var environmentalView = new FrameLayout()
+                //{
+                //    Y = Application.GetRealHeight(2) + btnFloorAndRoomName.Bottom,
+                //    Height = Application.GetRealHeight(32),
+                //    Tag = "EnvironmentalView",
+                //};
+                //roomView.AddChidren(environmentalView);
 
-                                Button btnTempIcon = new Button()
-                                {
-                                    X = Application.GetRealWidth(12),
-                                    Gravity = Gravity.CenterVertical,
-                                    Width = Application.GetMinRealAverage(16),
-                                    Height = Application.GetMinRealAverage(16),
-                                    UnSelectedImagePath = "Public/DeviceInfoIcon/TempIcon.png",
-                                };
-                                environmentalView.AddChidren(btnTempIcon);
+                //Button btnTempIcon = new Button()
+                //{
+                //    X = Application.GetRealWidth(12),
+                //    Gravity = Gravity.CenterVertical,
+                //    Width = Application.GetMinRealAverage(16),
+                //    Height = Application.GetMinRealAverage(16),
+                //    UnSelectedImagePath = "Public/DeviceInfoIcon/TempIcon.png",
+                //};
+                //environmentalView.AddChidren(btnTempIcon);
 
-                                var btnTempValues = new Button()
-                                {
-                                    X = btnTempIcon.Right + Application.GetRealWidth(4),
-                                    Width = Application.GetRealWidth(30),
-                                    Gravity = Gravity.CenterVertical,
-                                    TextColor = CSS_Color.MainBackgroundColor,
-                                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                                    Text = "--掳",
-                                    TextAlignment = TextAlignment.CenterLeft,
-                                    Tag = "TempValues"
-                                };
-                                environmentalView.AddChidren(btnTempValues);
+                //var btnTempValues = new Button()
+                //{
+                //    X = btnTempIcon.Right + Application.GetRealWidth(4),
+                //    Width = Application.GetRealWidth(30),
+                //    Gravity = Gravity.CenterVertical,
+                //    TextColor = CSS_Color.MainBackgroundColor,
+                //    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                //    Text = "--掳",
+                //    TextAlignment = TextAlignment.CenterLeft,
+                //    Tag = "TempValues"
+                //};
+                //environmentalView.AddChidren(btnTempValues);
 
-                                Button btnHumidityIcon = new Button()
-                                {
-                                    X = btnTempValues.Right + Application.GetRealWidth(2),
-                                    Gravity = Gravity.CenterVertical,
-                                    Width = Application.GetMinRealAverage(16),
-                                    Height = Application.GetMinRealAverage(16),
-                                    UnSelectedImagePath = "Public/DeviceInfoIcon/HumidityIcon.png",
-                                };
-                                environmentalView.AddChidren(btnHumidityIcon);
+                //Button btnHumidityIcon = new Button()
+                //{
+                //    X = btnTempValues.Right + Application.GetRealWidth(2),
+                //    Gravity = Gravity.CenterVertical,
+                //    Width = Application.GetMinRealAverage(16),
+                //    Height = Application.GetMinRealAverage(16),
+                //    UnSelectedImagePath = "Public/DeviceInfoIcon/HumidityIcon.png",
+                //};
+                //environmentalView.AddChidren(btnHumidityIcon);
 
-                                var btnHumidityValues = new Button()
-                                {
-                                    X = btnHumidityIcon.Right + Application.GetRealWidth(4),
-                                    Width = Application.GetRealWidth(30),
-                                    Gravity = Gravity.CenterVertical,
-                                    TextColor = CSS_Color.MainBackgroundColor,
-                                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                                    Text = "--%",
-                                    TextAlignment = TextAlignment.CenterLeft,
-                                    Tag = "HumidityValues"
-                                };
-                                environmentalView.AddChidren(btnHumidityValues);
+                //var btnHumidityValues = new Button()
+                //{
+                //    X = btnHumidityIcon.Right + Application.GetRealWidth(4),
+                //    Width = Application.GetRealWidth(30),
+                //    Gravity = Gravity.CenterVertical,
+                //    TextColor = CSS_Color.MainBackgroundColor,
+                //    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                //    Text = "--%",
+                //    TextAlignment = TextAlignment.CenterLeft,
+                //    Tag = "HumidityValues"
+                //};
+                //environmentalView.AddChidren(btnHumidityValues);
 
-                                Button btnPm25Icon = new Button()
-                                {
-                                    X = btnHumidityValues.Right + Application.GetRealWidth(2),
-                                    Gravity = Gravity.CenterVertical,
-                                    Width = Application.GetMinRealAverage(16),
-                                    Height = Application.GetMinRealAverage(16),
-                                    UnSelectedImagePath = "Public/DeviceInfoIcon/Pm25Icon.png",
-                                };
-                                environmentalView.AddChidren(btnPm25Icon);
+                //Button btnPm25Icon = new Button()
+                //{
+                //    X = btnHumidityValues.Right + Application.GetRealWidth(2),
+                //    Gravity = Gravity.CenterVertical,
+                //    Width = Application.GetMinRealAverage(16),
+                //    Height = Application.GetMinRealAverage(16),
+                //    UnSelectedImagePath = "Public/DeviceInfoIcon/Pm25Icon.png",
+                //};
+                //environmentalView.AddChidren(btnPm25Icon);
 
-                                var btnPm25Values = new Button()
-                                {
-                                    X = btnPm25Icon.Right + Application.GetRealWidth(4),
-                                    Width = Application.GetRealWidth(30),
-                                    Gravity = Gravity.CenterVertical,
-                                    TextColor = CSS_Color.MainBackgroundColor,
-                                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                                    Text = "--",
-                                    TextAlignment = TextAlignment.CenterLeft,
-                                    Tag = "Pm25Values"
-                                };
-                                environmentalView.AddChidren(btnPm25Values);
-                                roomView.AddChidren(environmentalView);
+                //var btnPm25Values = new Button()
+                //{
+                //    X = btnPm25Icon.Right + Application.GetRealWidth(4),
+                //    Width = Application.GetRealWidth(30),
+                //    Gravity = Gravity.CenterVertical,
+                //    TextColor = CSS_Color.MainBackgroundColor,
+                //    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                //    Text = "--",
+                //    TextAlignment = TextAlignment.CenterLeft,
+                //    Tag = "Pm25Values"
+                //};
+                //environmentalView.AddChidren(btnPm25Values);
+                //roomView.AddChidren(environmentalView);
                 #endregion
                 var btnAllClose = new Button()
                 {
                     X = Application.GetRealWidth(282),
-                    Y = Application.GetRealHeight(126),
+                    Y = Application.GetRealWidth(126),
                     Width = Application.GetMinRealAverage(58),
                     Height = Application.GetMinRealAverage(58),
                     UnSelectedImagePath = "Classification/Room/AllCloseIcon.png",
@@ -359,11 +362,18 @@
 
                 roomViewbgColor.MouseUpEventHandler += (sender, e) =>
                 {
-                    Action ReloadRoomName = () => {
+                    Action ReloadRoomName = () =>
+                    {
                         btnFloorAndRoomName.Text = room.floorName + room.roomName;
                     };
 
-                    var view = new RoomPage(room, ReloadRoomName);
+                    //鎴块棿鍒犻櫎浜嬩欢
+                    Action deleteAction = () =>
+                    {
+                        roomView.RemoveFromParent();
+                    };
+
+                    var view = new RoomPage(room, ReloadRoomName, deleteAction);
                     MainPage.BasePageView.AddChidren(view);
                     view.LoadPage();
                     MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
@@ -416,7 +426,7 @@
 
             var functionCategoryCount = 0;
 
-            foreach (var item in DB_ResidenceData.residenceData.functionTypeList)
+            foreach (var item in DB_ResidenceData.Instance.functionTypeList)
             {
                 int functionCount = 0;
                 int functionOnCount = 0;
@@ -424,41 +434,41 @@
                 {
                     case ShowFunction.Light:
                         #region Light
-                        functionCount = DB_ResidenceData.functionList.lights.Count;
-                        functionOnCount = DB_ResidenceData.functionList.lights.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+                        functionCount = FunctionList.List.lights.Count;
+                        functionOnCount = FunctionList.List.lights.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                         #endregion
                         break;
                     case ShowFunction.AC:
                         #region AC
-                        functionCount = DB_ResidenceData.functionList.aCs.Count;
-                        functionOnCount = DB_ResidenceData.functionList.aCs.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+                        functionCount = FunctionList.List.aCs.Count;
+                        functionOnCount = FunctionList.List.aCs.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                         #endregion
                         break;
                     case ShowFunction.Curtain:
                         #region Curtain
-                        functionCount = DB_ResidenceData.functionList.curtains.Count;
-                        functionOnCount = DB_ResidenceData.functionList.curtains.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+                        functionCount = FunctionList.List.curtains.Count;
+                        functionOnCount = FunctionList.List.curtains.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                         #endregion
                         break;
                     case ShowFunction.FloorHeating:
                         #region 鍦扮儹
-                        functionCount = DB_ResidenceData.functionList.floorHeatings.Count;
-                        functionOnCount = DB_ResidenceData.functionList.floorHeatings.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+                        functionCount = FunctionList.List.floorHeatings.Count;
+                        functionOnCount = FunctionList.List.floorHeatings.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                         #endregion
                         break;
                     case ShowFunction.DoorLock:
                         break;
                     case ShowFunction.Electric:
                         #region 鐢靛櫒
-                        functionCount = DB_ResidenceData.functionList.electricals.Count;
-                        functionOnCount = DB_ResidenceData.functionList.electricals.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+                        functionCount = FunctionList.List.electricals.Count;
+                        functionOnCount = FunctionList.List.electricals.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                         #endregion
                         break;
                     case ShowFunction.EnergyMonitoring:
                         break;
                     case ShowFunction.Environmental:
                         #region 鐜鏁版嵁
-                        functionCount = DB_ResidenceData.functionList.sensorsEnvironmentalScience.Count;
+                        functionCount = FunctionList.List.sensorsEnvironmentalScience.Count;
                         #endregion
                         break;
                     case ShowFunction.FreshAir:
@@ -480,7 +490,7 @@
 
                 if (functionCount == 0 && item != ShowFunction.Music)
                 {
-                    //continue;
+                    continue;
                 }
                 functionCategoryCount++;
 
@@ -543,8 +553,8 @@
                     case ShowFunction.Light:
                         #region Light
                         btnName.TextID = StringId.Lights;
-                        functionCount = DB_ResidenceData.functionList.lights.Count;
-                        functionOnCount = DB_ResidenceData.functionList.lights.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+                        functionCount = FunctionList.List.lights.Count;
+                        functionOnCount = FunctionList.List.lights.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                         Button btnLightPower = new Button()
                         {
                             X = Application.GetRealWidth(120),
@@ -569,8 +579,8 @@
                     case ShowFunction.AC:
                         #region AC
                         btnName.TextID = StringId.AC;
-                        functionCount = DB_ResidenceData.functionList.aCs.Count;
-                        functionOnCount = DB_ResidenceData.functionList.aCs.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+                        functionCount = FunctionList.List.aCs.Count;
+                        functionOnCount = FunctionList.List.aCs.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                         Button btnAcPower = new Button()
                         {
                             X = Application.GetRealWidth(120),
@@ -593,8 +603,8 @@
                     case ShowFunction.Curtain:
                         #region Curtain
                         btnName.TextID = StringId.Curtain;
-                        functionCount = DB_ResidenceData.functionList.curtains.Count;
-                        functionOnCount = DB_ResidenceData.functionList.curtains.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+                        functionCount = FunctionList.List.curtains.Count;
+                        functionOnCount = FunctionList.List.curtains.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                         Button btnClose;
                         btnClose = new Button()
                         {
@@ -605,7 +615,7 @@
                             UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png",
                             SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png",
                             //Tag = item + "_AllControl",
-                            IsSelected = false
+                            IsSelected = !DB_ResidenceData.Instance.GlobalCurtainStatus,
                         };
                         functionView.AddChidren(btnClose);
 
@@ -618,7 +628,7 @@
                             Height = Application.GetRealWidth(32),
                             UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenIcon.png",
                             SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenOnIcon.png",
-                            IsSelected = true,
+                            IsSelected = DB_ResidenceData.Instance.GlobalCurtainStatus,
                         };
                         functionView.AddChidren(btnOpen);
                         LoadEvent_CurtainSwitch(btnClose, btnOpen);
@@ -629,8 +639,8 @@
                     case ShowFunction.FloorHeating:
                         #region 鍦扮儹
                         btnName.TextID = StringId.FloorHeating;
-                        functionCount = DB_ResidenceData.functionList.floorHeatings.Count;
-                        functionOnCount = DB_ResidenceData.functionList.floorHeatings.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+                        functionCount = FunctionList.List.floorHeatings.Count;
+                        functionOnCount = FunctionList.List.floorHeatings.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                         Button btnFhPower = new Button()
                         {
                             X = Application.GetRealWidth(120),
@@ -656,8 +666,8 @@
                     case ShowFunction.Electric:
                         #region 鐢靛櫒
                         btnName.TextID = StringId.Electric;
-                        functionCount = DB_ResidenceData.functionList.electricals.Count;
-                        functionOnCount = DB_ResidenceData.functionList.electricals.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+                        functionCount = FunctionList.List.electricals.Count;
+                        functionOnCount = FunctionList.List.electricals.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                         Button btnElectricPower = new Button()
                         {
                             X = Application.GetRealWidth(120),
@@ -810,10 +820,10 @@
                 };
                 dispalyView.AddChidren(contentView);
 
-                if (Floor.InsFloor.Floors.Count < 2)
+                if (SpatialInfo.CurrentSpatial.FloorList.Count < 2)
                 {
                 }
-                else if (Floor.InsFloor.Floors.Count < 3)
+                else if (SpatialInfo.CurrentSpatial.FloorList.Count < 3)
                 {
                     dispalyView = new FrameLayout()
                     {
@@ -828,7 +838,7 @@
                     contentView.Height = Application.GetRealHeight(45 * 3);
                     dispalyView.AddChidren(contentView);
                 }
-                else if (Floor.InsFloor.Floors.Count < 4)
+                else if (SpatialInfo.CurrentSpatial.FloorList.Count < 4)
                 {
                     dispalyView = new FrameLayout()
                     {
@@ -861,17 +871,18 @@
                 }
 
 
-                List<string> chooseList = new List<string>();
-                chooseList.Add(Language.StringByID(StringId.All));
-                foreach (var f in Floor.InsFloor.Floors)
+                List<SpatialInfo> chooseList = new List<SpatialInfo>();
+                chooseList.Add(new SpatialInfo() { roomId = "", roomName = Language.StringByID(StringId.All) });
+                foreach (var f in SpatialInfo.CurrentSpatial.FloorList)
                 {
-                    chooseList.Add(f.roomName);
+                    chooseList.Add(f);
                 }
 
                 foreach (var floor in chooseList)
                 {
-                    if (floor != Language.StringByID(StringId.All))
+                    if (!string.IsNullOrEmpty( floor.roomId))// != Language.StringByID(StringId.All))
                     {
+                        //---鍒嗗壊绾�
                         contentView.AddChidren(new Button()
                         {
                             Gravity = Gravity.CenterHorizontal,
@@ -888,28 +899,28 @@
                         TextAlignment = TextAlignment.CenterLeft,
                         TextColor = CSS_Color.FirstLevelTitleColor,
                         SelectedTextColor = CSS_Color.MainColor,
-                        Text = floor,
+                        Text = floor.roomName,
                         TextSize = CSS_FontSize.SubheadingFontSize,
-                        IsSelected = btnFloor.Text == floor,
+                        IsSelected = floor.roomId == DB_ResidenceData.Instance.ClassificationChooseFloor.roomId,
                         IsMoreLines = true,
-                        Tag = floor
                     };
                     contentView.AddChidren(btnHomeName);
 
                     btnHomeName.MouseUpEventHandler += (senderH, en) =>
                     {
                         dialog.Close();
-                        btnFloor.Text = floor;
+                        btnFloor.Text = floor.roomName;
+                        DB_ResidenceData.Instance.ClassificationChooseFloor = floor;
                         roomsShowed.Clear();
-                        if (floor == Language.StringByID(StringId.All))
+                        if (string.IsNullOrEmpty(floor.roomId))
                         {
-                            roomsShowed.AddRange(DB_ResidenceData.Rooms);
+                            roomsShowed.AddRange(SpatialInfo.CurrentSpatial.RoomList);
                         }
                         else
                         {
-                            foreach (var room in DB_ResidenceData.Rooms)
+                            foreach (var room in SpatialInfo.CurrentSpatial.RoomList)
                             {
-                                if (room.floorName == floor)
+                                if (room.parentId == floor.roomId)
                                 {
                                     roomsShowed.Add(room);
                                 }

--
Gitblit v1.8.0