From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 10 七月 2020 10:52:13 +0800
Subject: [PATCH] 2020-07-10-01

---
 ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs |  351 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 208 insertions(+), 143 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
index da559e5..1fdf829 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
@@ -16,9 +16,13 @@
         /// </summary>
         private FrameLayout frameTable = null;
         /// <summary>
-        /// 鍒楄〃鎺т欢
+        /// 鍒楄〃鎺т欢(鐧借壊鑳屾櫙)
         /// </summary>
-        private VerticalListControl listView = null;
+        private FrameListControl listView = null;
+        /// <summary>
+        /// 鏁翠釜鐣岄潰鐨勪笂涓嬫粦鍔ㄦ帶浠�
+        /// </summary>
+        private VerticalFrameControl listBackContr = null;
         /// <summary>
         /// 妤煎眰椤哄簭
         /// </summary>
@@ -64,10 +68,16 @@
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
 
+            //鏁翠釜鐣岄潰鐨勪笂涓嬫粦鍔ㄦ帶浠�
+            this.listBackContr = new VerticalFrameControl();
+            listBackContr.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(listBackContr);
+
+            //浣忓畢琛�
             var rowHome = new RowLayoutControl();
             rowHome.Height = Application.GetRealHeight(173);
             rowHome.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(rowHome);
+            listBackContr.frameTable.AddChidren(rowHome);
             rowHome.frameTable.UseClickStatu = false;
 
             var btnAdreeIcon = rowHome.frameTable.AddLeftIcon(81);
@@ -77,13 +87,13 @@
             var btnHomeName = rowHome.frameTable.AddLeftCaption(Common.Config.Instance.Home.Name, 700, 60);
             btnHomeName.TextSize = 15;
             btnHomeName.Y = Application.GetRealHeight(35);
-            rowHome.frameTable.AddChidren(btnHomeName, ChidrenBindMode.BindEventOnly);
+            rowHome.frameTable.AddChidren(btnHomeName, ChidrenBindMode.BindEvent);
             //褰撳墠浣忓畢
             var btnNowView = rowHome.frameTable.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uNowResidence), 700, 49);
             btnNowView.TextSize = 12;
             btnNowView.Y = Application.GetRealHeight(95);
             btnNowView.TextColor = UserCenterColor.Current.TextGrayColor1;
-            rowHome.frameTable.AddChidren(btnNowView, ChidrenBindMode.BindEventOnly);
+            rowHome.frameTable.AddChidren(btnNowView, ChidrenBindMode.BindEvent);
             //涓讳汉鎴栬�呯鐞嗗憳鎵嶄細鍑虹幇杩欎釜鑿滃崟
             if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
             {
@@ -92,7 +102,9 @@
             }
             //缁忕含搴�
             var btnLocation = rowHome.frameTable.AddMostRightView(string.Empty, 500);
-            btnLocation.Text = this.GetLatitudeAndLongitudeText(Common.Config.Instance.Home.Longitude, Common.Config.Instance.Home.Latitude);
+            btnLocation.IsMoreLines = true;
+            btnLocation.TextSize = 10;
+            btnLocation.Text = Common.Config.Instance.Home.ResidenceAddressName;
 
             //涓讳汉鎴栬�呯鐞嗗憳鎵嶄細鍑虹幇杩欎釜鑿滃崟
             if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
@@ -109,9 +121,12 @@
                         HdlThreadLogic.Current.RunThread(() =>
                         {
                             //淇濆瓨浣忓畢鍦板潃
-                            this.SaveResidenceAdrress(btnLocation, mLatitude, mLongitude);
+                            this.SaveResidenceAdrress(btnLocation, mLatitude, mLongitude, name);
                         });
-                    }, Language.StringByID(R.MyInternationalizationString.uSelectAdrress), true, latitude, longitude, 100);
+                    }, 
+                    Language.StringByID(R.MyInternationalizationString.uSelectAdrress),
+                    Language.StringByID(R.MyInternationalizationString.uSave),
+                    true, latitude, longitude, 100);
                 };
             }
 
@@ -141,8 +156,8 @@
             //鍒濆鍖栨甯�
             this.frameTable = new FrameLayout();
             frameTable.Y = rowHome.Bottom + Application.GetRealHeight(23);
