From 01c46e7bfe9aa8fb20b29f70c83c03a307af548a Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 22 十二月 2020 16:35:16 +0800 Subject: [PATCH] 2020-12-22 1.更新。 --- HDL_ON/Common/HDLCommon.cs | 560 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 349 insertions(+), 211 deletions(-) diff --git a/HDL_ON/Common/HDLCommon.cs b/HDL_ON/Common/HDLCommon.cs index c7a4567..78e05e0 100644 --- a/HDL_ON/Common/HDLCommon.cs +++ b/HDL_ON/Common/HDLCommon.cs @@ -3,6 +3,10 @@ using HDL_ON; 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 { @@ -12,6 +16,11 @@ /// </summary> public class HDLCommon { + /// <summary> + /// 鏀跺埌鎺ㄩ�丄ction浜嬩欢 + /// </summary> + public static Action GetPushMessageAction; + #region 鈻� 鍙橀噺澹版槑___________________________ /// <summary> /// 閫氱敤鏂规硶 @@ -67,36 +76,53 @@ #endregion - #region 妫�娴嬫洿鏂� + #region 鈻� 妫�娴嬫洿鏂癬______________________ /// <summary> /// 妫�娴嬫洿鏂扮嚎绋� /// </summary> public void CheckIfNeedForceUpdate() { - // //return; System.Threading.Tasks.Task.Run(() => { try { - var requestObj = new ForceUpdateObj() - { - - - }; -#if Android - requestObj.DeviceType = 1; -#endif - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj); - var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_CheckAppVersion, requestJson); + var revertObj = new HttpServerRequest().CheckAppVersion(); if (revertObj.Code == StateCode.SUCCESS) { - var mForceUpdateInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<ForceUpdateInfo>(revertObj.Data.ToString()); - if (mForceUpdateInfo != null) + if (revertObj.Data != null) { - Application.RunOnMainThread(() => + var appVersionRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AppVersionRes>(revertObj.Data.ToString()); + if (appVersionRes != null) { - ShowForceUpdateDialog(mForceUpdateInfo); - }); + + var mForceUpdateInfo = new UpdateDialogInfo() + { + UpdateType = appVersionRes.isEnforce ? 2 : 1, + NewVersion = appVersionRes.version, + NewVersionUrl = appVersionRes.androidUrl + }; +#if __IOS__ + mForceUpdateInfo.NewVersionUrl = appVersionRes.iosUrl; +#endif + //瑙f瀽鏇存柊鍐呭璇︽儏 + var reasonStrJson = GetReasonStrJson(appVersionRes.updateDescription); + if (reasonStrJson != null) + { + if (Language.CurrentLanguage == "Chinese") + { + mForceUpdateInfo.ReasonStr = reasonStrJson.Chinese; + } + else + { + mForceUpdateInfo.ReasonStr = reasonStrJson.English; + } + } + + Application.RunOnMainThread(() => + { + ShowForceUpdateDialog(mForceUpdateInfo); + }); + } } } else @@ -115,228 +141,340 @@ }); + } - //ForceUpdateInfo mForceUpdateInfo = new ForceUpdateInfo () { - // IsNeedForceUpdate = true, - // AndroidUrl = "https://shouji.baidu.com/software/26667787.html", - // AndroidUrl_En = "https://shouji.baidu.com/software/26667787.html", - // IosUrl = "https://apps.apple.com/cn/app/hdl-on/id1029839624", - // ReasonStr = "1.鍙戠幇鏂扮増鏈珹pp,褰撳墠鐗堟湰宸插仠鐢�,椹笂鏇存柊!\n2.璇蜂笅杞藉拰瀹夎鏂扮増鏈�!", - // ReasonStr_En = "1. Discover the new version of the App, the current version is disabled, update now! \n2. Please download and install the new version!" - //}; - - //ShowForceUpdateDialog (mForceUpdateInfo); + /// <summary> + /// + /// </summary> + /// <param name="jsonStr"></param> + /// <returns></returns> + public ReasonStrJson GetReasonStrJson(string jsonStr) + { + try + { + if (!string.IsNullOrEmpty(jsonStr)) + { + return Newtonsoft.Json.JsonConvert.DeserializeObject<ReasonStrJson>(jsonStr); + } + return null; + } + catch + { + return null; + } } /// <summary> /// 鎻愮ず寮哄埗鏇存柊Dialog /// 鐐瑰嚮纭璺宠浆娴忚鍣� /// </summary> - public void ShowForceUpdateDialog(ForceUpdateInfo mForceUpdateInfo) + public void ShowForceUpdateDialog(UpdateDialogInfo mUpdateDialogInfo) { - - //if (!mForceUpdateInfo.IsNeedForceUpdate) return; - - if (mForceUpdateInfo.UpdateType == 0) return; - - if (mForceUpdateInfo.UpdateType == 1 && (UserInfo.Current.IgnoreUpdateVersion == mForceUpdateInfo.NewVersion)) return; - - Dialog dialog = new Dialog(); - - FrameLayout dialogBodyView = new FrameLayout() + // 1.1 娌℃湁鏇存柊 杩斿洖 + if (mUpdateDialogInfo.UpdateType == 0) return; + // 1.2 鏈夋柊鐗堟湰浣嗘槸蹇界暐杩� 杩斿洖 + if (mUpdateDialogInfo.UpdateType == 1 && (OnAppConfig.Instance.IgnoreUpdateVersion == mUpdateDialogInfo.NewVersion)) return; + // 2.1 鏈夋柊鐗堟湰娌℃湁蹇界暐杩� 鎻愮ず鏇存柊 + if (mUpdateDialogInfo.UpdateType == 1) { - Gravity = Gravity.Center, - Width = Application.GetRealWidth(500), - Height = Application.GetRealHeight(500), - BackgroundColor = 0xFF000000, - Radius = (uint)Application.GetRealHeight(10), - //BorderColor = SkinStyle.Current.Transparent, - BorderWidth = 0, - }; - dialog.AddChidren(dialogBodyView); - - Button btnTitle = new Button() - { - Height = Application.GetRealHeight(80), - BackgroundColor = 0x00000000, - TextAlignment = TextAlignment.Center, - TextID = StringId.Tip, - TextColor = 0xFFFFFFFF - }; - dialogBodyView.AddChidren(btnTitle); - - - FrameLayout centerView = new FrameLayout() - { - Y = Application.GetRealHeight(80), - Height = Application.GetRealHeight(340), - BackgroundColor = 0xFFFFFFFF, - }; - dialogBodyView.AddChidren(centerView); - - Button btnMessage = new Button() - { - Gravity = Gravity.CenterHorizontal, - Y = Application.GetRealHeight(20), - Width = Application.GetRealWidth(400), - //Height = Application.GetRealHeight (300), - //Text = mForceUpdateInfo.ReasonStr, - TextAlignment = TextAlignment.TopLeft, - //TextColor = SkinStyle.Current.TextColor, - IsMoreLines = true - }; - centerView.AddChidren(btnMessage); - - - FrameLayout bottomView = new FrameLayout() - { - Y = Application.GetRealHeight(420), - Height = Application.GetRealHeight(80), - BackgroundColor = 0xFFFFFFFF, - - }; - dialogBodyView.AddChidren(bottomView); - - var mAndroidUrl = mForceUpdateInfo.AndroidUrl; - if (Language.CurrentLanguage == "Chinese") - { - btnMessage.Text = mForceUpdateInfo.ReasonStr; - - } - else - { - btnMessage.Text = mForceUpdateInfo.ReasonStr_En; - mAndroidUrl = mForceUpdateInfo.AndroidUrl_En; - } - - - if (mForceUpdateInfo.UpdateType == 1) - { - #region 鎻愮ず鏇存柊 - Button btnNext = new Button() + Action okAction = () => { - Width = Application.GetRealWidth(249), - TextID = StringId.Ignore, - TextAlignment = TextAlignment.Center, - TextColor = 0xFFFFFFFF, - BackgroundColor = 0xFF000000, - //Text = "蹇界暐" + if (string.IsNullOrEmpty(mUpdateDialogInfo.NewVersionUrl)) return; + + HDLUtils.OpenUrl(mUpdateDialogInfo.NewVersionUrl); }; - bottomView.AddChidren(btnNext); - btnNext.MouseUpEventHandler += (sender2, e2) => + + Action cancelAction = () => { - //UserConfig.Instance.IfIgnoreUpdate = true; - UserInfo.Current.IgnoreUpdateVersion = mForceUpdateInfo.NewVersion; + OnAppConfig.Instance.IgnoreUpdateVersion = mUpdateDialogInfo.NewVersion; + OnAppConfig.Instance.SaveConfig(); + }; + + //1鎻愮ず鏇存柊 + var dialog = new UpdateTipDialog(); + var tipStr = Language.StringByID(StringId.VersionNumber) + mUpdateDialogInfo.NewVersion; + dialog.ShowUpdateDialog(Language.StringByID(StringId.DiscoverNewVersion), tipStr, mUpdateDialogInfo.ReasonStr, okAction, cancelAction); + + } + else if (mUpdateDialogInfo.UpdateType == 2) //2.2 闇�瑕佸己鍒舵洿鏂� + { + //2寮哄埗鏇存柊 + //"1.鍙戠幇鏂扮増鏈珹pp,褰撳墠鐗堟湰宸插仠鐢�,椹笂鏇存柊!\n2.璇蜂笅杞藉拰瀹夎鏂扮増鏈�!....." + Action okAction = () => + { + if (string.IsNullOrEmpty(mUpdateDialogInfo.NewVersionUrl)) + { + Utlis.ShowTip(Language.StringByID(StringId.DataExceptionPleaseTryAgain)); + return; + }; + + HDLUtils.OpenUrl(mUpdateDialogInfo.NewVersionUrl); + }; + + //1鎻愮ず鏇存柊 + var dialog = new UpdateTipDialog(); + var tipStr = Language.StringByID(StringId.VersionNumber) + mUpdateDialogInfo.NewVersion; + dialog.ShowForcedUpdateDialog(Language.StringByID(StringId.DiscoverNewVersion), tipStr, mUpdateDialogInfo.ReasonStr, okAction); + } + else //3. 鍙渶鎻愮ず + { + //3鎻愮ず閫氱煡 + Action okAction = () => + { + + }; + var dialog = new UpdateTipDialog(); + dialog.ShowTipDialog(Language.StringByID(StringId.Tip), mUpdateDialogInfo.ReasonStr, okAction); + } + } + + #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; + +#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(); - dialog.Close(); - }; - - Button btnSave = new Button() + DB_ResidenceData.Instance.EixtAccount(); + } + catch (Exception ex) { - X = btnNext.Right + 1, - Width = Application.GetRealWidth(250), - TextID = StringId.Update, - TextAlignment = TextAlignment.Center, - TextColor = 0xFFFFFFFF, - BackgroundColor = 0xFF000000, - //Text = "鏇存柊" - }; - bottomView.AddChidren(btnSave); - - btnSave.MouseUpEventHandler += (sender2, e2) => + MainPage.Log($"xxx:{ex.Message}"); + } + finally { - dialog.Close(); - try + Application.RunOnMainThread(() => { + if (waitPage != null) + { + waitPage.RemoveFromParent(); + waitPage = null; + } + MainPage.GoLoginPage(UserInfo.Current); + }); + } + }).Start(); + } -#if __IOS__ - HDLUtils.OpenUrl(mForceUpdateInfo.IosUrl); - //UIApplication.SharedApplication.OpenUrl (new Foundation.NSUrl ("https://apps.apple.com/cn/app/hdl-on/id1029839624")); - -#elif Android - HDLUtils.OpenUrl(mAndroidUrl); - SharedMethod.SharedMethod.OpenUrl (mAndroidUrl); - //SharedMethod.SharedMethod.OpenUrl ("https://shouji.baidu.com/software/26667787.html"); - -#endif - } - catch - { - //璺宠浆涓嬭浇鍦板潃澶辫触 - Utlis.WriteLine("open url error"); - } - }; - - #endregion - - } - else if (mForceUpdateInfo.UpdateType == 2) + /// <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) { - #region 寮哄埗鏇存柊 - Button btnSave = new Button() - { - Width = Application.GetRealWidth(500), - TextID = StringId.Confirm, - TextAlignment = TextAlignment.Center, - TextColor = 0xFFFFFFFF, - BackgroundColor = 0xFF000000, + return; + } + + //璺宠浆淇℃伅涓績椤甸潰 + Action goAction = () => + { + //Dialog + alarmPushConfirmDialog = null; + Action backAction = () => { + }; - bottomView.AddChidren(btnSave); + var skipPage = new MessageCenterPage(); + MainPage.BasePageView.AddChidren(skipPage); + skipPage.LoadPage(backAction); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; - //var mAndroidUrl = mForceUpdateInfo.AndroidUrl; - //if (Language.CurrentLanguage == "Chinese") { - // btnMessage.Text = mForceUpdateInfo.ReasonStr; + //鍙栨秷浜嬩欢 + Action cancelAction = () => + { + alarmPushConfirmDialog = null; + }; - //} else { - // btnMessage.Text = mForceUpdateInfo.ReasonStr_En; - // mAndroidUrl = mForceUpdateInfo.AndroidUrl_En; - //} - - btnSave.MouseUpEventHandler += (sender2, e2) => - { - try - { - -#if __IOS__ - HDLUtils.OpenUrl(mForceUpdateInfo.IosUrl); - //UIApplication.SharedApplication.OpenUrl (new Foundation.NSUrl ("https://apps.apple.com/cn/app/hdl-on/id1029839624")); - -#elif Android - HDLUtils.OpenUrl(mAndroidUrl); - //SharedMethod.SharedMethod.OpenUrl ("https://shouji.baidu.com/software/26667787.html"); - -#endif - } - catch - { - //璺宠浆涓嬭浇鍦板潃澶辫触 - Utlis.WriteLine("open url error"); - } - }; - #endregion + //闃叉澶氭寮圭獥澶勭悊 + if (alarmPushConfirmDialog == null) + { + alarmPushConfirmDialog = new ConfirmDialog(); + alarmPushConfirmDialog.ShowDialog(Language.StringByID(StringId.Tip), jpushMessageInfo.Content, goAction, cancelAction, StringId.Cancel, StringId.LookOver); } else { - #region 鎻愮ず閫氱煡 - Button btnSave = new Button() - { - Width = Application.GetRealWidth(500), - TextID = StringId.Close, - TextAlignment = TextAlignment.Center, - TextColor = 0xFFFFFFFF, - BackgroundColor = 0xFF000000, - }; - bottomView.AddChidren(btnSave); + alarmPushConfirmDialog.RefreshDialog(Language.StringByID(StringId.Tip), jpushMessageInfo.Content, goAction, cancelAction, StringId.Cancel, StringId.LookOver); - btnSave.MouseUpEventHandler += (sender2, e2) => - { - dialog.Close(); - }; - #endregion } - dialog.Show(); } + + #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