From bd46c57c77c276014db3192a4e2cc96e23c93202 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期五, 21 二月 2020 13:08:47 +0800 Subject: [PATCH] 先上传个版本吧 --- ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs | 255 +++++++++++++++++++++++++++++++++++--------------- 1 files changed, 179 insertions(+), 76 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs index e47fed7..df44068 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs @@ -15,10 +15,10 @@ /// </summary> /// <param name="common">Common.</param> public void Changed(CommonDevice common) - { + { Shared.Application.RunOnMainThread(() => { - }); + }); } /// 鏋勯�犲嚱鏁� @@ -30,27 +30,68 @@ this.curDeviceBindType = deviceBindType; } - #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>(); + /// <summary> + /// 鎴块棿鍒楄〃 + /// </summary> List<Room> roomList = new List<Room>(); + /// <summary> + /// 娣诲姞璁惧鍚庣殑鍥炶皟 + /// </summary> public Action<List<BindListResponseObj>> actionAddDevicePage; + /// <summary> + /// 褰撳墠璁惧绫诲瀷鍒楄〃 + /// </summary> List<DeviceUI> curTypeDeviceList = new List<DeviceUI> { }; + /// <summary> + /// 褰撳墠璁惧缁戝畾绫诲瀷 + /// </summary> string curDeviceBindType = ""; + /// <summary> + /// 妤煎眰鏂囨湰 + /// </summary> Button btnFloorText; + /// <summary> + /// 妤煎眰琛� + /// </summary> Dictionary<string, string> dicFloor; + /// <summary> + /// 褰撳墠閫夋嫨鐨勬寜閿ā寮� + /// </summary> Button btnChooseKeyMode; - bool IsInitEntry = false;//鏄惁棣栨杩涘叆璇ラ〉 + /// <summary> + /// 鏄惁棣栨杩涘叆璇ラ〉 + /// </summary> + bool IsInitEntry = false; + /// <summary> + /// 褰撳墠鎸夐敭鐨勬墍鏈夋埧闂磋澶囧垪琛� + /// </summary> List<DeviceUI> currentKeyAllRoomDeviceList = new List<DeviceUI>(); + /// <summary> + /// 涓存椂瀛樺偍鐨勭洰鏍囧垪琛� + /// </summary> Dictionary<string, CommonDevice> oldTargetList = new Dictionary<string, CommonDevice> { }; #endregion + /// <summary> + /// 娣诲姞璁惧鏄剧ず + /// </summary> public void Show() { targetList.Clear(); @@ -81,7 +122,6 @@ var btnAddFrameLayout = new FrameLayout { X = Application.GetRealWidth(830), - Width = Application.GetRealWidth(200), }; this.titleFrameLayout.AddChidren(btnAddFrameLayout); @@ -91,7 +131,8 @@ X = Application.GetRealWidth(15), Text = Language.StringByID(R.MyInternationalizationString.FirstFloor), TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, - TextSize = 15, + TextSize = 14, + IsBold = true, TextAlignment = TextAlignment.CenterRight, }; btnAddFrameLayout.AddChidren(btnFloorText); @@ -105,13 +146,30 @@ Gravity = Gravity.CenterVertical, }; btnAddFrameLayout.AddChidren(btnBindDown); + + if (Common.Config.Instance.Home.FloorDics.Count == 0) + { + btnBindDown.Visible = false; + } + btnBindDown.MouseDownEventHandler += (sender, e) => { SideslipFramelayout(); }; + if (Common.Config.Instance.Home.FloorDics.Count == 0) + { + btnAddFrameLayout.Width = 0; + } + else + { + btnAddFrameLayout.Width = Application.GetRealWidth(200); + } MidFrameLayoutContent(btnFloorText); } + /// <summary> + /// 涓儴甯冨眬 + /// </summary> async void MidFrameLayoutContent(Button btnFloorText) { #region UI @@ -156,6 +214,7 @@ BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextColor = Shared.Common.ZigbeeColor.Current.XMWhite, TextSize = 16, + IsBold = true, }; bottomFrameLayout.AddChidren(btnChooseKeyMode); #endregion @@ -165,19 +224,34 @@ dicFloor = Common.Room.CurrentRoom.GetFloorSortList(); currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId(); btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName(); - // 鑾峰彇妤煎眰瀵瑰簲瀵规埧闂� - foreach (var room in Shared.Common.Room.Lists) + + if (Common.Config.Instance.Home.FloorDics.Count == 0) { - if (room.FloorId == currentKey.currentSelectFloorId) + // 鑾峰彇娌℃湁妤煎眰鎴块棿 + foreach (var room in Shared.Common.Room.Lists) { - roomList.Add(room); + if (string.IsNullOrEmpty(room.FloorId)) + { + roomList.Add(room); + } + } + } + else + { + // 鑾峰彇妤煎眰瀵瑰簲瀵规埧闂� + foreach (var room in Shared.Common.Room.Lists) + { + if (room.FloorId == currentKey.currentSelectFloorId) + { + roomList.Add(room); + } } } //棣栨鎷垮埌鎵�鏈夋埧闂翠腑鎸夐敭鐨勭洰鏍囧苟瀛樺偍 GetALlDispalyRoomDeviceList(); if (currentKeyAllRoomDeviceList.Count != 0) { - if (currentKey.bindList != null && currentKey.bindList.Count != 0) + if (currentKey.bindList.Count != 0) { foreach (var devA in currentKeyAllRoomDeviceList) { @@ -220,9 +294,23 @@ btnChooseKeyMode.Enable = true; btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; } - + if (targetList.Count == 0) + { + btnChooseKeyMode.Enable = false; + btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + } + else + { + btnChooseKeyMode.Enable = true; + btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + } btnChooseKeyMode.MouseUpEventHandler += (sender, e) => { + if (targetList.Count == 0) + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindDeviceTargetIsEmpty), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnChooseKeyMode); + return; + } this.RemoveFromParent(); var chooseKeyModePage = new Shared.Phone.UserCenter.DeviceBind.ChooseKeyModePage(currentKey, curDeviceBindType, targetList); @@ -275,12 +363,11 @@ var btnRoomFrameLayout = new FrameLayout { - 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, + Height = Application.GetRealHeight(159), + Width = Application.GetRealWidth(255), + Y = Application.GetRealHeight(23), + X = Application.GetRealWidth(5), + BackgroundImagePath = "Item/RoomIconBackground.png", BorderWidth = 1, }; btnHorizontalScrolViewLayout.AddChidren(btnRoomFrameLayout); @@ -301,9 +388,7 @@ btnRoom.IsSelected = false; if (index == 0) { - btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - btnRoomFrameLayout.BorderWidth = 0; + btnRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png"; btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite; curentOldRoom = btnRoom; curentOldRoomFrameLayout = btnRoomFrameLayout; @@ -315,24 +400,9 @@ if (curentOldRoom != null) { curentOldRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3; - curentOldRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; } curentOldRoom = btnRoom; curentOldRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite; - curentOldRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - curRoom = room; - currentKey.RoomId = room.Id; - RefreshDeviceList(curRoom); - if (curTypeDeviceList.Count == 0) - { - btnChooseKeyMode.Enable = false; - btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; - } - else - { - btnChooseKeyMode.Enable = true; - btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; - } } if (btnRoomFrameLayout.BorderWidth == 1) @@ -340,42 +410,49 @@ if (curentOldRoomFrameLayout != null) { curentOldRoomFrameLayout.BorderWidth = 1; - curentOldRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout; + curentOldRoomFrameLayout.BorderColor = Shared.Common.ZigbeeColor.Current.XMOrange; + curentOldRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackground.png"; } curentOldRoomFrameLayout = btnRoomFrameLayout; curentOldRoomFrameLayout.BorderWidth = 0; - curentOldRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange; - curRoom = room; - currentKey.RoomId = room.Id; - RefreshDeviceList(curRoom); - if (curTypeDeviceList.Count == 0) - { - btnChooseKeyMode.Enable = false; - btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; - } - else - { - btnChooseKeyMode.Enable = true; - btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; - } + curentOldRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png"; + } + curRoom = room; + currentKey.RoomId = room.Id; + RefreshDeviceList(curRoom); + if (curTypeDeviceList.Count == 0) + { + btnChooseKeyMode.Enable = false; + btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + } + else + { + btnChooseKeyMode.Enable = true; + btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + } + if (targetList.Count == 0) + { + btnChooseKeyMode.Enable = false; + btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + } + else + { + btnChooseKeyMode.Enable = true; + btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; } }; btnRoom.MouseUpEventHandler += eHandlerRoom; btnRoomFrameLayout.MouseUpEventHandler += eHandlerRoom; - - var btnEmpty = new Button - { - Width = Application.GetRealWidth(58), - X = btnRoom.Right, - }; - btnHorizontalScrolViewLayout.AddChidren(btnEmpty); index++; } BindInfo.FinishDisplay(roomTempList, btnChooseKeyMode); RefreshDeviceList(curRoom); } - //褰撳墠鎸夐敭鎵�鏈夋樉绀烘埧闂寸殑鎵�鏈夎澶囧鐞� + /// <summary> + /// 褰撳墠鎸夐敭鎵�鏈夋樉绀烘埧闂寸殑鎵�鏈夎澶囧鐞� + /// </summary> + /// <returns></returns> List<DeviceUI> GetALlDispalyRoomDeviceList() { currentKeyAllRoomDeviceList.Clear(); @@ -384,10 +461,6 @@ case "AddSwitch": foreach (var r in Shared.Common.Room.Lists) { - if (r.IsLove == true) - { - var aa = 0; ; - } if (r.DeviceUIList.Count == 0) { continue; @@ -515,6 +588,7 @@ int curIndex = 0; foreach (var device in curTypeDeviceList) { + curIndex++; if (device.CommonDevice != null && device.CommonDevice.IsOnline == 0) { continue; @@ -541,11 +615,12 @@ var btnBindName = new Button() { - Width = Application.GetRealWidth(500 - 120), + Width = Application.GetRealWidth(790), X = devicePic.Right + Application.GetRealWidth(20), TextColor = Shared.Common.ZigbeeColor.Current.TextBlack, TextAlignment = TextAlignment.CenterLeft, Tag = device.CommonDevice?.DeviceEpointName, + TextSize = 15, }; rowLayout.AddChidren(btnBindName); @@ -556,7 +631,6 @@ X = Application.GetRealWidth(861 + 81), Y = Application.GetRealHeight(35), SelectedImagePath = "DoorLock/SelectedIcon.png", - //Text = device.CommonDevice?.DeviceEpointName, TextColor = Shared.Common.ZigbeeColor.Current.XMWhite, Visible = false, Tag = device.CommonDevice?.DeviceEpointName, @@ -573,7 +647,7 @@ }; rowLayout.AddChidren(line2); - if (curIndex == curRoom.SceneUIList.Count - 1) + if (curIndex == curTypeDeviceList.Count) { line2.Visible = false; } @@ -591,9 +665,26 @@ } else { - targetList.Add(device.CommonDevice); - btnChoose.IsSelected = true; - btnChoose.Visible = true; + if (targetList.Count > 7) + { + new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); + } + else + { + targetList.Add(device.CommonDevice); + btnChoose.IsSelected = true; + btnChoose.Visible = true; + } + } + if (targetList.Count == 0) + { + btnChooseKeyMode.Enable = false; + btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + } + else + { + btnChooseKeyMode.Enable = true; + btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; } }; rowLayout.MouseUpEventHandler += hander; @@ -601,7 +692,7 @@ btnBindName.MouseUpEventHandler += hander; btnChoose.MouseUpEventHandler += hander; - if (device.CommonDevice?.DeviceEpointName == "") + if (string.IsNullOrEmpty(device.CommonDevice?.DeviceEpointName)) { btnBindName.Text = device.CommonDevice?.DeviceAddr + "_" + device.CommonDevice?.DeviceEpoint; } @@ -618,13 +709,22 @@ btnChoose.Visible = true; } } - - curIndex++; } - //IsInitEntry = false; + if (targetList.Count == 0) + { + btnChooseKeyMode.Enable = false; + btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect; + } + else + { + btnChooseKeyMode.Enable = true; + btnChooseKeyMode.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; + } } - // 渚ц竟瀵艰埅鏍� + /// <summary> + /// 閫夋嫨妤煎眰鐨勪晶杈规爮 + /// </summary> void SideslipFramelayout() { var dialog = new Dialog @@ -655,10 +755,11 @@ Height = Application.GetRealHeight(58), X = Application.GetRealWidth(81), Y = Application.GetRealHeight(81), - TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, + TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextSize = 14, TextAlignment = TextAlignment.CenterLeft, TextID = R.MyInternationalizationString.SelectFloor, + IsBold = true, }; sidelipFrameLayout.AddChidren(btnSelectFloor); @@ -707,6 +808,7 @@ if (currentKey.currentSelectFloorId == floorId) { btnAllMethod.IsSelected = true; + btnAllMethod.IsBold = true; btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; } @@ -735,6 +837,7 @@ oldbuttonText = btnMethodText; btnMethodText.IsSelected = true; oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack; + oldbuttonText.IsBold = true; } //鑾峰彇妤煎眰瀵瑰簲鐨勬埧闂� -- Gitblit v1.8.0