-            frameTable.Height = bodyFrameLayout.Height - rowHome.Bottom - Application.GetRealHeight(23);
-            bodyFrameLayout.AddChidren(frameTable);
+            frameTable.Height = listBackContr.frameTable.Height - rowHome.Bottom - Application.GetRealHeight(23);
+            listBackContr.frameTable.AddChidren(frameTable);
 
             //鏍规嵁鎸囧畾妯″紡,鍒濆鍖栨甯冩帶浠�
             this.InitFrameTableByMode();
@@ -189,12 +204,12 @@
                 //娌℃湁璁剧疆杩囨ā寮�
                 if (AppResidenceMode == 0)
                 {
-                    var frame = new TopRightMenuControl(2);
+                    var frame = new TopRightMenuControl(2, 2);
                     //鍒涘缓妤煎眰
                     frame.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uCreatFloor), "Item/CreatFloor.png", "Item/CreatFloorSelected.png", () =>
                     {
                         //鍒涘缓妤煎眰
-                        this.CreatOrEditorFloor(null, string.Empty, string.Empty);
+                        this.CreatOrEditorFloor(null, null, string.Empty, string.Empty);
                     });
                     //鍒涘缓鎴块棿
                     frame.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uCreatRoom), "Item/RoomIcon.png", "Item/RoomIconSelected.png", () =>
@@ -212,7 +227,7 @@
                 else if (AppResidenceMode == 1)
                 {
                     //鍒涘缓妤煎眰
-                    this.CreatOrEditorFloor(null, string.Empty, string.Empty);
+                    this.CreatOrEditorFloor(null, null, string.Empty, string.Empty);
                 }
                 //鏃犳ゼ灞傛ā寮�
                 else if (AppResidenceMode == 2)
@@ -241,7 +256,7 @@
             frameFloor.UseClickStatu = false;
             frameFloor.Height = Application.GetRealHeight(115);
             frameFloor.BackgroundColor = UserCenterColor.Current.White;
-            frameTable.AddChidren(frameFloor);
+            this.frameTable.AddChidren(frameFloor);
 
             //妤煎眰
             var btnFloor = frameFloor.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uFloor), 200, 60);
@@ -250,11 +265,11 @@
             btnFloor.TextSize = 15;
             frameFloor.AddChidren(btnFloor, ChidrenBindMode.NotBind);
 
-            listView = new VerticalListControl(29);
+            listView = new FrameListControl(29);
             listView.BackgroundColor = UserCenterColor.Current.White;
             listView.Y = frameFloor.Bottom;
             listView.Height = frameTable.Height - frameFloor.Bottom;
-            frameTable.AddChidren(listView);
+            this.frameTable.AddChidren(listView);
 
             //鍒濆鍖栨ゼ灞傝
             this.InitFloorRow();
@@ -266,7 +281,7 @@
         private void InitFloorRow()
         {
             //鑾峰彇妤煎眰
-            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+            var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
             this.listFloorSort.Clear();
             foreach (string keys in dicFloor.Keys)
             {
@@ -286,7 +301,7 @@
                     this.AddFloorRow(keys, dicFloor[keys], i != count);
                 }
                 //璋冩暣鎺т欢楂樺害
-                listView.AdjustRealHeight(Application.GetRealHeight(23));
+                this.AdjustContrlTableHeight();
             });
         }
 
