From 23fb45dd846ed8b62304c408c6bbe64265d4ac8b Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期五, 20 十二月 2019 18:57:16 +0800 Subject: [PATCH] 代码合并 --- ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs | 158 +++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 119 insertions(+), 39 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs index 0b8eb69..3e41259 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs @@ -44,6 +44,7 @@ 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; #endregion //鍒濆鍖栨寜閿暟鎹� @@ -71,10 +72,25 @@ var tempDeata = await currentKey.ReadPanelConfigureInfoAsync(); if (tempDeata != null && tempDeata.deviceStatusReportData != null) { - currentClusterID = tempDeata.deviceStatusReportData.CluterID; foreach (var attr in tempDeata.deviceStatusReportData.AttriBute) { currentKey.panelMode = attr.AttriButeData; + if (currentKey.panelMode == 1) + { + currentClusterID = 6; + } + else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102) + { + currentClusterID = 6; + } + else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205) + { + currentClusterID = 8; + } + else if (currentKey.panelMode == 300 || currentKey.panelMode == 301 || currentKey.panelMode == 302 || currentKey.panelMode == 303 || currentKey.panelMode == 304) + { + currentClusterID = 258; + } currentKey.ReSave(); //璇诲彇鎸夐敭褰撳墠缁戝畾鐩爣 var getBindList = await currentKey.GetDeviceBindAsync(); @@ -82,6 +98,7 @@ 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) @@ -100,7 +117,17 @@ } else { - currentKey.bindList.Add(b); + if (currentClusterID == 8) + { + if (b.BindCluster == 8) + { + currentKey.bindList.Add(b); + } + } + else + { + currentKey.bindList.Add(b); + } } } } @@ -123,7 +150,7 @@ currentKey.bindList = bindDeviceListTemp; currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddSwitch); } - else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 202 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205) + else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205) { currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddDimmer); } @@ -133,24 +160,27 @@ } } #endregion + + //鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被 + typeModeList = await GetTypeMode(); + Application.RunOnMainThread(() => + { + RefreshList(); + CommonPage.Loading.Hide(); + }); } else { Application.RunOnMainThread(() => { + CommonPage.Loading.Hide(); + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); }); + return; } } catch { } - finally - { - Application.RunOnMainThread(() => - { - RefreshList(); - CommonPage.Loading.Hide(); - }); - } }); } @@ -272,7 +302,7 @@ /// 涓儴甯冨眬 /// </summary> void middleFrameLayout() - { + { midVerticalRefreshLayout = new VerticalRefreshLayout() { }; @@ -345,7 +375,7 @@ btnPicTip.Height = Application.GetRealHeight(49); btnPicTip.Visible = true; entryStatusPic.Visible = true; - blankFrameLayout.Height = midVerticalRefreshLayout.Height; + blankFrameLayout.Height = midVerticalRefreshLayout.Height; } else { @@ -362,7 +392,7 @@ } else { - topFrameLayout.Height = Application.GetRealHeight(150); + topFrameLayout.Height = Application.GetRealHeight(150); BindModeDisplay(); } int curIndex = 0; @@ -473,18 +503,22 @@ { //鑾峰彇璁惧鎵�灞炴埧闂� var tempDevRoom = Common.Room.CurrentRoom.GetRoomByDevice(tempDev); - //鑾峰彇璁惧鎵�鍦ㄦゼ灞� - if (Common.Config.Instance.Home.FloorDics.Count == 0) - { - } + if (tempDevRoom != null) { var tempDevFloorId = tempDevRoom.FloorId; - //鑾峰彇妤煎眰鐨勫悕瀛� + //鑾峰彇鎴块棿鐨勫悕瀛� var tempDevRoomName = tempDevRoom.Name; //鑾峰彇妤煎眰鐨勫悕瀛� var tempDevFloorName = Common.Config.Instance.Home.GetFloorNameById(tempDevFloorId); - btnFloorRoomName.Text = tempDevFloorName + "," + tempDevRoomName; + if (string.IsNullOrEmpty(tempDevFloorName)) + { + btnFloorRoomName.Text = tempDevRoomName; + } + else + { + btnFloorRoomName.Text = tempDevFloorName + "," + tempDevRoomName; + } } var deviceUi = Common.LocalDevice.Current.GetDeviceUI(tempDev); if (deviceUi != null) @@ -694,7 +728,7 @@ /// <summary> /// 渚ц竟瀵艰埅鏍� /// </summary> - void SideslipFramelayout() + async void SideslipFramelayout() { #region UI var dialog = new Dialog { }; @@ -727,7 +761,29 @@ Button oldbuttonText = null; string oldKeySelectModeText = currentKey.currentKeySelectModeText; - for (var i = 0; i < 4; i++) + + if (typeModeList == null) + { + //鍐嶆鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被 + 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(); + dialog.Close(); + return; + } + else + { + CommonPage.Loading.Hide(); + } + } + + foreach (var value in typeModeList) { #region rowView var rowView = new FrameLayout() @@ -758,62 +814,62 @@ }; rowView.AddChidren(line2); - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && i == 0) + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && value == 1) { btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; oldbuttonText = btnMethodText; } - else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && i == 1) + else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && value == 100) { btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; oldbuttonText = btnMethodText; } - else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && i == 2) + else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && value == 200) { btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; oldbuttonText = btnMethodText; } - else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && i == 3) + else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && value == 300) { btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; oldbuttonText = btnMethodText; } - #endregion + #endregion #region 鏁版嵁澶勭悊 - switch (i) + switch (value) { - case 0: + case 1: btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddScene); break; - case 1: + case 100: btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddSwitch); break; - case 2: + case 200: btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddDimmer); break; - case 3: + case 300: btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddCurtain); line2.Visible = false; break; } - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && i == 0) + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && value == 1) { btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; oldbuttonText = btnMethodText; } - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && i == 1) + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && value == 100) { btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; oldbuttonText = btnMethodText; } - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && i == 2) + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && value == 200) { btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; oldbuttonText = btnMethodText; } - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && i == 3) + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && value == 300) { btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; oldbuttonText = btnMethodText; @@ -1076,13 +1132,37 @@ } } + //鑾峰彇鎸夐敭鏀寔鐨勫ぇ绫� + private async System.Threading.Tasks.Task<List<int>> GetTypeMode() + { + if (typeModeList != null) + { + typeModeList.Clear(); + } + if (currentKey.privateFuncSecondLevelList.Count == 0 || currentKey.privateFuncSecondLevelList.Contains(1) == false || currentKey.privateFuncSecondLevelList.Contains(100) == false || currentKey.privateFuncSecondLevelList.Contains(200) == false || currentKey.privateFuncSecondLevelList.Contains(300) == false) + { + //鑾峰彇绗簩绾у姛鑳� + typeModeList = await currentKey.GetPanelDeviceFunctionLevel2(256); + if (typeModeList == null) + { + return null; + } + currentKey.privateFuncSecondLevelList = typeModeList; + } + else + { + typeModeList = currentKey.privateFuncSecondLevelList; + } + return typeModeList; + } + /// <summary> /// 鍒犻櫎褰撳墠鐩爣鏂规硶 /// </summary> /// <param name="bindDevice"></param> /// <param name="btnDel"></param> /// <returns></returns> - async System.Threading.Tasks.Task<int> RemoveTargets(BindListResponseObj bindDevice, Button btnDel) + private async System.Threading.Tasks.Task<int> RemoveTargets(BindListResponseObj bindDevice, Button btnDel) { var delDevice = new DelDeviceBindData(); delDevice.DeviceAddr = currentKey.DeviceAddr; @@ -1110,7 +1190,7 @@ { CommonPage.Loading.Start(""); var delResult = new DelDeviceBindResponseAllData(); - delResult = await currentKey.DelDeviceBindAsync(delDevice); + delResult = await currentKey.DelDeviceBindAsync(delDevice); if (delResult != null && delResult.delDeviceBindResponseData != null) { if (delResult.delDeviceBindResponseData?.RemoveBindList != null) @@ -1123,7 +1203,7 @@ currentKey.bindList.Remove(bindDevice); RefreshList(); //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛� - if(re.BindType == 2) + if (re.BindType == 2) { currentKey.panelMode = 65535; } -- Gitblit v1.8.0