From e87985ec1dcb69beedaf9f95e8e7aba14b7c08d6 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期三, 09 十二月 2020 18:50:14 +0800 Subject: [PATCH] 2020-12-09 1.信息中心,增加下划线和点击Alter提醒详情。 --- HDL_ON/Common/HDLCommon.cs | 442 ++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 295 insertions(+), 147 deletions(-) diff --git a/HDL_ON/Common/HDLCommon.cs b/HDL_ON/Common/HDLCommon.cs index 95bf73c..47cc846 100644 --- a/HDL_ON/Common/HDLCommon.cs +++ b/HDL_ON/Common/HDLCommon.cs @@ -2,30 +2,37 @@ using Shared; using HDL_ON; using HDL_ON.UI.CSS; +using HDL_ON.DAL.Server; +using HDL_ON.UI; +using HDL_ON.Entity; namespace HDL_ON { + /// <summary> + /// HDLCommon + /// 鏆傛椂娌$敤 + /// </summary> public class HDLCommon { - #region 鈻� 鍙橀噺澹版槑___________________________ - /// <summary> - /// 閫氱敤鏂规硶 - /// </summary> - private static HDLCommon m_Current = null; - /// <summary> - /// 閫氱敤鏂规硶 - /// </summary> - public static HDLCommon Current - { - get - { - if (m_Current == null) - { - m_Current = new HDLCommon(); - } - return m_Current; - } - } + #region 鈻� 鍙橀噺澹版槑___________________________ + /// <summary> + /// 閫氱敤鏂规硶 + /// </summary> + private static HDLCommon m_Current = null; + /// <summary> + /// 閫氱敤鏂规硶 + /// </summary> + public static HDLCommon Current + { + get + { + if (m_Current == null) + { + m_Current = new HDLCommon(); + } + return m_Current; + } + } #endregion #region 鈻� Alter寮圭獥鎻愮ず_______________________ @@ -46,7 +53,8 @@ public void ShowActionAlert(string mes, Action okAction) { Alert alert = new Alert("", mes, Language.StringByID(StringId.Cancel), Language.StringByID(StringId.Confirm)); - alert.ResultEventHandler += (sender2, e2) => { + alert.ResultEventHandler += (sender2, e2) => + { if (e2) { okAction?.Invoke(); @@ -58,136 +66,276 @@ #endregion #region 鈻� 閫氱敤Dialog_______________________ - /// <summary> - /// 鍔犺浇鎻愮ずDialog - /// </summary> - /// <param name="titleId"></param> - /// <param name="msgId"></param> - /// <param name="callBackAction"></param> - void ShowConfirmDialogBase(int titleId, int msgId, Action okAction, Action cancelAction, int cancelID = StringId.Cancel, int confirmID = StringId.Confirm) - { - Dialog dialog = new Dialog() - { - BackgroundColor = CSS_Color.DialogTransparentColor1, - }; - FrameLayout contentView = new FrameLayout() - { - Gravity = Gravity.Center, - Width = Application.GetRealWidth(270), - Height = Application.GetRealHeight(140), - BackgroundColor = CSS_Color.MainBackgroundColor, - BorderColor = 0x00000000, - BorderWidth = 0, - Radius = (uint)Application.GetMinRealAverage(10), - }; - dialog.AddChidren(contentView); - - Button btnTitle = new Button() - { - Y = Application.GetRealHeight(16), - Height = Application.GetRealHeight(30), - TextColor = CSS_Color.MainColor, - TextSize = CSS_FontSize.SubheadingFontSize, - TextAlignment = TextAlignment.Center, - IsBold = true, - TextID = titleId, - }; - contentView.AddChidren(btnTitle); - - Button btnMsg = new Button() - { - Gravity = Gravity.CenterHorizontal, - Height = Application.GetRealHeight(25), - Y = btnTitle.Bottom, - Width = Application.GetRealHeight(200), - TextAlignment = TextAlignment.Center, - TextColor = CSS_Color.TextualColor, - TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - TextID = msgId, - }; - contentView.AddChidren(btnMsg); - - Button btnLine = new Button() - { - Y = Application.GetRealHeight(96), - Height = Application.GetRealHeight(1), - Width = Application.GetRealWidth(270 / 2), - BackgroundColor = CSS_Color.DividingLineColor, - }; - contentView.AddChidren(btnLine); - - Button btnCancel = new Button() - { - Y = btnLine.Bottom, - Width = Application.GetRealWidth(135), - Height = Application.GetRealHeight(43), - TextAlignment = TextAlignment.Center, - TextColor = CSS_Color.TextualColor, - TextSize = CSS_FontSize.SubheadingFontSize, - TextID = cancelID, - }; - contentView.AddChidren(btnCancel); - - Button btnConfirm = new Button() - { - X = btnCancel.Right, - Y = btnLine.Y, - Width = Application.GetRealWidth(135), - Height = Application.GetRealHeight(45), - TextAlignment = TextAlignment.Center, - //TextColor = CSS_Color.TextualColor, - TextSize = CSS_FontSize.SubheadingFontSize, - TextColor = CSS_Color.MainBackgroundColor, - BackgroundColor = CSS_Color.MainColor, - TextID = confirmID, - }; - contentView.AddChidren(btnConfirm); - //渚嬶細鍙充笅鍦嗚 澶у皬涓�50 - int mRectCornerID = HDLUtils.RectCornerBottomRight; - btnConfirm.SetCornerWithSameRadius((uint)Application.GetMinRealAverage(10), mRectCornerID); - dialog.Show(); - btnCancel.MouseUpEventHandler += (sender, e) => - { - dialog.Close(); - cancelAction?.Invoke(); - }; - - btnConfirm.MouseUpEventHandler += (sender, e) => - { - dialog.Close(); - okAction?.Invoke(); - }; - - } - - /// <summary> - /// 鍔犺浇鎻愮ずDialog - /// </summary> - /// <param name="titleId"></param> - /// <param name="msgId"></param> - /// <param name="callBackAction"></param> - public void ShowConfirmDialog(int titleId, int msgId, Action okAction, Action cancelAction = null) - { - ShowConfirmDialogBase(titleId, msgId, okAction, cancelAction); - } - - /// <summary> - /// 鍔犺浇鎻愮ずDialog - /// 鍙互鑷畾涔夋寜閽枃瀛� - /// </summary> - /// <param name="titleId"></param> - /// <param name="msgId"></param> - /// <param name="okAction"></param> - /// <param name="cancelAction"></param> - /// <param name="cancelID"></param> - /// <param name="confirmID"></param> - public void ShowConfirmDialog(int titleId, int msgId, Action okAction, Action cancelAction, int cancelID, int confirmID) - { - ShowConfirmDialogBase(titleId, msgId, okAction, cancelAction, cancelID, confirmID); - } #endregion + #region 妫�娴嬫洿鏂� + /// <summary> + /// 妫�娴嬫洿鏂扮嚎绋� + /// </summary> + public void CheckIfNeedForceUpdate() + { + System.Threading.Tasks.Task.Run(() => + { + try + { + var revertObj = new HttpServerRequest().CheckAppVersion(); + if (revertObj.Code == StateCode.SUCCESS) + { + if (revertObj.Data != null) + { + var appVersionRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AppVersionRes>(revertObj.Data.ToString()); + if (appVersionRes != null) + { + + 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 + { + Utlis.WriteLine("璇锋眰澶辫触"); + } + } + catch (Exception ex) + { + //Shared.Utlis.WriteLine (ex.ToString ()); + } + finally + { + + } + + }); + + } + + /// <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(UpdateDialogInfo mUpdateDialogInfo) + { + // 1.1 娌℃湁鏇存柊 杩斿洖 + if (mUpdateDialogInfo.UpdateType == 0) return; + // 1.2 鏈夋柊鐗堟湰浣嗘槸蹇界暐杩� 杩斿洖 + if (mUpdateDialogInfo.UpdateType == 1 && (UserInfo.Current.IgnoreUpdateVersion == mUpdateDialogInfo.NewVersion)) return; + // 2.1 鏈夋柊鐗堟湰娌℃湁蹇界暐杩� 鎻愮ず鏇存柊 + if (mUpdateDialogInfo.UpdateType == 1) + { + Action okAction = () => + { + if (string.IsNullOrEmpty(mUpdateDialogInfo.NewVersionUrl)) return; + + HDLUtils.OpenUrl(mUpdateDialogInfo.NewVersionUrl); + }; + + Action cancelAction = () => + { + UserInfo.Current.IgnoreUpdateVersion = mUpdateDialogInfo.NewVersion; + UserInfo.Current.SaveUserInfo(); + }; + + //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(() => + { + new Alert(jpushMessageInfo.Title, jpushMessageInfo.Content, Language.StringByID(StringId.Close)).Show(); + }); + return; + } + } + catch + { + + } + } + + /// <summary> + /// 閫�鍑虹櫥褰曟搷浣� + /// </summary> + public void CheckLogout() + { +#if DEBUG + return; +#endif + //鏈櫥褰曚笉鐢ㄥ鐞� + if (!UserInfo.Current.IsLogin) return; + + Logout(); + } + + /// <summary> + /// 閫�鍑虹櫥褰曟搷浣� + /// </summary> + public void Logout() + { + new System.Threading.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 + } + catch (Exception ex) + { + MainPage.Log($"xxx:{ex.Message}"); + } + 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(() => + { + MainPage.GoLoginPage(UserInfo.Current); + DB_ResidenceData.residenceData.EixtAccount(); + }); + } + }).Start(); + } + + #endregion } } -- Gitblit v1.8.0