From 790d1cadf03164aecd0fccd2874f7da7997e34d4 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 18 五月 2020 13:48:35 +0800
Subject: [PATCH] 2020-05-18-2
---
ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs | 364 +++++++++++++++++++++++++++++++--------------------
1 files changed, 223 insertions(+), 141 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs b/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
index 2dfd8a5..cb99f85 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
@@ -16,6 +16,10 @@
#region 鈻� 鍙橀噺澹版槑___________________________
/// <summary>
+ /// 鏁翠釜鐣岄潰鐨勪笂涓嬫粦鍔ㄦ帶浠�
+ /// </summary>
+ private VerticalFrameControl listBodyContr = null;
+ /// <summary>
/// 鎴块棿鐨勬粦鍔ㄥ鍣ㄦ帶浠�
/// </summary>
private HorizontalPages roomPageView = null;
@@ -45,16 +49,23 @@
/// </summary>
public void ShowForm()
{
- //鍏堝垵濮嬪寲宸︽粦鎴块棿鍒楄〃鐣岄潰
- if (ListRoomViewFrom.Instance == null)
+ //鍏堝垵濮嬪寲宸︽粦鎴块棿鍒楄〃鐣岄潰(鍦ㄥ弽灏勯噷闈㈠垵濮嬪寲)
+ if (ListRoomViewFrom.Instance == null) { }
+
+ //鏁翠釜鑳屾櫙鐨勪笂涓嬫粦鍔ㄦ帶浠�
+ if (this.listBodyContr == null)
{
- var roomList = new ListRoomViewFrom();
- CommonPage.Instance.AddLeftView(roomList);
- roomList.ShowForm();
+ this.listBodyContr = new VerticalFrameControl();
+ listBodyContr.Height = this.Height;
+ listBodyContr.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
+ this.AddChidren(listBodyContr);
}
- this.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
- //娓呴櫎鍏ㄩ儴
- this.RemoveAll();
+ else
+ {
+ //娓呴櫎鍏ㄩ儴
+ this.listBodyContr.frameTable.RemoveAll();
+ listBodyContr.RecoverTableHeight();
+ }
//鍒濆鍖栧ご閮ㄦ帶浠�
this.InitTopFrameLayoutControl();
@@ -78,23 +89,26 @@
topFrameLayout.Y = Application.GetRealHeight(60);
topFrameLayout.Height = Application.GetRealHeight(127);
topFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
- this.AddChidren(topFrameLayout);
+ listBodyContr.frameTable.AddChidren(topFrameLayout);
+
+ //妤煎眰鍥炬爣
+ var btnFloorIcon = new IconViewControl(69);
+ btnFloorIcon.X = ControlCommonResourse.XXLeft;
+ btnFloorIcon.Gravity = Gravity.CenterVertical;
+ btnFloorIcon.UnSelectedImagePath = "Item/Floor.png";
+ topFrameLayout.AddChidren(btnFloorIcon);
//鎷ユ湁妤煎眰
this.btnFloorName = null;
if (Config.Instance.Home.FloorDics.Count > 0)
{
- //妤煎眰鍥炬爣
- var btnFloorIcon = new IconViewControl(69);
- btnFloorIcon.X = ControlCommonResourse.XXLeft;
- btnFloorIcon.Gravity = Gravity.CenterVertical;
- btnFloorIcon.UnSelectedImagePath = "Item/Floor.png";
- topFrameLayout.AddChidren(btnFloorIcon);
+ //鎷ユ湁妤煎眰鐨勬椂鍊�,鐐瑰嚮鎵嶆湁鏁�
btnFloorIcon.ButtonClickEvent += (sender, e) =>
{
//鏄剧ず閫夋嫨妤煎眰鐨勭晫闈�
this.ShowSelectFloorForm(btnFloorName);
};
+
//妤煎眰鍚�
this.btnFloorName = new NormalViewControl(500, 100, true);
btnFloorName.X = btnFloorIcon.Right;
@@ -135,7 +149,7 @@
btnHouseName.IsBold = true;
btnHouseName.Text = Config.Instance.Home.Name;
btnHouseName.Width = btnHouseName.GetRealWidthByText();
- this.AddChidren(btnHouseName);
+ this.listBodyContr.frameTable.AddChidren(btnHouseName);
//鍒囨崲浣忓畢
btnHouseName.MouseLongEventHandler += (sender, e) =>
@@ -147,7 +161,7 @@
}
else
{
- var selectHouse = new Device.Category.SelectHouse();
+ var selectHouse = new Category.SelectHouseForm();
selectHouse.Init();
selectHouse.HouseAction = (houseId) =>
{
@@ -162,8 +176,18 @@
/// </summary>
private void InitMidFrameLayoutControl()
{
+ //鎴愬憳韬唤涓嶅厑璁告坊鍔犵綉鍏�
+ if (UserCenterResourse.UserInfo.AuthorityNo == 3)
+ {
+ //鍒濆鍖栧満鏅�,鍔熻兘鐨勫垏鎹㈡帶浠�
+ this.InitSceneFunctionSwitchControl();
+ //鍒濆鍖栨埧闂存粦鍔ㄦ帶浠�
+ this.InitRoomHorizontalPagesControl();
+ return;
+ }
+
//妫�娴嬫槸鍚︾粦瀹氭湁缃戝叧
- if (this.CheckHadBindGateway() == false)
+ if (Common.Config.Instance.Home.IsVirtually == false && this.CheckHadBindGateway() == false)
{
//鏄剧ず娌℃湁缁戝畾杩囩綉鍏崇殑鐣岄潰
this.ShowNoGatewayTip();
@@ -172,7 +196,6 @@
{
//鍒濆鍖栧満鏅�,鍔熻兘鐨勫垏鎹㈡帶浠�
this.InitSceneFunctionSwitchControl();
-
//鍒濆鍖栨埧闂存粦鍔ㄦ帶浠�
this.InitRoomHorizontalPagesControl();
}
@@ -190,7 +213,7 @@
functionSceneView.Height = Application.GetRealHeight(167);
functionSceneView.Gravity = Gravity.CenterHorizontal;
functionSceneView.BackgroundImagePath = "Item/SceneFunctionBG.png";
- this.AddChidren(functionSceneView);
+ this.listBodyContr.frameTable.AddChidren(functionSceneView);
//鍦烘櫙
var btnScene = new NormalViewControl(350, 100, true);
@@ -216,13 +239,13 @@
if (UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 1)
{
btnScene.IsSelected = true;
- btnScene.TextSize = 16;
+ btnScene.TextSize = 17;
btnScene.IsBold = true;
}
else if (UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 2)
{
btnFunction.IsSelected = true;
- btnFunction.TextSize = 16;
+ btnFunction.TextSize = 17;
btnFunction.IsBold = true;
}
@@ -234,7 +257,7 @@
Gravity = Gravity.CenterHorizontal,
BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
};
- this.AddChidren(bodyFrameLayout);
+ this.listBodyContr.frameTable.AddChidren(bodyFrameLayout);
//閫夋嫨鍔熻兘鍒嗘爮
btnFunction.ButtonClickEvent += (sender, e) =>
@@ -251,7 +274,7 @@
btnScene.IsBold = false;
btnFunction.IsSelected = true;
- btnFunction.TextSize = 16;
+ btnFunction.TextSize = 17;
btnFunction.IsBold = true;
//鍒锋柊璁惧妗屽竷鎺т欢
this.RefreshBodyView();
@@ -267,7 +290,7 @@
UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 1;
btnScene.IsSelected = true;
- btnScene.TextSize = 16;
+ btnScene.TextSize = 17;
btnScene.IsBold = true;
btnFunction.IsSelected = false;
@@ -287,27 +310,27 @@
bg.Y = Application.GetRealHeight(302);
bg.Gravity = Gravity.CenterHorizontal;
bg.UnSelectedImagePath = "Item/NoBindGW.png";
- this.AddChidren(bg);
+ this.listBodyContr.frameTable.AddChidren(bg);
- var tip = new NormalViewControl(Application.GetMinRealAverage(717), Application.GetMinRealAverage(58), false);
+ var tip = new NormalViewControl(this.GetPictrueRealSize(717), this.GetPictrueRealSize(58), false);
tip.Y = Application.GetRealHeight(815);
tip.Gravity = Gravity.CenterHorizontal;
tip.TextID = R.MyInternationalizationString.NewAccountNeedBingGW;
tip.TextColor = ZigbeeColor.Current.GXCTextGrayColor;
tip.TextAlignment = TextAlignment.Center;
- this.AddChidren(tip);
+ this.listBodyContr.frameTable.AddChidren(tip);
var addBG = new PicViewControl(971, 366);
addBG.Y = Application.GetRealHeight(1048);
addBG.UnSelectedImagePath = "Item/VirtualFrame.png";
addBG.Gravity = Gravity.CenterHorizontal;
- this.AddChidren(addBG);
+ this.listBodyContr.frameTable.AddChidren(addBG);
var addGatewayBtn = new IconViewControl(89);
addGatewayBtn.Y = Application.GetRealHeight(1143);
addGatewayBtn.UnSelectedImagePath = "Item/Add_GW.png";
addGatewayBtn.Gravity = Gravity.CenterHorizontal;
- this.AddChidren(addGatewayBtn);
+ this.listBodyContr.frameTable.AddChidren(addGatewayBtn);
addGatewayBtn.ButtonClickEvent += (sender, e) =>
{
var form = new UserCenter.GatewayAdd.NewGateWayMenuSelectForm();
@@ -320,7 +343,7 @@
addTip.TextID = R.MyInternationalizationString.AddSmartGW;
addTip.TextColor = ZigbeeColor.Current.GXCTextBlackColor;
addTip.TextAlignment = TextAlignment.Center;
- AddChidren(addTip);
+ this.listBodyContr.frameTable.AddChidren(addTip);
addTip.ButtonClickEvent += (sender, e) =>
{
@@ -341,9 +364,22 @@
//宸﹀彸婊戝姩鎺т欢鐨勮儗鏅鍣�
var frameBack = new FrameLayout();
frameBack.Y = Application.GetRealHeight(302);
- frameBack.Width = Application.GetRealWidth(CommonPage.AppRealWidth);
+ frameBack.Width = this.Width;
frameBack.Height = Application.GetRealHeight(478);
- this.AddChidren(frameBack);
+ this.listBodyContr.frameTable.AddChidren(frameBack);
+
+ //鎴块棿婊戝姩鎺т欢宸﹁竟鐨勮櫄鎷熷浘鐗�
+ var mLeftImageView = new ImageView();
+ mLeftImageView.ImagePath = "RoomIcon/19.jpg";
+ mLeftImageView.Radius = (uint)Application.GetRealHeight(17);
+ mLeftImageView.Width = Application.GetRealWidth(717);
+ mLeftImageView.Height = Application.GetRealHeight(478);
+ //鎴块棿婊戝姩鎺т欢鍙宠竟鐨勮櫄鎷熷浘鐗�
+ var mRightImageView = new ImageView();
+ mRightImageView.ImagePath = "RoomIcon/19.jpg";
+ mRightImageView.Radius = (uint)Application.GetRealHeight(17);
+ mRightImageView.Width = mLeftImageView.Width;
+ mRightImageView.Height = mLeftImageView.Height;
this.roomPageView = new HorizontalPages();
roomPageView.Width = frameBack.Width;
@@ -358,7 +394,10 @@
btnRoomBottomShadow.Y = frameBack.Bottom;
btnRoomBottomShadow.Gravity = Gravity.CenterHorizontal;
btnRoomBottomShadow.UnSelectedImagePath = "Room/RoomCardShadow.png";
- this.AddChidren(btnRoomBottomShadow);
+ this.listBodyContr.frameTable.AddChidren(btnRoomBottomShadow);
+
+ //璁剧疆鎺у埗鏈�宸﹀拰鏈�鍙�2杈瑰~鍏呯殑鍋囪儗鏅疺iew锛屼笉璁剧疆涓嶆樉绀猴紝闇�瑕佸湪AddChidren 鍓嶈皟鐢ㄨ鏂规硶
+ roomPageView.SetLeftAndRightImageView(mLeftImageView, mRightImageView);
//褰撳墠鎴块棿
var listRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
@@ -368,7 +407,7 @@
var roomView = new RoomView(0, 0);
roomPageView.AddChidren(roomView);
roomView.Init(listRoom[i]);
-
+
if (listRoom[i].Id == HdlRoomLogic.Current.CurrentRoom.Id)
{
//褰撳墠鎴块棿,鍒欐樉绀洪偅浜涙暟鎹嚭鏉�
@@ -381,42 +420,34 @@
roomView.HideName(true);
}
}
- //璁剧疆鎴块棿鐨勫垵濮嬮�夋嫨
- roomPageView.PageIndex = curIndex;
- //鎴块棿鑳藉婊戝姩鐨勬椂鍊欐墠鏄剧ず
- FrameLayout btnRoomLeftShadow = null;
- FrameLayout btnRoomRightShadow = null;
- if (listRoom.Count > 1)
- {
- //鍦ㄦ埧闂村崱鐗囧乏杈规坊鍔犻伄缃�
- btnRoomLeftShadow = new FrameLayout();
- btnRoomLeftShadow.Width = Application.GetRealWidth(124);
- btnRoomLeftShadow.Height = roomPageView.Height - roomPageView.JMBJ * 2;
- btnRoomLeftShadow.Gravity = Gravity.CenterVertical;
- btnRoomLeftShadow.BackgroundColor = 0x1c000000;
- btnRoomLeftShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight);
- btnRoomLeftShadow.Visible = curIndex >= 1;
- frameBack.AddChidren(btnRoomLeftShadow);
- //鍦ㄦ埧闂村崱鐗囧彸杈规坊鍔犻伄缃�
- btnRoomRightShadow = new FrameLayout();
- btnRoomRightShadow.Width = btnRoomLeftShadow.Width;
- btnRoomRightShadow.Height = btnRoomLeftShadow.Height;
- btnRoomRightShadow.X = Application.GetRealWidth(956);
- btnRoomRightShadow.Gravity = Gravity.CenterVertical;
- btnRoomRightShadow.BackgroundColor = btnRoomLeftShadow.BackgroundColor;
- btnRoomRightShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerBottomLeft);
- btnRoomRightShadow.Visible = curIndex < listRoom.Count - 1;
- frameBack.AddChidren(btnRoomRightShadow);
- }
+ //鍦ㄦ埧闂村崱鐗囧乏杈规坊鍔犻伄缃�
+ var btnRoomLeftShadow = new FrameLayout();
+ btnRoomLeftShadow.Width = Application.GetRealWidth(124);
+ btnRoomLeftShadow.Height = roomPageView.Height - roomPageView.JMBJ * 2;
+ btnRoomLeftShadow.Gravity = Gravity.CenterVertical;
+ btnRoomLeftShadow.BackgroundColor = 0x1c000000;
+ btnRoomLeftShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight);
+ //frameBack.AddChidren(btnRoomLeftShadow);//鏆傛椂涓嶅姞閬僵
+
+ //鍦ㄦ埧闂村崱鐗囧彸杈规坊鍔犻伄缃�
+ var btnRoomRightShadow = new FrameLayout();
+ btnRoomRightShadow.Width = btnRoomLeftShadow.Width;
+ btnRoomRightShadow.Height = btnRoomLeftShadow.Height;
+ btnRoomRightShadow.X = Application.GetRealWidth(956);
+ btnRoomRightShadow.Gravity = Gravity.CenterVertical;
+ btnRoomRightShadow.BackgroundColor = btnRoomLeftShadow.BackgroundColor;
+ btnRoomRightShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerBottomLeft);
+ //frameBack.AddChidren(btnRoomRightShadow);//鏆傛椂涓嶅姞閬僵
+
//鎺т欢寮�濮嬫粦鍔ㄧ殑浜嬩欢
roomPageView.StartScrollAction += () =>
{
this.isRoomChanging = true;
//寮�濮嬫粦鍔ㄦ椂,闅愯棌褰撳墠鐨勬暟鎹樉绀�
(roomPageView.GetChildren(roomPageView.PageIndex) as RoomView).HideName(true);
- if (btnRoomLeftShadow != null) { btnRoomLeftShadow.Visible = false; }
- if (btnRoomRightShadow != null) { btnRoomRightShadow.Visible = false; }
+ btnRoomLeftShadow.Visible = false;
+ btnRoomRightShadow.Visible = false;
btnRoomBottomShadow.Visible = false;
};
roomPageView.EndScrollAction += () =>
@@ -438,8 +469,8 @@
(roomPageView.GetChildren(curIndex + 1) as RoomView).HideName(true);
}
- if (btnRoomLeftShadow != null) { btnRoomLeftShadow.Visible = curIndex >= 1; }
- if (btnRoomRightShadow != null) { btnRoomRightShadow.Visible = curIndex < listRoom.Count - 1; }
+ btnRoomLeftShadow.Visible = true;
+ btnRoomRightShadow.Visible = true;
btnRoomBottomShadow.Visible = true;
//鍒囨崲褰撳墠鎴块棿
HdlRoomLogic.Current.CurrentRoom = listRoom[curIndex];
@@ -447,6 +478,13 @@
this.isRoomChanging = false;
this.RefreshBodyView();
};
+ //璁剧疆鎴块棿鐨勫垵濮嬮�夋嫨
+ roomPageView.PageIndex = curIndex;
+ //濡傛灉绱㈠紩鏄涓�涓椂锛屽畠瑙﹀彂涓嶄簡浜嬩欢,闇�瑕佹墜鍔ㄨЕ鍙�
+ if (curIndex == 0)
+ {
+ roomPageView.EndScrollAction();
+ }
}
/// <summary>
@@ -455,6 +493,11 @@
/// <param name="room"></param>
public void SetRoomPageViewSelect(Room room)
{
+ if (roomPageView == null)
+ {
+ //褰撴病鏈夌粦瀹氭湁缃戝叧,宸︽粦鏃�,鐐瑰嚮鎴块棿鍒楄〃,鍒欎笉楦熷畠
+ return;
+ }
var listRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
for (int i = 0; i < listRoom.Count; i++)
{
@@ -486,6 +529,8 @@
{
//鍏堟竻绌虹紦瀛�
bodyFrameLayout.RemoveAll();
+ bodyFrameLayout.Height = Application.GetRealHeight(750);
+ this.listBodyContr.RecoverTableHeight();
this.dicSceneCardControl.Clear();
this.dicDeviceCardControl.Clear();
@@ -493,10 +538,9 @@
foreach (var mainkeys in HdlRoomLogic.Current.CurrentRoom.ListDevice)
{
var device = LocalDevice.Current.GetDevice(mainkeys);
- if (device == null
- || device.Type == DeviceType.OnOffSwitch)//骞叉帴鐐�
+ //鍒ゆ柇璇ヨ澶囪兘鍚︽樉绀哄湪涓婚〉
+ if (LocalDevice.Current.CanShowInHomeHomeMainPage(device) == false)
{
- //杩欎釜璁惧涓嶈浜�
continue;
}
listDevice.Add(device);
@@ -508,34 +552,34 @@
ShowNoFunctionTip();
return;
}
- //鍒楄〃鎺т欢
- var listView = new VerticalFrameControl();
- listView.Height = bodyFrameLayout.Height;
- bodyFrameLayout.AddChidren(listView);
+ //璁惧鍒楄〃瀹瑰櫒鎺т欢
+ var listDeviceBackContr = new FrameLayout();
+ listDeviceBackContr.Height = bodyFrameLayout.Height;
+ bodyFrameLayout.AddChidren(listDeviceBackContr);
HdlThreadLogic.Current.RunThread(() =>
{
//鍒濆鍖栬澶囧崱鐗囧垪琛ㄦ帶浠�
- this.InitDeviceListCardControl(listView, listDevice);
+ this.InitDeviceListCardControl(listDeviceBackContr, listDevice);
});
}
/// <summary>
/// 鍒濆鍖栬澶囧崱鐗囧垪琛ㄦ帶浠�
/// </summary>
- /// <param name="listView"></param>
- private void InitDeviceListCardControl(VerticalFrameControl listView, List<CommonDevice> listDevice)
+ /// <param name="listDeviceBackContr"></param>
+ private void InitDeviceListCardControl(FrameLayout listDeviceBackContr, List<CommonDevice> listDevice)
{
//璁惧璁℃暟
int contrCount = 0;
//X杞村潗鏍�(鍥剧墖宸﹁竟鏈変綑鐧�)
- int XX = Application.GetMinRealAverage(44);
+ int XX = this.GetPictrueRealSize(44);
//Y杞村潗鏍�
int YY = 0;
var listContr = new List<Controls.DeviceCardCommon>();
foreach (var device in listDevice)
{
- if (this.isRoomChanging == true || listView.Parent == null)
+ if (this.isRoomChanging == true || listDeviceBackContr.Parent == null)
{
//鏀惧純鍒濆鍖栨帶浠�
return;
@@ -562,6 +606,11 @@
else if (device.Type == DeviceType.Thermostat)
{
cardContr = new Controls.DeviceAcCardControl();
+ }
+ //鏂伴
+ else if (device.Type == DeviceType.FreshAir)
+ {
+ cardContr = new Controls.DeviceFreshAirCardControl();
}
//褰╃伅(璋冨厜鍣�)
else if (device.Type == DeviceType.DimmableLight)
@@ -592,7 +641,7 @@
//鍒濆鍖栧崱鐗�
cardContr.X = XX;
cardContr.Y = YY;
- listView.frameTable.AddChidren(cardContr);
+ listDeviceBackContr.AddChidren(cardContr);
cardContr.InitControl(device);
//鍗$墖闇�瑕佽绉婚櫎鐨勪簨浠�
cardContr.CardNeedRemoveEvent += () =>
@@ -603,11 +652,11 @@
//璁惧璁℃暟
contrCount++;
//鍗$墖宸﹀彸涓よ竟鏈�14鐨勪綑鐧�,姣忎袱涓悗,X杞撮噸缃�
- XX = contrCount % 2 == 0 ? Application.GetMinRealAverage(44) : cardContr.Right + Application.GetMinRealAverage(20);
+ XX = contrCount % 2 == 0 ? this.GetPictrueRealSize(44) : cardContr.Right + this.GetPictrueRealSize(20);
if (contrCount % 2 == 0)
{
//娌′袱涓箣鍚�,Y杞撮�掑
- YY = cardContr.Bottom + Application.GetMinRealAverage(15);
+ YY = cardContr.Bottom + this.GetPictrueRealSize(15);
}
//鎺т欢璁板綍鍒扮紦瀛樹腑
this.dicDeviceCardControl[LocalDevice.Current.GetDeviceMainKeys(device)] = cardContr;
@@ -617,16 +666,21 @@
if (contrCount == listDevice.Count)
{
//璋冩暣妗屽竷澶у皬
- listView.AdjustTableHeight();
+ if (contrCount > 4)
+ {
+ bodyFrameLayout.Height = listDeviceBackContr.GetChildren(listDeviceBackContr.ChildrenCount - 1).Bottom;
+ listDeviceBackContr.Height = bodyFrameLayout.Height;
+ this.listBodyContr.frameTable.Height = bodyFrameLayout.Bottom;
+ }
HdlThreadLogic.Current.RunThread(() =>
{
for (int i = 0; i < listContr.Count; i++)
{
- if (listView.Parent == null)
+ if (listDeviceBackContr.Parent == null)
{
return;
}
- System.Threading.Thread.Sleep(20);
+ System.Threading.Thread.Sleep(200);
//鍙戦�佽幏鍙栫姸鎬佺殑鍛戒护
listContr[i].SendStatuComand();
}
@@ -634,8 +688,11 @@
}, ShowErrorMode.NO);
}
});
-
- System.Threading.Thread.Sleep(50);
+ if (contrCount > 6)
+ {
+ //璁╁畠鍛堢幇涓�绉嶇洿鎺ヤ竴娆℃�у埛鍑烘潵鐨勬晥鏋�
+ System.Threading.Thread.Sleep(50);
+ }
}
}
@@ -647,8 +704,8 @@
var noFunction = new Button
{
Y = Application.GetRealHeight(69),
- Width = Application.GetMinRealAverage(683),
- Height = Application.GetMinRealAverage(392),
+ Width = this.GetPictrueRealSize(683),
+ Height = this.GetPictrueRealSize(392),
Gravity = Gravity.CenterHorizontal,
UnSelectedImagePath = "Item/NoFunction.png"
};
@@ -685,7 +742,7 @@
//璁惧璁℃暟
int contrCount = 0;
-
+
bool canMove = false;
int YY = 0;
foreach (var mainkey in this.dicDeviceCardControl.Keys)
@@ -703,12 +760,12 @@
if (contrCount % 2 == 1)
{
//绗竴涓浐瀹�44
- XX = Application.GetMinRealAverage(44);
+ XX = this.GetPictrueRealSize(44);
}
else
{
//绗簩涓槸44+鎺т欢瀹藉害+20浣欑櫧
- XX = Application.GetMinRealAverage(44) + this.dicDeviceCardControl[mainkey].Width + Application.GetMinRealAverage(20);
+ XX = this.GetPictrueRealSize(44) + this.dicDeviceCardControl[mainkey].Width + this.GetPictrueRealSize(20);
}
//姣忎袱涓箣鍚�,骞朵笖鏄涓�涓殑鏃跺��,Y杞撮�掑
@@ -717,7 +774,7 @@
//姹傚晢
int value = contrCount / 2;
//鎺т欢鐨勫簳閮ㄦ湁15鐨勯棿闅�
- YY = value * (this.dicDeviceCardControl[mainkey].Height + Application.GetMinRealAverage(15));
+ YY = value * (this.dicDeviceCardControl[mainkey].Height + this.GetPictrueRealSize(15));
}
if (canMove == true)
{
@@ -727,14 +784,19 @@
}
}
//鍘绘壘涓�涓嬭繖涓帶浠剁殑鍒楄〃瀹瑰櫒
- var listView = deleteContr.Parent.Parent as VerticalFrameControl;
+ var listView = deleteContr.Parent as FrameLayout;
//鍒犻櫎鎺夐偅寮犲崱鐗囩殑涓婚敭
deleteContr.RemoveFromParent();
this.dicDeviceCardControl.Remove(deleteKey);
//璋冩暣妗屽竷楂樺害
- listView?.AdjustTableHeight();
+ if (listView.ChildrenCount >= 4)
+ {
+ bodyFrameLayout.Height = listView.GetChildren(listView.ChildrenCount - 1).Bottom;
+ listView.Height = bodyFrameLayout.Height;
+ this.listBodyContr.frameTable.Height = bodyFrameLayout.Bottom;
+ }
}
#endregion
@@ -748,6 +810,8 @@
{
//鍏堟竻绌虹紦瀛�
bodyFrameLayout.RemoveAll();
+ bodyFrameLayout.Height = Application.GetRealHeight(750);
+ this.listBodyContr.RecoverTableHeight();
this.dicSceneCardControl.Clear();
this.dicDeviceCardControl.Clear();
@@ -770,32 +834,32 @@
return;
}
//鍒楄〃鎺т欢
- var listView = new VerticalFrameControl();
- listView.Height = bodyFrameLayout.Height;
- bodyFrameLayout.AddChidren(listView);
+ var listSceneBackContr = new FrameLayout();
+ listSceneBackContr.Height = bodyFrameLayout.Height;
+ bodyFrameLayout.AddChidren(listSceneBackContr);
HdlThreadLogic.Current.RunThread(() =>
{
- //鍒濆鍖栬澶囧崱鐗囧垪琛ㄦ帶浠�
- this.InitSceneListCardControl(listView, listScene);
+ //鍒濆鍖栧満鏅崱鐗囧垪琛ㄦ帶浠�
+ this.InitSceneListCardControl(listSceneBackContr, listScene);
});
}
/// <summary>
/// 鍒濆鍖栧満鏅崱鐗囧垪琛ㄦ帶浠�
/// </summary>
- /// <param name="listView"></param>
- private void InitSceneListCardControl(VerticalFrameControl listView, List<SceneUI> listScene)
+ /// <param name="listSceneBackContr"></param>
+ private void InitSceneListCardControl(FrameLayout listSceneBackContr, List<SceneUI> listScene)
{
//鍦烘櫙璁℃暟
int contrCount = 0;
//X杞村潗鏍�(鍥剧墖宸﹁竟鏈変綑鐧�)
- int XX = Application.GetMinRealAverage(44);
+ int XX = this.GetPictrueRealSize(44);
//Y杞村潗鏍�
int YY = 0;
foreach (var sceneUi in listScene)
{
- if (this.isRoomChanging == true || listView.Parent == null)
+ if (this.isRoomChanging == true || listSceneBackContr.Parent == null)
{
//鏀惧純鍒濆鍖栨帶浠�
return;
@@ -806,7 +870,7 @@
var cardContr = new Controls.SceneCardControl();
cardContr.X = XX;
cardContr.Y = YY;
- listView.frameTable.AddChidren(cardContr);
+ listSceneBackContr.AddChidren(cardContr);
cardContr.InitControl(sceneUi);
//鍗$墖闇�瑕佽绉婚櫎鐨勪簨浠�
cardContr.CardNeedRemoveEvent += () =>
@@ -817,26 +881,36 @@
//璁惧璁℃暟
contrCount++;
//姣忎袱涓悗,X杞撮噸缃�
- XX = contrCount % 2 == 0 ? Application.GetMinRealAverage(44) : cardContr.Right + Application.GetMinRealAverage(20);
+ XX = contrCount % 2 == 0 ? this.GetPictrueRealSize(44) : cardContr.Right + this.GetPictrueRealSize(20);
if (contrCount % 2 == 0)
{
//娌′袱涓箣鍚�,Y杞撮�掑
- YY = cardContr.Bottom + Application.GetMinRealAverage(15);
+ YY = cardContr.Bottom + this.GetPictrueRealSize(15);
}
//鎺т欢璁板綍鍒扮紦瀛樹腑
this.dicSceneCardControl[sceneUi.Id] = cardContr;
+
if (contrCount == listScene.Count)
{
//璋冩暣妗屽竷楂樺害
- listView.AdjustTableHeight();
+ if (contrCount > 4)
+ {
+ bodyFrameLayout.Height = listSceneBackContr.GetChildren(listSceneBackContr.ChildrenCount - 1).Bottom;
+ listSceneBackContr.Height = bodyFrameLayout.Height;
+ this.listBodyContr.frameTable.Height = bodyFrameLayout.Bottom;
+ }
HdlThreadLogic.Current.RunThread(() =>
{
//璁剧疆鐩墠鍦烘櫙鐨勫欢杩熺姸鎬�
- this.SetSceneDelayTime(listView);
+ this.SetSceneDelayTime(listSceneBackContr);
});
}
});
- System.Threading.Thread.Sleep(50);
+ if (contrCount > 6)
+ {
+ //璁╁畠鍛堢幇涓�绉嶄竴娆℃�ф樉绀哄嚭鏉ョ殑鏁堟灉
+ System.Threading.Thread.Sleep(50);
+ }
}
}
@@ -845,35 +919,29 @@
/// </summary>
private void ShowNoSceneTip()
{
- var noScene = new Button
- {
- Y = Application.GetRealHeight(69),
- Width = Application.GetMinRealAverage(683),
- Height = Application.GetMinRealAverage(392),
- Gravity = Gravity.CenterHorizontal,
- UnSelectedImagePath = "Item/NoFunction.png"
- };
- bodyFrameLayout.AddChidren(noScene);
- var noScenceTip = new Button()
- {
- Y = noScene.Bottom,
- Height = Application.GetRealHeight(200),
- Text = Language.StringByID(R.MyInternationalizationString.NoScene_Tip).Replace("{\\r\\n}", "\r\n"),
- TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
- TextAlignment = TextAlignment.Center,
- IsMoreLines = true
- };
- bodyFrameLayout.AddChidren(noScenceTip);
+ var picNoFunc = new PicViewControl(683, 392);
+ picNoFunc.Y = Application.GetRealHeight(69);
+ picNoFunc.Gravity = Gravity.CenterHorizontal;
+ picNoFunc.UnSelectedImagePath = "Item/NoFunction.png";
+ bodyFrameLayout.AddChidren(picNoFunc);
+
+ var btnTip = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(200), false);
+ btnTip.Y = picNoFunc.Bottom;
+ btnTip.Text = Language.StringByID(R.MyInternationalizationString.NoScene_Tip).Replace("{\\r\\n}", "\r\n");
+ btnTip.TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
+ btnTip.TextAlignment = TextAlignment.Center;
+ btnTip.IsMoreLines = true;
+ bodyFrameLayout.AddChidren(btnTip);
}
/// <summary>
/// 璁剧疆鍦烘櫙鐨勫欢杩熺姸鎬�
/// </summary>
- /// <param name="listView"></param>
- private async void SetSceneDelayTime(VerticalFrameControl listView)
+ /// <param name="listSceneBackContr"></param>
+ private async void SetSceneDelayTime(FrameLayout listSceneBackContr)
{
await System.Threading.Tasks.Task.Delay(1500);
- if (listView.Parent == null)
+ if (listSceneBackContr.Parent == null)
{
//鎺т欢宸茬粡琚Щ闄�
return;
@@ -884,7 +952,7 @@
{
return;
}
- if (listView.Parent == null)
+ if (listSceneBackContr.Parent == null)
{
//鎺т欢宸茬粡琚Щ闄�
return;
@@ -946,12 +1014,12 @@
if (contrCount % 2 == 1)
{
//绗竴涓浐瀹�44
- XX = Application.GetMinRealAverage(44);
+ XX = this.GetPictrueRealSize(44);
}
else
{
//绗簩涓槸44+鎺т欢瀹藉害+20浣欑櫧
- XX = Application.GetMinRealAverage(44) + this.dicSceneCardControl[sceneId].Width + Application.GetMinRealAverage(20);
+ XX = this.GetPictrueRealSize(44) + this.dicSceneCardControl[sceneId].Width + this.GetPictrueRealSize(20);
}
//姣忎袱涓箣鍚�,骞朵笖鏄涓�涓椂,Y杞撮�掑
@@ -960,7 +1028,7 @@
//姹傚晢
int value = contrCount / 2;
//鎺т欢鐨勫簳閮ㄦ湁15鐨勯棿闅�
- YY = value * (this.dicSceneCardControl[sceneId].Height + Application.GetMinRealAverage(15));
+ YY = value * (this.dicSceneCardControl[sceneId].Height + this.GetPictrueRealSize(15));
}
if (canMove == true)
{
@@ -970,14 +1038,19 @@
}
}
//鍘绘壘涓�涓嬭繖涓帶浠剁殑鍒楄〃瀹瑰櫒
- var listView = deleteContr.Parent.Parent as VerticalFrameControl;
+ var listView = deleteContr.Parent as FrameLayout;
//鍒犻櫎鎺夐偅寮犲崱鐗囩殑涓婚敭
deleteContr.RemoveFromParent();
this.dicSceneCardControl.Remove(deleteId);
//璋冩暣妗屽竷楂樺害
- listView?.AdjustTableHeight();
+ if (listView.ChildrenCount >= 4)
+ {
+ bodyFrameLayout.Height = listView.GetChildren(listView.ChildrenCount - 1).Bottom;
+ listView.Height = bodyFrameLayout.Height;
+ this.listBodyContr.frameTable.Height = bodyFrameLayout.Bottom;
+ }
}
#endregion
@@ -1027,8 +1100,6 @@
Config.Instance.Save();
//鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
await UserCenterLogic.InitUserCenterMenmoryAndThread();
- //鍒濆鍖栧叏閮ㄦ埧闂�
- HdlRoomLogic.Current.InitAllRoom();
Application.RunOnMainThread(() =>
{
@@ -1068,6 +1139,16 @@
{
//鍒锋柊鍗$墖淇℃伅
var locadevice = LocalDevice.Current.GetDevice(mainKeys);
+ if (report.DeviceStatusReport.CluterID == 513 && report.DeviceStatusReport.AttriBute[0].AttributeId == 28)
+ {
+ //绌鸿皟鏄壒娈婄殑,瀹冪殑寮�鍏虫槸灞炴�т笂鎶ユ潵鐫�.宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
+ this.dicDeviceCardControl[mainKeys].SetHadGetResponeResultStatu();
+ }
+ if (report.DeviceStatusReport.CluterID == 514 && report.DeviceStatusReport.AttriBute[0].AttributeId == 0)
+ {
+ //鏂伴鏄壒娈婄殑,瀹冪殑寮�鍏虫槸灞炴�т笂鎶ユ潵鐫�.宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
+ this.dicDeviceCardControl[mainKeys].SetHadGetResponeResultStatu();
+ }
this.dicDeviceCardControl[mainKeys].RefreshControlInfo(locadevice);
}
}, ShowErrorMode.NO);
@@ -1082,7 +1163,8 @@
if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
{
//鍒锋柊鍗$墖鐘舵��
- this.dicDeviceCardControl[mainKeys].SetCardOnlineStatu(report.IsOnline == 1);
+ bool bolOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(report);
+ this.dicDeviceCardControl[mainKeys].SetCardOnlineStatu(bolOnline);
return;
}
@@ -1144,7 +1226,7 @@
/// </summary>
private void ShowSelectFloorForm(NormalViewControl btnFloor)
{
- var floorFL = new Device.Category.SelectFloor();
+ var floorFL = new Category.SelectFloorForm();
this.AddChidren(floorFL);
floorFL.Init(35, 153);
floorFL.changeFloor = true;
--
Gitblit v1.8.0