@@ -303,6 +318,7 @@
         private void AddFloorRow(string keys, string floorName, bool addLine)
         {
             var frameRow = new RowLayoutControl(listView.rowSpace / 2);
+            frameRow.MainKeys = keys;
             this.listView.AddChidren(frameRow);
             //鍥炬爣
             var btnIcon = frameRow.frameTable.AddLeftIcon(81);
@@ -325,17 +341,12 @@
             if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
             {
                 //鏇存敼
-                var btnChanged = new NormalViewControl(Application.GetRealWidth(184), frameRow.Height, false);
-                btnChanged.BackgroundColor = 0xff4a4a4a;
-                btnChanged.TextSize = 12;
-                btnChanged.TextColor = UserCenterColor.Current.White;
-                btnChanged.TextAlignment = TextAlignment.Center;
+                var btnChanged = frameRow.AddEditorControl();
                 btnChanged.TextID = R.MyInternationalizationString.uChanged1;
-                frameRow.AddRightView(btnChanged);
                 btnChanged.ButtonClickEvent += (sender, e) =>
                 {
                     //鍒涘缓鎴栬�呯紪杈戞ゼ灞�
-                    this.CreatOrEditorFloor(btnFloor, keys, floorName);
+                    this.CreatOrEditorFloor(frameRow, btnFloor, keys, floorName);
                 };
 
                 //鍒犻櫎
@@ -353,32 +364,37 @@
                     {
                         //绉婚櫎妤煎眰
                         Common.Config.Instance.Home.FloorDics.Remove(keys);
-                        if (Common.Room.CurrentRoom == null)
+                        if (Common.Config.Instance.Home.CurrentFloorId == keys)
                         {
-                            Common.Room.CurrentRoom = Common.Room.Lists[0];
-                        }
-                        var listDeleteFile = new List<string>();
-                        for (int i = 0; i < Common.Room.Lists.Count; i++)
-                        {
-                            if (Common.Room.Lists[i].FloorId == keys)
+                            //濡傛灉鍒犻櫎鐨勬槸褰撳墠妤煎眰鐨勮瘽
+                            Common.Config.Instance.Home.CurrentFloorId = string.Empty;
+                            foreach (string floorId in Common.Config.Instance.Home.FloorDics.Keys)
                             {
-                                listDeleteFile.Add(Common.Room.Lists[i].FileName);
+                                //鎶婄涓�涓ゼ灞侷D缁欏畠
+                                Common.Config.Instance.Home.CurrentFloorId = floorId;
+                                break;
+                            }
+                            //鍒犻櫎褰撳墠妤煎眰鐨勮瘽,闇�瑕佸幓鍒锋柊涓婚〉宸﹁竟鐨勬埧闂村垪琛�
+                            HdlRoomLogic.Current.RefreshRoomListView();
+                        }
+                        var listDeleteId = new List<string>();
+                        var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
+                        for (int i = 0; i < listAllRoom.Count; i++)
+                        {
+                            if (listAllRoom[i].FloorId == keys)
+                            {
+                                listDeleteId.Add(listAllRoom[i].Id);
                             }
                         }
                         //鍒犻櫎鎴块棿
-                        foreach (string fileName in listDeleteFile)
+                        foreach (string roomId in listDeleteId)
                         {
-                            Common.Room.CurrentRoom.Remove(fileName);
-                        }
-                        //濡傛灉褰撳墠閫夋嫨鐨勬埧闂存槸鍒犻櫎瀵硅薄鐨勮瘽
-                        if (Common.Room.CurrentRoom.FloorId == keys)
-                        {
-                            Common.Room.CurrentRoom = Common.Room.Lists[0];
+                            HdlRoomLogic.Current.RemoveRoom(roomId);
                         }
                         Common.Config.Instance.Home.Save();
                         //淇濆瓨椤哄簭
                         listFloorSort.Remove(keys);
-                        Common.Room.CurrentRoom.SaveFloorSort(listFloorSort);
+                        HdlRoomLogic.Current.SaveFloorSort(listFloorSort);
 
                         if (Common.Config.Instance.Home.FloorDics.Count == 0)
                         {
@@ -387,9 +403,27 @@
                         }
                         else
                         {
+                            bool canMove = false;
+                            for (int i = 0; i < listView.ChildrenCount; i++)
+                            {
+                                var myRow = listView.GetChildren(i) as RowLayoutControl;
+                                if (myRow != null && myRow.MainKeys == keys)
+                                {
+                                    canMove = true;
+                                    continue;
+                                }
+                                if (canMove == true)
+                                {
+                                    //瀹冧箣鍚庣殑琛岋紝鍏ㄩ儴寰�涓婄Щ
+                                    myRow.Y -= frameRow.Height;
+                                }
+                            }
                             frameRow.RemoveFromParent();
-                            listView.AdjustRealHeight(Application.GetRealHeight(23));
+                            //璋冩暣妗屽竷楂樺害
+                            this.AdjustContrlTableHeight();
                         }
+                        //鍒犻櫎妤煎眰鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂�
+                        UserView.UserPage.Instance.RefreshForm = true;
                     });
                 };
             }
