From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 09:07:13 +0800 Subject: [PATCH] 新云端Ver1.3 --- ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs | 649 ++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 355 insertions(+), 294 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs index 9843be4..950f06d 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs @@ -1,53 +1,68 @@ 锘縰sing System; using System.Collections.Generic; -using Microsoft.AppCenter.Crashes; using Shared.Common; -using Shared.Phone.Device.Light; -using Shared.Phone.UserCenter.Device; using ZigBee.Device; using static ZigBee.Device.BindObj; using static ZigBee.Device.Panel; namespace Shared.Phone.UserCenter.DeviceBind { - public class AddScenePage : BindCommonLayout, ZigBee.Common.IStatus + /// <summary> + /// 鏅�氶潰鏉跨殑缁戝畾鍦烘櫙鐣岄潰銆愬彧鍙粦瀹�1涓満鏅�� + /// </summary> + public class AddScenePage : BindCommonLayout { - /// <summary> - /// 鎸夐敭妯″紡鎺ユ敹 - /// </summary> - /// <param name="common">Common.</param> - public void Changed(CommonDevice common) - { - Shared.Application.RunOnMainThread(() => - { - }); - } - /// 鏋勯�犲嚱鏁� /// </summary> /// <param name="doorLock"></param> - public AddScenePage(ZigBee.Device.Panel key, List<ScenesListInfo> gwScenesList) + public AddScenePage(ZigBee.Device.Panel key) { this.currentKey = key; - gwCurScenesList = gwScenesList; } - #region 鈼� 鍙橀噺鐢虫槑__________________________ + #region 鍙橀噺鐢虫槑 + /// <summary> + /// 褰撳墠鎸夐敭 + /// </summary> ZigBee.Device.Panel currentKey; - //鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew + /// <summary> + /// 鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew + /// </summary> VerticalScrolViewLayout midVerticalScrolViewLayout; + /// <summary> + /// 鏄剧ず鎴块棿鐨剉iew + /// </summary> HorizontalScrolViewLayout btnHorizontalScrolViewLayout; /// <summary> /// 鎸夐敭閰嶇疆鐨勭洰鏍囧垪琛� /// </summary> - List<CommonDevice> targetList = new List<CommonDevice>();//涓存椂鐩爣鍒楄〃 - List<Room> roomList = new List<Room>();//鏈湴鎴块棿鍒楄〃 + List<CommonDevice> targetListDevice = new List<CommonDevice>(); + /// <summary> + /// 鎸夐敭閰嶇疆鐨勫満鏅洰鏍囧垪琛� + /// </summary> + List<SceneUI> targetListScene = new List<SceneUI>(); + /// <summary> + /// 鏈湴鎴块棿鍒楄〃 + /// </summary> + List<Room> roomList = new List<Room>(); + /// <summary> + /// 褰撶粦瀹氳〃鍙樺寲鍚庣殑鍥炶皟 + /// </summary> public Action<List<BindListResponseObj>> action; - Button btnFinifh; + /// <summary> + /// 淇濆瓨瀹屾垚鎸夐挳 + /// </summary> + Button btnFinish; + /// <summary> + /// 妤煎眰鏂囨湰 + /// </summary> Button btnFloorText; - Dictionary<string, string> dicFloor;//妤煎眰鍒楄〃 + /// <summary> + /// 妤煎眰鍒楄〃 + /// </summary> + Dictionary<string, string> dicFloor; List<SceneUI> currentKeyAllRoomSceneList = new List<SceneUI>(); - public List<ScenesListInfo> gwCurScenesList = new List<ScenesListInfo>();//缃戝叧涓殑鍦烘櫙鍒楄〃 + #endregion /// <summary> @@ -61,20 +76,20 @@ { RemoveFromParent(); }; - this.btnTitle.Width = Application.GetRealWidth(1080 - 161 - 200 - 58); + this.btnTitle.Width = Application.GetRealWidth(1080 - 161 - 300); this.btnBack.MouseUpEventHandler += eHandlerBack; this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; this.MidFrameLayout(this); var btnAddFrameLayout = new FrameLayout { - X = Application.GetRealWidth(830), + X = Application.GetRealWidth(619), }; this.titleFrameLayout.AddChidren(btnAddFrameLayout); btnFloorText = new Button { - Width = Application.GetRealWidth(110), + Width = Application.GetRealWidth(300 - 69 - 58), X = Application.GetRealWidth(15), Text = Language.StringByID(R.MyInternationalizationString.FirstFloor), TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, @@ -84,30 +99,43 @@ }; btnAddFrameLayout.AddChidren(btnFloorText); + var btnBindDownFrameLayout = new FrameLayout + { + Width = Application.GetMinReal(69 + 58), + X = Application.GetRealWidth(300 - 69 - 58), + }; + btnAddFrameLayout.AddChidren(btnBindDownFrameLayout); + var btnBindDown = new Button { - Height = Application.GetRealHeight(69), - Width = Application.GetRealWidth(69), - X = Application.GetRealWidth(200 - 77), + Height = Application.GetMinReal(69), + Width = Application.GetMinReal(69), UnSelectedImagePath = "BindPic/BindDown.png", Gravity = Gravity.CenterVertical, }; - btnAddFrameLayout.AddChidren(btnBindDown); - btnBindDown.MouseDownEventHandler += (sender, e) => + btnBindDownFrameLayout.AddChidren(btnBindDown); + + EventHandler<MouseEventArgs> eHandlerBindDown = (sender, e) => { SideslipFramelayout(); }; + btnBindDown.MouseDownEventHandler += eHandlerBindDown; + btnBindDownFrameLayout.MouseDownEventHandler += eHandlerBindDown; + if (Common.Config.Instance.Home.FloorDics.Count == 0) { btnAddFrameLayout.Width = 0; } else { - btnAddFrameLayout.Width = Application.GetRealWidth(200); + btnAddFrameLayout.Width = Application.GetRealWidth(300); } MidFrameLayoutContent(btnFloorText); } + /// <summary> + /// 涓儴甯冨眬 + /// </summary> async void MidFrameLayoutContent(Button btnFloorText) { #region UI @@ -138,7 +166,7 @@ }; this.midFrameLayout.AddChidren(bottomFrameLayout); - btnFinifh = new Button() + btnFinish = new Button() { Width = Application.GetRealWidth(907), Gravity = Gravity.CenterHorizontal, @@ -149,19 +177,20 @@ IsBold = true, TextSize = 16, }; - bottomFrameLayout.AddChidren(btnFinifh); + bottomFrameLayout.AddChidren(btnFinish); #endregion - #region 鏁版嵁澶勭悊 + #region 鏁版嵁澶勭悊 //鑾峰彇妤煎眰 - dicFloor = Common.Room.CurrentRoom.GetFloorSortList(); + dicFloor = HdlRoomLogic.Current.GetFloorSortList(); currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId(); btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName(); + var listAllRoom = HdlRoomLogic.Current.GetAllListRooms(); if (Common.Config.Instance.Home.FloorDics.Count == 0) { // 鑾峰彇娌℃湁妤煎眰鎴块棿 - foreach (var room in Shared.Common.Room.Lists) + foreach (var room in listAllRoom) { if (string.IsNullOrEmpty(room.FloorId)) { @@ -172,7 +201,7 @@ else { // 鑾峰彇妤煎眰瀵瑰簲瀵规埧闂� - foreach (var room in Shared.Common.Room.Lists) + foreach (var room in listAllRoom) { if (room.FloorId == currentKey.currentSelectFloorId) { @@ -196,7 +225,7 @@ var sc = currentKey.bindList.Find(obj => (obj != null) && (obj.BindScenesId == scTemp.Id)); if (sc != null) { - targetList.Add(scTemp); + targetListScene.Add(scTemp); } } } @@ -205,221 +234,225 @@ Shared.Common.Room curRoom = roomList[0]; int index = 0; RefreshRoomList(curRoom, ref index); - //RefreshSceneList(roomList[index]); - if (curRoom.SceneUIList.Count == 0) + if (curRoom.ListSceneId.Count == 0) { - btnFinifh.Enable = false; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + btnFinish.Enable = false; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; } else { - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; } - if (targetList.Count == 0) + if (targetListDevice.Count == 0 && targetListScene.Count == 0) { - btnFinifh.Enable = false; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + btnFinish.Enable = false; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; } else { - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; } - btnFinifh.MouseUpEventHandler += async (sender, e) => + btnFinish.MouseUpEventHandler += (sender, e) => { bool isFinish = false; - try + System.Threading.Tasks.Task.Run(() => { - if (targetList.Count == 0) + try { - Application.RunOnMainThread(() => - { - var myTip = new Tip(); - myTip.Direction = AMPopTipDirection.None; - myTip.CloseTime = 2; - myTip.Text = Language.StringByID(R.MyInternationalizationString.BindDeviceTargetIsEmpty); - myTip.Show(Common.CommonPage.Instance); - }); - return; - } - - Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); - if (currentKey.bindList.Count != 0) - { - var bindResult = await currentKey.ClearBindInfoAsync(); - if (bindResult != null && bindResult.clearBindInfoResponseData != null) - { - if (bindResult.clearBindInfoResponseData.Result != 0) - { - Application.RunOnMainThread(() => - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); - CommonPage.Loading.Hide(); - }); - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; - return; - } - else - { - currentKey.bindList.Clear(); - } - } - else + if (targetListDevice.Count == 0 && targetListScene.Count == 0) { Application.RunOnMainThread(() => { + var myTip = new Tip(); + myTip.Direction = AMPopTipDirection.None; + myTip.CloseTime = 2; + myTip.Text = Language.StringByID(R.MyInternationalizationString.BindDeviceTargetIsEmpty); + myTip.Show(Common.CommonPage.Instance); + }); + return; + } + + Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); + if (currentKey.bindList.Count != 0) + { + var bindResult = HdlDeviceBindLogic.Current.ClearBindInfoAsync(currentKey); + if (bindResult != null && bindResult.clearBindInfoResponseData != null) + { + if (bindResult.clearBindInfoResponseData.Result != 0) + { + Application.RunOnMainThread(() => + { + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); + CommonPage.Loading.Hide(); + }); + return; + } + else + { + currentKey.bindList.Clear(); + } + } + else + { + Application.RunOnMainThread(() => + { + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + CommonPage.Loading.Hide(); + var myTip = new Tip(); + myTip.Direction = AMPopTipDirection.None; + myTip.CloseTime = 2; + myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5006" + ")"; + myTip.Show(Common.CommonPage.Instance); + }); + return; + } + } + + var temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Scene_Trigger); + if (temp == null || temp.setWritableValueResponData == null) + { + Application.RunOnMainThread(() => + { + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; CommonPage.Loading.Hide(); var myTip = new Tip(); myTip.Direction = AMPopTipDirection.None; myTip.CloseTime = 2; - myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); + myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "120_ 6533" + ")"; myTip.Show(Common.CommonPage.Instance); }); - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; return; } - } - - var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Scene_Trigger); - if (temp == null || temp.setWritableValueResponData == null) - { - Application.RunOnMainThread(() => - { - CommonPage.Loading.Hide(); - var myTip = new Tip(); - myTip.Direction = AMPopTipDirection.None; - myTip.CloseTime = 2; - myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); - myTip.Show(Common.CommonPage.Instance); - }); - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; - return; - } - if (temp.setWritableValueResponData.Status != 0) - { - Application.RunOnMainThread(() => - { - var myTip = new Tip(); - myTip.Direction = AMPopTipDirection.None; - myTip.CloseTime = 2; - myTip.Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode); - myTip.Show(Common.CommonPage.Instance); - CommonPage.Loading.Hide(); - }); - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; - return; - } - else - { - currentKey.panelMode = 1; - var addBindeDev = new AddBindData(); - addBindeDev.DeviceAddr = currentKey.DeviceAddr; - addBindeDev.Epoint = currentKey.DeviceEpoint; - foreach (var de in targetList) - { - if (de.DeviceAddr != null) - { - var addBindInfo = new AddBindListObj(); - addBindInfo.BindType = 0; - addBindInfo.BindCluster = 6; - addBindInfo.BindMacAddr = de.DeviceAddr; - addBindInfo.BindEpoint = de.DeviceEpoint; - addBindeDev.BindList.Add(addBindInfo); - } - else - { - var addBindInfo = new AddBindListObj(); - addBindInfo.BindType = 1; - addBindInfo.BindCluster = 6; - var sc1 = (SceneUI)de; - addBindInfo.BindScenesId = sc1.Id; - addBindeDev.BindList.Add(addBindInfo); - } - } - - var dev = new AddedDeviceBindResponseAllData(); - dev = await currentKey.AddDeviceBindAsync(addBindeDev); - if (dev.addedDeviceBindResponseData == null) + if (temp.setWritableValueResponData.Status != 0) { Application.RunOnMainThread(() => { + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + var myTip = new Tip(); + myTip.Direction = AMPopTipDirection.None; + myTip.CloseTime = 2; + myTip.Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode); + myTip.Show(Common.CommonPage.Instance); CommonPage.Loading.Hide(); - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); }); - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; return; } else { - if (dev.addedDeviceBindResponseData.Result == 0) + currentKey.panelMode = 1; + var addBindeDev = new AddBindData(); + addBindeDev.DeviceAddr = currentKey.DeviceAddr; + addBindeDev.Epoint = currentKey.DeviceEpoint; + foreach (var de in targetListDevice) { - currentKey.bindList = dev.addedDeviceBindResponseData.BindList; - targetList.Clear(); - isFinish = true; - if (isFinish) + if (de.DeviceAddr != null) { - if (action != null) + var addBindInfo = new AddBindListObj(); + addBindInfo.BindType = 0; + addBindInfo.BindCluster = 6; + addBindInfo.BindMacAddr = de.DeviceAddr; + addBindInfo.BindEpoint = de.DeviceEpoint; + addBindeDev.BindList.Add(addBindInfo); + } + } + foreach (var de in targetListScene) + { + var addBindInfo = new AddBindListObj(); + addBindInfo.BindType = 1; + addBindInfo.BindCluster = 6; + addBindInfo.BindScenesId = de.Id; + addBindeDev.BindList.Add(addBindInfo); + } + + var dev = new AddedDeviceBindResponseAllData(); + dev = HdlDeviceBindLogic.Current.AddDeviceBindAsync(addBindeDev); + if (dev != null && dev.addedDeviceBindResponseData != null) + { + if (dev.addedDeviceBindResponseData.Result == 0) + { + currentKey.bindList = dev.addedDeviceBindResponseData.BindList; + targetListDevice.Clear(); + targetListScene.Clear(); + isFinish = true; + Application.RunOnMainThread(() => { - action(currentKey.bindList); - } - this.RemoveFromParent(); + if (isFinish) + { + if (action != null) + { + action(currentKey.bindList); + } + this.RemoveFromParent(); + } + else + { + this.RemoveFromParent(); + } + CommonPage.Loading.Hide(); + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + }); + } + else if (dev.addedDeviceBindResponseData.Result == 1) + { + Application.RunOnMainThread(() => + { + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + CommonPage.Loading.Hide(); + new Tip() + { + MaxWidth = 150, + Text = Language.StringByID(R.MyInternationalizationString.BindFailed), + Direction = AMPopTipDirection.Up, + CloseTime = 1 + }.Show(btnFinish); + }); + return; } else { - this.RemoveFromParent(); - } - Application.RunOnMainThread(() => - { - CommonPage.Loading.Hide(); - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; - }); - } - else if (dev.addedDeviceBindResponseData.Result == 1) - { - Application.RunOnMainThread(() => - { - CommonPage.Loading.Hide(); - new Tip() + Application.RunOnMainThread(() => { - MaxWidth = 150, - Text = Language.StringByID(R.MyInternationalizationString.BindFailed), - Direction = AMPopTipDirection.Up, - CloseTime = 1 - }.Show(btnFinifh); - }); - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; - return; + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + CommonPage.Loading.Hide(); + new Tip() + { + MaxWidth = 150, + Text = Language.StringByID(R.MyInternationalizationString.BindUnknownError), + Direction = AMPopTipDirection.Up, + CloseTime = 1 + }.Show(btnFinish); + }); + + return; + } } else { Application.RunOnMainThread(() => { + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; CommonPage.Loading.Hide(); - new Tip() - { - MaxWidth = 150, - Text = Language.StringByID(R.MyInternationalizationString.BindUnknownError), - Direction = AMPopTipDirection.Up, - CloseTime = 1 - }.Show(btnFinifh); + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5001" + ")", Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); }); - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + return; } } } - } - catch { } + catch { } + }); }; #endregion } @@ -451,7 +484,7 @@ } //濡傛灉鎴块棿涓病鏈夊満鏅紝鍒欎笉鏄剧ず - if (room.SceneUIList.Count == 0) + if (room.ListSceneId.Count == 0) { continue; } @@ -459,15 +492,15 @@ { roomTempList.Add(room); } - if (roomTempList.Count != 0) - { - curRoom = roomTempList[0]; - } - + } + for (int i = 0; i < roomTempList.Count; i++) + { + var room = roomTempList[i]; + curRoom = roomTempList[0]; var btnRoomFrameLayout = new FrameLayout { - Height = Application.GetRealHeight(159), - Width = Application.GetRealWidth(255), + Height = Application.GetMinReal(159), + Width = Application.GetMinReal(255), Y = Application.GetRealHeight(23), X = Application.GetRealWidth(5), BackgroundImagePath = "Item/RoomIconBackground.png", @@ -478,7 +511,7 @@ var btnRoom = new Button { Height = Application.GetRealHeight(58), - Width = Application.GetRealWidth(127), + Width = Application.GetRealWidth(255), Y = Application.GetRealHeight(58), X = Application.GetRealWidth(14), Text = room.Name, @@ -496,6 +529,20 @@ curentOldRoom = btnRoom; curentOldRoomFrameLayout = btnRoomFrameLayout; } + + if (index == roomTempList.Count - 1 && index > 2) + { + var btnRoomFrameLayoutEmpty = new FrameLayout + { + Height = Application.GetMinReal(159), + Width = Application.GetMinReal(50), + Y = Application.GetRealHeight(23), + X = Application.GetRealWidth(5), + BorderWidth = 1, + }; + btnHorizontalScrolViewLayout.AddChidren(btnRoomFrameLayoutEmpty); + } + EventHandler<MouseEventArgs> eHandlerRoom = (sender, e) => { if (!btnRoom.IsSelected) @@ -520,26 +567,25 @@ curentOldRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png"; } curRoom = room; - currentKey.RoomId = room.Id; - if (curRoom.SceneUIList.Count == 0) + if (curRoom.ListSceneId.Count == 0) { - btnFinifh.Enable = false; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + btnFinish.Enable = false; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; } else { - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; } - if (targetList.Count == 0) + if (targetListDevice.Count == 0 && targetListScene.Count == 0) { - btnFinifh.Enable = false; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + btnFinish.Enable = false; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; } else { - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; } RefreshSceneList(curRoom); @@ -548,15 +594,18 @@ btnRoomFrameLayout.MouseUpEventHandler += eHandlerRoom; index++; } - BindInfo.FinishDisplay(roomTempList, btnFinifh); + BindInfo.FinishDisplay(roomTempList, btnFinish); RefreshSceneList(curRoom); } - //鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀� + /// <summary> + /// 鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀� + /// </summary> + /// <param name="curRoom"></param> void RefreshSceneList(Shared.Common.Room curRoom) { midVerticalScrolViewLayout.RemoveAll(); - if (curRoom.SceneUIList.Count == 0) + if (curRoom.ListSceneId.Count == 0) { return; } @@ -565,8 +614,8 @@ var currentSceneUIList = GetMatchSceneUIList(curRoom); if (currentSceneUIList.Count == 0) { - btnFinifh.Enable = false; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + btnFinish.Enable = false; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; return; } foreach (var scene in currentSceneUIList) @@ -583,9 +632,9 @@ { X = Application.GetMinRealAverage(58), Y = Application.GetMinRealAverage(46), - Width = Application.GetMinRealAverage(81), - Height = Application.GetMinRealAverage(81), - UnSelectedImagePath = "Scene/SceneIcon.png",// scene.IconPath, + Width = Application.GetMinReal(81), + Height = Application.GetMinReal(81), + UnSelectedImagePath = "Scene/SceneIcon.png",// scene.IconPath, }; rowLayout.AddChidren(devicePic); @@ -601,8 +650,8 @@ var btnChoose = new Button() { - Width = Application.GetRealWidth(60), - Height = Application.GetRealHeight(60), + Width = Application.GetMinReal(60), + Height = Application.GetMinReal(60), X = Application.GetRealWidth(861 + 81), Y = Application.GetRealHeight(35), SelectedImagePath = "DoorLock/SelectedIcon.png", @@ -620,7 +669,7 @@ }; rowLayout.AddChidren(line2); - if (curIndex == curRoom.SceneUIList.Count - 1) + if (curIndex == curRoom.ListSceneId.Count - 1) { line2.Visible = false; } @@ -635,7 +684,7 @@ { btnBindName.Text = scene.Name; } - if (targetList.Count == 0) + if (targetListDevice.Count == 0 && targetListScene.Count == 0) { foreach (var bindedSc in currentKey.bindList) { @@ -644,16 +693,15 @@ btnChoose.IsSelected = true; btnChoose.Visible = true; oldScene = btnChoose; - targetList.Add(scene); + targetListScene.Add(scene); } } } else { - foreach (var bindedSc in targetList) + foreach (var bindedSc in targetListScene) { - var sc1 = (SceneUI)bindedSc; - if (scene.Id == sc1.Id) + if (scene.Id == bindedSc.Id) { btnChoose.IsSelected = true; btnChoose.Visible = true; @@ -662,16 +710,10 @@ } } - bool IsTip = false; EventHandler<MouseEventArgs> hander = (sender, e) => { if (currentKey.bindList.Count != 0) { - if (IsTip) - { - return; - } - IsTip = true; if (btnChoose.IsSelected) { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindExist), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnBindName); @@ -689,19 +731,19 @@ oldScene = btnChoose; oldScene.IsSelected = true; oldScene.Visible = true; - currentKey.curSelectSceneID = scene.Id.ToString(); - targetList.Clear(); - targetList.Add(scene); + targetListDevice.Clear(); + targetListScene.Clear(); + targetListScene.Add(scene); } - if (targetList.Count == 0) + if (targetListDevice.Count == 0 && targetListScene.Count == 0) { - btnFinifh.Enable = false; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + btnFinish.Enable = false; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; } else { - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; } }; rowLayout.MouseUpEventHandler += hander; @@ -710,19 +752,21 @@ btnChoose.MouseUpEventHandler += hander; curIndex++; } - if (targetList.Count == 0) + if (targetListDevice.Count == 0 && targetListScene.Count == 0) { - btnFinifh.Enable = false; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + btnFinish.Enable = false; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; } else { - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; } } - // 渚ц竟瀵艰埅鏍� + /// <summary> + /// 妤煎眰閫夋嫨鐨勪晶杈瑰鑸爮 + /// </summary> void SideslipFramelayout() { var dialog = new Dialog @@ -739,8 +783,7 @@ var sidelipFrameLayout = new FrameLayout() { - Height = Application.GetRealHeight(783), - Width = Application.GetRealWidth(449), + Width = Application.GetMinReal(449), Y = Application.GetRealHeight(161), X = Application.GetRealWidth(596), BackgroundImagePath = "DoorLock/SideslipPic.png", @@ -764,17 +807,19 @@ var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout() { Height = Application.GetRealHeight(600), - Y = btnSelectFloor.Bottom, + Y = btnSelectFloor.Bottom + Application.GetRealHeight(45), }; sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout); Button oldbutton = null; Button oldbuttonText = null; + int count = 0; foreach (var floorId in dicFloor.Keys) { + count++; var rowFrameLayout = new RowLayout() { - Height = Application.GetRealHeight(150), + Height = Application.GetRealHeight(152), LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine, X = Application.GetRealWidth(81), }; @@ -782,9 +827,9 @@ var btnAllMethod = new Button() { - Width = Application.GetRealWidth(81), - Height = Application.GetRealHeight(81), - Y = Application.GetRealHeight(55), + Width = Application.GetMinReal(81), + Height = Application.GetMinReal(81), + Gravity = Gravity.CenterVertical, UnSelectedImagePath = "Floor/Floor.png", SelectedImagePath = "Floor/FloorSelected.png", }; @@ -795,7 +840,7 @@ Width = Application.GetRealWidth(311), Height = Application.GetRealHeight(58), X = Application.GetRealWidth(92), - Y = Application.GetRealHeight(69), + Gravity = Gravity.CenterVertical, TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, TextSize = 14, TextAlignment = TextAlignment.CenterLeft, @@ -838,7 +883,8 @@ } //鑾峰彇妤煎眰瀵瑰簲鐨勬埧闂� - foreach (var room in Shared.Common.Room.Lists) + var listAllRoom = HdlRoomLogic.Current.GetAllListRooms(); + foreach (var room in listAllRoom) { if (room.FloorId == currentKey.currentSelectFloorId) { @@ -859,15 +905,15 @@ int index = 0; RefreshRoomList(curRoom, ref index); RefreshSceneList(roomList[0]); - if (targetList.Count == 0) + if (targetListDevice.Count == 0 && targetListScene.Count == 0) { - btnFinifh.Enable = false; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + btnFinish.Enable = false; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; } else { - btnFinifh.Enable = true; - btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + btnFinish.Enable = true; + btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; } dialog.Close(); }; @@ -875,14 +921,31 @@ rowFrameLayout.MouseUpEventHandler += hander; btnMethodText.MouseUpEventHandler += hander; } + + if (count == 0) + { + sidelipFrameLayout.Height = 0; + } + else if (count <= 4 && count > 0) + { + sidelipFrameLayout.Height = Application.GetRealHeight(180) + count * Application.GetRealHeight(150); + } + else + { + sidelipFrameLayout.Height = Application.GetMinReal(780); + } } - //褰撳墠鎸夐敭鎵�鏈夋樉绀烘埧闂寸殑鎵�鏈夊満鏅鐞� + /// <summary> + /// 褰撳墠鎸夐敭鎵�鏈夋樉绀烘埧闂寸殑鎵�鏈夊満鏅鐞� + /// </summary> + /// <returns></returns> List<SceneUI> GetALlDispalyRoomSceneList() { currentKeyAllRoomSceneList.Clear(); - // 鑾峰彇鎵�鏈夋埧闂� - foreach (var room in Shared.Common.Room.Lists) + // 鑾峰彇鎵�鏈夋埧闂� + var listAllRoom = HdlRoomLogic.Current.GetAllListRooms(); + foreach (var room in listAllRoom) { //濡傛灉鎴块棿涓哄枩鐖憋紝鍒欎笉鏄剧ず if (room.IsLove == true) @@ -890,43 +953,41 @@ continue; } //濡傛灉鎴块棿涓病鏈夊満鏅紝鍒欎笉鏄剧ず - if (room.SceneUIList.Count == 0) + if (room.ListSceneId.Count == 0) { continue; } - foreach (var scene in room.SceneUIList) + foreach (var sceneId in room.ListSceneId) { + var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId); + if (scene == null) + { + continue; + } currentKeyAllRoomSceneList.Add(scene); } } return currentKeyAllRoomSceneList; } - //鑾峰彇缃戝叧涓瓨鍦ㄧ殑鏈湴鍦烘櫙鍒楄〃 + /// <summary> + /// 鑾峰彇缃戝叧涓瓨鍦ㄧ殑鏈湴鍦烘櫙鍒楄〃 + /// </summary> + /// <param name="curRoom"></param> + /// <returns></returns> List<SceneUI> GetMatchSceneUIList(Shared.Common.Room curRoom) { var tempSceneUIList = new List<SceneUI>(); - foreach (var scene in curRoom.SceneUIList) + foreach (var sceneId in curRoom.ListSceneId) { - var gwSc = gwCurScenesList.Find(obj => (obj.ScenesId == scene.Id)); - if (gwSc != null) + var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId); + if (scene == null) { - tempSceneUIList.Add(scene); + continue; } + tempSceneUIList.Add(scene); } return tempSceneUIList; - } - - public void DeviceInfoChange(CommonDevice common, string typeTag) - { - } - - public void ChangedILogicStatus(ZigBee.Device.Logic logic) - { - } - - public void ChangedISceneStatus(Scene scene) - { } } } -- Gitblit v1.8.0