| | |
| | | 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 |
| | | |
| | | //初始化按键数据 |
| | |
| | | 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(); |
| | |
| | | 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) |
| | |
| | | } |
| | | else |
| | | { |
| | | currentKey.bindList.Add(b); |
| | | if (currentClusterID == 8) |
| | | { |
| | | if (b.BindCluster == 8) |
| | | { |
| | | currentKey.bindList.Add(b); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | currentKey.bindList.Add(b); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | 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); |
| | | } |
| | |
| | | } |
| | | } |
| | | #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(); |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | |
| | | /// 中部布局 |
| | | /// </summary> |
| | | void middleFrameLayout() |
| | | { |
| | | { |
| | | midVerticalRefreshLayout = new VerticalRefreshLayout() |
| | | { |
| | | }; |
| | |
| | | btnPicTip.Height = Application.GetRealHeight(49); |
| | | btnPicTip.Visible = true; |
| | | entryStatusPic.Visible = true; |
| | | blankFrameLayout.Height = midVerticalRefreshLayout.Height; |
| | | blankFrameLayout.Height = midVerticalRefreshLayout.Height; |
| | | } |
| | | else |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | topFrameLayout.Height = Application.GetRealHeight(150); |
| | | topFrameLayout.Height = Application.GetRealHeight(150); |
| | | BindModeDisplay(); |
| | | } |
| | | int curIndex = 0; |
| | |
| | | { |
| | | //获取设备所属房间 |
| | | 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) |
| | |
| | | /// <summary> |
| | | /// 侧边导航栏 |
| | | /// </summary> |
| | | void SideslipFramelayout() |
| | | async void SideslipFramelayout() |
| | | { |
| | | #region UI |
| | | var dialog = new Dialog { }; |
| | |
| | | |
| | | 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() |
| | |
| | | }; |
| | | 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; |
| | |
| | | } |
| | | } |
| | | |
| | | //获取按键支持的大类 |
| | | 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; |
| | |
| | | { |
| | | 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) |
| | |
| | | currentKey.bindList.Remove(bindDevice); |
| | | RefreshList(); |
| | | //如果是场景,用户删除清空当前到房间列表 |
| | | if(re.BindType == 2) |
| | | if (re.BindType == 2) |
| | | { |
| | | currentKey.panelMode = 65535; |
| | | } |