@@ -401,11 +435,10 @@
         /// <param name="btnFloor"></param>
         /// <param name="keys"></param>
         /// <param name="floorName"></param>
-        private void CreatOrEditorFloor(NormalViewControl btnFloor, string keys, string floorName)
+        private void CreatOrEditorFloor(RowLayoutControl frameRow, NormalViewControl btnFloor, string keys, string floorName)
         {
             //鐢熸垚涓�涓脊绐楃敾闈�
-            var dialogForm = new DialogInputForm();
-            dialogForm.AddForm(DialogFrameMode.OnlyInput);
+            var dialogForm = new DialogInputControl();
             //鍒涘缓妤煎眰
             dialogForm.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCreatFloor));
             if (keys != string.Empty)
@@ -415,18 +448,28 @@
             }
             //璇疯緭鍏ユゼ灞傚悕绉�
             dialogForm.SetTipText(Language.StringByID(R.MyInternationalizationString.uPleaseInputFloorName));
-            dialogForm.Text = floorName;
-
+            if (Common.Config.Instance.Home.FloorDics.ContainsKey(keys) == true)
+            {
+                dialogForm.Text = Common.Config.Instance.Home.FloorDics[keys];
+                floorName = Common.Config.Instance.Home.FloorDics[keys];
+            }
+            else
+            {
+                dialogForm.Text = floorName;
+            }
             //鎸変笅纭鎸夐挳
             dialogForm.ComfirmClickEvent += ((textValue) =>
             {
+                //杩樺師宸﹀彸鑿滃崟
+                frameRow?.HideMenu();
+
                 if (this.CheckFloorName(keys, textValue) == false)
                 {
                     //妤煎眰鍚嶇О妫�娴�
                     return;
                 }
                 //鐢婚潰鍏抽棴
-                dialogForm.CloseForm();
+                dialogForm.CloseDialog();
                 if (floorName != textValue)
                 {
                     //缂栬緫鎴栬�呭垱寤烘ゼ灞傚悕绉�
@@ -436,6 +479,12 @@
                     }
                     Common.Config.Instance.Home.FloorDics[keys] = textValue;
                     Common.Config.Instance.Home.Save();
+                    if (Common.Config.Instance.Home.CurrentFloorId == string.Empty)
+                    {
+                        Common.Config.Instance.Home.CurrentFloorId = keys;
+                        //鍒涘缓绗竴涓柊鐨勬ゼ灞傜殑璇�,闇�瑕佸幓鍒锋柊涓婚〉宸﹁竟鐨勬埧闂村垪琛�
+                        HdlRoomLogic.Current.RefreshRoomListView();
+                    }
                     if (btnFloor != null)
                     {
                         btnFloor.Text = textValue;
@@ -445,6 +494,8 @@
                         //鏍规嵁鎸囧畾妯″紡,鍒濆鍖栨甯冩帶浠�
                         this.InitFrameTableByMode();
                     }
+                    //鍒涘缓鎴栬�呬慨鏀规ゼ灞傜殑璇�,涓婚〉闇�瑕侀噸鏂板埛鏂�
+                    UserView.UserPage.Instance.RefreshForm = true;
                 }
             });
         }
@@ -472,7 +523,7 @@
             btnRoomList.TextSize = 15;
             frameRoom.AddChidren(btnRoomList, ChidrenBindMode.NotBind);
 
-            listView = new VerticalListControl(29);
+            listView = new FrameListControl(29);
             listView.BackgroundColor = UserCenterColor.Current.White;
             listView.Y = frameRoom.Bottom;
             listView.Height = frameTable.Height - frameRoom.Bottom;
