黄学彪
2019-12-12 7e863a33397f317ffc3ffd9288496d0e4f16aa66
ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
@@ -43,6 +43,7 @@
        Action<List<BindListResponseObj>> devicBindAction;//设备被绑定通知
        private System.Collections.Generic.List<CommonDevice> localDeviceList = new System.Collections.Generic.List<CommonDevice>();//本地设备列表
        private System.Collections.Generic.List<SceneUI> scList = new System.Collections.Generic.List<SceneUI> { };//本地场景列表       
        FrameLayout blankFrameLayout;//空数据显示布局
        #endregion
        //初始化按键数据
@@ -255,6 +256,7 @@
                }
                else
                {
                    currentKey.panelMode = 65535;
                    SideslipFramelayout();
                }
            };
@@ -262,40 +264,15 @@
            btnAddFrameLayout.MouseDownEventHandler += eHandlerAdd;
            #endregion
            CommonPage.Loading.Start("");
            middleFrameLayout();
            InitListInfo();
        }
        /// <summary>
        /// 中部布局
        /// </summary>
        void middleFrameLayout()
        {
            topFrameLayout = new FrameLayout
            {
                Height = Application.GetMinRealAverage(0),
                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
            };
            this.midFrameLayout.AddChidren(topFrameLayout);
            #region BindEmptyPic UI
            entryStatusPic = new Button
            {
                X = Application.GetRealWidth(213),
                Y = Application.GetRealHeight(418),
                UnSelectedImagePath = "BindPic/BindEmptyPic.png",
                Visible = false,
            };
            this.midFrameLayout.AddChidren(entryStatusPic);
            btnPicTip = new Button
            {
                Y = Application.GetRealHeight(1020),
                Text = Language.StringByID(R.MyInternationalizationString.NoControlTargets),
                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
                Gravity = Gravity.CenterHorizontal,
                Visible = false,
            };
            this.midFrameLayout.AddChidren(btnPicTip);
            #endregion
        {
            midVerticalRefreshLayout = new VerticalRefreshLayout()
            {
            };
@@ -306,17 +283,53 @@
                InitListInfo();
                midVerticalRefreshLayout.EndHeaderRefreshing();
            };
            topFrameLayout = new FrameLayout
            {
                Height = Application.GetMinRealAverage(0),
                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
            };
            midVerticalRefreshLayout.AddChidren(topFrameLayout);
            BlankPicUI();
        }
        /// <summary>
        /// 空数据UI显示
        /// </summary>
        void BlankPicUI()
        {
            blankFrameLayout = new FrameLayout
            {
            };
            midVerticalRefreshLayout.AddChidren(blankFrameLayout);
            entryStatusPic = new Button
            {
                X = Application.GetRealWidth(213),
                Y = Application.GetRealHeight(418),
                UnSelectedImagePath = "BindPic/BindEmptyPic.png",
                Visible = false,
            };
            blankFrameLayout.AddChidren(entryStatusPic);
            btnPicTip = new Button
            {
                Y = Application.GetRealHeight(1020),
                Text = Language.StringByID(R.MyInternationalizationString.NoControlTargets),
                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
                Gravity = Gravity.CenterHorizontal,
                Visible = false,
            };
            blankFrameLayout.AddChidren(btnPicTip);
        }
        /// <summary>
        /// 按键绑定表显示
        /// </summary> 
        async void RefreshList()
        {
            midVerticalRefreshLayout.RemoveAll();
            this.midFrameLayout.RemoveAll();
            middleFrameLayout();
            midVerticalRefreshLayout.RemoveAll();
            var frameLayoutRow = new FrameLayout()
            {
                Height = Application.GetMinRealAverage(0),
@@ -332,7 +345,7 @@
                btnPicTip.Height = Application.GetRealHeight(49);
                btnPicTip.Visible = true;
                entryStatusPic.Visible = true;
                midVerticalRefreshLayout.Height = Application.GetRealHeight(0);
                blankFrameLayout.Height = midVerticalRefreshLayout.Height;
            }
            else
            {
@@ -341,6 +354,7 @@
                btnPicTip.Height = Application.GetRealHeight(0);
                btnPicTip.Visible = false;
                entryStatusPic.Visible = false;
                blankFrameLayout.Height = Application.GetRealHeight(0);
                if (currentKey.panelMode == 1)
                {
                    topFrameLayout.Height = Application.GetRealHeight(0);
@@ -348,8 +362,7 @@
                }
                else
                {
                    topFrameLayout.Height = Application.GetRealHeight(150);
                    midVerticalRefreshLayout.Y = Application.GetRealHeight(150);
                    topFrameLayout.Height = Application.GetRealHeight(150);
                    BindModeDisplay();
                }
                int curIndex = 0;
@@ -445,7 +458,10 @@
                        {
                            devicePic.UnSelectedImagePath = curSceneUI.IconPath;
                            btnBindName.Text = curSceneUI.Name;
                            btnFloorRoomName.Text = curSceneUI.GetZone();
                            if (curSceneUI.GetZone() != null)
                            {
                                btnFloorRoomName.Text = curSceneUI.GetZone();
                            }
                        }
                    }
                    else
@@ -459,16 +475,25 @@
                                //获取设备所属房间
                                var tempDevRoom = Common.Room.CurrentRoom.GetRoomByDevice(tempDev);
                                //获取设备所在楼层
                                var tempDevFloorId = tempDevRoom.FloorId;
                                //获取楼层的名字
                                var tempDevRoomName = tempDevRoom.Name;
                                //获取楼层的名字
                                var tempDevFloorName = Common.Config.Instance.Home.GetFloorNameById(tempDevFloorId);
                                btnFloorRoomName.Text = tempDevFloorName + "," + tempDevRoomName;
                                if (Common.Config.Instance.Home.FloorDics.Count == 0)
                                {
                                }
                                if (tempDevRoom != null)
                                {
                                    var tempDevFloorId = tempDevRoom.FloorId;
                                    //获取楼层的名字
                                    var tempDevRoomName = tempDevRoom.Name;
                                    //获取楼层的名字
                                    var tempDevFloorName = Common.Config.Instance.Home.GetFloorNameById(tempDevFloorId);
                                    btnFloorRoomName.Text = tempDevFloorName + "," + tempDevRoomName;
                                }
                                var deviceUi = Common.LocalDevice.Current.GetDeviceUI(tempDev);
                                devicePic.UnSelectedImagePath = deviceUi.IconPath;
                                devicePic.Width = Application.GetRealWidth(110);
                                devicePic.Text = "";
                                if (deviceUi != null)
                                {
                                    devicePic.UnSelectedImagePath = deviceUi.IconPath;
                                    devicePic.Width = Application.GetRealWidth(110);
                                    devicePic.Text = "";
                                }
                                if (tempDev.DeviceEpointName == "")
                                {
                                    btnBindName.Text = tempDev.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit);
@@ -596,59 +621,74 @@
            //一键清除按键事件
            btnDel.MouseUpEventHandler += async (sender, e) =>
            {
                bool isDelSuccess = false;
                try
                var alert = new Alert(Language.StringByID(R.MyInternationalizationString.Tip), Language.StringByID(R.MyInternationalizationString.SureClearKeyModeAndTargets),
                                                              Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
                alert.Show();
                alert.ResultEventHandler += async (s1, e1) =>
                {
                    CommonPage.Loading.Start("");
                    var bindResult = await currentKey.ClearBindInfoAsync();
                    if (bindResult != null && bindResult.clearBindInfoResponseData != null)
                    if (e1)
                    {
                        if (bindResult.clearBindInfoResponseData.Result != 0)
                        bool isDelSuccess = false;
                        try
                        {
                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDel);
                            CommonPage.Loading.Hide();
                            return;
                        }
                        else
                        {
                            var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default);
                            if (temp.setWritableValueResponData?.Status != 0)
                            CommonPage.Loading.Start("");
                            var bindResult = await currentKey.ClearBindInfoAsync();
                            if (bindResult != null && bindResult.clearBindInfoResponseData != null)
                            {
                                var temp1 = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default);
                                if (temp1.setWritableValueResponData?.Status != 0)
                                if (bindResult.clearBindInfoResponseData.Result != 0)
                                {
                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDel);
                                    CommonPage.Loading.Hide();
                                    return;
                                }
                                else
                                {
                                    isDelSuccess = true;
                                    var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default);
                                    if (temp.setWritableValueResponData?.Status != 0)
                                    {
                                        var temp1 = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default);
                                        if (temp1.setWritableValueResponData?.Status != 0)
                                        {
                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
                                        }
                                        else
                                        {
                                            isDelSuccess = true;
                                        }
                                    }
                                    else
                                    {
                                        isDelSuccess = true;
                                    }
                                }
                            }
                            else
                            {
                                isDelSuccess = true;
                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
                            }
                        }
                        catch { }
                        finally
                        {
                            if (isDelSuccess)
                            {
                                currentKey.panelMode = 65535;
                                currentKey.bindList.Clear();
                                RefreshList();
                                //如果是场景,用户删除清空当前到房间列表
                                currentKey.RoomId = "";
                                currentKey.ReSave();
                            }
                            CommonPage.Loading.Hide();
                        }
                    }
                    else
                    {
                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
                    }
                }
                catch { }
                finally
                {
                    if (isDelSuccess)
                    {
                        currentKey.panelMode = 65535;
                        currentKey.bindList.Clear();
                        RefreshList();
                        //如果是场景,用户删除清空当前到房间列表
                        currentKey.RoomId = "";
                        currentKey.ReSave();
                    }
                    CommonPage.Loading.Hide();
                }
                };
            };
        }
