wei
2020-12-19 c5a873df96e4a797426e4dd5eafe5b43f7aea564
HDL_ON/Common/HDLCommon.cs
@@ -5,6 +5,8 @@
using HDL_ON.DAL.Server;
using HDL_ON.UI;
using HDL_ON.Entity;
using System.Threading;
using HDL_ON.DriverLayer;
namespace HDL_ON
{
@@ -14,6 +16,11 @@
    /// </summary>
    public class HDLCommon
    {
        /// <summary>
        /// 收到推送Action事件
        /// </summary>
        public static Action GetPushMessageAction;
        #region ■ 变量声明___________________________
        /// <summary>
        /// 通用方法
@@ -166,7 +173,7 @@
            // 1.1 没有更新 返回
            if (mUpdateDialogInfo.UpdateType == 0) return;
            // 1.2 有新版本但是忽略过 返回
            if (mUpdateDialogInfo.UpdateType == 1 && (UserInfo.Current.IgnoreUpdateVersion == mUpdateDialogInfo.NewVersion)) return;
            if (mUpdateDialogInfo.UpdateType == 1 && (OnAppConfig.Instance.IgnoreUpdateVersion == mUpdateDialogInfo.NewVersion)) return;
            // 2.1 有新版本没有忽略过 提示更新
            if (mUpdateDialogInfo.UpdateType == 1)
            {
@@ -179,8 +186,8 @@
                Action cancelAction = () =>
                {
                    UserInfo.Current.IgnoreUpdateVersion = mUpdateDialogInfo.NewVersion;
                    UserInfo.Current.SaveUserInfo();
                    OnAppConfig.Instance.IgnoreUpdateVersion = mUpdateDialogInfo.NewVersion;
                    OnAppConfig.Instance.SaveConfig();
                };
                //1提示更新
@@ -255,6 +262,7 @@
                        new Alert(Language.StringByID(StringId.Tip), Language.StringByID(StringId.LoggedOnOtherDevices), Language.StringByID(StringId.Close)).Show();
                        //退出登录操作
                        CheckLogout();
                    });
                    return;
                }
@@ -262,7 +270,12 @@
                {
                    Shared.Application.RunOnMainThread(() =>
                    {
                        new Alert(jpushMessageInfo.Title, jpushMessageInfo.Content, Language.StringByID(StringId.Close)).Show();
                        //报警推送才弹窗提示(messageType包含Alarm关键字的)
                        if (jpushMessageInfo.messageType != null && jpushMessageInfo.messageType.Contains("Alarm"))
                        {
                            new Alert(jpushMessageInfo.Title, jpushMessageInfo.Content, Language.StringByID(StringId.Close)).Show();
                        }
                        GetPushMessageAction?.Invoke();
                    });
                    return;
                }
@@ -281,6 +294,10 @@
            //未登录不用处理
            if (!UserInfo.Current.IsLogin) return;
#if DEBUG
            return;
#endif
            Logout();
        }
@@ -289,26 +306,21 @@
        /// </summary>
        public void Logout()
        {
            new System.Threading.Thread(() =>
            //加载Loading效果
            var waitPage = new Loading();
            MainPage.BasePageView.AddChidren(waitPage);
            waitPage.Start(Language.StringByID(StringId.PleaseWait));
            new Thread(() =>
            {
                try
                {
                    #region 保存本地数据至文件夹
                    //string oldRegionRootPath = FileUtils.CreateRegionBackup(DB_ResidenceData.residenceData.CurReginID.ToString());
                    ////清空之前的住宅文件
                    //FileUtils.DeleteRegionFiles(oldRegionRootPath);
                    //var backuplist = FileUtils.ReadFiles();
                    ////移动文件
                    //foreach (var fileName in backuplist)
                    //{
                    //    System.IO.FileInfo fileInfo = new System.IO.FileInfo(FileUtils.RootPath + fileName);
                    //    if (fileInfo.Exists)
                    //    {
                    //        fileInfo.MoveTo(oldRegionRootPath + fileName);
                    //        MainPage.Log("move file : " + fileName);
                    //    }
                    //}
                    #endregion
                    //2.注销推送
                    new HttpServerRequest().SignOutPush();
                    //3.跳转登录页面
                    UserInfo.Current.LastTime = DateTime.MinValue;
                    UserInfo.Current.SaveUserInfo();
                    DB_ResidenceData.Instance.EixtAccount();
                }
                catch (Exception ex)
                {
@@ -316,22 +328,18 @@
                }
                finally
                {
                    //FileUtils.DeleteAllFile();
                    //2.注销推送
                    new HttpServerRequest().SignOutPush();
                    //3.跳转登录页面
                    UserInfo.Current.LastTime = DateTime.MinValue;
                    UserInfo.Current.headImagePagePath = "LoginIcon/2.png";//重置用户头像
                    UserInfo.Current.SaveUserInfo();
                    Shared.Application.RunOnMainThread(() =>
                    Application.RunOnMainThread(() =>
                    {
                        if (waitPage != null)
                        {
                            waitPage.RemoveFromParent();
                            waitPage = null;
                        }
                        MainPage.GoLoginPage(UserInfo.Current);
                        DB_ResidenceData.residenceData.EixtAccount();
                    });
                }
            }).Start();
        }
        #endregion
        #region ■ 常用方法_______________________
@@ -363,6 +371,46 @@
                    break;
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public string GetUserName(string userName)
        {
            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()}");
            if (internetStatus == 0)//没有网络连接 0
            {
                Control.Ins.GatewayOnline = false;
                Control.Ins.IsRemote = false;
                MainPage.InternetStatus = 0;
            }
            else if (internetStatus == 1)//3,4G的网络连接 1
            {
                Control.Ins.SearchLoaclGateway();
                MainPage.InternetStatus = 1;
            }
            else if (internetStatus == 2)//WiFi网络
            {
                Control.Ins.SearchLoaclGateway();
                MainPage.InternetStatus = 2;
            }
        }
        #endregion
    }
}