@@ -488,7 +539,7 @@
         private void InitRoomListRow()
         {
             //鑾峰彇妤煎眰鐨勬埧闂�
-            var listRoom = Common.Room.CurrentRoom.GetFloorSortRoom(string.Empty);
+            var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(string.Empty);
             this.listRoomSort.Clear();
             for (int i = 0; i < listRoom.Count; i++)
             {
@@ -500,8 +551,8 @@
                 //娣诲姞鎴块棿琛�
                 this.AddRoomRow(listRoom[i], i != listRoom.Count - 1);
             }
-            //璋冩暣鎺т欢鐪熷疄楂樺害
-            listView.AdjustRealHeight(Application.GetRealHeight(23));
+            //璋冩暣妗屽竷楂樺害
+            this.AdjustContrlTableHeight();
         }
 
         #endregion
@@ -516,6 +567,7 @@
         private void AddRoomRow(Common.Room room, bool addLine)
         {
             var frameRow = new RowLayoutControl(listView.rowSpace / 2);
+            frameRow.MainKeys = room.Id;
             listView.AddChidren(frameRow);
             //鍥炬爣
             var btnIcon = frameRow.frameTable.AddLeftIcon(81);
@@ -561,26 +613,40 @@
                 //纭鍒犻櫎鎴块棿?
                 this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uDeleteRoomMsg), () =>
                 {
-                    if (Common.Room.CurrentRoom.Id == room.Id)
-                    {
-                        //濡傛灉鍒犻櫎鐨勬槸褰撳墠鎴块棿鐨勮瘽
-                        Common.Room.CurrentRoom = Common.Room.Lists[0];
-                    }
-                    Common.Room.CurrentRoom.Remove(room.FileName);
+                    HdlRoomLogic.Current.RemoveRoom(room.Id);
                     //淇濆瓨椤哄簭
                     this.listRoomSort.Remove(room.Id);
-                    Common.Room.CurrentRoom.SaveRoomSort(string.Empty, this.listRoomSort);
+                    HdlRoomLogic.Current.SaveRoomSort(string.Empty, this.listRoomSort);
 
-                    if (Common.Room.Lists.Count <= 1)
+                    var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
+                    if (listAllRoom.Count <= 1)
                     {
                         //鏍规嵁鎸囧畾妯″紡,鍒濆鍖栨甯冩帶浠�
                         this.InitFrameTableByMode();
                     }
                     else
                     {
+                        bool canMove = false;
+                        for (int i = 0; i < listView.ChildrenCount; i++)
+                        {
+                            var myRow = listView.GetChildren(i) as RowLayoutControl;
+                            if (myRow != null && myRow.MainKeys == room.Id)
+                            {
+                                canMove = true;
+                                continue;
+                            }
+                            if (canMove == true)
+                            {
+                                //瀹冧箣鍚庣殑琛岋紝鍏ㄩ儴寰�涓婄Щ
+                                myRow.Y -= frameRow.Height;
+                            }
+                        }
                         frameRow.RemoveFromParent();
-                        listView.AdjustRealHeight(Application.GetRealHeight(23));
+                        //璋冩暣妗屽竷楂樺害
+                        this.AdjustContrlTableHeight();
                     }
+                    //鍒犻櫎鎴块棿鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂�
+                    UserView.UserPage.Instance.RefreshForm = true;
                 });
             };
         }
@@ -597,16 +663,36 @@
             //寮�鍚繘搴︽潯
             this.ShowProgressBar();
 
-            var Pra = new DeleteResidencePra();
-            Pra.HomeId = Common.Config.Instance.Home.Id;
-            Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-
-            bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/DelHome", true, Pra);
-            //鍏抽棴杩涘害鏉�
-            this.CloseProgressBar();
-            if (result == false)
+            if (Common.Config.Instance.Home.IsOthreShare == false)
             {
-                return;
+                //鍒犻櫎涓讳汉鑷繁鐨勪綇瀹�
+                var Pra = new DeleteResidencePra();
+                Pra.HomeId = Common.Config.Instance.Home.Id;
+                Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+
+                bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/DelHome", true, Pra);
+                if (result == false)
+                {
+                    //鍏抽棴杩涘害鏉�
+                    this.CloseProgressBar();
+                    return;
+                }
+            }
+            else
+            {
+                //鍒犻櫎鍒嗕韩鐨勪綇瀹�
+                var Pra2 = new
+                {
+                    HomeId = Common.Config.Instance.Home.Id,
+                    PrimaryUserId = Common.Config.Instance.Home.MainUserDistributedMark
+                };
+                bool result = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/SubAccountDelShareHome", false, Pra2);
+                if (result == false)
+                {
+                    //鍏抽棴杩涘害鏉�
+                    this.CloseProgressBar();
+                    return;
+                }
             }
 
             //鍥犱负鍒犻櫎鐨勬槸褰撳墠鐨勪綇瀹�,鎵�浠ラ渶瑕佸厛鍒囨崲鍒板埆鐨勪綇瀹�
