JLChen
2020-12-23 320d7cc8feb394d0ce3db2ec1d01593b554d990f
HDL_ON/Common/HDLCommon.cs
old mode 100755 new mode 100644
@@ -6,6 +6,7 @@
using HDL_ON.UI;
using HDL_ON.Entity;
using System.Threading;
using HDL_ON.DriverLayer;
namespace HDL_ON
{
@@ -257,11 +258,11 @@
                {
                    Shared.Application.RunOnMainThread(() =>
                    {
                        //账号在别处登陆,被踢下线 跳转到登录页面
                        new Alert(Language.StringByID(StringId.Tip), Language.StringByID(StringId.LoggedOnOtherDevices), Language.StringByID(StringId.Close)).Show();
                        ////账号在别处登陆,被踢下线 跳转到登录页面
                        //new Alert(Language.StringByID(StringId.Tip), Language.StringByID(StringId.LoggedOnOtherDevices), Language.StringByID(StringId.Close)).Show();
                        //退出登录操作
                        CheckLogout();
                    });
                    return;
                }
@@ -269,12 +270,15 @@
                {
                    Shared.Application.RunOnMainThread(() =>
                    {
                        GetPushMessageAction?.Invoke();
                        //报警推送才弹窗提示(messageType包含Alarm关键字的)
                        if (jpushMessageInfo.messageType != null && jpushMessageInfo.messageType.Contains("Alarm"))
                        {
                            new Alert(jpushMessageInfo.Title, jpushMessageInfo.Content, Language.StringByID(StringId.Close)).Show();
                            //报警推送弹窗提示
                            ShowAlarmPushMessage(jpushMessageInfo);
                            //new Alert(jpushMessageInfo.Title, jpushMessageInfo.Content, Language.StringByID(StringId.Close)).Show();
                        }
                        GetPushMessageAction?.Invoke();
                    });
                    return;
                }
@@ -286,12 +290,17 @@
        }
        /// <summary>
        /// 账号在别处登陆,被踢下线 跳转到登录页面
        /// 要在主线程调用
        /// 退出登录操作
        /// </summary>
        public void CheckLogout()
        {
            //未登录不用处理
            if (!UserInfo.Current.IsLogin) return;
            //账号在别处登陆,被踢下线 跳转到登录页面
            new Alert(Language.StringByID(StringId.Tip), Language.StringByID(StringId.LoggedOnOtherDevices), Language.StringByID(StringId.Close)).Show();
#if DEBUG
            return;
@@ -307,7 +316,7 @@
        {
            //加载Loading效果
            var waitPage = new Loading();
            MainPage.BasePageView.AddChidren(waitPage);
            MainPage.BaseView.AddChidren(waitPage);
            waitPage.Start(Language.StringByID(StringId.PleaseWait));
            new Thread(() =>
@@ -339,6 +348,57 @@
                }
            }).Start();
        }
        /// <summary>
        ///
        /// </summary>
        ConfirmDialog alarmPushConfirmDialog;
        /// <summary>
        /// 报警推送弹窗提示,点击查看跳转信息中心
        /// </summary>
        /// <param name="jpushMessageInfo"></param>
        public void ShowAlarmPushMessage(JPushMessageInfo jpushMessageInfo)
        {
            //没登录不处理
            if (UserInfo.Current == null || !UserInfo.Current.IsLogin || MainPage.BasePageView == null)
            {
                return;
            }
            //跳转信息中心页面
            Action goAction = () =>
            {
                //Dialog
                alarmPushConfirmDialog = null;
                Action backAction = () => {
                };
                var skipPage = new MessageCenterPage();
                MainPage.BasePageView.AddChidren(skipPage);
                skipPage.LoadPage(backAction);
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            //取消事件
            Action cancelAction = () =>
            {
                alarmPushConfirmDialog = null;
            };
            //防止多次弹窗处理
            if (alarmPushConfirmDialog == null)
            {
                alarmPushConfirmDialog = new ConfirmDialog();
                alarmPushConfirmDialog.ShowDialog(Language.StringByID(StringId.Tip), jpushMessageInfo.Content, goAction, cancelAction, StringId.Cancel, StringId.LookOver);
            }
            else
            {
                alarmPushConfirmDialog.RefreshDialog(Language.StringByID(StringId.Tip), jpushMessageInfo.Content, goAction, cancelAction, StringId.Cancel, StringId.LookOver);
            }
        }
        #endregion
        #region ■ 常用方法_______________________
@@ -381,6 +441,45 @@
        {
            return string.IsNullOrEmpty(userName) ? Language.StringByID(StringId.UsersWhoNameIsEmpty) : userName;
        }
        /// <summary>
        /// 监听网络变化后处理事件
        /// 刷新网络状态
        /// </summary>
        /// <param name="internetStatus">网络变化</param>
        /// <param name="IsEnterBackground">是否进入了后台</param>
        public void UpdateInternetStatus(int internetStatus, bool IsEnterBackground = false)
        {
            MainPage.Log($"网络状态变化,当前网络:{internetStatus} 是否后台:{IsEnterBackground.ToString()}");
            //网络状态变化 重置网关状态重新搜索
            Control.Ins.GatewayOnline = false;
            //网络变化,断开重连一次
            if (Control.Ins.IsRemote)
            {
                Control.Ins.IsRemote = false;
                DAL.Mqtt.MqttClient.DisConnectRemote("UpdateInternetStatus", false);
            }
            if (internetStatus == 0)//没有网络连接 0
            {
                Control.Ins.GatewayOnline = false;
                Control.Ins.IsRemote = false;
                MainPage.InternetStatus = 0;
            }
            else if (internetStatus == 1)//3,4G的网络连接 1
            {
                MainPage.InternetStatus = 1;
                Control.Ins.SearchLoaclGateway();
            }
            else if (internetStatus == 2)//WiFi网络
            {
                MainPage.InternetStatus = 2;
                Control.Ins.SearchLoaclGateway();
            }
        }
        #endregion
    }
}