@@ -1071,48 +1111,8 @@
            {
                CommonPage.Loading.Start("");
                var delResult = new DelDeviceBindResponseAllData();
                delResult = await currentKey.DelDeviceBindAsync(delDevice);
                //if (delResult != null)
                //{
                //    if (delResult.removeBindResultResponseData != null)
                //    {
                //        if (delResult.removeBindResultResponseData.Result == 0)
                //        {
                //            currentKey.bindList.Remove(bindDevice);
                //            RefreshList();
                //            return 0;
                //        }
                //        else
                //        {
                //            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
                //        }
                //    }
                //    else if (delResult.delDeviceBindResponseData != null)
                //    {
                //        foreach (var remTarget in delResult.delDeviceBindResponseData.RemoveBindList)
                //        {
                //            if (remTarget.Result == 0)
                //            {
                //                currentKey.bindList.Remove(bindDevice);
                //                RefreshList();
                //                //如果是场景,用户删除清空当前到房间列表
                //                currentKey.RoomId = "";
                //                currentKey.ReSave();
                //                return 0;
                //            }
                //            else
                //            {
                //                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
                //            }
                //        }
                //    }
                //}
                //else
                //{
                //    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
                //}
                if (delResult != null && delResult.removeBindResultResponseData != null)
                delResult = await currentKey.DelDeviceBindAsync(delDevice);
                if (delResult != null && delResult.delDeviceBindResponseData != null)
                {
                    if (delResult.delDeviceBindResponseData?.RemoveBindList != null)
                    {
@@ -1124,6 +1124,10 @@
                                    currentKey.bindList.Remove(bindDevice);
                                    RefreshList();
                                    //如果是场景,用户删除清空当前到房间列表
                                    if(re.BindType == 2)
                                    {
                                        currentKey.panelMode = 65535;
                                    }
                                    currentKey.RoomId = "";
                                    currentKey.ReSave();
                                    return 0;