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/MainPage/HomeMainPageForm.cs | 497 +++++++++++++++++++++++++++++++------------------------
1 files changed, 281 insertions(+), 216 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs b/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
old mode 100755
new mode 100644
index 2dfd8a5..01d33a7
--- a/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
@@ -6,6 +6,7 @@
using System.Text;
using ZigBee.Device;
+
namespace Shared.Phone.MainPage
{
/// <summary>
@@ -15,6 +16,14 @@
{
#region 鈻� 鍙橀噺澹版槑___________________________
+ /// <summary>
+ /// The instance.
+ /// </summary>
+ public static HomeMainPageForm Instance;
+ /// <summary>
+ /// 鏁翠釜鐣岄潰鐨勪笂涓嬫粦鍔ㄦ帶浠�
+ /// </summary>
+ private VerticalFrameControl listBodyContr = null;
/// <summary>
/// 鎴块棿鐨勬粦鍔ㄥ鍣ㄦ帶浠�
/// </summary>
@@ -45,16 +54,26 @@
/// </summary>
public void ShowForm()
{
- //鍏堝垵濮嬪寲宸︽粦鎴块棿鍒楄〃鐣岄潰
- if (ListRoomViewFrom.Instance == null)
+ this.FormID = "HomeMainPageForm";
+ Instance = this;
+
+ //鍏堝垵濮嬪寲宸︽粦鎴块棿鍒楄〃鐣岄潰(鍦ㄥ弽灏勯噷闈㈠垵濮嬪寲)
+ 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();
@@ -64,37 +83,41 @@
this.AddNormalDeviceReportEvent();
//娣诲姞浼犳劅鍣ㄧ姸鎬佷笂鎶ヤ簨浠�
this.AddSensorDeviceReportEvent();
- //灏嗗綋鍓嶇殑鐢婚潰淇濆瓨鍒板唴瀛樺綋涓�
- UserCenterLogic.AddActionForm(this);
}
/// <summary>
/// 鍒濆鍖栧ご閮ㄦ帶浠�
/// </summary>
private void InitTopFrameLayoutControl()
- {
+ {
+
+
+
//澶撮儴瀹瑰櫒
base.topFrameLayout = new FrameLayout();
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;
@@ -109,8 +132,37 @@
//鏄剧ず閫夋嫨妤煎眰鐨勭晫闈�
this.ShowSelectFloorForm(btnFloorName);
};
- }
- //瀹夐槻蹇嵎鏂瑰紡
+ }
+
+ //鍙瀵硅蹇嵎鏂瑰紡
+ Shared.Phone.Device.VideoIntercom.VideoMachine.AccountSupportVideo(topFrameLayout);
+
+ //var videoIntercomBtn = new Button();
+ //videoIntercomBtn.Gravity = Gravity.CenterVertical;
+ //videoIntercomBtn.UnSelectedImagePath = "Item/videoIntercom.png";
+ //videoIntercomBtn.Width = Application.GetMinRealAverage(69);
+ //videoIntercomBtn.Height = Application.GetMinRealAverage(69);
+ //topFrameLayout.AddChidren(videoIntercomBtn);
+ //if (UserCenterResourse.ResidenceOption.SafetyShortcut)
+ //{
+ // videoIntercomBtn.X = Application.GetRealWidth(746+10);
+ //}
+ //else
+ //{
+ // videoIntercomBtn.X = Application.GetRealWidth(850+10);
+ //}
+ //videoIntercomBtn.MouseUpEventHandler += (sender, e) =>
+ //{
+ // var videoMachine = new Device.VideoIntercom.VideoMachine();
+ // UserView.HomePage.Instance.AddChidren(videoMachine);
+ // UserView.HomePage.Instance.PageIndex += 1;
+ // videoMachine.Show();
+ //};
+
+
+
+
+ //瀹夐槻蹇嵎鏂瑰紡
if (UserCenterResourse.ResidenceOption.SafetyShortcut)
{
var btnSafety = new Controls.SafetyShortcutControl();
@@ -118,6 +170,10 @@
btnSafety.Gravity = Gravity.CenterVertical;
topFrameLayout.AddChidren(btnSafety);
}
+
+
+
+
//娑堟伅鍥炬爣
var btnMessage = new MessageManagementControl();
btnMessage.X = Application.GetRealWidth(953);
@@ -135,7 +191,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,11 +203,11 @@
}
else
{
- var selectHouse = new Device.Category.SelectHouse();
+ var selectHouse = new Category.SelectHouseForm();
selectHouse.Init();
selectHouse.HouseAction = (houseId) =>
{
- ChangeResidence(House.GetHouseByHouseId(houseId));
+ ChangeResidence(HdlResidenceLogic.Current.GetHouseByHouseId(houseId));
};
}
};
@@ -162,8 +218,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 +238,6 @@
{
//鍒濆鍖栧満鏅�,鍔熻兘鐨勫垏鎹㈡帶浠�
this.InitSceneFunctionSwitchControl();
-
//鍒濆鍖栨埧闂存粦鍔ㄦ帶浠�
this.InitRoomHorizontalPagesControl();
}
@@ -190,7 +255,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,25 +281,22 @@
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;
}
//鍔熻兘鍜屽満鏅痓odyView
- this.bodyFrameLayout = new FrameLayout()
- {
- Y = functionSceneView.Bottom,
- Height = Application.GetRealHeight(750),
- Gravity = Gravity.CenterHorizontal,
- BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
- };
- this.AddChidren(bodyFrameLayout);
+ this.bodyFrameLayout = new FrameLayout();
+ bodyFrameLayout.Y = functionSceneView.Bottom;
+ bodyFrameLayout.Height = this.listBodyContr.frameTable.Height - functionSceneView.Bottom;
+ bodyFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
+ this.listBodyContr.frameTable.AddChidren(bodyFrameLayout);
//閫夋嫨鍔熻兘鍒嗘爮
btnFunction.ButtonClickEvent += (sender, e) =>
@@ -251,7 +313,7 @@
btnScene.IsBold = false;
btnFunction.IsSelected = true;
- btnFunction.TextSize = 16;
+ btnFunction.TextSize = 17;
btnFunction.IsBold = true;
//鍒锋柊璁惧妗屽竷鎺т欢
this.RefreshBodyView();
@@ -267,7 +329,7 @@
UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 1;
btnScene.IsSelected = true;
- btnScene.TextSize = 16;
+ btnScene.TextSize = 17;
btnScene.IsBold = true;
btnFunction.IsSelected = false;
@@ -287,27 +349,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 +382,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 +403,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,18 +433,26 @@
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();
+ if (HdlRoomLogic.Current.NowMainPageRoom == null)
+ {
+ //璁剧疆绗竴涓负鍒濆鎴块棿
+ HdlRoomLogic.Current.NowMainPageRoom = listRoom[0];
+ }
var curIndex = 0;
for (int i = 0; i < listRoom.Count; i++)
{
var roomView = new RoomView(0, 0);
roomPageView.AddChidren(roomView);
roomView.Init(listRoom[i]);
-
- if (listRoom[i].Id == HdlRoomLogic.Current.CurrentRoom.Id)
+
+ if (listRoom[i].Id == HdlRoomLogic.Current.NowMainPageRoom.Id)
{
//褰撳墠鎴块棿,鍒欐樉绀洪偅浜涙暟鎹嚭鏉�
roomView.HideName(false);
@@ -381,42 +464,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,15 +513,22 @@
(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];
+ HdlRoomLogic.Current.NowMainPageRoom = listRoom[curIndex];
//鍒锋柊璁惧妗屽竷鎺т欢
this.isRoomChanging = false;
this.RefreshBodyView();
};
+ //璁剧疆鎴块棿鐨勫垵濮嬮�夋嫨
+ roomPageView.PageIndex = curIndex;
+ //濡傛灉绱㈠紩鏄涓�涓椂锛屽畠瑙﹀彂涓嶄簡浜嬩欢,闇�瑕佹墜鍔ㄨЕ鍙�
+ if (curIndex == 0)
+ {
+ roomPageView.EndScrollAction();
+ }
}
/// <summary>
@@ -455,6 +537,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,17 +573,18 @@
{
//鍏堟竻绌虹紦瀛�
bodyFrameLayout.RemoveAll();
+ bodyFrameLayout.Height = Application.GetRealHeight(750);
+ this.listBodyContr.RecoverTableHeight();
this.dicSceneCardControl.Clear();
this.dicDeviceCardControl.Clear();
var listDevice = new List<CommonDevice>();
- foreach (var mainkeys in HdlRoomLogic.Current.CurrentRoom.ListDevice)
+ foreach (var mainkeys in HdlRoomLogic.Current.NowMainPageRoom.ListDevice)
{
var device = LocalDevice.Current.GetDevice(mainkeys);
- if (device == null
- || device.Type == DeviceType.OnOffSwitch)//骞叉帴鐐�
+ //鍒ゆ柇璇ヨ澶囪兘鍚︽樉绀哄湪涓婚〉
+ if (LocalDevice.Current.CanShowInHomeHomeMainPage(device) == false)
{
- //杩欎釜璁惧涓嶈浜�
continue;
}
listDevice.Add(device);
@@ -505,37 +593,38 @@
//褰撳墠鎴块棿鐨勮澶囨暟
if (listDevice.Count == 0)
{
- ShowNoFunctionTip();
+ //杩樻病鏈夊姛鑳藉摝
+ this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.NoFunction_Tip));
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;
@@ -563,6 +652,11 @@
{
cardContr = new Controls.DeviceAcCardControl();
}
+ //鏂伴
+ else if (device.Type == DeviceType.FreshAir)
+ {
+ cardContr = new Controls.DeviceFreshAirCardControl();
+ }
//褰╃伅(璋冨厜鍣�)
else if (device.Type == DeviceType.DimmableLight)
{
@@ -583,6 +677,11 @@
{
cardContr = new Controls.DeviceDoorLockCardControl();
}
+ //鑹叉俯鐏�
+ else if (device.Type == DeviceType.ColorTemperatureLight)
+ {
+ cardContr = new Controls.DeviceColorTemperatureCardControl();
+ }
//鏃犳硶璇嗗埆
else
{
@@ -592,8 +691,8 @@
//鍒濆鍖栧崱鐗�
cardContr.X = XX;
cardContr.Y = YY;
- listView.frameTable.AddChidren(cardContr);
- cardContr.InitControl(device);
+ listDeviceBackContr.AddChidren(cardContr);
+ cardContr.InitControl(device, HdlRoomLogic.Current.NowMainPageRoom);
//鍗$墖闇�瑕佽绉婚櫎鐨勪簨浠�
cardContr.CardNeedRemoveEvent += () =>
{
@@ -603,11 +702,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 +716,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,36 +738,12 @@
}, ShowErrorMode.NO);
}
});
-
- System.Threading.Thread.Sleep(50);
+ if (contrCount > 6)
+ {
+ //璁╁畠鍛堢幇涓�绉嶇洿鎺ヤ竴娆℃�у埛鍑烘潵鐨勬晥鏋�
+ System.Threading.Thread.Sleep(50);
+ }
}
- }
-
- /// <summary>
- /// 鏄剧ず娌℃湁鍔熻兘
- /// </summary>
- private void ShowNoFunctionTip()
- {
- var noFunction = new Button
- {
- Y = Application.GetRealHeight(69),
- Width = Application.GetMinRealAverage(683),
- Height = Application.GetMinRealAverage(392),
- Gravity = Gravity.CenterHorizontal,
- UnSelectedImagePath = "Item/NoFunction.png"
- };
- bodyFrameLayout.AddChidren(noFunction);
-
- var noFunctionTip = new Button()
- {
- Y = noFunction.Bottom,
- Height = Application.GetRealHeight(200),
- Text = Language.StringByID(R.MyInternationalizationString.NoFunction_Tip).Replace("{\\r\\n}", "\r\n"),
- TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
- TextAlignment = TextAlignment.Center,
- IsMoreLines = true
- };
- bodyFrameLayout.AddChidren(noFunctionTip);
}
#endregion
@@ -685,7 +765,7 @@
//璁惧璁℃暟
int contrCount = 0;
-
+
bool canMove = false;
int YY = 0;
foreach (var mainkey in this.dicDeviceCardControl.Keys)
@@ -703,12 +783,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 +797,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 +807,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,11 +833,13 @@
{
//鍏堟竻绌虹紦瀛�
bodyFrameLayout.RemoveAll();
+ bodyFrameLayout.Height = Application.GetRealHeight(750);
+ this.listBodyContr.RecoverTableHeight();
this.dicSceneCardControl.Clear();
this.dicDeviceCardControl.Clear();
var listScene = new List<SceneUI>();
- foreach (int sceneId in HdlRoomLogic.Current.CurrentRoom.ListSceneId)
+ foreach (int sceneId in HdlRoomLogic.Current.NowMainPageRoom.ListSceneId)
{
var sceneUi = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId);
if (sceneUi == null)
@@ -765,37 +852,37 @@
if (listScene.Count == 0)
{
- //鏄剧ず娌″満鏅�
- this.ShowNoSceneTip();
+ //杩樻病鏈夊満鏅摝
+ this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.NoScene_Tip));
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 +893,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,63 +904,47 @@
//璁惧璁℃暟
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);
+ }
}
- }
-
- /// <summary>
- /// 鏄剧ず娌″満鏅�
- /// </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);
}
/// <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 +955,7 @@
{
return;
}
- if (listView.Parent == null)
+ if (listSceneBackContr.Parent == null)
{
//鎺т欢宸茬粡琚Щ闄�
return;
@@ -946,12 +1017,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 +1031,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 +1041,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
@@ -1022,17 +1098,17 @@
new System.Threading.Thread(async () =>
{
Config.Instance.HomeId = home.Id;
- Config.Instance.Home = House.GetHouseByFilePath(home.FileName);
+ Config.Instance.Home = HdlResidenceLogic.Current.GetHouseByHouseId(home.Id);
Global.CreateHomeDirectory(home.Id);
Config.Instance.Save();
//鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
await UserCenterLogic.InitUserCenterMenmoryAndThread();
- //鍒濆鍖栧叏閮ㄦ埧闂�
- HdlRoomLogic.Current.InitAllRoom();
Application.RunOnMainThread(() =>
{
- ShowForm();
+ //鍒锋柊鐣岄潰
+ this.ShowForm();
+
CommonPage.Loading.Hide();
});
})
@@ -1068,6 +1144,9 @@
{
//鍒锋柊鍗$墖淇℃伅
var locadevice = LocalDevice.Current.GetDevice(mainKeys);
+ //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉 2020.05.09:鍒犻櫎Ack涓婚
+ this.dicDeviceCardControl[mainKeys].SetHadGetResponeResultStatu();
+ //鍒锋柊鎺т欢
this.dicDeviceCardControl[mainKeys].RefreshControlInfo(locadevice);
}
}, ShowErrorMode.NO);
@@ -1082,25 +1161,9 @@
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;
- }
-
- }, ShowErrorMode.NO);
- });
-
- //璁惧鎺у埗鍙嶉涓婃姤
- HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceRespone", ReceiveComandDiv.A鑺傜偣鎺у埗鍙嶉, (report) =>
- {
- HdlThreadLogic.Current.RunMain(() =>
- {
- string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
- if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
- {
- //璁惧鍗$墖
- var deviceCardContr = this.dicDeviceCardControl[mainKeys];
- //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
- deviceCardContr.SetHadGetResponeResultStatu();
}
}, ShowErrorMode.NO);
@@ -1144,14 +1207,14 @@
/// </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;
floorFL.FloorAction = (floorId) =>
{
- btnFloor.Text = Config.Instance.Home.GetFloorNameById(floorId);
- HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom();
+ btnFloor.Text = HdlResidenceLogic.Current.GetFloorNameById(floorId);
+ HdlRoomLogic.Current.NowMainPageRoom = HdlRoomLogic.Current.GetLoveRoom();
this.ShowForm();
};
}
@@ -1165,8 +1228,10 @@
/// </summary>
public override void CloseFormBefore()
{
+ //鎶婇潤鎬佸彉閲忕殑杩欎釜涓滆タ缃┖
+ Instance = null;
+
HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewDeviceOnline");
- HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewDeviceRespone");
HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewDeviceStatus");
HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewSensor");
--
Gitblit v1.8.0