黄学彪
2020-09-18 c7df85937f73fb347ee0b19e9c052d2d00a6df6c
ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
@@ -44,8 +44,12 @@
            //主人或者管理员才会出现这个菜单
            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
            {
                //初始化右上角菜单
                this.InitTopRightMenu();
                //查看模板时,不允许编辑
                if (Common.Config.Instance.Home.IsShowTemplate == false)
                {
                    //初始化右上角菜单
                    this.InitTopRightMenu();
                }
            }
            //初始化中部信息
            this.InitMiddleFrame(i_CanDeleteResidence);
@@ -102,27 +106,19 @@
            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
            {
                rowHome.frameTable.UseClickStatu = true;
                //查看模板时,不允许编辑
                if (Common.Config.Instance.Home.IsShowTemplate == true)
                {
                    rowHome.frameTable.CanClick = false;
                }
                rowHome.frameTable.ButtonClickEvent += (sender, e) =>
                {
                    //默认值 23.134421,113.267189
                    double latitude = Common.Config.Instance.Home.Latitude;
                    double longitude = Common.Config.Instance.Home.Longitude;
                    //地图
                    GDMapKit.Show((mLatitude, mLongitude, mRadius, name) =>
                    {
                        HdlThreadLogic.Current.RunThread(() =>
                        {
                            //保存住宅地址
                            this.SaveResidenceAdrress(btnLocation, mLatitude, mLongitude, name);
                        });
                    },
                    Language.StringByID(R.MyInternationalizationString.uSelectAdrress),
                    Language.StringByID(R.MyInternationalizationString.uSave),
                    true, latitude, longitude, 100);
                    //检测权限,然后显示地图
                    this.CheckAuthorityAndShowMap(btnLocation);
                };
            }
            if (i_CanDeleteResidence == true)
            if (i_CanDeleteResidence == true && Common.Config.Instance.Home.IsShowTemplate == false)
            {
                //删除
                var btnDelete = new NormalViewControl(Application.GetRealWidth(184), rowHome.Height, false);
@@ -326,6 +322,11 @@
            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
            {
                //查看模板时,不允许编辑
                if (Common.Config.Instance.Home.IsShowTemplate == true)
                {
                    return;
                }
                //更改
                var btnChanged = frameRow.AddEditorControl();
                btnChanged.TextID = R.MyInternationalizationString.uChanged1;
@@ -352,11 +353,11 @@
                        Common.Config.Instance.Home.FloorDics.Remove(keys);
                        if (Common.Config.Instance.Home.CurrentFloorId == keys)
                        {
                            //如果删除的是当前楼层的话
                            Common.Config.Instance.Home.CurrentFloorId = string.Empty;
                            foreach (string floorId in Common.Config.Instance.Home.FloorDics.Keys)
                            var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
                            foreach (var floorId in dicFloor.Keys)
                            {
                                //把第一个楼层ID给它
                                //把第一个楼层赋值给当前楼层
                                Common.Config.Instance.Home.CurrentFloorId = floorId;
                                break;
                            }
@@ -406,7 +407,7 @@
                            this.AdjustContrlTableHeight();
                        }
                        //删除楼层的话,主页需要重新刷新
                        UserView.UserPage.Instance.RefreshForm = true;
                        UserView.UserPage.Instance.RefreshAllForm = true;
                    });
                };
            }
@@ -460,14 +461,15 @@
                    {
                        keys = Guid.NewGuid().ToString();
                    }
                    bool hadFloor = Common.Config.Instance.Home.CurrentFloorId != string.Empty;
                    Common.Config.Instance.Home.FloorDics[keys] = textValue;
                    Common.Config.Instance.Home.Save();
                    if (Common.Config.Instance.Home.CurrentFloorId == string.Empty)
                    if (hadFloor == false)
                    {
                        Common.Config.Instance.Home.CurrentFloorId = keys;
                        //创建第一个新的楼层的话,需要去刷新主页左边的房间列表
                        HdlRoomLogic.Current.RefreshRoomListView();
                    }
                    if (btnFloor != null)
                    {
                        btnFloor.Text = textValue;
@@ -478,7 +480,7 @@
                        this.InitFrameTableByMode();
                    }
                    //创建或者修改楼层的话,主页需要重新刷新
                    UserView.UserPage.Instance.RefreshForm = true;
                    UserView.UserPage.Instance.RefreshAllForm = true;
                }
            });
        }
