xm
2020-07-14 d87400af518ebc9274f4447f06476959c3aa5102
ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
@@ -54,10 +54,10 @@
        public void ShowForm()
        {
            this.FormID = "HomeMainPageForm";
            Instance = this;
            //先初始化左滑房间列表界面(在反射里面初始化)
            if (ListRoomViewFrom.Instance == null) { }
            Instance = this;
            //先初始化左滑房间列表界面(在反射里面初始化)
            if (LeftListRoomViewFrom.Instance == null) { }
            //整个背景的上下滑动控件
            if (this.listBodyContr == null)
@@ -73,6 +73,9 @@
                this.listBodyContr.frameTable.RemoveAll();
                listBodyContr.RecoverTableHeight();
            }
            //初始化默认楼层ID
            this.InitDefultFloorId();
            //初始化头部控件
            this.InitTopFrameLayoutControl();
@@ -129,6 +132,9 @@
                    this.ShowSelectFloorForm(btnFloorName);
                };
            }
            //可视对讲快捷方式
            Shared.Phone.Device.VideoIntercom.VideoMachine.AccountSupportVideo(topFrameLayout);
            //安防快捷方式
            if (UserCenterResourse.ResidenceOption.SafetyShortcut)
            {
@@ -170,7 +176,8 @@
                    selectHouse.Init();
                    selectHouse.HouseAction = (houseId) =>
                    {
                        ChangeResidence(HdlResidenceLogic.Current.GetHouseByHouseId(houseId));
                        //切换住宅
                        this.ChangeResidence(HdlResidenceLogic.Current.GetHouseByHouseId(houseId));
                    };
                }
            };
@@ -402,10 +409,9 @@
            roomPageView.SetLeftAndRightImageView(mLeftImageView, mRightImageView);
            //当前房间
            var listRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
            var listRoom = HdlRoomLogic.Current.GetRoomsByFloorIdAppendLoveRoom(Config.Instance.Home.CurrentFloorId);
            if (HdlRoomLogic.Current.NowMainPageRoom == null)
            {
                //设置第一个为初始房间
                HdlRoomLogic.Current.NowMainPageRoom = listRoom[0];
            }
            var curIndex = 0;
@@ -505,7 +511,7 @@
                //当没有绑定有网关,左滑时,点击房间列表,则不鸟它
                return;
            }
            var listRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
            var listRoom = HdlRoomLogic.Current.GetRoomsByFloorIdAppendLoveRoom(Config.Instance.Home.CurrentFloorId);
            for (int i = 0; i < listRoom.Count; i++)
            {
                if (room.Id == listRoom[i].Id)
@@ -521,7 +527,7 @@
            //重置一下楼层名字
            if (this.btnFloorName != null)
            {
                btnFloorName.Text = HdlResidenceLogic.Current.GetFloorNameById(Config.Instance.Home.CurrentFloorId);
                btnFloorName.Text = Config.Instance.Home.GetCurrentFloorName;
            }
        }
@@ -1056,36 +1062,21 @@
        /// <param name="home">Home.</param>
        private void ChangeResidence(House home)
        {
            try
            HdlThreadLogic.Current.RunThread(() =>
            {
                CommonPage.Loading.Start();
                new System.Threading.Thread(async () =>
                {
                    Config.Instance.HomeId = home.Id;
                    Config.Instance.Home = HdlResidenceLogic.Current.GetHouseByHouseId(home.Id);
                    Global.CreateHomeDirectory(home.Id);
                    Config.Instance.Save();
                    //刷新个人中心的内存及线程
                    await UserCenterLogic.InitUserCenterMenmoryAndThread();
                this.ShowProgressBar();
                    Application.RunOnMainThread(() =>
                    {
                        //刷新界面
                        this.ShowForm();
                //切换住宅
                HdlResidenceLogic.Current.SwitchResidence(home.Id);
                        CommonPage.Loading.Hide();
                    });
                })
                { IsBackground = true }.Start();
            }
            catch (Exception ex)
            {
                Application.RunOnMainThread(() =>
                HdlThreadLogic.Current.RunMain(() =>
                {
                    CommonPage.Loading.Hide();
                    Console.WriteLine(ex.Message);
                    //刷新界面
                    this.ShowForm();
                    this.CloseProgressBar();
                });
            }
            });
        }
        #endregion
@@ -1111,7 +1102,11 @@
                        //已经接收到网关的反馈 2020.05.09:删除Ack主题
                        this.dicDeviceCardControl[mainKeys].SetHadGetResponeResultStatu();
                        //刷新控件
                        this.dicDeviceCardControl[mainKeys].RefreshControlInfo(locadevice);
                        if (locadevice.Type != DeviceType.IASZone)
                        {
                            //传感器不需要属性上报(但是那个球型传感器居然会属性上报)
                            this.dicDeviceCardControl[mainKeys].RefreshControlInfo(locadevice);
                        }
                    }
                }, ShowErrorMode.NO);
            });
@@ -1152,10 +1147,8 @@
                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
                    if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
                    {
                        //本地设备对象
                        var locadevice = LocalDevice.Current.GetDevice(mainKeys);
                        //刷新卡片信息
                        this.dicDeviceCardControl[mainKeys].RefreshControlInfo(locadevice);
                        //开启卡片闪烁特效
                        this.dicDeviceCardControl[mainKeys].StartCardLightAppeal();
                    }
                }, ShowErrorMode.NO);
@@ -1172,13 +1165,16 @@
        private void ShowSelectFloorForm(NormalViewControl btnFloor)
        {
            var floorFL = new Category.SelectFloorForm();
            floorFL.CurFloorId = Config.Instance.Home.CurrentFloorId;
            this.AddChidren(floorFL);
            floorFL.Init(35, 153);
            floorFL.changeFloor = true;
            floorFL.FloorAction = (floorId) =>
            {
                btnFloor.Text = HdlResidenceLogic.Current.GetFloorNameById(floorId);
                Config.Instance.Home.CurrentFloorId = floorId;
                HdlRoomLogic.Current.NowMainPageRoom = HdlRoomLogic.Current.GetLoveRoom();
                //分类界面需要刷新
                UserView.UserPage.Instance.RefreshCategoryForm = true;
                this.ShowForm();
            };
        }
@@ -1220,6 +1216,23 @@
            return true;
        }
        /// <summary>
        /// 初始化默认楼层ID
        /// </summary>
        private void InitDefultFloorId()
        {
            if (Config.Instance.Home.CurrentFloorId != string.Empty)
            {
                return;
            }
            var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
            foreach (var floorId in dicFloor.Keys)
            {
                Config.Instance.Home.CurrentFloorId = floorId;
                break;
            }
        }
        #endregion
        #region ■ 界面重新激活事件___________________