From f759dc1e6f49c53733eafda82207c85af18f9931 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期四, 28 五月 2020 15:46:54 +0800 Subject: [PATCH] 2020-05-28-1 --- ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs | 209 +++++++++++++++++++++++++++++++-------------------- 1 files changed, 127 insertions(+), 82 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs index 3ea1cc6..b6b4a78 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,24 +21,61 @@ 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> bool IsRead = false; #endregion - //鍒濆鍖栨寜閿暟鎹� + /// <summary> + /// 鍒濆鍖栨寜閿暟鎹� + /// </summary> void InitListInfo() { System.Threading.Tasks.Task.Run(async () => @@ -64,18 +90,13 @@ localDeviceList.Add(dev); } //鑾峰彇鏈湴鍦烘櫙鍒楄〃 - scList = Shared.Common.Room.AllRoomSceneUIList; - //鑾峰彇缃戝叧鍦烘櫙琛� - var gwSceneObj = await currentKey.GetSceneInfoAsync(); - if (gwSceneObj != null && gwSceneObj.getSceneInfo != null) - { - gwScenesList = gwSceneObj.getSceneInfo.ScenesList; - } + scList = HdlSceneLogic.Current.GetAllRoomSceneList(); + //鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被 typeModeList = await GetTypeMode(); #region 璇诲彇闈㈡澘褰撳墠妯″紡 //璇诲彇鎸夐敭褰撳墠妯″紡 - var tempDeata = await currentKey.ReadPanelConfigureInfoAsync(); + var tempDeata = HdlDeviceBindLogic.Current.ReadPanelConfigureInfoAsync(currentKey); if (tempDeata != null && tempDeata.deviceStatusReportData != null) { foreach (var attr in tempDeata.deviceStatusReportData.AttriBute) @@ -102,7 +123,7 @@ GetDeviceBindResponseAllData getBindList = null; if (IsRead) { - getBindList = await currentKey.GetDeviceBindAsync(); + getBindList = HdlDeviceBindLogic.Current.GetDeviceBindAsync(currentKey); var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { }; var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { }; if (getBindList != null && getBindList.getAllBindResponseData != null) @@ -146,6 +167,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; }); @@ -176,6 +198,7 @@ { RefreshList(); CommonPage.Loading.Hide(); + midVerticalRefreshLayout.EndHeaderRefreshing(); }); } else @@ -183,6 +206,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; @@ -209,7 +233,7 @@ var btnAddFrameLayout = new FrameLayout() { - X = Application.GetRealWidth(888), + X = Application.GetRealWidth(772 - 58), Width = Application.GetRealWidth(192), }; this.titleFrameLayout.AddChidren(btnAddFrameLayout); @@ -217,8 +241,8 @@ var btnBindAdd = new Button { X = Application.GetRealWidth(62), - Height = Application.GetRealHeight(72), - Width = Application.GetRealWidth(72), + Height = Application.GetMinReal(72), + Width = Application.GetMinReal(72), UnSelectedImagePath = "BindPic/BindAdd.png", }; btnAddFrameLayout.AddChidren(btnBindAdd); @@ -233,7 +257,7 @@ { currentClusterID = 6; currentKey.panelMode = 1; - var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey, gwScenesList); + var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey); Shared.Phone.UserView.HomePage.Instance.AddChidren(addScenePage); Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; addScenePage.Show(); @@ -315,6 +339,7 @@ InitListInfo(); } + /// <summary> /// 涓儴甯冨眬 /// </summary> @@ -322,6 +347,7 @@ { midVerticalRefreshLayout = new VerticalFrameRefreshControl(29) { + Height = this.midFrameLayout.Height + 1, }; this.midFrameLayout.AddChidren(midVerticalRefreshLayout); midVerticalRefreshLayout.BeginHeaderRefreshingAction += () => @@ -329,7 +355,6 @@ midVerticalRefreshLayout.BeginHeaderRefreshing(); IsRead = true; InitListInfo(); - midVerticalRefreshLayout.EndHeaderRefreshing(); }; BlankPicUI(); @@ -412,6 +437,7 @@ midVerticalRefreshLayout.AddChidrenRow(rowLayout); rowLayout.frameTable.UseClickStatu = false; var devicePic = rowLayout.frameTable.AddLeftIcon(); + devicePic.Y = Application.GetRealHeight(49); devicePic.UnSelectedImagePath = "DoorLock/DoorLockUserPic.png"; #region 缁戝畾鏁版嵁澶勭悊 @@ -431,7 +457,7 @@ } if (isExistScene) { - curSceneUI = Room.CurrentRoom.GetSceneUIBySceneId(bindDevice.BindScenesId); + curSceneUI = HdlSceneLogic.Current.GetSceneUIBySceneId(bindDevice.BindScenesId); devicePic.UnSelectedImagePath = "Scene/SceneIcon.png"; if (curSceneUI == null) { @@ -447,9 +473,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); } } } @@ -462,7 +493,7 @@ if (tempDev != null) { //鑾峰彇璁惧鎵�灞炴埧闂� - var tempDevRoom = Common.Room.CurrentRoom.GetRoomByDevice(tempDev); + var tempDevRoom = HdlRoomLogic.Current.GetRoomByDevice(tempDev); if (tempDevRoom != null) { @@ -473,20 +504,31 @@ 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 = ""; - } + } + + devicePic.UnSelectedImagePath = tempDev.IconPath; + devicePic.Text = ""; + if (string.IsNullOrEmpty(tempDev.DeviceEpointName)) { btnBindNameText = tempDev.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit); @@ -499,7 +541,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); @@ -593,7 +634,7 @@ try { CommonPage.Loading.Start(""); - var bindResult = await currentKey.ClearBindInfoAsync(); + var bindResult = HdlDeviceBindLogic.Current.ClearBindInfoAsync(currentKey); if (bindResult != null && bindResult.clearBindInfoResponseData != null) { if (bindResult.clearBindInfoResponseData.Result != 0) @@ -604,11 +645,11 @@ } else { - var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default); - if (temp.setWritableValueResponData?.Status != 0) + var temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default); + if (temp != null && temp.setWritableValueResponData?.Status != 0) { - var temp1 = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default); - if (temp1.setWritableValueResponData?.Status != 0) + var temp1 = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default); + if (temp1 != null && temp1.setWritableValueResponData?.Status != 0) { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); } @@ -637,7 +678,6 @@ currentKey.bindList.Clear(); RefreshList(); //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛� - currentKey.RoomId = ""; currentKey.ReSave(); } CommonPage.Loading.Hide(); @@ -664,8 +704,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", @@ -686,26 +726,34 @@ if (typeModeList == null) { //鍐嶆鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被 - CommonPage.Loading.Start(); + Application.RunOnMainThread(() => + { + CommonPage.Loading.Start(); + }); typeModeList = await GetTypeMode(); if (typeModeList == null) { Application.RunOnMainThread(() => { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + CommonPage.Loading.Hide(); }); - CommonPage.Loading.Hide(); dialog.Close(); return; } else { - CommonPage.Loading.Hide(); + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + }); } } + int count = 0; foreach (var value in typeModeList) { + count++; #region rowView var rowView = new FrameLayout() { @@ -841,7 +889,7 @@ var result = await RemoveTargets(bindSc, line2); if (result == 0) { - var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey, gwScenesList); + var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey); Shared.Phone.UserView.HomePage.Instance.AddChidren(addScenePage); Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; addScenePage.Show(); @@ -864,7 +912,7 @@ } else { - var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey, gwScenesList); + var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey); Shared.Phone.UserView.HomePage.Instance.AddChidren(addScenePage); Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; addScenePage.Show(); @@ -1062,9 +1110,19 @@ } } - //鑾峰彇鎸夐敭鏀寔鐨勫ぇ绫� + /// <summary> + /// 鑾峰彇鎸夐敭鏀寔鐨勫ぇ绫� + /// </summary> + /// <returns></returns> private async System.Threading.Tasks.Task<List<int>> GetTypeMode() { + //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹� + if (Common.Config.Instance.Home.IsVirtually == true) + { + //鍒欓粯璁ゅ叏閮ㄥ姛鑳介兘缁欏畠 + typeModeList = new List<int>() { 1, 100, 200, 300, 0, 101, 102 }; + return typeModeList; + } if (typeModeList != null) { typeModeList.Clear(); @@ -1120,7 +1178,7 @@ { CommonPage.Loading.Start(""); var delResult = new DelDeviceBindResponseAllData(); - delResult = await currentKey.DelDeviceBindAsync(delDevice); + delResult = HdlDeviceBindLogic.Current.DelDeviceBindAsync(delDevice); if (delResult != null && delResult.delDeviceBindResponseData != null) { if (delResult.delDeviceBindResponseData?.RemoveBindList != null) @@ -1137,7 +1195,6 @@ { currentKey.panelMode = 65535; } - currentKey.RoomId = ""; currentKey.ReSave(); return 0; break; @@ -1147,7 +1204,7 @@ { CommonPage.Loading.Start(""); - var getBindList = await currentKey.GetDeviceBindAsync(); + var getBindList = HdlDeviceBindLogic.Current.GetDeviceBindAsync(currentKey); var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { }; var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { }; if (getBindList != null) @@ -1240,18 +1297,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