| | |
| | | using Shared; |
| | | using HDL_ON.UI.CSS; |
| | | using System.Collections.Generic; |
| | | using System.Threading; |
| | | using HDL_ON.DAL.Server; |
| | | |
| | | namespace HDL_ON.UI |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 管理配置给音箱的设备列表 |
| | | /// 管理配置给音箱的设备或着场景列表 |
| | | /// </summary> |
| | | public class SmartSpeakerSelectDevicesPage : FrameLayout |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// bodyView |
| | | /// </summary> |
| | | FrameLayout bodyView; |
| | | /// <summary> |
| | |
| | | List<SpeakerTargetInfo> roomFunctionOrSceneList = new List<SpeakerTargetInfo>(); |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// 管理配置给音箱的设备或着场景列表 |
| | | /// </summary> |
| | | /// <param name="speakerInfo"></param> |
| | | /// <param name="roomFunctionOrSceneList"></param> |
| | | /// <param name="speakerInfo">音箱参数</param> |
| | | /// <param name="roomFunctionOrSceneList">当前房间的功能或者场景</param> |
| | | public SmartSpeakerSelectDevicesPage(SpeakerInfo speakerInfo, List<SpeakerTargetInfo> roomFunctionOrSceneList) |
| | | { |
| | | bodyView = this; |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// 加载视图 |
| | | /// </summary> |
| | | public void LoadPage() |
| | | { |
| | | //加载顶部菜单栏 |
| | | new TopViewDiv(bodyView, Language.StringByID(StringId.DataManagement)).LoadTopView(); |
| | | |
| | | //顶部全选按钮 |
| | | var allRoomView = new FrameLayout() |
| | | var allView = new FrameLayout() |
| | | { |
| | | Y = Application.GetRealHeight(64), |
| | | Height = Application.GetRealHeight(50), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | }; |
| | | bodyView.AddChidren(allRoomView); |
| | | bodyView.AddChidren(allView); |
| | | |
| | | Button btnAllRoomText = new Button() |
| | | { |
| | |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | allRoomView.AddChidren(btnAllRoomText); |
| | | allView.AddChidren(btnAllRoomText); |
| | | |
| | | btnChooseAll = new Button() |
| | | { |
| | |
| | | Height = Application.GetMinRealAverage(28), |
| | | UnSelectedImagePath = "Public/ChooseIcon.png", |
| | | SelectedImagePath = "Public/ChooseOnIcon.png", |
| | | //IsSelected = true, |
| | | }; |
| | | allRoomView.AddChidren(btnChooseAll); |
| | | allView.AddChidren(btnChooseAll); |
| | | |
| | | allRoomView.AddChidren(new Button() |
| | | allView.AddChidren(new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealHeight(49), |
| | |
| | | |
| | | bodyScrolView = new VerticalScrolViewLayout() |
| | | { |
| | | Y = allRoomView.Bottom, |
| | | Y = allView.Bottom, |
| | | Height = Application.GetRealHeight(450), |
| | | }; |
| | | bodyView.AddChidren(bodyScrolView); |
| | |
| | | bodyView.AddChidren(btnSave); |
| | | |
| | | //全选按钮点击事件 |
| | | LoadEvent_AllSharedDataChange(allRoomView, btnChooseAll); |
| | | LoadEvent_AllSharedDataChange(allView, btnChooseAll); |
| | | //保存按钮点击事件 |
| | | LoadEvent_Save(btnSave); |
| | | |
| | | //加载房间的功能和场景,并比较配置过的数据实现选中效果 |
| | | GetDeviceAndSceneList(); |
| | | } |
| | | |
| | |
| | | /// <summary> |
| | | /// 全选按钮点击事件 |
| | | /// </summary> |
| | | void LoadEvent_AllSharedDataChange(FrameLayout allRoomView, Button btnChooseAll) |
| | | void LoadEvent_AllSharedDataChange(FrameLayout allView, Button btnChooseAll) |
| | | { |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => |
| | | { |
| | | btnChooseAll.IsSelected = !btnChooseAll.IsSelected; |
| | | var IsSelected = btnChooseAll.IsSelected; |
| | | |
| | | //全部数据选中状态设置为true或者false |
| | | foreach (var info in roomFunctionOrSceneList) |
| | | { |
| | | info.IsSelect = IsSelected; |
| | | } |
| | | |
| | | //刷新一次列表 |
| | | RefreshListView(); |
| | | }; |
| | | btnChooseAll.MouseUpEventHandler = eventHandler; |
| | | allRoomView.MouseUpEventHandler = eventHandler; |
| | | allView.MouseUpEventHandler = eventHandler; |
| | | |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// 全量更新配置数据(功能和场景同时更新) |
| | | /// </summary> |
| | | /// <param name="updateList"></param> |
| | | /// <param name="updateList">最新的配置数据</param> |
| | | void AddDevicesSceneList(List<SpeakerTargetInfo> updateList) |
| | | { |
| | | var waitPage = new Loading(); |
| | |
| | | { |
| | | updateList.Add(info); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | |
| | | updateList.Remove(targetData); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | //构建请求参数 |
| | | var updateSpeakerDeviceListObj = new UpdateSpeakerDeviceListObj() |
| | | { |
| | | homeId = speakerInfo.homeId, |
| | | tokenId = speakerInfo.tokenId, |
| | | targetInfos = updateList |
| | | }; |
| | | |
| | | //发起请求 |
| | | var revertObj = new HttpServerRequest().UpdateSpeakerDeviceList(updateSpeakerDeviceListObj); |
| | | if (revertObj.Code == StateCode.SUCCESS) |
| | | { |