From e6692890b94c885a98f090848d6ebdff72328632 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 12 五月 2020 11:05:31 +0800
Subject: [PATCH] 2020-5-12-1
---
ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs | 330 +++++++++++++++++++++++++++++++-----------------------
1 files changed, 190 insertions(+), 140 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
index 02a348d..14d3e84 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
@@ -11,19 +11,8 @@
/// <summary>
/// 鎸夐敭绠$悊
/// </summary>
- public class BindTargetsPage : BindCommonLayout, ZigBee.Common.IStatus
+ public class BindTargetsPage : BindCommonLayout
{
- /// <summary>
- /// 鎸夐敭妯″紡鎺ユ敹
- /// </summary>
- /// <param name="common">Common.</param>
- public void Changed(CommonDevice common)
- {
- Shared.Application.RunOnMainThread(() =>
- {
- });
- }
-
/// 鏋勯�犲嚱鏁�
/// </summary>
/// <param name="doorLock"></param>
@@ -32,32 +21,71 @@
this.currentKey = key;
}
- #region 鈼� 鍙橀噺鐢虫槑__________________________
- ZigBee.Device.Panel currentKey;//褰撳墠鎸夐敭瀵硅薄
- VerticalFrameRefreshControl midVerticalRefreshLayout;//鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew
- int currentClusterID = 0;//鎸夐敭褰撳墠绨嘔D
+ #region 鍙橀噺鐢虫槑
+ /// <summary>
+ /// 褰撳墠鎸夐敭瀵硅薄
+ /// </summary>
+ ZigBee.Device.Panel currentKey;
+ /// <summary>
+ /// 鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew
+ /// </summary>
+ VerticalFrameRefreshControl midVerticalRefreshLayout;
+ /// <summary>
+ /// 鎸夐敭褰撳墠绨嘔D
+ /// </summary>
+ int currentClusterID = 0;
+ /// <summary>
+ /// 绌烘暟鎹椂鐨勫浘鐗�
+ /// </summary>
Button entryStatusPic;
+ /// <summary>
+ /// 绌烘暟鎹殑鎻愮ず
+ /// </summary>
Button btnPicTip;
- Action<List<BindListResponseObj>> action;//鎸夐敭缁戝畾琛ㄩ�氱煡
- Action<List<BindListResponseObj>> devicBindAction;//璁惧琚粦瀹氶�氱煡
- private System.Collections.Generic.List<CommonDevice> localDeviceList = new System.Collections.Generic.List<CommonDevice>();//鏈湴璁惧鍒楄〃
- private System.Collections.Generic.List<SceneUI> scList = new System.Collections.Generic.List<SceneUI> { };//鏈湴鍦烘櫙鍒楄〃
- FrameLayout blankFrameLayout;//绌烘暟鎹樉绀哄竷灞�
- List<int> typeModeList;//鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑妯″紡澶х被鍨�
- public List<ScenesListInfo> gwScenesList = new List<ScenesListInfo>();//缃戝叧涓殑鍦烘櫙鍒楄〃
+ /// <summary>
+ /// 鎸夐敭缁戝畾琛ㄩ�氱煡
+ /// </summary>
+ Action<List<BindListResponseObj>> action;
+ /// <summary>
+ /// 璁惧琚粦瀹氶�氱煡
+ /// </summary>
+ Action<List<BindListResponseObj>> devicBindAction;
+ /// <summary>
+ /// 鏈湴璁惧鍒楄〃
+ /// </summary>
+ private System.Collections.Generic.List<CommonDevice> localDeviceList = new System.Collections.Generic.List<CommonDevice>();
+ /// <summary>
+ /// 鏈湴鍦烘櫙鍒楄〃
+ /// </summary>
+ private System.Collections.Generic.List<SceneUI> scList = new System.Collections.Generic.List<SceneUI> { };
+ /// <summary>
+ /// 绌烘暟鎹樉绀哄竷灞�
+ /// </summary>
+ FrameLayout blankFrameLayout;
+ /// <summary>
+ /// 鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑妯″紡澶х被鍨�
+ /// </summary>
+ List<int> typeModeList;
+ /// <summary>
+ /// 缃戝叧涓殑鍦烘櫙鍒楄〃
+ /// </summary>
+ public List<ScenesListInfo> gwScenesList = new List<ScenesListInfo>();
+ /// <summary>
+ /// 鏄惁鏀寔璇诲彇
+ /// </summary>
+ bool IsRead = false;
#endregion
- //鍒濆鍖栨寜閿暟鎹�
- private void InitListInfo()
+ /// <summary>
+ /// 鍒濆鍖栨寜閿暟鎹�
+ /// </summary>
+ void InitListInfo()
{
System.Threading.Tasks.Task.Run(async () =>
{
try
{
- Application.RunOnMainThread(() =>
- {
- });
localDeviceList.Clear();
scList.Clear();
//鑾峰彇鏈湴璁惧鍒楄〃
@@ -66,22 +94,19 @@
localDeviceList.Add(dev);
}
//鑾峰彇鏈湴鍦烘櫙鍒楄〃
- scList = Shared.Common.Room.AllRoomSceneUIList;
+ scList = HdlSceneLogic.Current.GetAllRoomSceneList();
//鑾峰彇缃戝叧鍦烘櫙琛�
- var gwSceneObj = await currentKey.GetSceneInfoAsync();
- if (gwSceneObj != null && gwSceneObj.getSceneInfo != null)
+ if (gwScenesList.Count == 0)
{
- gwScenesList = gwSceneObj.getSceneInfo.ScenesList;
- }
- else
- {
- Application.RunOnMainThread(() =>
+ var gwSceneObj = await currentKey.GetSceneInfoAsync();
+ if (gwSceneObj != null && gwSceneObj.getSceneInfo != null)
{
- CommonPage.Loading.Hide();
-
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
- });
+ gwScenesList = gwSceneObj.getSceneInfo.ScenesList;
+ }
}
+
+ //鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被
+ typeModeList = await GetTypeMode();
#region 璇诲彇闈㈡澘褰撳墠妯″紡
//璇诲彇鎸夐敭褰撳墠妯″紡
var tempDeata = await currentKey.ReadPanelConfigureInfoAsync();
@@ -106,82 +131,87 @@
{
currentClusterID = 258;
}
- currentKey.ReSave();
- //璇诲彇鎸夐敭褰撳墠缁戝畾鐩爣
- var getBindList = await currentKey.GetDeviceBindAsync();
- var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
- var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
- if (getBindList != null && getBindList.getAllBindResponseData != null)
- {
- currentKey.bindList.Clear();
- foreach (var b in getBindList.getAllBindResponseData.BindList)
- {
- if (b.BindCluster == currentClusterID)
- {
- if (b.BindCluster == 6)
- {
- if (b.BindType == 2)
- {
- bindSceneListTemp.Add(b);
- }
- else
- {
- bindDeviceListTemp.Add(b);
- }
- }
- else
+ //璇诲彇鎸夐敭褰撳墠缁戝畾鐩爣
+ GetDeviceBindResponseAllData getBindList = null;
+ if (IsRead)
+ {
+ getBindList = await currentKey.GetDeviceBindAsync();
+ var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
+ var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
+ if (getBindList != null && getBindList.getAllBindResponseData != null)
+ {
+ currentKey.bindList.Clear();
+ foreach (var b in getBindList.getAllBindResponseData.BindList)
+ {
+ if (b.BindCluster == currentClusterID)
{
- if (currentClusterID == 8)
+ if (b.BindCluster == 6)
{
- if (b.BindCluster == 8)
+
+ if (b.BindType == 2)
{
- currentKey.bindList.Add(b);
+ bindSceneListTemp.Add(b);
+ }
+ else
+ {
+ bindDeviceListTemp.Add(b);
}
}
else
{
- currentKey.bindList.Add(b);
+ if (currentClusterID == 8)
+ {
+ if (b.BindCluster == 8)
+ {
+ currentKey.bindList.Add(b);
+ }
+ }
+ else
+ {
+ currentKey.bindList.Add(b);
+ }
}
}
}
}
- }
- else
- {
- Application.RunOnMainThread(() =>
+ else
{
- new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
- });
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
+ midVerticalRefreshLayout.EndHeaderRefreshing();
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+ return;
+ });
+ }
+ if (currentKey.panelMode == 1)
+ {
+ currentKey.bindList = bindSceneListTemp;
+ currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddScene);
+ }
+ else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102)
+ {
+ currentKey.bindList = bindDeviceListTemp;
+ currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddSwitch);
+ }
+ else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205)
+ {
+ currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddDimmer);
+ }
+ else if (currentKey.panelMode == 300 || currentKey.panelMode == 301 || currentKey.panelMode == 302 || currentKey.panelMode == 303 || currentKey.panelMode == 304)
+ {
+ currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddCurtain);
+ }
}
-
- if (currentKey.panelMode == 1)
- {
- currentKey.bindList = bindSceneListTemp;
- currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddScene);
- }
- else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102)
- {
- currentKey.bindList = bindDeviceListTemp;
- currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddSwitch);
- }
- else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205)
- {
- currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddDimmer);
- }
- else if (currentKey.panelMode == 300 || currentKey.panelMode == 301 || currentKey.panelMode == 302 || currentKey.panelMode == 303 || currentKey.panelMode == 304)
- {
- currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddCurtain);
- }
+ currentKey.ReSave();
}
- #endregion
-
- //鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被
- typeModeList = await GetTypeMode();
+ #endregion
Application.RunOnMainThread(() =>
{
RefreshList();
CommonPage.Loading.Hide();
+ midVerticalRefreshLayout.EndHeaderRefreshing();
});
}
else
@@ -189,7 +219,7 @@
Application.RunOnMainThread(() =>
{
CommonPage.Loading.Hide();
-
+ midVerticalRefreshLayout.EndHeaderRefreshing();
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
});
return;
@@ -216,15 +246,16 @@
var btnAddFrameLayout = new FrameLayout()
{
- X = Application.GetRealWidth(913),
+ X = Application.GetRealWidth(772 - 58),
Width = Application.GetRealWidth(192),
};
this.titleFrameLayout.AddChidren(btnAddFrameLayout);
var btnBindAdd = new Button
{
- Height = Application.GetRealHeight(72),
- Width = Application.GetRealWidth(72),
+ X = Application.GetRealWidth(62),
+ Height = Application.GetMinReal(72),
+ Width = Application.GetMinReal(72),
UnSelectedImagePath = "BindPic/BindAdd.png",
};
btnAddFrameLayout.AddChidren(btnBindAdd);
@@ -310,9 +341,18 @@
#endregion
CommonPage.Loading.Start("");
middleFrameLayout();
+ if (currentKey.bindList.Count == 0)
+ {
+ IsRead = true;
+ }
+ else
+ {
+ IsRead = false;
+ }
InitListInfo();
}
+
/// <summary>
/// 涓儴甯冨眬
/// </summary>
@@ -320,13 +360,14 @@
{
midVerticalRefreshLayout = new VerticalFrameRefreshControl(29)
{
+ Height = this.midFrameLayout.Height + 1,
};
this.midFrameLayout.AddChidren(midVerticalRefreshLayout);
midVerticalRefreshLayout.BeginHeaderRefreshingAction += () =>
{
midVerticalRefreshLayout.BeginHeaderRefreshing();
+ IsRead = true;
InitListInfo();
- midVerticalRefreshLayout.EndHeaderRefreshing();
};
BlankPicUI();
@@ -409,6 +450,7 @@
midVerticalRefreshLayout.AddChidrenRow(rowLayout);
rowLayout.frameTable.UseClickStatu = false;
var devicePic = rowLayout.frameTable.AddLeftIcon();
+ devicePic.Y = Application.GetRealHeight(49);
devicePic.UnSelectedImagePath = "DoorLock/DoorLockUserPic.png";
#region 缁戝畾鏁版嵁澶勭悊
@@ -428,7 +470,7 @@
}
if (isExistScene)
{
- curSceneUI = Room.CurrentRoom.GetSceneUIBySceneId(bindDevice.BindScenesId);
+ curSceneUI = HdlSceneLogic.Current.GetSceneUIBySceneId(bindDevice.BindScenesId);
devicePic.UnSelectedImagePath = "Scene/SceneIcon.png";
if (curSceneUI == null)
{
@@ -444,9 +486,14 @@
else
{
btnBindNameText = curSceneUI.Name;
- if (curSceneUI.GetZone() != null)
+ string myName = HdlSceneLogic.Current.GetZoneById(curSceneUI.Id);
+ if (myName != null)
{
- btnFloorRoomNameText = curSceneUI.GetZone();
+ btnFloorRoomNameText = myName;
+ }
+ else
+ {
+ btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
}
}
}
@@ -459,7 +506,7 @@
if (tempDev != null)
{
//鑾峰彇璁惧鎵�灞炴埧闂�
- var tempDevRoom = Common.Room.CurrentRoom.GetRoomByDevice(tempDev);
+ var tempDevRoom = HdlRoomLogic.Current.GetRoomByDevice(tempDev);
if (tempDevRoom != null)
{
@@ -470,21 +517,32 @@
var tempDevFloorName = Common.Config.Instance.Home.GetFloorNameById(tempDevFloorId);
if (string.IsNullOrEmpty(tempDevFloorName))
{
- btnFloorRoomNameText = tempDevRoomName;
+ if (string.IsNullOrEmpty(tempDevRoomName))
+ {
+ btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
+ }
+ else
+ {
+ btnFloorRoomNameText = tempDevRoomName;
+ }
}
else
{
- btnFloorRoomNameText = tempDevFloorName + "," + tempDevRoomName;
+ if (string.IsNullOrEmpty(tempDevRoomName))
+ {
+ btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
+ }
+ else
+ {
+ btnFloorRoomNameText = tempDevFloorName + "," + tempDevRoomName;
+ }
}
- }
- var deviceUi = Common.LocalDevice.Current.GetDeviceUI(tempDev);
- if (deviceUi != null)
- {
- devicePic.UnSelectedImagePath = deviceUi.IconPath;
- devicePic.Width = Application.GetRealWidth(110);
- devicePic.Text = "";
- }
- if (tempDev.DeviceEpointName == "")
+ }
+
+ devicePic.UnSelectedImagePath = tempDev.IconPath;
+ devicePic.Text = "";
+
+ if (string.IsNullOrEmpty(tempDev.DeviceEpointName))
{
btnBindNameText = tempDev.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit);
}
@@ -496,7 +554,6 @@
else
{
btnBindNameText = bindDevice.BindMacAddr + "_" + bindDevice.BindEpoint;
- devicePic.Width = Application.GetMinRealAverage(200);
devicePic.TextAlignment = TextAlignment.CenterLeft;
devicePic.TextColor = UserCenterColor.Current.Gray;
devicePic.Text = Language.StringByID(R.MyInternationalizationString.uOffLine);
@@ -528,7 +585,7 @@
modeRowLayout.BackgroundColor = ZigbeeColor.Current.XMWhite;
midVerticalRefreshLayout.AddChidrenRow(modeRowLayout);
modeRowLayout.frameTable.UseClickStatu = false;
- modeRowLayout.frameTable.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.keyMode), 500);
+ modeRowLayout.frameTable.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.keyMode), 400);
var btnKeyModeTipText = "";
#region 褰撳墠妯″紡鏂囨湰鏄剧ず
switch (currentKey.panelMode)
@@ -574,7 +631,7 @@
break;
}
#endregion
- modeRowLayout.frameTable.AddMostRightView(btnKeyModeTipText, 500);
+ modeRowLayout.frameTable.AddMostRightView(btnKeyModeTipText, 800);
modeRowLayout.frameTable.AddBottomLine();
var btnDel = modeRowLayout.AddDeleteControl();
//涓�閿竻闄ゆ寜閿簨浠�
@@ -602,10 +659,10 @@
else
{
var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default);
- if (temp.setWritableValueResponData?.Status != 0)
+ if (temp != null && temp.setWritableValueResponData?.Status != 0)
{
var temp1 = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default);
- if (temp1.setWritableValueResponData?.Status != 0)
+ if (temp1 != null && temp1.setWritableValueResponData?.Status != 0)
{
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
}
@@ -639,7 +696,7 @@
}
CommonPage.Loading.Hide();
}
- };
+ };
};
}
@@ -661,8 +718,8 @@
var sidelipFrameLayout = new FrameLayout()
{
- Height = Application.GetRealHeight(628),
- Width = Application.GetRealWidth(415),
+ Height = Application.GetMinReal(628),
+ Width = Application.GetMinReal(415),
Y = Application.GetRealHeight(115 + 45),
X = Application.GetRealWidth(605),
BackgroundImagePath = "DoorLock/SideslipPic.png",
@@ -701,8 +758,10 @@
}
}
+ int count = 0;
foreach (var value in typeModeList)
{
+ count++;
#region rowView
var rowView = new FrameLayout()
{
@@ -856,7 +915,7 @@
currentKey.currentKeySelectModeText = oldKeySelectModeText;
dialog.Close();
}
- };
+ };
}
}
else
@@ -909,7 +968,7 @@
currentKey.currentKeySelectModeText = oldKeySelectModeText;
dialog.Close();
}
- };
+ };
}
}
else
@@ -1059,7 +1118,10 @@
}
}
- //鑾峰彇鎸夐敭鏀寔鐨勫ぇ绫�
+ /// <summary>
+ /// 鑾峰彇鎸夐敭鏀寔鐨勫ぇ绫�
+ /// </summary>
+ /// <returns></returns>
private async System.Threading.Tasks.Task<List<int>> GetTypeMode()
{
if (typeModeList != null)
@@ -1237,18 +1299,6 @@
localDeviceList.Clear();
scList.Clear();
base.RemoveFromParent();
- }
-
- public void DeviceInfoChange(CommonDevice common, string typeTag)
- {
- }
-
- public void ChangedILogicStatus(ZigBee.Device.Logic logic)
- {
- }
-
- public void ChangedISceneStatus(Scene scene)
- {
}
}
}
--
Gitblit v1.8.0