@@ -632,17 +718,17 @@
                 }
             }
 
-            var myHouse = Common.House.GetHouseByFilePath(Common.Config.Instance.HomeFilePathList[index]);
+            var myHouse = HdlResidenceLogic.Current.GetHouseByFilePath(Common.Config.Instance.HomeFilePathList[index]);
             //鍒囨崲浣忓畢
             Common.Config.Instance.HomeId = myHouse.Id;
             Common.Global.CreateHomeDirectory(myHouse.Id);
             Common.Config.Instance.Save();
+
             //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
-            await UserCenterLogic.InitUserCenterMenmoryAndThread();
-            Common.Room.InitAllRoom();
+            await UserCenterLogic.InitUserCenterMenmoryAndThread(false);
 
             //鍒犻櫎浣忓畢
-            Common.House.DeleteHouseByHouseId(deleteId);
+            HdlResidenceLogic.Current.DeleteHouseMemmory(deleteId);
 
             Application.RunOnMainThread(() =>
             {
@@ -661,48 +747,60 @@
         /// <param name="btnLocation">鏄剧ず鎺т欢</param>
         /// <param name="latitude">绾害</param>
         /// <param name="longitude">缁忓害</param>
-        private async void SaveResidenceAdrress(NormalViewControl btnLocation, double latitude, double longitude)
+        /// <param name="addresName">浣嶇疆鍚嶇О</param>
+        private async void SaveResidenceAdrress(NormalViewControl btnLocation, double latitude, double longitude, string addresName)
         {
-            //寮�鍚繘搴︽潯
-            this.ShowProgressBar();
-
-            var Pra = new EditorResidencePra();
-            Pra.HomeId = Common.Config.Instance.Home.Id;
-            Pra.Name = Common.Config.Instance.Home.Name;
-            Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
-            Pra.Latitude = latitude;
-            Pra.Longitude = longitude;
-
-            //缂栬緫浣忓畢
-            bool flage = await UserCenterLogic.GetResultStatuByRequestHttps("App/EditHome", true, Pra);
-            if (flage == false)
+            //濡傛灉涓嶆槸铏氭嫙浣忓畢,鎵嶆洿鏂颁簯绔�
+            if (Common.Config.Instance.Home.IsVirtually == false)
             {
-                //鍏抽棴杩涘害鏉�
-                this.CloseProgressBar();
-                return;
-            }
-            //璁剧疆鍏ㄩ儴缃戝叧鐨勪綇瀹呭湴鍧�
-            var listGateway = HdlGatewayLogic.Current.GetAllLocalGateway();
-            foreach (var gateway in listGateway)
-            {
-                var result = HdlGatewayLogic.Current.SetGatewaySite(gateway, longitude, latitude);
-                if (result == false)
+                //寮�鍚繘搴︽潯
+                this.ShowProgressBar();
+
+                var Pra = new EditorResidencePra();
+                Pra.HomeId = Common.Config.Instance.Home.Id;
+                Pra.Name = Common.Config.Instance.Home.Name;
+                Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
+                Pra.Latitude = latitude;
+                Pra.Longitude = longitude;
+
+                //缂栬緫浣忓畢
+                bool flage = await UserCenterLogic.GetResultStatuByRequestHttps("App/EditHome", true, Pra);
+                if (flage == false)
                 {
                     //鍏抽棴杩涘害鏉�
                     this.CloseProgressBar();
                     return;
                 }
+                //璁剧疆鍏ㄩ儴缃戝叧鐨勪綇瀹呭湴鍧�
+                var listGateway = HdlGatewayLogic.Current.GetAllLocalGateway();
+                foreach (var gateway in listGateway)
+                {
+                    ZigBee.Device.ZbGateway realWay = null;
+                    if (HdlGatewayLogic.Current.GetRealGateway(ref realWay, gateway) == false)
+                    {
+                        //閿欒:缃戝叧瀵硅薄涓㈠け
+                        continue;
+                    }
+                    var result = HdlGatewayLogic.Current.SetGatewaySite(gateway, longitude, latitude, ShowErrorMode.YES);
+                    if (result == false)
+                    {
+                        //鍏抽棴杩涘害鏉�
+                        this.CloseProgressBar();
+                        return;
+                    }
+                }
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar();
             }
 
-            //鍏抽棴杩涘害鏉�
-            this.CloseProgressBar();
             //淇濆瓨缂撳瓨
             Common.Config.Instance.Home.Longitude = longitude;
             Common.Config.Instance.Home.Latitude = latitude;
+            Common.Config.Instance.Home.ResidenceAddressName = addresName;
             Common.Config.Instance.Home.Save();
             HdlThreadLogic.Current.RunMain(() =>
             {
-                btnLocation.Text = this.GetLatitudeAndLongitudeText(longitude, latitude);
+                btnLocation.Text = addresName;
             });
         }
 
@@ -721,7 +819,7 @@
                 //鎷ユ湁妤煎眰
                 return 1;
             }
-            if (Common.Room.Lists.Count > 1)
+            if (HdlRoomLogic.Current.GetAllListRooms().Count > 1)
             {
                 //鏃犳ゼ灞傛ā寮�
                 return 2;
@@ -743,7 +841,7 @@
             {
                 //璇疯緭鍏ヤ綇瀹呭悕绉�
                 string msg = Language.StringByID(R.MyInternationalizationString.uPleaseInputFloorName);
-                this.ShowMassage(ShowMsgType.Error, msg);
+                this.ShowMassage(ShowMsgType.Tip, msg);
                 return false;
             }
             foreach (string floorKeys in Common.Config.Instance.Home.FloorDics.Keys)
@@ -752,7 +850,7 @@
                 {
                     //妤煎眰鍚嶇О宸茬粡瀛樺湪
                     string msg = Language.StringByID(R.MyInternationalizationString.uFloorNameIsExist);
-                    this.ShowMassage(ShowMsgType.Error, msg);
+                    this.ShowMassage(ShowMsgType.Tip, msg);
                     return false;
                 }
             }
@@ -760,47 +858,14 @@
         }
 
         /// <summary>
