From f71e74b5f0d2716fbf05da016cdaa18d64e09f80 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 31 十二月 2020 17:01:18 +0800 Subject: [PATCH] 又换完成最新门锁。空气质量传感器完成数据和基本配置功能。开发图表和自动化的同事可下载此代码 --- ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs | 2241 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 1,121 insertions(+), 1,120 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs old mode 100755 new mode 100644 index 726615a..d2bf07a --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs @@ -8,1181 +8,1182 @@ namespace Shared.Phone.UserCenter.DeviceBind { - /// <summary> - /// 鏅�氶潰鏉跨殑缁戝畾鐣岄潰銆愬彲缁戝畾澶氫釜鐩爣銆� + /// <summary> + /// 鏅�氶潰鏉跨殑缁戝畾鐣岄潰銆愬彲缁戝畾澶氫釜鐩爣銆� + /// </summary> + public class BindTargetsPage : BindCommonLayout + { + /// 鏋勯�犲嚱鏁� /// </summary> - public class BindTargetsPage : BindCommonLayout + /// <param name="doorLock"></param> + public BindTargetsPage(ZigBee.Device.Panel key) { - /// 鏋勯�犲嚱鏁� - /// </summary> - /// <param name="doorLock"></param> - public BindTargetsPage(ZigBee.Device.Panel key) + this.currentKey = key; + } + + #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; + /// <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 () => + { + try { - this.currentKey = key; - } + localDeviceList.Clear(); + scList.Clear(); + //鑾峰彇鏈湴璁惧鍒楄〃 + foreach (var dev in Shared.Common.LocalDevice.Current.listAllDevice) + { + localDeviceList.Add(dev); + } + //鑾峰彇鏈湴鍦烘櫙鍒楄〃 + scList = HdlSceneLogic.Current.GetAllRoomSceneList(); - #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; - /// <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 () => + //鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被 + typeModeList = await GetTypeMode(); + #region 璇诲彇闈㈡澘褰撳墠妯″紡 + //璇诲彇鎸夐敭褰撳墠妯″紡 + var tempDeata = HdlDeviceBindLogic.Current.ReadPanelConfigureInfoAsync(currentKey); + if (tempDeata != null && tempDeata.deviceStatusReportData != null) + { + foreach (var attr in tempDeata.deviceStatusReportData.AttriBute) { - try + 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; + } + + //璇诲彇鎸夐敭褰撳墠缁戝畾鐩爣 + GetDeviceBindResponseAllData getBindList = null; + if (IsRead) + { + 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) { - localDeviceList.Clear(); - scList.Clear(); - //鑾峰彇鏈湴璁惧鍒楄〃 - foreach (var dev in Shared.Common.LocalDevice.Current.listAllDevice) + currentKey.bindList.Clear(); + foreach (var b in getBindList.getAllBindResponseData.BindList) + { + if (b.BindCluster == currentClusterID) { - localDeviceList.Add(dev); - } - //鑾峰彇鏈湴鍦烘櫙鍒楄〃 - scList = HdlSceneLogic.Current.GetAllRoomSceneList(); + if (b.BindCluster == 6) + { - //鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被 - typeModeList = await GetTypeMode(); - #region 璇诲彇闈㈡澘褰撳墠妯″紡 - //璇诲彇鎸夐敭褰撳墠妯″紡 - var tempDeata = HdlDeviceBindLogic.Current.ReadPanelConfigureInfoAsync(currentKey); - if (tempDeata != null && tempDeata.deviceStatusReportData != null) - { - foreach (var attr in tempDeata.deviceStatusReportData.AttriBute) + if (b.BindType == 2) { - 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; - } - - //璇诲彇鎸夐敭褰撳墠缁戝畾鐩爣 - GetDeviceBindResponseAllData getBindList = null; - if (IsRead) - { - 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) - { - 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 - { - if (currentClusterID == 8) - { - if (b.BindCluster == 8) - { - currentKey.bindList.Add(b); - } - } - else - { - currentKey.bindList.Add(b); - } - } - } - } - } - else - { - Application.RunOnMainThread(() => - { - CommonPage.Loading.Hide(); - midVerticalRefreshLayout.EndHeaderRefreshing(); - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007" + ")", 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); - } - } - currentKey.ReSave(); + bindSceneListTemp.Add(b); } - #endregion - Application.RunOnMainThread(() => + else { - RefreshList(); - CommonPage.Loading.Hide(); - midVerticalRefreshLayout.EndHeaderRefreshing(); - }); - } - else - { - Application.RunOnMainThread(() => + bindDeviceListTemp.Add(b); + } + } + else + { + if (currentClusterID == 8) { - CommonPage.Loading.Hide(); - midVerticalRefreshLayout.EndHeaderRefreshing(); - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "108_ 6533" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); - }); - return; - } - } - catch { } - }); - } - - /// <summary> - /// 鎸夐敭缁戝畾椤垫樉绀� - /// </summary> - public void Show() - { - #region TopFrameLayout - this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.PanelBindTargets)); - EventHandler<MouseEventArgs> eHandlerBack = (sender, e) => - { - RemoveFromParent(); - }; - this.btnBack.MouseUpEventHandler += eHandlerBack; - this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; - this.MidFrameLayout(this); - - var btnAddFrameLayout = new FrameLayout() - { - X = Application.GetRealWidth(772 - 58), - Width = Application.GetRealWidth(192), - }; - this.titleFrameLayout.AddChidren(btnAddFrameLayout); - - var btnBindAdd = new Button - { - X = Application.GetRealWidth(62), - Height = Application.GetMinReal(72), - Width = Application.GetMinReal(72), - UnSelectedImagePath = "BindPic/BindAdd.png", - }; - btnAddFrameLayout.AddChidren(btnBindAdd); - #endregion - - #region eHandlerAdd - EventHandler<MouseEventArgs> eHandlerAdd = (sender, e) => - { - if (currentKey.bindList.Count != 0) - { - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene)) - { - currentClusterID = 6; - currentKey.panelMode = 1; - 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(); - - Action<List<BindListResponseObj>> action = (obj) => + if (b.BindCluster == 8) + { + currentKey.bindList.Add(b); + } + } + else { - currentKey.bindList = obj; - RefreshList(); - }; - addScenePage.action += action; + currentKey.bindList.Add(b); + } + } } - - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch)) - { - currentClusterID = 6; - var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddSwitch"); - Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - addDevicePage.Show(); - - devicBindAction = (obj) => - { - currentKey.bindList = obj; - RefreshList(); - }; - addDevicePage.actionAddDevicePage += devicBindAction; - } - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer)) - { - currentClusterID = 8; - var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddDimmer"); - Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - addDevicePage.Show(); - - Action<List<BindListResponseObj>> action = (obj) => - { - currentKey.bindList = obj; - RefreshList(); - }; - addDevicePage.actionAddDevicePage += action; - } - - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain)) - { - currentClusterID = 258; - var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddCurtain"); - Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - addDevicePage.Show(); - - Action<List<BindListResponseObj>> action = (obj) => - { - currentKey.bindList = obj; - RefreshList(); - }; - addDevicePage.actionAddDevicePage += action; - } + } } else { - currentKey.panelMode = 65535; - SideslipFramelayout(); + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + midVerticalRefreshLayout.EndHeaderRefreshing(); + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + return; + }); } - }; - btnBindAdd.MouseDownEventHandler += eHandlerAdd; - btnAddFrameLayout.MouseDownEventHandler += eHandlerAdd; - #endregion - CommonPage.Loading.Start(""); - middleFrameLayout(); - if (currentKey.bindList.Count == 0) - { - IsRead = true; - } - else - { - IsRead = false; - } - InitListInfo(); - - } - - /// <summary> - /// 涓儴甯冨眬 - /// </summary> - void middleFrameLayout() - { - midVerticalRefreshLayout = new VerticalFrameRefreshControl(29) - { - Height = this.midFrameLayout.Height + 1, - }; - this.midFrameLayout.AddChidren(midVerticalRefreshLayout); - midVerticalRefreshLayout.BeginHeaderRefreshingAction += () => - { - midVerticalRefreshLayout.BeginHeaderRefreshing(); - IsRead = true; - InitListInfo(); - }; - - BlankPicUI(); - } - - /// <summary> - /// 绌烘暟鎹甎I鏄剧ず - /// </summary> - void BlankPicUI() - { - blankFrameLayout = new FrameLayout - { - }; - midVerticalRefreshLayout.AddChidren(blankFrameLayout); - - entryStatusPic = new Button - { - X = Application.GetRealWidth(213), - Y = Application.GetRealHeight(418), - UnSelectedImagePath = "BindPic/BindEmptyPic.png", - Visible = false, - }; - blankFrameLayout.AddChidren(entryStatusPic); - - btnPicTip = new Button - { - Y = Application.GetRealHeight(1020), - Text = Language.StringByID(R.MyInternationalizationString.NoControlTargets), - TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, - Gravity = Gravity.CenterHorizontal, - Visible = false, - TextSize = 12, - }; - blankFrameLayout.AddChidren(btnPicTip); - } - /// <summary> - /// 鎸夐敭缁戝畾琛ㄦ樉绀� - /// </summary> - async void RefreshList() - { - midVerticalRefreshLayout.RemoveAll(); - this.midFrameLayout.RemoveAll(); - middleFrameLayout(); - #region 鏁版嵁澶勭悊 - if (currentKey.bindList.Count == 0) - { - entryStatusPic.Height = Application.GetRealHeight(556); - entryStatusPic.Width = Application.GetRealWidth(654); - btnPicTip.Height = Application.GetRealHeight(49); - btnPicTip.Visible = true; - entryStatusPic.Visible = true; - blankFrameLayout.Height = midVerticalRefreshLayout.Height; - } - else - { - entryStatusPic.Height = Application.GetRealHeight(0); - entryStatusPic.Width = Application.GetRealWidth(0); - btnPicTip.Height = Application.GetRealHeight(0); - btnPicTip.Visible = false; - entryStatusPic.Visible = false; - blankFrameLayout.Height = Application.GetRealHeight(0); if (currentKey.panelMode == 1) { - midVerticalRefreshLayout.Y = Application.GetRealHeight(0); + currentKey.bindList = bindSceneListTemp; + currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddScene); } - else + else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102) { - BindModeDisplay(); + currentKey.bindList = bindDeviceListTemp; + currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddSwitch); } - int curIndex = 0; - for (int i = 0; i < currentKey.bindList.Count; i++) + else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205) { - curIndex = i; - var bindDevice = currentKey.bindList[i]; - SceneUI curSceneUI = null; - bool isExistScene = false; - - var rowLayout = new RowLayoutControl(midVerticalRefreshLayout.rowSpace / 2); - rowLayout.BackgroundColor = ZigbeeColor.Current.XMWhite; - midVerticalRefreshLayout.AddChidren2(rowLayout); - rowLayout.frameTable.UseClickStatu = false; - var devicePic = rowLayout.frameTable.AddLeftIcon(); - devicePic.Y = Application.GetRealHeight(49); - devicePic.UnSelectedImagePath = "DoorLock/DoorLockUserPic.png"; - - #region 缁戝畾鏁版嵁澶勭悊 - int currentIndex = i; - var btnBindNameText = ""; - var btnFloorRoomNameText = ""; - if (currentIndex == currentKey.bindList.Count - 1) - { - rowLayout.LineColor = Shared.Common.ZigbeeColor.Current.XMWhite; - } - foreach (var sc in currentKey.bindList) - { - if (sc.BindType == 2) - { - isExistScene = true; - } - } - if (isExistScene) - { - curSceneUI = HdlSceneLogic.Current.GetSceneUIBySceneId(bindDevice.BindScenesId); - devicePic.UnSelectedImagePath = "Scene/SceneIcon.png"; - if (curSceneUI == null) - { - btnBindNameText = Language.StringByID(R.MyInternationalizationString.OffLineScene) + "_" + "ID" + "_" + bindDevice.BindScenesId.ToString(); - } - else - { - btnBindNameText = curSceneUI.Name; - string myName = HdlSceneLogic.Current.GetZoneById(curSceneUI.Id); - if (myName != null) - { - btnFloorRoomNameText = myName; - } - else - { - btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed); - } - } - } - else - { - //琚粦瀹氳澶囧浘鐗� - foreach (var dev in localDeviceList) - { - var tempDev = localDeviceList.Find(obj => obj.DeviceAddr == bindDevice.BindMacAddr && obj.DeviceEpoint == bindDevice.BindEpoint); - if (tempDev != null) - { - //鑾峰彇璁惧鎵�灞炴埧闂� - var tempDevRoom = HdlRoomLogic.Current.GetRoomByDevice(tempDev); - - if (tempDevRoom != null) - { - var tempDevFloorId = tempDevRoom.FloorId; - //鑾峰彇鎴块棿鐨勫悕瀛� - var tempDevRoomName = tempDevRoom.Name; - //鑾峰彇妤煎眰鐨勫悕瀛� - var tempDevFloorName = HdlResidenceLogic.Current.GetFloorNameById(tempDevFloorId); - if (string.IsNullOrEmpty(tempDevFloorName)) - { - if (string.IsNullOrEmpty(tempDevRoomName)) - { - btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed); - } - else - { - btnFloorRoomNameText = tempDevRoomName; - } - } - else - { - if (string.IsNullOrEmpty(tempDevRoomName)) - { - btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed); - } - else - { - btnFloorRoomNameText = tempDevFloorName + "," + tempDevRoomName; - } - } - } - else - { - btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed); - } - - devicePic.UnSelectedImagePath = tempDev.IconPath; - devicePic.Text = ""; - - if (string.IsNullOrEmpty(tempDev.DeviceEpointName)) - { - btnBindNameText = tempDev.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit); - } - else - { - btnBindNameText = tempDev.DeviceEpointName; - } - } - else - { - btnBindNameText = bindDevice.BindMacAddr + "_" + bindDevice.BindEpoint; - devicePic.TextAlignment = TextAlignment.CenterLeft; - devicePic.TextColor = UserCenterColor.Current.Gray; - devicePic.Text = Language.StringByID(R.MyInternationalizationString.uOffLine); - } - } - } - - var btnBindName = rowLayout.frameTable.AddTopView(btnBindNameText, 800); - var btnFloorRoomName = rowLayout.frameTable.AddBottomView(btnFloorRoomNameText, 800); - rowLayout.frameTable.AddBottomLine(); - var btnDel = rowLayout.AddDeleteControl(); - btnDel.ButtonClickEvent += (sender, e) => - { - RemoveTargets(bindDevice, btnDel); - }; - #endregion + currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddDimmer); } - midVerticalRefreshLayout.AdjustTableHeight(Application.GetRealHeight(23)); + 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 + #endregion + Application.RunOnMainThread(() => + { + RefreshList(); + CommonPage.Loading.Hide(); + midVerticalRefreshLayout.EndHeaderRefreshing(); + }); + } + else + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + midVerticalRefreshLayout.EndHeaderRefreshing(); + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "108_ 6533" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + }); + return; + } } + catch { } + }); + } - /// <summary> - /// 褰撳墠鎸夐敭妯″紡鏄剧ず - /// </summary> - public void BindModeDisplay() + /// <summary> + /// 鎸夐敭缁戝畾椤垫樉绀� + /// </summary> + public void Show() + { + #region TopFrameLayout + this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.PanelBindTargets)); + EventHandler<MouseEventArgs> eHandlerBack = (sender, e) => + { + RemoveFromParent(); + }; + this.btnBack.MouseUpEventHandler += eHandlerBack; + this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; + this.MidFrameLayout(this); + + var btnAddFrameLayout = new FrameLayout() + { + X = Application.GetRealWidth(772 - 58), + Width = Application.GetRealWidth(192), + }; + this.titleFrameLayout.AddChidren(btnAddFrameLayout); + + var btnBindAdd = new Button + { + X = Application.GetRealWidth(62), + Height = Application.GetMinReal(72), + Width = Application.GetMinReal(72), + UnSelectedImagePath = "BindPic/BindAdd.png", + }; + btnAddFrameLayout.AddChidren(btnBindAdd); + #endregion + + #region eHandlerAdd + EventHandler<MouseEventArgs> eHandlerAdd = (sender, e) => + { + if (currentKey.bindList.Count != 0) { - var modeRowLayout = new RowLayoutControl(midVerticalRefreshLayout.rowSpace / 2); - modeRowLayout.BackgroundColor = ZigbeeColor.Current.XMWhite; - midVerticalRefreshLayout.AddChidren2(modeRowLayout); - modeRowLayout.frameTable.UseClickStatu = false; - modeRowLayout.frameTable.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.keyMode), 400); - var btnKeyModeTipText = ""; - #region 褰撳墠妯″紡鏂囨湰鏄剧ず - switch (currentKey.panelMode) - { - case 100: - btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.OnOffOn); - break; - case 101: - btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.OnOffoFF); - break; - case 102: - btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.OnOffOnOff); - break; - case 200: - btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode1); - break; - case 201: - btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode2); - break; - case 203: - btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode3); - break; - case 204: - btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode4); - break; - case 205: - btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode5); - break; - case 300: - btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdUp); - break; - case 301: - btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdDown); - break; - case 302: - btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdStop); - break; - case 303: - btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdUpStop); - break; - case 304: - btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdDownStop); - break; - } - #endregion - modeRowLayout.frameTable.AddMostRightView(btnKeyModeTipText, 800); - modeRowLayout.frameTable.AddBottomLine(); - var btnDel = modeRowLayout.AddDeleteControl(); - //涓�閿竻闄ゆ寜閿簨浠� - btnDel.ButtonClickEvent += async (sender, e) => - { - string msg = Language.StringByID(R.MyInternationalizationString.ClearAllTargets).Replace("{0}", "\r\n"); - var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm)); - alert.Show(); - //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� - alert.ConfirmClickEvent += () => - { - bool isDelSuccess = false; - System.Threading.Tasks.Task.Run(() => - { - try - { - Application.RunOnMainThread(() => - { - CommonPage.Loading.Start(""); - }); - var bindResult = HdlDeviceBindLogic.Current.ClearBindInfoAsync(currentKey); - if (bindResult != null && bindResult.clearBindInfoResponseData != null) - { - if (bindResult.clearBindInfoResponseData.Result != 0) - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDel); - CommonPage.Loading.Hide(); - }); - return; - } - else - { - var temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default); - if (temp != null && temp.setWritableValueResponData?.Status != 0) - { - var temp1 = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default); - if (temp1 != null && temp1.setWritableValueResponData?.Status != 0) - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene)) + { + currentClusterID = 6; + currentKey.panelMode = 1; + 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(); - }); - } - else - { - isDelSuccess = true; - } - } - else - { - isDelSuccess = true; - } - } - } - else - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5006" + ")", Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); - }); - } - } - catch { } - finally - { - Application.RunOnMainThread(() => - { - if (isDelSuccess) - { - currentKey.panelMode = 65535; - currentKey.bindList.Clear(); - RefreshList(); - //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛� - currentKey.ReSave(); - } - CommonPage.Loading.Hide(); - }); - } - }); - }; - }; + Action<List<BindListResponseObj>> action = (obj) => + { + currentKey.bindList = obj; + RefreshList(); + }; + addScenePage.action += action; + } + + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch)) + { + currentClusterID = 6; + var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddSwitch"); + Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + addDevicePage.Show(); + + devicBindAction = (obj) => + { + currentKey.bindList = obj; + RefreshList(); + }; + addDevicePage.actionAddDevicePage += devicBindAction; + } + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer)) + { + currentClusterID = 8; + var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddDimmer"); + Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + addDevicePage.Show(); + + Action<List<BindListResponseObj>> action = (obj) => + { + currentKey.bindList = obj; + RefreshList(); + }; + addDevicePage.actionAddDevicePage += action; + } + + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain)) + { + currentClusterID = 258; + var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddCurtain"); + Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + addDevicePage.Show(); + + Action<List<BindListResponseObj>> action = (obj) => + { + currentKey.bindList = obj; + RefreshList(); + }; + addDevicePage.actionAddDevicePage += action; + } } - - /// <summary> - /// 渚ц竟瀵艰埅鏍� - /// </summary> - async void SideslipFramelayout() + else { - #region UI - var dialog = new Dialog { }; - dialog.Show(); - - var flMain = new FrameLayout { BackgroundColor = 0x00000000 }; - dialog.AddChidren(flMain); - flMain.MouseUpEventHandler += (sender11, e11) => - { - dialog.Close(); - }; - - var sidelipFrameLayout = new FrameLayout() - { - Height = Application.GetMinReal(628), - Width = Application.GetMinReal(415), - Y = Application.GetRealHeight(115 + 45), - X = Application.GetRealWidth(605), - BackgroundImagePath = "DoorLock/SideslipPic.png", - }; - flMain.AddChidren(sidelipFrameLayout); - - var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout() - { - Height = Application.GetRealHeight(600), - Y = Application.GetRealHeight(28), - }; - sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout); - #endregion - - Button oldbuttonText = null; - string oldKeySelectModeText = currentKey.currentKeySelectModeText; - - if (typeModeList == null) - { - //鍐嶆鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被 - Application.RunOnMainThread(() => - { - CommonPage.Loading.Start(); - }); - typeModeList = await GetTypeMode(); - if (typeModeList == null) - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "0003" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); - CommonPage.Loading.Hide(); - }); - dialog.Close(); - return; - } - else - { - Application.RunOnMainThread(() => - { - CommonPage.Loading.Hide(); - }); - } - } - - int count = 0; - foreach (var value in typeModeList) - { - count++; - #region rowView - var rowView = new FrameLayout() - { - Height = Application.GetRealHeight(150), - }; - sidelipVerticalScrolViewLayout.AddChidren(rowView); - - var btnMethodText = new Button() - { - Width = Application.GetRealWidth(268), - Height = Application.GetRealHeight(58), - X = Application.GetRealWidth(115), - Y = Application.GetRealHeight(69), - TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, - TextSize = 14, - IsBold = false, - TextAlignment = TextAlignment.CenterLeft, - }; - rowView.AddChidren(btnMethodText); - - var line2 = new Button() - { - Y = rowView.Height - 1, - X = Application.GetRealWidth(115), - Width = Application.GetRealWidth(300), - Height = 1, - BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, - }; - rowView.AddChidren(line2); - - if (string.IsNullOrEmpty(currentKey.currentKeySelectModeText) && value == 1) - { - btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; - btnMethodText.IsBold = true; - oldbuttonText = btnMethodText; - } - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && value == 1) - { - btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; - btnMethodText.IsBold = true; - oldbuttonText = btnMethodText; - } - else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && value == 100) - { - btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; - btnMethodText.IsBold = true; - oldbuttonText = btnMethodText; - } - else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && value == 200) - { - btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; - btnMethodText.IsBold = true; - oldbuttonText = btnMethodText; - } - else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && value == 300) - { - btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; - btnMethodText.IsBold = true; - oldbuttonText = btnMethodText; - } - #endregion - - #region 鏁版嵁澶勭悊 - switch (value) - { - case 1: - btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddScene); - break; - case 100: - btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddSwitch); - break; - case 200: - btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddDimmer); - break; - case 300: - btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddCurtain); - line2.Visible = false; - break; - } - - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && value == 1) - { - btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; - btnMethodText.IsBold = true; - oldbuttonText = btnMethodText; - } - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && value == 100) - { - btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; - btnMethodText.IsBold = true; - oldbuttonText = btnMethodText; - } - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && value == 200) - { - btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; - btnMethodText.IsBold = true; - oldbuttonText = btnMethodText; - } - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && value == 300) - { - btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; - btnMethodText.IsBold = true; - oldbuttonText = btnMethodText; - } - #endregion - - //绫诲瀷浜嬩欢閫変腑澶勭悊 - EventHandler<MouseEventArgs> eHandler = (sender, e) => - { - if (!btnMethodText.IsSelected) - { - if (oldbuttonText != null) - { - oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3; - } - oldbuttonText = btnMethodText; - currentKey.currentKeySelectModeText = btnMethodText.Text; - oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; - } - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene)) - { - 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(); - - Action<List<BindListResponseObj>> action = (obj) => - { - currentKey.bindList = obj; - RefreshList(); - }; - addScenePage.action += action; - dialog.Close(); - } - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch)) - { - var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddSwitch"); - Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - addDevicePage.Show(); - - Action<List<BindListResponseObj>> action = (obj) => - { - currentKey.bindList = obj; - RefreshList(); - }; - addDevicePage.actionAddDevicePage += action; - dialog.Close(); - } - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer)) - { - var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddDimmer"); - Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - addDevicePage.Show(); - - Action<List<BindListResponseObj>> action = (obj) => - { - currentKey.bindList = obj; - RefreshList(); - }; - addDevicePage.actionAddDevicePage += action; - dialog.Close(); - } - if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain)) - { - var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddCurtain"); - Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); - Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; - addDevicePage.Show(); - - Action<List<BindListResponseObj>> action = (obj) => - { - currentKey.bindList = obj; - RefreshList(); - }; - addDevicePage.actionAddDevicePage += action; - dialog.Close(); - } - }; - btnMethodText.MouseUpEventHandler += eHandler; - rowView.MouseUpEventHandler += eHandler; - } + currentKey.panelMode = 65535; + SideslipFramelayout(); } + }; + btnBindAdd.MouseDownEventHandler += eHandlerAdd; + btnAddFrameLayout.MouseDownEventHandler += eHandlerAdd; + #endregion + CommonPage.Loading.Start(""); + middleFrameLayout(); + if (currentKey.bindList.Count == 0) + { + IsRead = true; + } + else + { + IsRead = false; + } + InitListInfo(); - /// <summary> - /// 鑾峰彇鎸夐敭鏀寔鐨勫ぇ绫� - /// </summary> - /// <returns></returns> - private async System.Threading.Tasks.Task<List<int>> GetTypeMode() + } + + /// <summary> + /// 涓儴甯冨眬 + /// </summary> + void middleFrameLayout() + { + midVerticalRefreshLayout = new VerticalFrameRefreshControl(29) + { + Height = this.midFrameLayout.Height + 1, + }; + this.midFrameLayout.AddChidren(midVerticalRefreshLayout); + midVerticalRefreshLayout.BeginHeaderRefreshingAction += () => + { + midVerticalRefreshLayout.BeginHeaderRefreshing(); + IsRead = true; + InitListInfo(); + }; + + BlankPicUI(); + } + + /// <summary> + /// 绌烘暟鎹甎I鏄剧ず + /// </summary> + void BlankPicUI() + { + blankFrameLayout = new FrameLayout + { + }; + midVerticalRefreshLayout.AddChidren(blankFrameLayout); + + entryStatusPic = new Button + { + X = Application.GetRealWidth(213), + Y = Application.GetRealHeight(418), + UnSelectedImagePath = "BindPic/BindEmptyPic.png", + Visible = false, + }; + blankFrameLayout.AddChidren(entryStatusPic); + + btnPicTip = new Button + { + Y = Application.GetRealHeight(1020), + Text = Language.StringByID(R.MyInternationalizationString.NoControlTargets), + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + Gravity = Gravity.CenterHorizontal, + Visible = false, + TextSize = 12, + }; + blankFrameLayout.AddChidren(btnPicTip); + } + /// <summary> + /// 鎸夐敭缁戝畾琛ㄦ樉绀� + /// </summary> + async void RefreshList() + { + midVerticalRefreshLayout.RemoveAll(); + this.midFrameLayout.RemoveAll(); + middleFrameLayout(); + #region 鏁版嵁澶勭悊 + if (currentKey.bindList.Count == 0) + { + entryStatusPic.Height = Application.GetRealHeight(556); + entryStatusPic.Width = Application.GetRealWidth(654); + btnPicTip.Height = Application.GetRealHeight(49); + btnPicTip.Visible = true; + entryStatusPic.Visible = true; + blankFrameLayout.Height = midVerticalRefreshLayout.Height; + } + else + { + entryStatusPic.Height = Application.GetRealHeight(0); + entryStatusPic.Width = Application.GetRealWidth(0); + btnPicTip.Height = Application.GetRealHeight(0); + btnPicTip.Visible = false; + entryStatusPic.Visible = false; + blankFrameLayout.Height = Application.GetRealHeight(0); + if (currentKey.panelMode == 1) { - //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹� - if (Common.Config.Instance.Home.IsVirtually == true) + midVerticalRefreshLayout.Y = Application.GetRealHeight(0); + } + else + { + BindModeDisplay(); + } + int curIndex = 0; + for (int i = 0; i < currentKey.bindList.Count; i++) + { + curIndex = i; + var bindDevice = currentKey.bindList[i]; + SceneUI curSceneUI = null; + bool isExistScene = false; + + var rowLayout = new RowLayoutControl(midVerticalRefreshLayout.rowSpace / 2); + rowLayout.BackgroundColor = ZigbeeColor.Current.XMWhite; + midVerticalRefreshLayout.AddChidren2(rowLayout); + rowLayout.frameTable.UseClickStatu = false; + + var devicePic = rowLayout.frameTable.AddLeftIcon(); + devicePic.Y = Application.GetRealHeight(49); + devicePic.UnSelectedImagePath = "DoorLock/DoorLockUserPic.png"; + + #region 缁戝畾鏁版嵁澶勭悊 + int currentIndex = i; + var btnBindNameText = ""; + var btnFloorRoomNameText = ""; + if (currentIndex == currentKey.bindList.Count - 1) + { + rowLayout.LineColor = Shared.Common.ZigbeeColor.Current.XMWhite; + } + foreach (var sc in currentKey.bindList) + { + if (sc.BindType == 2) { - //鍒欓粯璁ゅ叏閮ㄥ姛鑳介兘缁欏畠 - typeModeList = new List<int>() { 1, 100, 200, 300, 0, 101, 102 }; - return typeModeList; + isExistScene = true; } - if (typeModeList != null) + } + if (isExistScene) + { + curSceneUI = HdlSceneLogic.Current.GetSceneUIBySceneId(bindDevice.BindScenesId); + devicePic.UnSelectedImagePath = "Scene/SceneIcon.png"; + if (curSceneUI == 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; + btnBindNameText = Language.StringByID(R.MyInternationalizationString.OffLineScene) + "_" + "ID" + "_" + bindDevice.BindScenesId.ToString(); } else { - typeModeList = currentKey.privateFuncSecondLevelList; + btnBindNameText = curSceneUI.Name; + string myName = HdlSceneLogic.Current.GetZoneById(curSceneUI.Id); + if (myName != null) + { + btnFloorRoomNameText = myName; + } + else + { + btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed); + } } - return typeModeList; - } - - /// <summary> - /// 鍒犻櫎褰撳墠鐩爣鏂规硶 - /// </summary> - /// <param name="bindDevice"></param> - /// <param name="btnDel"></param> - /// <returns></returns> - private int RemoveTargets(BindListResponseObj bindDevice, Button btnDel) - { - int result = -1; - var delDevice = new DelDeviceBindData(); - delDevice.DeviceAddr = currentKey.DeviceAddr; - delDevice.Epoint = currentKey.DeviceEpoint; - - if (bindDevice.BindType == 0 || bindDevice.BindType == 1) + } + else + { + //琚粦瀹氳澶囧浘鐗� + foreach (var dev in localDeviceList) { - var removeDevice = new RemoveBindListObj(); - removeDevice.BindCluster = bindDevice.BindCluster; - removeDevice.BindType = 0; - removeDevice.BindMacAddr = bindDevice.BindMacAddr; - removeDevice.BindEpoint = bindDevice.BindEpoint; - delDevice.RemoveBindList.Add(removeDevice); - //鏄寒搴﹀啀娆″彂鍒犻櫎6鐨勫懡浠� - if (currentClusterID == 8) + var tempDev = localDeviceList.Find(obj => obj.DeviceAddr == bindDevice.BindMacAddr && obj.DeviceEpoint == bindDevice.BindEpoint); + if (tempDev != null) + { + //鑾峰彇璁惧鎵�灞炴埧闂� + var tempDevRoom = HdlRoomLogic.Current.GetRoomByDevice(tempDev); + + if (tempDevRoom != null) { - var removeDevice2 = new RemoveBindListObj(); - removeDevice2.BindCluster = 6; - removeDevice2.BindType = 0; - removeDevice2.BindMacAddr = bindDevice.BindMacAddr; - removeDevice2.BindEpoint = bindDevice.BindEpoint; - delDevice.RemoveBindList.Add(removeDevice2); - } - } - else if (bindDevice.BindType == 2) - { - var removeDevice = new RemoveBindListObj(); - removeDevice.BindCluster = bindDevice.BindCluster; - removeDevice.BindType = 1; - removeDevice.BindScenesId = bindDevice.BindScenesId; - delDevice.RemoveBindList.Add(removeDevice); - } - - System.Threading.Tasks.Task.Run(() => - { - try - { - Application.RunOnMainThread(() => + var tempDevFloorId = tempDevRoom.FloorId; + //鑾峰彇鎴块棿鐨勫悕瀛� + var tempDevRoomName = tempDevRoom.Name; + //鑾峰彇妤煎眰鐨勫悕瀛� + var tempDevFloorName = HdlResidenceLogic.Current.GetFloorNameById(tempDevFloorId); + if (string.IsNullOrEmpty(tempDevFloorName)) + { + if (string.IsNullOrEmpty(tempDevRoomName)) { - CommonPage.Loading.Start(""); - }); - var delResult = new DelDeviceBindResponseAllData(); - delResult = HdlDeviceBindLogic.Current.DelDeviceBindAsync(delDevice); - if (delResult != null && delResult.delDeviceBindResponseData != null) - { - if (delResult.delDeviceBindResponseData?.RemoveBindList != null) - { - foreach (var re in delResult.delDeviceBindResponseData.RemoveBindList) - { - switch (re.Result) - { - case 0: - currentKey.bindList.Remove(bindDevice); - Application.RunOnMainThread(() => - { - RefreshList(); - //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛� - if (re.BindType == 2) - { - currentKey.panelMode = 65535; - } - currentKey.ReSave(); - }); - result = 0; - break; - case 1: - currentKey.bindList.Clear(); - try - { - Application.RunOnMainThread(() => - { - CommonPage.Loading.Start(""); - }); - 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) - { - if (getBindList.getAllBindResponseData != null) - { - 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 - { - currentKey.bindList.Add(b); - } - } - } - } - } - if (currentKey.panelMode == 1) - { - currentKey.bindList = bindSceneListTemp; - } - else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102) - { - currentKey.bindList = bindDeviceListTemp; - } - } - catch { } - finally - { - Application.RunOnMainThread(() => - { - RefreshList(); - CommonPage.Loading.Hide(); - }); - } - break; - case 2: - if (delResult.removeBindResultResponseData != null) - { - if (delResult.removeBindResultResponseData.Result == 0) - { - currentKey.bindList.Remove(bindDevice); - Application.RunOnMainThread(() => - { - RefreshList(); - }); - result = 0; - } - else - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); - }); - } - } - break; - default: - break; - } - } - } - else - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); - }); - } + btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed); } else { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5003" + ")", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance); - }); + btnFloorRoomNameText = tempDevRoomName; } - } - catch { } - finally - { - Application.RunOnMainThread(() => + } + else + { + if (string.IsNullOrEmpty(tempDevRoomName)) { - CommonPage.Loading.Hide(); - }); + btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed); + } + else + { + btnFloorRoomNameText = tempDevFloorName + "," + tempDevRoomName; + } + } } - }); - return result; + else + { + btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed); + } + + devicePic.UnSelectedImagePath = tempDev.IconPath; + devicePic.Text = ""; + + if (string.IsNullOrEmpty(tempDev.DeviceEpointName)) + { + btnBindNameText = tempDev.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit); + } + else + { + btnBindNameText = tempDev.DeviceEpointName; + } + } + else + { + btnBindNameText = bindDevice.BindMacAddr + "_" + bindDevice.BindEpoint; + devicePic.TextAlignment = TextAlignment.CenterLeft; + devicePic.TextColor = UserCenterColor.Current.Gray; + devicePic.Text = Language.StringByID(R.MyInternationalizationString.uOffLine); + } + } + } + + var btnBindName = rowLayout.frameTable.AddTopView(btnBindNameText, 800); + var btnFloorRoomName = rowLayout.frameTable.AddBottomView(btnFloorRoomNameText, 800); + rowLayout.frameTable.AddBottomLine(); + var btnDel = rowLayout.AddDeleteControl(); + btnDel.ButtonClickEvent += (sender, e) => + { + RemoveTargets(bindDevice, btnDel); + }; + #endregion + } + midVerticalRefreshLayout.AdjustTableHeight(Application.GetRealHeight(23)); + } + #endregion + } + + /// <summary> + /// 褰撳墠鎸夐敭妯″紡鏄剧ず + /// </summary> + public void BindModeDisplay() + { + var modeRowLayout = new RowLayoutControl(midVerticalRefreshLayout.rowSpace / 2); + modeRowLayout.BackgroundColor = ZigbeeColor.Current.XMWhite; + midVerticalRefreshLayout.AddChidren2(modeRowLayout); + modeRowLayout.frameTable.UseClickStatu = false; + modeRowLayout.frameTable.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.keyMode), 400); + var btnKeyModeTipText = ""; + #region 褰撳墠妯″紡鏂囨湰鏄剧ず + switch (currentKey.panelMode) + { + case 100: + btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.OnOffOn); + break; + case 101: + btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.OnOffoFF); + break; + case 102: + btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.OnOffOnOff); + break; + case 200: + btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode1); + break; + case 201: + btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode2); + break; + case 203: + btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode3); + break; + case 204: + btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode4); + break; + case 205: + btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.DimmerMode5); + break; + case 300: + btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdUp); + break; + case 301: + btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdDown); + break; + case 302: + btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdStop); + break; + case 303: + btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdUpStop); + break; + case 304: + btnKeyModeTipText = Language.StringByID(R.MyInternationalizationString.WcdDownStop); + break; + } + #endregion + modeRowLayout.frameTable.AddMostRightView(btnKeyModeTipText, 800); + modeRowLayout.frameTable.AddBottomLine(); + var btnDel = modeRowLayout.AddDeleteControl(); + //涓�閿竻闄ゆ寜閿簨浠� + btnDel.ButtonClickEvent += async (sender, e) => + { + string msg = Language.StringByID(R.MyInternationalizationString.ClearAllTargets).Replace("{0}", "\r\n"); + var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm)); + alert.Show(); + //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁� + alert.ConfirmClickEvent += () => + { + bool isDelSuccess = false; + System.Threading.Tasks.Task.Run(() => + { + try + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Start(""); + }); + var bindResult = HdlDeviceBindLogic.Current.ClearBindInfoAsync(currentKey); + if (bindResult != null && bindResult.clearBindInfoResponseData != null) + { + if (bindResult.clearBindInfoResponseData.Result != 0) + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDel); + CommonPage.Loading.Hide(); + }); + return; + } + else + { + var temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default); + if (temp != null && temp.setWritableValueResponData?.Status != 0) + { + var temp1 = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default); + if (temp1 != null && temp1.setWritableValueResponData?.Status != 0) + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); + + }); + } + else + { + isDelSuccess = true; + } + } + else + { + isDelSuccess = true; + } + } + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5006" + ")", Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); + }); + } + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + if (isDelSuccess) + { + currentKey.panelMode = 65535; + currentKey.bindList.Clear(); + RefreshList(); + //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛� + currentKey.ReSave(); + } + CommonPage.Loading.Hide(); + }); + } + }); + }; + }; + } + + /// <summary> + /// 渚ц竟瀵艰埅鏍� + /// </summary> + async void SideslipFramelayout() + { + #region UI + var dialog = new Dialog { }; + dialog.Show(); + + var flMain = new FrameLayout { BackgroundColor = 0x00000000 }; + dialog.AddChidren(flMain); + flMain.MouseUpEventHandler += (sender11, e11) => + { + dialog.Close(); + }; + + var sidelipFrameLayout = new FrameLayout() + { + Height = Application.GetMinReal(628), + Width = Application.GetMinReal(415), + Y = Application.GetRealHeight(115 + 45), + X = Application.GetRealWidth(605), + BackgroundImagePath = "DoorLock/SideslipPic.png", + }; + flMain.AddChidren(sidelipFrameLayout); + + var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout() + { + Height = Application.GetRealHeight(600), + Y = Application.GetRealHeight(28), + }; + sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout); + #endregion + + Button oldbuttonText = null; + string oldKeySelectModeText = currentKey.currentKeySelectModeText; + + if (typeModeList == null) + { + //鍐嶆鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被 + Application.RunOnMainThread(() => + { + CommonPage.Loading.Start(); + }); + typeModeList = await GetTypeMode(); + if (typeModeList == null) + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "0003" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + CommonPage.Loading.Hide(); + }); + dialog.Close(); + return; + } + else + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + }); + } + } + + int count = 0; + foreach (var value in typeModeList) + { + count++; + #region rowView + var rowView = new FrameLayout() + { + Height = Application.GetRealHeight(150), + }; + sidelipVerticalScrolViewLayout.AddChidren(rowView); + + var btnMethodText = new Button() + { + Width = Application.GetRealWidth(268), + Height = Application.GetRealHeight(58), + X = Application.GetRealWidth(115), + Y = Application.GetRealHeight(69), + TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + TextSize = 14, + IsBold = false, + TextAlignment = TextAlignment.CenterLeft, + }; + rowView.AddChidren(btnMethodText); + + var line2 = new Button() + { + Y = rowView.Height - 1, + X = Application.GetRealWidth(115), + Width = Application.GetRealWidth(300), + Height = 1, + BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, + }; + rowView.AddChidren(line2); + + if (string.IsNullOrEmpty(currentKey.currentKeySelectModeText) && value == 1) + { + btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnMethodText.IsBold = true; + oldbuttonText = btnMethodText; + } + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && value == 1) + { + btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnMethodText.IsBold = true; + oldbuttonText = btnMethodText; + } + else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && value == 100) + { + btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnMethodText.IsBold = true; + oldbuttonText = btnMethodText; + } + else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && value == 200) + { + btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnMethodText.IsBold = true; + oldbuttonText = btnMethodText; + } + else if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && value == 300) + { + btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnMethodText.IsBold = true; + oldbuttonText = btnMethodText; + } + #endregion + + #region 鏁版嵁澶勭悊 + switch (value) + { + case 1: + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddScene); + break; + case 100: + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddSwitch); + break; + case 200: + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddDimmer); + break; + case 300: + btnMethodText.Text = Language.StringByID(R.MyInternationalizationString.AddCurtain); + line2.Visible = false; + break; } - /// <summary> - /// 閲嶅啓绉婚櫎鏂规硶 - /// </summary> - public override void RemoveFromParent() + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene) && value == 1) { - localDeviceList.Clear(); - scList.Clear(); - base.RemoveFromParent(); + btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnMethodText.IsBold = true; + oldbuttonText = btnMethodText; } + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch) && value == 100) + { + btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnMethodText.IsBold = true; + oldbuttonText = btnMethodText; + } + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer) && value == 200) + { + btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnMethodText.IsBold = true; + oldbuttonText = btnMethodText; + } + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain) && value == 300) + { + btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnMethodText.IsBold = true; + oldbuttonText = btnMethodText; + } + #endregion + + //绫诲瀷浜嬩欢閫変腑澶勭悊 + EventHandler<MouseEventArgs> eHandler = (sender, e) => + { + if (!btnMethodText.IsSelected) + { + if (oldbuttonText != null) + { + oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3; + } + oldbuttonText = btnMethodText; + currentKey.currentKeySelectModeText = btnMethodText.Text; + oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + } + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene)) + { + 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(); + + Action<List<BindListResponseObj>> action = (obj) => + { + currentKey.bindList = obj; + RefreshList(); + }; + addScenePage.action += action; + dialog.Close(); + } + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch)) + { + var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddSwitch"); + Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + addDevicePage.Show(); + + Action<List<BindListResponseObj>> action = (obj) => + { + currentKey.bindList = obj; + RefreshList(); + }; + addDevicePage.actionAddDevicePage += action; + dialog.Close(); + } + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer)) + { + var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddDimmer"); + Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + addDevicePage.Show(); + + Action<List<BindListResponseObj>> action = (obj) => + { + currentKey.bindList = obj; + RefreshList(); + }; + addDevicePage.actionAddDevicePage += action; + dialog.Close(); + } + if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain)) + { + var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddCurtain"); + Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); + Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; + addDevicePage.Show(); + + Action<List<BindListResponseObj>> action = (obj) => + { + currentKey.bindList = obj; + RefreshList(); + }; + addDevicePage.actionAddDevicePage += action; + dialog.Close(); + } + }; + btnMethodText.MouseUpEventHandler += eHandler; + rowView.MouseUpEventHandler += eHandler; + } } + + /// <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(); + } + 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> + private int RemoveTargets(BindListResponseObj bindDevice, Button btnDel) + { + int result = -1; + var delDevice = new DelDeviceBindData(); + delDevice.DeviceAddr = currentKey.DeviceAddr; + delDevice.Epoint = currentKey.DeviceEpoint; + + if (bindDevice.BindType == 0 || bindDevice.BindType == 1) + { + var removeDevice = new RemoveBindListObj(); + removeDevice.BindCluster = bindDevice.BindCluster; + removeDevice.BindType = 0; + removeDevice.BindMacAddr = bindDevice.BindMacAddr; + removeDevice.BindEpoint = bindDevice.BindEpoint; + delDevice.RemoveBindList.Add(removeDevice); + //鏄寒搴﹀啀娆″彂鍒犻櫎6鐨勫懡浠� + if (currentClusterID == 8) + { + var removeDevice2 = new RemoveBindListObj(); + removeDevice2.BindCluster = 6; + removeDevice2.BindType = 0; + removeDevice2.BindMacAddr = bindDevice.BindMacAddr; + removeDevice2.BindEpoint = bindDevice.BindEpoint; + delDevice.RemoveBindList.Add(removeDevice2); + } + } + else if (bindDevice.BindType == 2) + { + var removeDevice = new RemoveBindListObj(); + removeDevice.BindCluster = bindDevice.BindCluster; + removeDevice.BindType = 1; + removeDevice.BindScenesId = bindDevice.BindScenesId; + delDevice.RemoveBindList.Add(removeDevice); + } + + System.Threading.Tasks.Task.Run(() => + { + try + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Start(""); + }); + var delResult = new DelDeviceBindResponseAllData(); + delResult = HdlDeviceBindLogic.Current.DelDeviceBindAsync(delDevice); + if (delResult != null && delResult.delDeviceBindResponseData != null) + { + if (delResult.delDeviceBindResponseData?.RemoveBindList != null) + { + foreach (var re in delResult.delDeviceBindResponseData.RemoveBindList) + { + switch (re.Result) + { + case 0: + currentKey.bindList.Remove(bindDevice); + Application.RunOnMainThread(() => + { + RefreshList(); + //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛� + if (re.BindType == 2) + { + currentKey.panelMode = 65535; + } + currentKey.ReSave(); + }); + result = 0; + break; + case 1: + currentKey.bindList.Clear(); + try + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Start(""); + }); + 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) + { + if (getBindList.getAllBindResponseData != null) + { + 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 + { + currentKey.bindList.Add(b); + } + } + } + } + } + if (currentKey.panelMode == 1) + { + currentKey.bindList = bindSceneListTemp; + } + else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102) + { + currentKey.bindList = bindDeviceListTemp; + } + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + RefreshList(); + CommonPage.Loading.Hide(); + }); + } + break; + case 2: + if (delResult.removeBindResultResponseData != null) + { + if (delResult.removeBindResultResponseData.Result == 0) + { + currentKey.bindList.Remove(bindDevice); + Application.RunOnMainThread(() => + { + RefreshList(); + }); + result = 0; + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); + }); + } + } + break; + default: + break; + } + } + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); + }); + } + } + else + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5003" + ")", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance); + }); + } + } + catch { } + finally + { + Application.RunOnMainThread(() => + { + CommonPage.Loading.Hide(); + }); + } + }); + return result; + } + + /// <summary> + /// 閲嶅啓绉婚櫎鏂规硶 + /// </summary> + public override void RemoveFromParent() + { + localDeviceList.Clear(); + scList.Clear(); + base.RemoveFromParent(); + } + } } -- Gitblit v1.8.0