JLChen
2021-04-13 740987b80e7e6cf62561130d0bef4ca64170ad06
HDL_ON/UI/UI2/4-PersonalCenter/SmartSpeaker/SmartSpeakerSelectDevicesPage.cs
@@ -2,19 +2,18 @@
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>
@@ -46,10 +45,10 @@
        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;
@@ -59,20 +58,20 @@
        }
        /// <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()
            {
@@ -83,7 +82,7 @@
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextAlignment = TextAlignment.CenterLeft,
            };
            allRoomView.AddChidren(btnAllRoomText);
            allView.AddChidren(btnAllRoomText);
            btnChooseAll = new Button()
            {
@@ -93,11 +92,10 @@
                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),
@@ -108,7 +106,7 @@
            bodyScrolView = new VerticalScrolViewLayout()
            {
                Y = allRoomView.Bottom,
                Y = allView.Bottom,
                Height = Application.GetRealHeight(450),
            };
            bodyView.AddChidren(bodyScrolView);
@@ -121,9 +119,10 @@
            bodyView.AddChidren(btnSave);
            //全选按钮点击事件
            LoadEvent_AllSharedDataChange(allRoomView, btnChooseAll);
            LoadEvent_AllSharedDataChange(allView, btnChooseAll);
            //保存按钮点击事件
            LoadEvent_Save(btnSave);
            //加载房间的功能和场景,并比较配置过的数据实现选中效果
            GetDeviceAndSceneList();
        }
@@ -131,22 +130,22 @@
        /// <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;
        }
@@ -165,9 +164,9 @@
        }
        /// <summary>
        ///
        /// 全量更新配置数据(功能和场景同时更新)
        /// </summary>
        /// <param name="updateList"></param>
        /// <param name="updateList">最新的配置数据</param>
        void AddDevicesSceneList(List<SpeakerTargetInfo> updateList)
        {
            var waitPage = new Loading();
@@ -188,7 +187,6 @@
                            {
                                updateList.Add(info);
                            }
                        }
                        else
                        {
@@ -197,18 +195,16 @@
                                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)
                    {