@@ -581,7 +583,12 @@
                    btnName.Text = roomName;
                };
            };
            //查看模板时,不允许编辑
            if (Common.Config.Instance.Home.IsShowTemplate == true)
            {
                btnEditor.Text = Language.StringByID(R.MyInternationalizationString.uSearch1);
                return;
            }
            //删除
            var btnDelete = frameRow.AddDeleteControl();
            btnDelete.ButtonClickEvent += (sender, e) =>
@@ -619,7 +626,7 @@
                        this.AdjustContrlTableHeight();
                    }
                    //删除房间的话,主页需要重新刷新
                    UserView.UserPage.Instance.RefreshForm = true;
                    UserView.UserPage.Instance.RefreshAllForm = true;
                });
            };
        }
@@ -694,16 +701,22 @@
            var myHouse = HdlResidenceLogic.Current.GetHouseByFilePath(Common.Config.Instance.HomeFilePathList[index]);
            //切换住宅
            Common.Config.Instance.HomeId = myHouse.Id;
            Common.Config.Instance.Home = myHouse;
            Common.Global.CreateHomeDirectory(myHouse.Id);
            Common.Config.Instance.Save();
            //刷新个人中心的内存及线程
            UserCenterLogic.InitUserCenterMenmoryAndThread(false);
            bool result2 = UserCenterLogic.InitUserCenterMenmoryAndThread(false);
            if (result2 == false)
            {
                //开启了调试功能
                return;
            }
            //删除住宅
            HdlResidenceLogic.Current.DeleteHouseMemmory(deleteId);
            Application.RunOnMainThread(() =>
            HdlThreadLogic.Current.RunMain(() =>
            {
                //关闭界面
                this.CloseForm();
@@ -712,6 +725,66 @@
        #endregion
        #region ■ 显示地图___________________________
        /// <summary>
        /// 检测权限,然后显示地图
        /// </summary>
        /// <param name="btnLocation">地址显示控件</param>
        private void CheckAuthorityAndShowMap(NormalViewControl btnLocation)
        {
#if Android
            //显示地图
            this.ShowMap(btnLocation);
            ////申请定位权限
            //((BaseActivity)Application.Activity).SetGPSLocationPermission((result1) =>
            //{
            //    if (result1 == false) { return; }
            //    //申请读权限
            //    ((BaseActivity)Application.Activity).ReadWriteContact((result2) =>
            //    {
            //        if (result2 == false) { return; }
            //        //申请读取手机号权限
            //        ((BaseActivity)Application.Activity).SetPermission((result3) =>
            //        {
            //            if (result3 == false) { return; }
            //            //显示地图
            //            this.ShowMap(btnLocation);
            //        }, "android.permission.READ_PHONE_STATE");
            //    });
            //});
#endif
#if iOS
            //显示地图
            this.ShowMap(btnLocation);
#endif
        }
        /// <summary>
        /// 显示地图
        /// </summary>
        /// <param name="btnLocation">地址显示控件</param>
        private void ShowMap(NormalViewControl btnLocation)
        {
            //默认值 23.134421,113.267189
            double latitude = Common.Config.Instance.Home.Latitude;
            double longitude = Common.Config.Instance.Home.Longitude;
            //地图
            GDMapKit.Show((mLatitude, mLongitude, mRadius, name) =>
            {
                HdlThreadLogic.Current.RunThread(() =>
                {
                    //保存住宅地址
                    this.SaveResidenceAdrress(btnLocation, mLatitude, mLongitude, name);
                });
            },
            Language.StringByID(R.MyInternationalizationString.uSelectAdrress),
            Language.StringByID(R.MyInternationalizationString.uSave),
            true, latitude, longitude, 100);
        }
        #endregion
        #region ■ 保存住宅地图地址___________________
        /// <summary>