From c7698e163e43cea9e7f8ee45f8e3f91c9265cca4 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 04 十一月 2019 19:11:41 +0800 Subject: [PATCH] 合并了全部的代码 --- ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs | 400 ++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 266 insertions(+), 134 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs index 4e81bfb..6c5273b 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs @@ -1,5 +1,6 @@ 锘縰sing System; using System.Collections.Generic; +using Java.Util; using Microsoft.AppCenter.Crashes; using Shared.Common; using Shared.Phone.Device.Light; @@ -7,6 +8,7 @@ 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 @@ -42,6 +44,10 @@ List<CommonDevice> targetList = new List<CommonDevice>(); List<Room> roomList = new List<Room>(); public Action<List<BindListResponseObj>> action; + Button btnFinifh; + Button btnFloorText; + Dictionary<string, string> dicFloor; + #endregion public void Show() @@ -60,12 +66,11 @@ var btnAddFrameLayout = new FrameLayout { X = Application.GetRealWidth(830), - Width = Application.GetRealWidth(0),//200 - BackgroundColor = 0xff00ff00, + Width = Application.GetRealWidth(200), }; this.titleFrameLayout.AddChidren(btnAddFrameLayout); - var btnFloorText = new Button + btnFloorText = new Button { Width = Application.GetRealWidth(110), X = Application.GetRealWidth(15), @@ -73,7 +78,6 @@ TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextSize = 15, TextAlignment = TextAlignment.CenterRight, - BackgroundColor = 0xffff0000, }; btnAddFrameLayout.AddChidren(btnFloorText); @@ -81,20 +85,19 @@ { Height = Application.GetRealHeight(69), Width = Application.GetRealWidth(69), - X = Application.GetRealWidth(200 - 69), + X = Application.GetRealWidth(200 - 77), UnSelectedImagePath = "BindPic/BindDown.png", Gravity = Gravity.CenterVertical, - BackgroundColor = 0xff0000ff, }; btnAddFrameLayout.AddChidren(btnBindDown); btnBindDown.MouseDownEventHandler += (sender, e) => { SideslipFramelayout(); }; - MidFrameLayoutContent(); + MidFrameLayoutContent(btnFloorText); } - async void MidFrameLayoutContent() + async void MidFrameLayoutContent(Button btnFloorText) { #region UI var btnMidTopLayout = new FrameLayout @@ -105,6 +108,7 @@ btnHorizontalScrolViewLayout = new HorizontalScrolViewLayout { + X = Application.GetRealWidth(58), }; btnMidTopLayout.AddChidren(btnHorizontalScrolViewLayout); @@ -122,7 +126,7 @@ }; this.midFrameLayout.AddChidren(bottomFrameLayout); - var btnFinifh = new Button() + btnFinifh = new Button() { Width = Application.GetRealWidth(907), Height = Application.GetRealHeight(127), @@ -136,8 +140,19 @@ bottomFrameLayout.AddChidren(btnFinifh); #endregion - #region 鏁版嵁澶勭悊 - roomList = Shared.Common.Room.Lists; + #region 鏁版嵁澶勭悊 + //鑾峰彇妤煎眰 + dicFloor = Common.Room.CurrentRoom.GetFloorSortList(); + currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId(); + btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName(); + // 鑾峰彇妤煎眰瀵瑰簲瀵规埧闂� + foreach (var room in Shared.Common.Room.Lists) + { + if (room.FloorId == currentKey.currentSelectFloorId) + { + roomList.Add(room); + } + } Shared.Common.Room curRoom = roomList[0]; int index = 0; RefreshRoomList(curRoom, btnFinifh, ref index); @@ -156,69 +171,88 @@ btnFinifh.MouseUpEventHandler += async (sender, e) => { + bool isFinish = false; btnFinifh.Enable = false; btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; - if (currentKey.bindList.Count != 0) + try { - var bindResult = await currentKey.ClearBindInfoAsync(); - if (bindResult.clearBindInfoResponseData != null) + Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); + if (currentKey.bindList.Count != 0) { - if (bindResult.clearBindInfoResponseData.Result != 0) + var bindResult = await currentKey.ClearBindInfoAsync(); + if (bindResult != null && bindResult.clearBindInfoResponseData != null) { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); - CommonPage.Loading.Hide(); - this.RemoveFromParent(); + 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(); + }); + this.RemoveFromParent(); + btnFinifh.Enable = true; + btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + return; + } + else + { + currentKey.bindList.Clear(); + } + } + else + { + var btn = new Button() + { + Gravity = Gravity.Center, + }; + this.midFrameLayout.AddChidren(btn); + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btn); + }); + } + } + + var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Scene_Trigger); + if (temp.setWritableValueResponData?.Status != 0) + { + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh); btnFinifh.Enable = true; btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; - return; - } - else - { - currentKey.bindList.Clear(); - } + }); + return; } - } - - var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Scene_Trigger); - if (temp.setWritableValueResponData?.Status != 0) - { - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh); - 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) + else { - if (de.DeviceAddr != null) + currentKey.panelMode = 1; + var addBindeDev = new AddBindData(); + addBindeDev.DeviceAddr = currentKey.DeviceAddr; + addBindeDev.Epoint = currentKey.DeviceEpoint; + + foreach (var de in targetList) { - var addBindInfo = new AddBindListObj(); - addBindInfo.BindType = 0; - addBindInfo.BindCluster = 6; - addBindInfo.BindMacAddr = de.DeviceAddr; - addBindInfo.BindEpoint = de.DeviceEpoint; - addBindeDev.BindList.Add(addBindInfo); + 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); + } } - else - { - var addBindInfo = new AddBindListObj(); - addBindInfo.BindType = 1; - addBindInfo.BindCluster = 6; - var sc1 = (SceneUI)de; - addBindInfo.BindScenesId = sc1.Id; - addBindeDev.BindList.Add(addBindInfo); - } - } - bool isFinish = false; - try - { - CommonPage.Loading.Start(""); + var dev = new AddedDeviceBindResponseAllData(); dev = await currentKey.AddDeviceBindAsync(addBindeDev); foreach (var ab in dev.addedDeviceBindResponseData?.BindList) @@ -246,13 +280,16 @@ isFinish = true; break; case 1: - new Tip() + Application.RunOnMainThread(() => { - MaxWidth = 150, - Text = Language.StringByID(R.MyInternationalizationString.BindErrorAbsence), - Direction = AMPopTipDirection.Up, - CloseTime = 1 - }.Show(btnFinifh); + new Tip() + { + MaxWidth = 150, + Text = Language.StringByID(R.MyInternationalizationString.BindErrorAbsence), + Direction = AMPopTipDirection.Up, + CloseTime = 1 + }.Show(btnFinifh); + }); break; case 2: switch (dev.addBindResultResponseData?.Result) @@ -271,61 +308,97 @@ isFinish = true; break; case 140: - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + }); break; default: - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + }); break; } break; case 3: - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindErrorExisted), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindErrorExisted), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + }); break; case 4: - new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + Application.RunOnMainThread(() => + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); + }); break; default: break; } } } - catch { } - finally + } + catch { } + finally + { + if (isFinish) { - if (isFinish) + if (action != null) { - if (action != null) - { - action(currentKey.bindList); - } - this.RemoveFromParent(); + action(currentKey.bindList); } - else - { - this.RemoveFromParent(); - } + this.RemoveFromParent(); + } + else + { + this.RemoveFromParent(); + } + Application.RunOnMainThread(() => + { CommonPage.Loading.Hide(); btnFinifh.Enable = true; btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; - } + }); } }; - - #endregion + #endregion } // 鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀� void RefreshRoomList(Shared.Common.Room curRoom, Button btnFinish, ref int index2) { + if (roomList.Count == 0) + { + return; + } + btnHorizontalScrolViewLayout.RemoveAll(); Button curentOldRoom = null; FrameLayout curentOldRoomFrameLayout = null; int index = 0; + var roomTempList = new List<Room>(); + for (int i = 0; i < roomList.Count; i++) { var room = roomList[i]; + //濡傛灉鎴块棿涓哄枩鐖憋紝鍒欎笉鏄剧ず if (room.IsLove == true) { - //; + continue; + } + + //濡傛灉鎴块棿涓病鏈夎澶囷紝鍒欎笉鏄剧ず + if (room.SceneUIList.Count == 0) + { + continue; + } + else + { + roomTempList.Add(room); + } + if (roomTempList.Count != 0) + { + curRoom = roomTempList[0]; } var btnRoomFrameLayout = new FrameLayout @@ -333,7 +406,6 @@ Height = Application.GetRealHeight(78), Width = Application.GetRealWidth(187), Y = Application.GetRealHeight(58), - X = Application.GetRealWidth(58), Radius = (uint)Application.GetMinRealAverage(78 / 2), BorderColor = Shared.Common.ZigbeeColor.Current.XMOrange, BorderWidth = 1, @@ -355,46 +427,60 @@ }; btnRoomFrameLayout.AddChidren(btnRoom); + btnRoom.IsSelected = false; - if (currentKey.RoomId == "") + + //榛樿閫変腑姣忎釜妤煎眰鐨勭涓�涓埧闂� + if (index == 0) { - if (i == index) - { - btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - btnRoomFrameLayout.BorderWidth = 0; - btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite; - curentOldRoom = btnRoom; - curentOldRoomFrameLayout = btnRoomFrameLayout; - } - else - { - btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3; - btnRoom.IsSelected = false; - btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; - btnRoomFrameLayout.BorderWidth = 1; - } + btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; + btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; + btnRoomFrameLayout.BorderWidth = 0; + btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite; + curentOldRoom = btnRoom; + curentOldRoomFrameLayout = btnRoomFrameLayout; } - else - { - if (currentKey.RoomId == room.Id) - { - btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite; - btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - btnRoomFrameLayout.BorderWidth = 0; - curentOldRoom = btnRoom; - curentOldRoomFrameLayout = btnRoomFrameLayout; - curRoom = room; - index2 = i; - } - else - { - btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3; - btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; - btnRoomFrameLayout.BorderWidth = 1; - } - } + + //璁板綍涔嬪墠閫変腑鐨勬埧闂� + //if (currentKey.RoomId == "") + //{ + // if (i == index) + // { + // btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; + // btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; + // btnRoomFrameLayout.BorderWidth = 0; + // btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite; + // curentOldRoom = btnRoom; + // curentOldRoomFrameLayout = btnRoomFrameLayout; + // } + // else + // { + // btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3; + // btnRoom.IsSelected = false; + // btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; + // btnRoomFrameLayout.BorderWidth = 1; + // } + //} + //else + //{ + // if (currentKey.RoomId == room.Id) + // { + // btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite; + // btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; + // btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; + // btnRoomFrameLayout.BorderWidth = 0; + // curentOldRoom = btnRoom; + // curentOldRoomFrameLayout = btnRoomFrameLayout; + // curRoom = room; + // index2 = i; + // } + // else + // { + // btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3; + // btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; + // btnRoomFrameLayout.BorderWidth = 1; + // } + //} EventHandler<MouseEventArgs> eHandlerRoom = (sender, e) => { @@ -458,11 +544,18 @@ }; btnHorizontalScrolViewLayout.AddChidren(btnEmpty); } + + BindInfo.FinishDisplay(roomTempList, btnFinish); + index++; } //鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀� void RefreshSceneList(Shared.Common.Room curRoom) { + if (curRoom.SceneUIList.Count == 0) + { + return; + } midVerticalScrolViewLayout.RemoveAll(); Button oldScene = null; @@ -615,7 +708,7 @@ Width = Application.GetRealWidth(200), Height = Application.GetRealHeight(58), X = Application.GetRealWidth(81), - Y = Application.GetRealHeight(58), + Y = Application.GetRealHeight(81), TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, TextSize = 14, TextAlignment = TextAlignment.CenterLeft, @@ -626,12 +719,9 @@ var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout() { Height = Application.GetRealHeight(600), - Y = Application.GetRealHeight(173), + Y = btnSelectFloor.Bottom, }; sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout); - - //鑾峰彇妤煎眰 - var dicFloor = Common.Room.CurrentRoom.GetFloorSortList(); Button oldbutton = null; Button oldbuttonText = null; @@ -640,6 +730,8 @@ var rowFrameLayout = new RowLayout() { Height = Application.GetRealHeight(150), + LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine, + X = Application.GetRealWidth(81), }; sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout); @@ -647,8 +739,9 @@ { Width = Application.GetRealWidth(81), Height = Application.GetRealHeight(81), - X = Application.GetRealWidth(81), Y = Application.GetRealHeight(55), + UnSelectedImagePath = "Floor/Floor.png", + SelectedImagePath = "Floor/FloorSelected.png", }; rowFrameLayout.AddChidren(btnAllMethod); @@ -656,7 +749,7 @@ { Width = Application.GetRealWidth(311), Height = Application.GetRealHeight(58), - X = Application.GetRealWidth(173), + X = Application.GetRealWidth(92), Y = Application.GetRealHeight(69), TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, TextSize = 14, @@ -665,8 +758,23 @@ }; rowFrameLayout.AddChidren(btnMethodText); + if (currentKey.currentSelectFloorId == floorId) + { + btnAllMethod.IsSelected = true; + btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + } + + string curFloorId = floorId; EventHandler<MouseEventArgs> hander = (sender, e) => { + if (currentKey.currentSelectFloorId == curFloorId) + { + return; + } + currentKey.currentSelectFloorId = curFloorId; + btnFloorText.Text = dicFloor[floorId]; + roomList.Clear(); + if (!btnMethodText.IsSelected) { if (oldbutton != null) @@ -682,6 +790,30 @@ btnMethodText.IsSelected = true; oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; } + + //鑾峰彇妤煎眰瀵瑰簲鐨勬埧闂� + foreach (var room in Shared.Common.Room.Lists) + { + if (room.FloorId == currentKey.currentSelectFloorId) + { + roomList.Add(room); + } + } + + Shared.Common.Room curRoom = new Shared.Common.Room(); + if (roomList.Count != 0) + { + curRoom = roomList[0]; + } + else + { + curRoom = new Shared.Common.Room(); + roomList.Add(curRoom); + } + int index = 0; + RefreshRoomList(curRoom, btnFinifh, ref index); + RefreshSceneList(roomList[0]); + dialog.Close(); }; btnAllMethod.MouseUpEventHandler += hander; -- Gitblit v1.8.0