-        /// 鑾峰彇缁忕含搴︾殑缈昏瘧鍚嶅瓧
+        /// 璋冩暣鎺т欢妗屽竷楂樺害
         /// </summary>
-        /// <param name="Longitude">缁忓害</param>
-        /// <param name="Latitude">绾害</param>
-        /// <returns></returns>
-        private string GetLatitudeAndLongitudeText(double Longitude, double Latitude)
+        private void AdjustContrlTableHeight()
         {
-            string value1 = string.Empty;
-            string value2 = string.Empty;
-            if (Longitude == 0)
-            {
-                //榛樿涓滅粡
-                value1 = "0掳00'E";
-            }
-            else if (Longitude > 0)
-            {
-                //涓滅粡
-                value1 = Math.Round(Longitude, 2).ToString().Replace(".", "掳") + "'E";
-            }
-            else if (Longitude < 0)
-            {
-                //瑗跨粡
-                value1 = Math.Round(-Longitude, 2).ToString().Replace(".", "掳") + "'W";
-            }
-
-            if (Latitude == 0)
-            {
-                //榛樿鍖楃含
-                value2 = "0掳00'N";
-            }
-            else if (Latitude > 0)
-            {
-                //鍖楃含
-                value2 = Math.Round(Latitude, 2).ToString().Replace(".", "掳") + "'N";
-            }
-            else if (Latitude < 0)
-            {
-                //鍗楃含
-                value2 = Math.Round(-Latitude, 2).ToString().Replace(".", "掳") + "'S";
-            }
-            return value1 + " " + value2;
+            //璋冩暣妗屽竷楂樺害
+            listView.AdjustRealHeight(Application.GetRealHeight(23));
+            this.frameTable.Height = listView.Bottom;
+            this.listBackContr.AdjustTableHeight();
         }
 
         #endregion

--
Gitblit v1.8.0