陈嘉乐
2020-05-19 0e0584b87851c56745bf73b1a961b80613dd0721
ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
@@ -14,10 +14,9 @@
        /// 构造函数
        /// </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  变量申明
@@ -36,7 +35,11 @@
        /// <summary>
        /// 按键配置的目标列表
        /// </summary>
        List<CommonDevice> targetList = new List<CommonDevice>();
        List<CommonDevice> targetListDevice = new List<CommonDevice>();
        /// <summary>
        /// 按键配置的场景目标列表
        /// </summary>
        List<SceneUI> targetListScene = new List<SceneUI>();
        /// <summary>
        /// 本地房间列表
        /// </summary>
@@ -58,10 +61,7 @@
        /// </summary>
        Dictionary<string, string> dicFloor;
        List<SceneUI> currentKeyAllRoomSceneList = new List<SceneUI>();
        /// <summary>
        /// 网关中的场景列表
        /// </summary>
        public List<ScenesListInfo> gwCurScenesList = new List<ScenesListInfo>();
        #endregion
        /// <summary>
@@ -224,7 +224,7 @@
                        var sc = currentKey.bindList.Find(obj => (obj != null) && (obj.BindScenesId == scTemp.Id));
                        if (sc != null)
                        {
                            targetList.Add(scTemp);
                            targetListScene.Add(scTemp);
                        }
                    }
                }
@@ -244,7 +244,7 @@
                btnFinifh.Enable = true;
                btnFinifh.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;
@@ -259,7 +259,7 @@
                bool isFinish = false;
                try
                {
                    if (targetList.Count == 0)
                    if (targetListDevice.Count == 0 && targetListScene.Count == 0)
                    {
                        Application.RunOnMainThread(() =>
                        {
@@ -275,7 +275,7 @@
                    Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
                    if (currentKey.bindList.Count != 0)
                    {
                        var bindResult = await currentKey.ClearBindInfoAsync();
                        var bindResult = HdlDeviceBindLogic.Current.ClearBindInfoAsync(currentKey);
                        if (bindResult != null && bindResult.clearBindInfoResponseData != null)
                        {
                            if (bindResult.clearBindInfoResponseData.Result != 0)
@@ -311,7 +311,7 @@
                        }
                    }
                    var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Scene_Trigger);
                    var temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Scene_Trigger);
                    if (temp == null || temp.setWritableValueResponData == null)
                    {
                        Application.RunOnMainThread(() =>
@@ -348,7 +348,7 @@
                        var addBindeDev = new AddBindData();
                        addBindeDev.DeviceAddr = currentKey.DeviceAddr;
                        addBindeDev.Epoint = currentKey.DeviceEpoint;
                        foreach (var de in targetList)
                        foreach (var de in targetListDevice)
                        {
                            if (de.DeviceAddr != null)
                            {
@@ -359,25 +359,25 @@
                                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);
                            }
                        }
                        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 = await currentKey.AddDeviceBindAsync(addBindeDev);
                        dev = HdlDeviceBindLogic.Current.AddDeviceBindAsync(addBindeDev);
                        if (dev != null && dev.addedDeviceBindResponseData != null)
                        {
                            if (dev.addedDeviceBindResponseData.Result == 0)
                            {
                                currentKey.bindList = dev.addedDeviceBindResponseData.BindList;
                                targetList.Clear();
                                targetListDevice.Clear();
                                targetListScene.Clear();
                                isFinish = true;
                                if (isFinish)
                                {
@@ -486,11 +486,11 @@
                {
                    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.GetMinReal(159),
@@ -523,6 +523,20 @@
                    curentOldRoom = btnRoom;
                    curentOldRoomFrameLayout = btnRoomFrameLayout;
                }
                if (index == roomTempList.Count - 1 && index > 3)
                {
                    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)
@@ -547,7 +561,6 @@
                        curentOldRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png";
                    }
                    curRoom = room;
                    currentKey.RoomId = room.Id;
                    if (curRoom.ListSceneId.Count == 0)
                    {
                        btnFinifh.Enable = false;
@@ -558,7 +571,7 @@
                        btnFinifh.Enable = true;
                        btnFinifh.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;
@@ -665,7 +678,7 @@
                {
                    btnBindName.Text = scene.Name;
                }
                if (targetList.Count == 0)
                if (targetListDevice.Count == 0 && targetListScene.Count == 0)
                {
                    foreach (var bindedSc in currentKey.bindList)
                    {
@@ -674,16 +687,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;
@@ -719,11 +731,11 @@
                        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;
@@ -740,7 +752,7 @@
                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;
@@ -893,7 +905,7 @@
                    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;
@@ -973,11 +985,7 @@
                {
                    continue;
                }
                var gwSc = gwCurScenesList.Find(obj => (obj.ScenesId == sceneId));
                if (gwSc != null)
                {
                    tempSceneUIList.Add(scene);
                }
                tempSceneUIList.Add(scene);
            }
            return tempSceneUIList;
        }