From 631f94758c3cb42abcdda8094e77895f376eff16 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 11 一月 2021 14:53:43 +0800
Subject: [PATCH] 2021-1-12-3

---
 HDL_ON/Common/HDLCommon.cs |  268 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 264 insertions(+), 4 deletions(-)

diff --git a/HDL_ON/Common/HDLCommon.cs b/HDL_ON/Common/HDLCommon.cs
index d947849..4238f09 100644
--- a/HDL_ON/Common/HDLCommon.cs
+++ b/HDL_ON/Common/HDLCommon.cs
@@ -4,6 +4,9 @@
 using HDL_ON.UI.CSS;
 using HDL_ON.DAL.Server;
 using HDL_ON.UI;
+using HDL_ON.Entity;
+using System.Threading;
+using HDL_ON.DriverLayer;
 
 namespace HDL_ON
 {
@@ -13,6 +16,11 @@
     /// </summary>
     public class HDLCommon
     {
+        /// <summary>
+        /// 鏀跺埌鎺ㄩ�丄ction浜嬩欢
+        /// </summary>
+        public static Action GetPushMessageAction;
+
         #region 鈻� 鍙橀噺澹版槑___________________________
         /// <summary>
         /// 閫氱敤鏂规硶
@@ -68,7 +76,7 @@
 
         #endregion
 
-        #region 妫�娴嬫洿鏂�
+        #region 鈻� 妫�娴嬫洿鏂癬______________________
         /// <summary>
         /// 妫�娴嬫洿鏂扮嚎绋�
         /// </summary>
@@ -165,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)
             {
@@ -178,8 +186,8 @@
 
                 Action cancelAction = () =>
                 {
-                    UserInfo.Current.IgnoreUpdateVersion = mUpdateDialogInfo.NewVersion;
-                    UserInfo.Current.SaveUserInfo();
+                    OnAppConfig.Instance.IgnoreUpdateVersion = mUpdateDialogInfo.NewVersion;
+                    OnAppConfig.Instance.SaveConfig();
                 };
 
                 //1鎻愮ず鏇存柊
@@ -221,5 +229,257 @@
         }
 
         #endregion
+
+        ///// <summary>
+        ///// 鎭㈠浣忓畢
+        ///// 2020-12-03 寰呮祴璇曟湭妫�娴�
+        ///// </summary>
+        //public void RestoreHomeBackup(string RegionID)
+        //{
+        //    var isExist = FileUtils.ExistRegion(RegionID);
+        //    if (isExist)
+        //    {
+        //        //瀛樺湪鍒欐仮澶�
+        //        string newRegionRootPath = FileUtils.CreateRegionBackup(RegionID);
+        //        FileUtils.RestoreRegionFiles(newRegionRootPath);
+        //    }
+        //}
+
+        #region 鈻� 鎺ㄩ�佸鐞哶______________________
+        /// <summary>
+        /// 鎺ㄩ�佹秷鎭鐞�
+        /// </summary>
+        /// <param name="jpushMessageInfo"></param>
+        public void AdjustPushMessage(JPushMessageInfo jpushMessageInfo)
+        {
+            try
+            {
+                if (jpushMessageInfo.Extras != null && jpushMessageInfo.Extras.Contains("OffLine"))
+                {
+                    Shared.Application.RunOnMainThread(() =>
+                    {
+                        ////璐﹀彿鍦ㄥ埆澶勭櫥闄嗭紝琚涪涓嬬嚎 璺宠浆鍒扮櫥褰曢〉闈�
+                        //new Alert(Language.StringByID(StringId.Tip), Language.StringByID(StringId.LoggedOnOtherDevices), Language.StringByID(StringId.Close)).Show();
+                        //閫�鍑虹櫥褰曟搷浣�
+                        CheckLogout();
+
+                    });
+                    return;
+                }
+                else
+                {
+                    Shared.Application.RunOnMainThread(() =>
+                    {
+                        GetPushMessageAction?.Invoke();
+                        //鎶ヨ鎺ㄩ�佹墠寮圭獥鎻愮ず锛坢essageType鍖呭惈Alarm鍏抽敭瀛楃殑锛�
+                        if (jpushMessageInfo.messageType != null && jpushMessageInfo.messageType.Contains("Alarm"))
+                        {
+                            //鎶ヨ鎺ㄩ�佸脊绐楁彁绀�
+                            ShowAlarmPushMessage(jpushMessageInfo);
+                            //new Alert(jpushMessageInfo.Title, jpushMessageInfo.Content, Language.StringByID(StringId.Close)).Show();
+                        }
+                       
+                    });
+                    return;
+                }
+            }
+            catch
+            {
+
+            }
+        }
+
+        /// <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;
+//#endif
+
+            Logout();
+        }
+
+        /// <summary>
+        /// 閫�鍑虹櫥褰曟搷浣�
+        /// </summary>
+        public void Logout()
+        {
+            //鍔犺浇Loading鏁堟灉
+            var waitPage = new Loading();
+            MainPage.BaseView.AddChidren(waitPage);
+            waitPage.Start(Language.StringByID(StringId.PleaseWait));
+
+            new Thread(() =>
+            {
+                try
+                {
+                    //2.娉ㄩ攢鎺ㄩ��
+                    new HttpServerRequest().SignOutPush();
+                    //3.璺宠浆鐧诲綍椤甸潰
+                    UserInfo.Current.LastTime = DateTime.MinValue;
+                    UserInfo.Current.SaveUserInfo();
+                    DB_ResidenceData.Instance.EixtAccount();
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log($"xxx:{ex.Message}");
+                }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        if (waitPage != null)
+                        {
+                            waitPage.RemoveFromParent();
+                            waitPage = null;
+                        }
+                        MainPage.GoLoginPage(UserInfo.Current);
+                    });
+                }
+            }).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 鈻� 甯哥敤鏂规硶_______________________
+        /// <summary>
+        /// 璁剧疆涓嬪垝绾挎寜閽姸鎬�
+        /// 缁熶竴灏佽璁剧疆鏂规硶
+        /// </summary>
+        /// <param name="button">涓嬪垝绾挎寜閽�</param>
+        /// <param name="bottomLineType">鐘舵��</param>
+        public void BottomLineShowType(Button button, BottomLineType bottomLineType)
+        {
+            switch (bottomLineType)
+            {
+                case BottomLineType.GotFocus:
+                    button.BackgroundColor = CSS_Color.MainColor;
+                    button.Height = Application.GetRealHeight(2);
+                    break;
+                case BottomLineType.Error:
+                    button.BackgroundColor = CSS_Color.AuxiliaryColor2;
+                    button.Height = Application.GetRealHeight(2);
+                    break;
+                case BottomLineType.Normal:
+                    button.BackgroundColor = CSS_Color.DividingLineColor;
+                    button.Height = Application.GetRealHeight(1);
+                    break;
+                default:
+                    button.BackgroundColor = CSS_Color.DividingLineColor;
+                    button.Height = Application.GetRealHeight(1);
+                    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()}");
+            //缃戠粶鐘舵�佸彉鍖� 閲嶇疆缃戝叧鐘舵�侀噸鏂版悳绱�
+            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
     }
 }

--
Gitblit v1.8.0