From 3292b5b7fe6c14476df002d78bf186e80f2aab08 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 18 五月 2020 09:30:30 +0800
Subject: [PATCH] 2020-05-28-1
---
ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs | 838 +++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 641 insertions(+), 197 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
index 73fb7b5..8682058 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
@@ -12,17 +12,29 @@
#region 鈻� 鍙橀噺澹版槑___________________________
/// <summary>
- /// 鍒楄〃鎺т欢
+ /// 妗屽竷鎺т欢
/// </summary>
- private VerticalListControl listView = null;
+ private FrameLayout frameTable = null;
/// <summary>
- /// 鍒楄〃鎺т欢鏈�澶ч珮搴�
+ /// 鍒楄〃鎺т欢(鐧借壊鑳屾櫙)
/// </summary>
- private int MaxListViewHeight = 0;
+ private FrameListControl listView = null;
+ /// <summary>
+ /// 鏁翠釜鐣岄潰鐨勪笂涓嬫粦鍔ㄦ帶浠�
+ /// </summary>
+ private VerticalFrameControl listBackContr = null;
/// <summary>
/// 妤煎眰椤哄簭
/// </summary>
private List<string> listFloorSort = new List<string>();
+ /// <summary>
+ /// 鎴块棿椤哄簭
+ /// </summary>
+ private List<string> listRoomSort = new List<string>();
+ /// <summary>
+ /// 褰撳墠APP鐨勪綇瀹呮ā寮� 0:杩樻病鏈夎缃湁妯″紡 1:妤煎眰妯″紡 2:娌℃湁妤煎眰妯″紡
+ /// </summary>
+ private int AppResidenceMode = 0;
#endregion
@@ -37,52 +49,212 @@
//璁剧疆澶撮儴淇℃伅
base.SetTitleText(Common.Config.Instance.Home.Name);
- //鍒ゆ柇鑳藉惁鍒犻櫎浣忓畢
- if (i_CanDeleteResidence == true)
+ //涓讳汉鎴栬�呯鐞嗗憳鎵嶄細鍑虹幇杩欎釜鑿滃崟
+ if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
{
//鍒濆鍖栧彸涓婅鑿滃崟
this.InitTopRightMenu();
}
//鍒濆鍖栦腑閮ㄤ俊鎭�
- this.InitMiddleFrame();
+ this.InitMiddleFrame(i_CanDeleteResidence);
}
/// <summary>
/// 鍒濆鍖栦腑閮ㄤ俊鎭�
/// </summary>
- private void InitMiddleFrame()
+ /// <param name="i_CanDeleteResidence">鑳藉惁鍒犻櫎褰撳墠浣忓畢</param>
+ private void InitMiddleFrame(bool i_CanDeleteResidence)
{
//娓呯┖bodyFrame
this.ClearBodyFrame();
- var frameHome = new FrameRowControl();
- frameHome.Height = Application.GetRealHeight(173);
- frameHome.BackgroundColor = UserCenterColor.Current.White;
- bodyFrameLayout.AddChidren(frameHome);
+ //鏁翠釜鐣岄潰鐨勪笂涓嬫粦鍔ㄦ帶浠�
+ this.listBackContr = new VerticalFrameControl();
+ listBackContr.Height = bodyFrameLayout.Height;
+ bodyFrameLayout.AddChidren(listBackContr);
- var btnAdreeIcon = frameHome.AddLeftIcon(81);
+ //浣忓畢琛�
+ var rowHome = new RowLayoutControl();
+ rowHome.Height = Application.GetRealHeight(173);
+ rowHome.BackgroundColor = UserCenterColor.Current.White;
+ listBackContr.frameTable.AddChidren(rowHome);
+ rowHome.frameTable.UseClickStatu = false;
+
+ var btnAdreeIcon = rowHome.frameTable.AddLeftIcon(81);
btnAdreeIcon.UnSelectedImagePath = "Item/FixedPositionSelected.png";
//浣忓畢鍚嶇О
- var btnHomeName = frameHome.AddLeftCaption(Common.Config.Instance.Home.Name, 700, 60);
+ var btnHomeName = rowHome.frameTable.AddLeftCaption(Common.Config.Instance.Home.Name, 700, 60);
btnHomeName.TextSize = 15;
btnHomeName.Y = Application.GetRealHeight(35);
- frameHome.AddChidren(btnHomeName, ChidrenBindMode.BindEventOnly);
+ rowHome.frameTable.AddChidren(btnHomeName, ChidrenBindMode.BindEventOnly);
//褰撳墠浣忓畢
- var btnNowView = frameHome.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uNowResidence), 700, 49);
+ 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;
- frameHome.AddChidren(btnNowView, ChidrenBindMode.BindEventOnly);
- //鍙崇澶�
- frameHome.AddRightArrow();
+ rowHome.frameTable.AddChidren(btnNowView, ChidrenBindMode.BindEventOnly);
+ //涓讳汉鎴栬�呯鐞嗗憳鎵嶄細鍑虹幇杩欎釜鑿滃崟
+ if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
+ {
+ //鍙崇澶�
+ rowHome.frameTable.AddRightArrow();
+ }
+ //缁忕含搴�
+ var btnLocation = rowHome.frameTable.AddMostRightView(string.Empty, 500);
+ btnLocation.Text = Common.Config.Instance.Home.ResidenceAddressName;
+ //涓讳汉鎴栬�呯鐞嗗憳鎵嶄細鍑虹幇杩欎釜鑿滃崟
+ if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
+ {
+ rowHome.frameTable.UseClickStatu = true;
+ rowHome.frameTable.ButtonClickEvent += (sender, e) =>
+ {
+ //榛樿鍊� 23.134421,113.267189
+ double latitude = Common.Config.Instance.Home.Latitude;
+ double longitude = Common.Config.Instance.Home.Longitude;
+ //鍦板浘
+ GDMapKit.Show((mLatitude, mLongitude, mRadius, name) =>
+ {
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //淇濆瓨浣忓畢鍦板潃
+ this.SaveResidenceAdrress(btnLocation, mLatitude, mLongitude, name);
+ });
+ },
+ Language.StringByID(R.MyInternationalizationString.uSelectAdrress),
+ Language.StringByID(R.MyInternationalizationString.uSave),
+ true, latitude, longitude, 100);
+ };
+ }
+
+ if (i_CanDeleteResidence == true)
+ {
+ //鍒犻櫎
+ var btnDelete = new NormalViewControl(Application.GetRealWidth(184), rowHome.Height, false);
+ btnDelete.BackgroundColor = 0xfff75858;
+ btnDelete.TextAlignment = TextAlignment.Center;
+ btnDelete.TextColor = UserCenterColor.Current.White;
+ btnDelete.TextSize = 12;
+ btnDelete.TextID = R.MyInternationalizationString.uDelete;
+ rowHome.AddRightView(btnDelete);
+ btnDelete.ButtonClickEvent += (sender, e) =>
+ {
+ //纭鍒犻櫎浣忓畢鍙婃墍鏈夋ゼ灞傘�佹埧闂�?
+ string msg = Language.StringByID(R.MyInternationalizationString.uDeleteResidenceMsg);
+ this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+ {
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ this.DeleteResidence();
+ });
+ });
+ };
+ }
+ //鍒濆鍖栨甯�
+ this.frameTable = new FrameLayout();
+ frameTable.Y = rowHome.Bottom + Application.GetRealHeight(23);
+ frameTable.Height = listBackContr.frameTable.Height - rowHome.Bottom - Application.GetRealHeight(23);
+ listBackContr.frameTable.AddChidren(frameTable);
+
+ //鏍规嵁鎸囧畾妯″紡,鍒濆鍖栨甯冩帶浠�
+ this.InitFrameTableByMode();
+ }
+
+ /// <summary>
+ /// 鏍规嵁鎸囧畾妯″紡,鍒濆鍖栨甯冩帶浠�
+ /// </summary>
+ private void InitFrameTableByMode()
+ {
+ this.frameTable.RemoveAll();
+
+ //0:杩樻病鏈夎缃湁妯″紡 1:妤煎眰妯″紡 2:娌℃湁妤煎眰妯″紡
+ AppResidenceMode = this.CheckAppResidenceMode();
+ if (AppResidenceMode == 1)
+ {
+ //鍒濆鍖栨ゼ灞傛ā寮�
+ this.InitControlByFloorMode();
+ }
+ else if (AppResidenceMode == 2)
+ {
+ //鍒濆鍖栨棤妤煎眰妯″紡
+ this.InitControlByNotFloorMode();
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鍙充笂瑙掕彍鍗昣________________________
+
+ /// <summary>
+ /// 鍒濆鍖栧彸涓婅鑿滃崟
+ /// </summary>
+ private void InitTopRightMenu()
+ {
+ var btnIcon = new MostRightIconControl(69, 69);
+ btnIcon.UnSelectedImagePath = "Item/Add.png";
+ topFrameLayout.AddChidren(btnIcon);
+ btnIcon.InitControl();
+ btnIcon.ButtonClickEvent += ((sender, e) =>
+ {
+ //0:杩樻病鏈夎缃湁妯″紡 1:妤煎眰妯″紡 2:娌℃湁妤煎眰妯″紡
+ AppResidenceMode = this.CheckAppResidenceMode();
+ //娌℃湁璁剧疆杩囨ā寮�
+ if (AppResidenceMode == 0)
+ {
+ var frame = new TopRightMenuControl(2, 2);
+ //鍒涘缓妤煎眰
+ frame.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uCreatFloor), "Item/CreatFloor.png", "Item/CreatFloorSelected.png", () =>
+ {
+ //鍒涘缓妤煎眰
+ this.CreatOrEditorFloor(null, null, string.Empty, string.Empty);
+ });
+ //鍒涘缓鎴块棿
+ frame.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uCreatRoom), "Item/RoomIcon.png", "Item/RoomIconSelected.png", () =>
+ {
+ var form = new AddNewRoomForm();
+ form.AddForm(string.Empty);
+ form.FinishEditorEvent += () =>
+ {
+ //鏍规嵁鎸囧畾妯″紡,鍒濆鍖栨甯冩帶浠�
+ this.InitFrameTableByMode();
+ };
+ });
+ }
+ //妤煎眰妯″紡
+ else if (AppResidenceMode == 1)
+ {
+ //鍒涘缓妤煎眰
+ this.CreatOrEditorFloor(null, null, string.Empty, string.Empty);
+ }
+ //鏃犳ゼ灞傛ā寮�
+ else if (AppResidenceMode == 2)
+ {
+ var form = new AddNewRoomForm();
+ form.AddForm(string.Empty);
+ form.FinishEditorEvent += () =>
+ {
+ //鏍规嵁鎸囧畾妯″紡,鍒濆鍖栨甯冩帶浠�
+ this.InitFrameTableByMode();
+ };
+ }
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖栨ゼ灞傛ā寮廮____________________
+
+ /// <summary>
+ /// 鍒濆鍖栨ゼ灞傛ā寮�
+ /// </summary>
+ private void InitControlByFloorMode()
+ {
var frameFloor = new FrameRowControl();
frameFloor.UseClickStatu = false;
- frameFloor.Y = frameHome.Bottom + Application.GetRealHeight(23);
frameFloor.Height = Application.GetRealHeight(115);
frameFloor.BackgroundColor = UserCenterColor.Current.White;
- bodyFrameLayout.AddChidren(frameFloor);
+ this.frameTable.AddChidren(frameFloor);
//妤煎眰
var btnFloor = frameFloor.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uFloor), 200, 60);
@@ -90,26 +262,12 @@
btnFloor.TextColor = UserCenterColor.Current.TextColor2;
btnFloor.TextSize = 15;
frameFloor.AddChidren(btnFloor, ChidrenBindMode.NotBind);
- if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
- {
- //娣诲姞妤煎眰
- var btnAddFloor = frameFloor.AddMostRightEmptyIcon(69, 69);
- frameFloor.ChangedChidrenBindMode(btnAddFloor, ChidrenBindMode.NotBind);
- btnAddFloor.Y = Application.GetRealHeight(46);
- btnAddFloor.UnSelectedImagePath = "Item/Add.png";
- btnAddFloor.ButtonClickEvent += (sender, e) =>
- {
- //鍒涘缓妤煎眰
- this.CreatOrEditorFloor(string.Empty, string.Empty);
- };
- }
- this.MaxListViewHeight = bodyFrameLayout.Height - frameFloor.Bottom;
- listView = new VerticalListControl(29);
+ listView = new FrameListControl(29);
listView.BackgroundColor = UserCenterColor.Current.White;
listView.Y = frameFloor.Bottom;
- listView.Height = MaxListViewHeight;
- bodyFrameLayout.AddChidren(listView);
+ listView.Height = frameTable.Height - frameFloor.Bottom;
+ this.frameTable.AddChidren(listView);
//鍒濆鍖栨ゼ灞傝
this.InitFloorRow();
@@ -121,15 +279,13 @@
private void InitFloorRow()
{
//鑾峰彇妤煎眰
- var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+ var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
this.listFloorSort.Clear();
foreach (string keys in dicFloor.Keys)
{
listFloorSort.Add(keys);
}
- listView.Height = MaxListViewHeight;
- listView.RemoveAll();
if (Common.Config.Instance.Home.FloorDics.Count == 0)
{
return;
@@ -143,7 +299,7 @@
this.AddFloorRow(keys, dicFloor[keys], i != count);
}
//璋冩暣鎺т欢楂樺害
- listView.AdjustRealHeight(Application.GetRealHeight(23));
+ this.AdjustContrlTableHeight();
});
}
@@ -160,6 +316,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);
@@ -182,17 +339,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(keys, floorName);
+ //鍒涘缓鎴栬�呯紪杈戞ゼ灞�
+ this.CreatOrEditorFloor(frameRow, btnFloor, keys, floorName);
};
//鍒犻櫎
@@ -205,25 +357,89 @@
frameRow.AddRightView(btnDelete);
btnDelete.ButtonClickEvent += (sender, e) =>
{
- //鍒犻櫎妤煎眰
- this.DeleteFloor(keys);
+ //纭鍒犻櫎妤煎眰鍙婂叾鎵�鏈夋埧闂�?
+ this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uDeleteFloorMsg), () =>
+ {
+ //绉婚櫎妤煎眰
+ Common.Config.Instance.Home.FloorDics.Remove(keys);
+ if (Common.Config.Instance.Home.CurrentFloorId == keys)
+ {
+ //濡傛灉鍒犻櫎鐨勬槸褰撳墠妤煎眰鐨勮瘽
+ Common.Config.Instance.Home.CurrentFloorId = string.Empty;
+ foreach (string floorId in Common.Config.Instance.Home.FloorDics.Keys)
+ {
+ //鎶婄涓�涓ゼ灞侷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);
+ }
+ }
+ //濡傛灉褰撳墠閫夋嫨鐨勬埧闂存槸鍒犻櫎瀵硅薄鐨勮瘽
+ if (HdlRoomLogic.Current.CurrentRoom.FloorId == keys)
+ {
+ HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom();
+ }
+ //鍒犻櫎鎴块棿
+ foreach (string roomId in listDeleteId)
+ {
+ HdlRoomLogic.Current.RemoveRoom(roomId);
+ }
+ Common.Config.Instance.Home.Save();
+ //淇濆瓨椤哄簭
+ listFloorSort.Remove(keys);
+ HdlRoomLogic.Current.SaveFloorSort(listFloorSort);
+
+ if (Common.Config.Instance.Home.FloorDics.Count == 0)
+ {
+ //鏍规嵁鎸囧畾妯″紡,鍒濆鍖栨甯冩帶浠�
+ 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 == keys)
+ {
+ canMove = true;
+ continue;
+ }
+ if (canMove == true)
+ {
+ //瀹冧箣鍚庣殑琛岋紝鍏ㄩ儴寰�涓婄Щ
+ myRow.Y -= frameRow.Height;
+ }
+ }
+ frameRow.RemoveFromParent();
+ //璋冩暣妗屽竷楂樺害
+ this.AdjustContrlTableHeight();
+ }
+ });
};
}
}
- #endregion
-
- #region 鈻� 鍒涘缓鎴栫紪杈戞ゼ灞俖____________________
-
/// <summary>
/// 鍒涘缓鎴栬�呯紪杈戞ゼ灞�
/// </summary>
+ /// <param name="btnFloor"></param>
/// <param name="keys"></param>
/// <param name="floorName"></param>
- private void CreatOrEditorFloor(string keys, string floorName)
+ private void CreatOrEditorFloor(RowLayoutControl frameRow, NormalViewControl btnFloor, string keys, string floorName)
{
//鐢熸垚涓�涓脊绐楃敾闈�
- var dialogForm = new DialogInputFrameControl(this, DialogFrameMode.OnlyInput);
+ var dialogForm = new DialogInputControl();
//鍒涘缓妤煎眰
dialogForm.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCreatFloor));
if (keys != string.Empty)
@@ -233,11 +449,21 @@
}
//璇疯緭鍏ユゼ灞傚悕绉�
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)
{
//妤煎眰鍚嶇О妫�娴�
@@ -254,11 +480,356 @@
}
Common.Config.Instance.Home.FloorDics[keys] = textValue;
Common.Config.Instance.Home.Save();
- //閲嶆柊鍒濆鍖栨ゼ灞傝
- this.InitFloorRow();
+ if (Common.Config.Instance.Home.CurrentFloorId == string.Empty)
+ {
+ Common.Config.Instance.Home.CurrentFloorId = keys;
+ //鍒涘缓绗竴涓柊鐨勬ゼ灞傜殑璇�,闇�瑕佸幓鍒锋柊涓婚〉宸﹁竟鐨勬埧闂村垪琛�
+ HdlRoomLogic.Current.RefreshRoomListView();
+ }
+ if (btnFloor != null)
+ {
+ btnFloor.Text = textValue;
+ }
+ else
+ {
+ //鏍规嵁鎸囧畾妯″紡,鍒濆鍖栨甯冩帶浠�
+ this.InitFrameTableByMode();
+ }
}
});
}
+
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖栨棤妤煎眰妯″紡___________________
+
+ /// <summary>
+ /// 鍒濆鍖栨棤妤煎眰妯″紡
+ /// </summary>
+ private void InitControlByNotFloorMode()
+ {
+ var frameRoom = new FrameRowControl();
+ frameRoom.UseClickStatu = false;
+ frameRoom.Height = Application.GetRealHeight(115);
+ frameRoom.BackgroundColor = UserCenterColor.Current.White;
+ frameTable.AddChidren(frameRoom);
+
+ //鎴块棿鍒楄〃
+ var btnRoomList = frameRoom.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uRoomList), 200, 60);
+ btnRoomList.Y = Application.GetRealHeight(50);
+ btnRoomList.TextColor = UserCenterColor.Current.TextColor2;
+ btnRoomList.TextSize = 15;
+ frameRoom.AddChidren(btnRoomList, ChidrenBindMode.NotBind);
+
+ listView = new FrameListControl(29);
+ listView.BackgroundColor = UserCenterColor.Current.White;
+ listView.Y = frameRoom.Bottom;
+ listView.Height = frameTable.Height - frameRoom.Bottom;
+ frameTable.AddChidren(listView);
+
+ //鍒濆鍖栨埧闂村垪琛�
+ this.InitRoomListRow();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨埧闂村垪琛�
+ /// </summary>
+ private void InitRoomListRow()
+ {
+ //鑾峰彇妤煎眰鐨勬埧闂�
+ var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(string.Empty);
+ this.listRoomSort.Clear();
+ for (int i = 0; i < listRoom.Count; i++)
+ {
+ this.listRoomSort.Add(listRoom[i].Id);
+ }
+
+ for (int i = 0; i < listRoom.Count; i++)
+ {
+ //娣诲姞鎴块棿琛�
+ this.AddRoomRow(listRoom[i], i != listRoom.Count - 1);
+ }
+ //璋冩暣妗屽竷楂樺害
+ this.AdjustContrlTableHeight();
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞鎴块棿琛宊________________________
+
+ /// <summary>
+ /// 娣诲姞鎴块棿琛�
+ /// </summary>
+ /// <param name="room"></param>
+ /// <param name="addLine"></param>
+ 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);
+ btnIcon.UnSelectedImagePath = "Item/RoomIconSelected.png";
+ //鍚嶇О
+ var btnName = frameRow.frameTable.AddLeftCaption(room.Name, 600);
+ btnName.TextSize = 15;
+ //鍙崇澶�
+ frameRow.frameTable.AddRightArrow();
+ if (addLine == true)
+ {
+ //搴曠嚎
+ frameRow.frameTable.AddBottomLine();
+ }
+ frameRow.frameTable.ButtonClickEvent += (sender, e) =>
+ {
+ var form = new LookRoomSettionForm();
+ form.AddForm(room);
+ };
+
+ if (room.IsSharedRoom == true)
+ {
+ //濡傛灉鏄垎浜殑鎴块棿锛屼笉鑳界紪杈戝拰淇敼
+ return;
+ }
+
+ //缂栬緫
+ var btnEditor = frameRow.AddEditorControl();
+ btnEditor.ButtonClickEvent += (sender, e) =>
+ {
+ var form = new EditorRoomInforForm();
+ form.AddForm(room);
+ form.FinishEditorEvent += (roomName) =>
+ {
+ btnName.Text = roomName;
+ };
+ };
+
+ //鍒犻櫎
+ var btnDelete = frameRow.AddDeleteControl();
+ btnDelete.ButtonClickEvent += (sender, e) =>
+ {
+ //纭鍒犻櫎鎴块棿?
+ this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uDeleteRoomMsg), () =>
+ {
+ if (HdlRoomLogic.Current.CurrentRoom.Id == room.Id)
+ {
+ //濡傛灉鍒犻櫎鐨勬槸褰撳墠鎴块棿鐨勮瘽
+ HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom();
+ }
+ HdlRoomLogic.Current.RemoveRoom(room.Id);
+ //淇濆瓨椤哄簭
+ this.listRoomSort.Remove(room.Id);
+ HdlRoomLogic.Current.SaveRoomSort(string.Empty, this.listRoomSort);
+
+ 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();
+ //璋冩暣妗屽竷楂樺害
+ this.AdjustContrlTableHeight();
+ }
+ });
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 鍒犻櫎浣忓畢___________________________
+
+ /// <summary>
+ /// 鍒犻櫎浣忓畢
+ /// </summary>
+ public async void DeleteResidence()
+ {
+ //寮�鍚繘搴︽潯
+ this.ShowProgressBar();
+
+ if (Common.Config.Instance.Home.IsOthreShare == false)
+ {
+ //鍒犻櫎涓讳汉鑷繁鐨勪綇瀹�
+ 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;
+ }
+ }
+
+ //鍥犱负鍒犻櫎鐨勬槸褰撳墠鐨勪綇瀹�,鎵�浠ラ渶瑕佸厛鍒囨崲鍒板埆鐨勪綇瀹�
+ string deleteId = Common.Config.Instance.Home.Id;
+ string deleteFile = Common.Config.Instance.Home.FileName;
+ int index = 0;
+ for (; index < Common.Config.Instance.HomeFilePathList.Count; index++)
+ {
+ if (Common.Config.Instance.HomeFilePathList[index] == deleteFile)
+ {
+ //褰撳墠浣忓畢鎵�澶勭殑浣嶇疆(浣忓畢鏁拌偗瀹氬ぇ浜�1,涓嶇劧涓嶄細鍑虹幇鍒犻櫎鎸夐挳)
+ if (index == 0)
+ {
+ //鍙栦笅涓�浣�
+ index++;
+ }
+ else
+ {
+ //鍙栧墠涓�浣�
+ index--;
+ }
+ break;
+ }
+ }
+
+ var myHouse = Common.House.GetHouseByFilePath(Common.Config.Instance.HomeFilePathList[index]);
+ //鍒囨崲浣忓畢
+ Common.Config.Instance.HomeId = myHouse.Id;
+ Common.Global.CreateHomeDirectory(myHouse.Id);
+ Common.Config.Instance.Save();
+
+ //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
+ await UserCenterLogic.InitUserCenterMenmoryAndThread(false);
+
+ //鍒犻櫎浣忓畢
+ Common.House.DeleteHouseByHouseId(deleteId);
+
+ Application.RunOnMainThread(() =>
+ {
+ //鍏抽棴鐣岄潰
+ this.CloseForm();
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 淇濆瓨浣忓畢鍦板浘鍦板潃___________________
+
+ /// <summary>
+ /// 淇濆瓨浣忓畢鍦板潃
+ /// </summary>
+ /// <param name="btnLocation">鏄剧ず鎺т欢</param>
+ /// <param name="latitude">绾害</param>
+ /// <param name="longitude">缁忓害</param>
+ /// <param name="addresName">浣嶇疆鍚嶇О</param>
+ private async void SaveResidenceAdrress(NormalViewControl btnLocation, double latitude, double longitude, string addresName)
+ {
+ //濡傛灉涓嶆槸铏氭嫙浣忓畢,鎵嶆洿鏂颁簯绔�
+ if (Common.Config.Instance.Home.IsVirtually == 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();
+ }
+
+ //淇濆瓨缂撳瓨
+ 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 = addresName;
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 妫�娴婣pp鐨勪綇瀹呮ā寮� 0:杩樻病鏈夎缃湁妯″紡 1:妤煎眰妯″紡 2:娌℃湁妤煎眰妯″紡
+ /// </summary>
+ /// <returns></returns>
+ private int CheckAppResidenceMode()
+ {
+ if (Common.Config.Instance.Home.FloorDics.Count > 0)
+ {
+ //鎷ユ湁妤煎眰
+ return 1;
+ }
+ if (HdlRoomLogic.Current.GetAllListRooms().Count > 1)
+ {
+ //鏃犳ゼ灞傛ā寮�
+ return 2;
+ }
+
+ return 0;
+ }
+
/// <summary>
/// 妫�娴嬫ゼ灞傚悕绉�
@@ -272,7 +843,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)
@@ -281,149 +852,22 @@
{
//妤煎眰鍚嶇О宸茬粡瀛樺湪
string msg = Language.StringByID(R.MyInternationalizationString.uFloorNameIsExist);
- this.ShowMassage(ShowMsgType.Error, msg);
+ this.ShowMassage(ShowMsgType.Tip, msg);
return false;
}
}
return true;
}
- #endregion
-
- #region 鈻� 鍒犻櫎妤煎眰___________________________
-
/// <summary>
- /// 鍒犻櫎妤煎眰
+ /// 璋冩暣鎺т欢妗屽竷楂樺害
/// </summary>
- /// <param name="keys"></param>
- private void DeleteFloor(string keys)
+ private void AdjustContrlTableHeight()
{
- //纭鍒犻櫎妤煎眰鍙婂叾鎵�鏈夋埧闂�?
- this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uDeleteFloorMsg), () =>
- {
- //绉婚櫎妤煎眰
- Common.Config.Instance.Home.FloorDics.Remove(keys);
- if (Common.Room.CurrentRoom == null)
- {
- 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)
- {
- listDeleteFile.Add(Common.Room.Lists[i].FileName);
- }
- }
- //鍒犻櫎鎴块棿
- foreach (string fileName in listDeleteFile)
- {
- Common.Room.CurrentRoom.Remove(fileName);
- }
- //濡傛灉褰撳墠閫夋嫨鐨勬埧闂存槸鍒犻櫎瀵硅薄鐨勮瘽
- if (Common.Room.CurrentRoom.FloorId == keys)
- {
- Common.Room.CurrentRoom = Common.Room.Lists[0];
- }
- Common.Config.Instance.Home.Save();
- //閲嶆柊鍒濆鍖栨ゼ灞傝
- listFloorSort.Remove(keys);
- this.InitFloorRow();
- });
- }
-
- #endregion
-
- #region 鈻� 鍙充笂瑙掕彍鍗昣________________________
-
- /// <summary>
- /// 鍒濆鍖栧彸涓婅鑿滃崟
- /// </summary>
- private void InitTopRightMenu()
- {
- var btnIcon = new MostRightIconControl(69, 69);
- btnIcon.UnSelectedImagePath = "Item/More.png";
- topFrameLayout.AddChidren(btnIcon);
- btnIcon.InitControl();
- btnIcon.ButtonClickEvent += ((sender, e) =>
- {
- var frame = new TopRightMenuControl(1);
- //鍒犻櫎浣忓畢
- frame.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uDeleteResidence), "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
- {
- //纭鍒犻櫎浣忓畢鍙婃墍鏈夋ゼ灞傘�佹埧闂�?
- string msg = Language.StringByID(R.MyInternationalizationString.uDeleteResidenceMsg);
- this.ShowMassage(ShowMsgType.Confirm, msg, () =>
- {
- this.DeleteResidence();
- });
- });
- });
- }
-
- /// <summary>
- /// 鍒犻櫎浣忓畢
- /// </summary>
- public async void DeleteResidence()
- {
- //寮�鍚繘搴︽潯
- 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)
- {
- return;
- }
-
- HdlThreadLogic.Current.RunThread(async () =>
- {
- //鍥犱负鍒犻櫎鐨勬槸褰撳墠鐨勪綇瀹�,鎵�浠ラ渶瑕佸厛鍒囨崲鍒板埆鐨勪綇瀹�
- string deleteId = Common.Config.Instance.Home.Id;
- string deleteFile = Common.Config.Instance.Home.FileName;
- int index = 0;
- for (; index < Common.Config.Instance.HomeFilePathList.Count; index++)
- {
- if (Common.Config.Instance.HomeFilePathList[index] == deleteFile)
- {
- //褰撳墠浣忓畢鎵�澶勭殑浣嶇疆(浣忓畢鏁拌偗瀹氬ぇ浜�1,涓嶇劧涓嶄細鍑虹幇鍒犻櫎鎸夐挳)
- if (index == 0)
- {
- //鍙栦笅涓�浣�
- index++;
- }
- else
- {
- //鍙栧墠涓�浣�
- index--;
- }
- break;
- }
- }
-
- var myHouse = Common.House.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();
-
- //鍒犻櫎浣忓畢
- Common.House.DeleteHouseByHouseId(deleteId);
-
- Application.RunOnMainThread(() =>
- {
- //鍏抽棴鐣岄潰
- this.CloseForm();
- });
- });
+ //璋冩暣妗屽竷楂樺害
+ listView.AdjustRealHeight(Application.GetRealHeight(23));
+ this.frameTable.Height = listView.Bottom;
+ this.listBackContr.AdjustTableHeight();
}
#endregion
--
Gitblit v1.8.0