黄学彪
2020-12-17 9f326f4000847e6167d8166fa2f6a66f53cb3734
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/NewGateWayMenuSelectForm.cs
@@ -5,7 +5,22 @@
    /// 添加网关的选择画面
    /// </summary>
    public class NewGateWayMenuSelectForm : EditorCommonForm
    {
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 是否显示提示设置住宅地理位置
        /// </summary>
        private bool showSettion = true;
        /// <summary>
        /// 提示的FrameLayout
        /// </summary>
        private FrameLayout frameTip = null;
        #endregion
        #region ■ 初始化_____________________________
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
@@ -27,7 +42,7 @@
            this.ClearBodyFrame();
            var listView = new VerticalListControl(29);
            listView.Height = Application.GetRealHeight(340);
            listView.Height = bodyFrameLayout.Height;
            listView.BackgroundColor = UserCenterColor.Current.White;
            bodyFrameLayout.AddChidren(listView);
@@ -42,8 +57,8 @@
            row1.AddBottomLine();
            row1.ButtonClickEvent += (sender, e) =>
            {
                var form = new WiredGatewayDirectionForm();
                form.AddForm();
                //菜单按钮的点击事件
                this.MenuButtonClickEvent(1);
            };
            //无线网关
@@ -54,23 +69,182 @@
            var btntext2 = row2.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uWirelessGateway), 500);
            btntext2.TextSize = 15;
            row2.AddRightArrow();
            row2.AddBottomLine();
            row2.ButtonClickEvent += (sender, e) =>
            {
                var menuContr = new BottomMenuSelectForm();
                menuContr.AddForm(2);
                //UDP模式(推荐)
                menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.uUdpModeRecommend), () =>
                {
                    var form = new WirelessUdpDirectionForm();
                    form.AddForm();
                });
                //AP模式
                menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.uApMode), () =>
                {
                    var form = new WirelessApDirection1Form();
                    form.AddForm();
                });
                //菜单按钮的点击事件
                this.MenuButtonClickEvent(2);
            };
            //Mini网关
            var row3 = new FrameRowControl(listView.rowSpace / 2);
            listView.AddChidren(row3);
            var btnIcon3 = row3.AddLeftIcon(81);
            btnIcon3.UnSelectedImagePath = "Gateway/MiniGateway.png";
            var btntext3 = row3.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uMiniGateway), 500);
            btntext3.TextSize = 15;
            row3.AddRightArrow();
            row3.ButtonClickEvent += (sender, e) =>
            {
                //菜单按钮的点击事件
                this.MenuButtonClickEvent(3);
            };
            listView.AdjustRealHeight(Application.GetRealHeight(23));
            //如果还没有设置地理位置
            if (Common.Config.Instance.Home.Latitude == 0 && Common.Config.Instance.Home.Longitude == 0)
            {
                this.frameTip = new FrameLayout();
                frameTip.X = Application.GetRealWidth(179);
                frameTip.Y = Application.GetRealHeight(1426);
                frameTip.Height = Application.GetRealHeight(100);
                frameTip.Width = Application.GetRealWidth(714);
                bodyFrameLayout.AddChidren(frameTip);
                var btnIcon = new IconViewControl(58);
                btnIcon.UnSelectedImagePath = "Item/Tips.png";
                frameTip.AddChidren(btnIcon);
                //如果不设置住宅的地理位置,则会影响自动化地理围栏功能的设置
                var btnTip = new NormalViewControl(Application.GetRealWidth(636), Application.GetRealHeight(100), false);
                btnTip.X = btnIcon.Right + Application.GetRealWidth(20);
                btnTip.TextAlignment = TextAlignment.Center;
                btnTip.TextColor = UserCenterColor.Current.TextGrayColor1;
                btnTip.TextSize = 12;
                btnTip.IsMoreLines = true;
                btnTip.Text = Language.StringByID(R.MyInternationalizationString.uNotSetLocationWillAffectTheAutomaticGeofencingFunction);
                frameTip.AddChidren(btnTip);
            }
        }
        #endregion
        #region ■ 按键点击___________________________
        /// <summary>
        /// 菜单按钮的点击事件
        /// </summary>
        /// <param name="menuDiv">1:有线网关 2:无线网关 3:mini网关</param>
        private void MenuButtonClickEvent(int menuDiv)
        {
            //只弹一次
            if (this.showSettion == true && Common.Config.Instance.Home.Latitude == 0 && Common.Config.Instance.Home.Longitude == 0)
            {
                this.showSettion = false;
                //请前往住宅管理{0}设置住宅的地理位置
                string msg = Language.StringByID(R.MyInternationalizationString.uGotoResidenceAndSetLocation).Replace("{0}", "\r\n");
                var alert = new ShowMsgControl(ShowMsgType.Confirm, msg,
                    Language.StringByID(R.MyInternationalizationString.uGotoSettion),
                    Language.StringByID(R.MyInternationalizationString.uNeglect));
                alert.Show();
                //忽略
                alert.CancelClickEvent += () =>
                {
                    //显示指定的界面
                    this.ShowFormByMenuDiv(menuDiv);
                };
                //去设置
                alert.ConfirmClickEvent += () =>
                {
                    var form = new Residence.ResidenceManagementForm();
                    form.AddForm(false);
                };
                return;
            }
            //显示指定的界面
            this.ShowFormByMenuDiv(menuDiv);
        }
        /// <summary>
        /// 显示指定的界面
        /// </summary>
        /// <param name="menuDiv">1:有线网关 2:无线网关 3:mini网关</param>
        private void ShowFormByMenuDiv(int menuDiv)
        {
            if (menuDiv == 1)
            {
                var form = new WiredGatewayDirectionForm();
                form.AddForm();
            }
            else if (menuDiv == 2)
            {
                var menuContr = new BottomMenuSelectForm();
                menuContr.AddForm(2);
                //UDP模式(推荐)
                menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.uUdpModeRecommend), () =>
                {
                    var form = new WirelessUdpDirectionForm();
                    form.AddForm();
                });
                //AP模式
                menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.uApMode), () =>
                {
                    var form = new WirelessApDirection1Form();
                    form.AddForm();
                });
            }
            else if (menuDiv == 3)
            {
                var form = new MiniGatewayDirection1Form();
                form.AddForm();
            }
        }
        #endregion
        #region ■ 一般方法___________________________
        /// <summary>
        /// 检测住宅经纬度
        /// </summary>
        /// <returns></returns>
        private bool CheckResidencePoint()
        {
            //只弹一次
            if (this.showSettion == false)
            {
                return true;
            }
            this.showSettion = false;
            if (Common.Config.Instance.Home.Latitude == 0 && Common.Config.Instance.Home.Longitude == 0)
            {
                //请前往住宅管理{0}设置住宅的地理位置
                string msg = Language.StringByID(R.MyInternationalizationString.uGotoResidenceAndSetLocation).Replace("{0}", "\r\n");
                this.ShowMassage(ShowMsgType.Confirm, msg, () =>
                {
                    var form = new Residence.ResidenceManagementForm();
                    form.AddForm(false);
                }, Language.StringByID(R.MyInternationalizationString.uGotoSettion));
                return false;
            }
            return true;
        }
        #endregion
        #region ■ 界面重新激活事件___________________
        /// <summary>
        /// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
        /// </summary>
        public override int FormActionAgainEvent()
        {
            if (frameTip == null)
            {
                return 0;
            }
            if (Common.Config.Instance.Home.Latitude != 0 || Common.Config.Instance.Home.Longitude != 0)
            {
                //移除掉提示
                frameTip.RemoveFromParent();
                return 1;
            }
            return 1;
        }
        #endregion
    }
}