From 488efb508eb0648773fe7b68e810e04bcd7ca075 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期五, 11 十二月 2020 15:58:15 +0800
Subject: [PATCH] 20201211
---
HDL_ON/Common/HDLCommon.cs | 472 ++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 325 insertions(+), 147 deletions(-)
diff --git a/HDL_ON/Common/HDLCommon.cs b/HDL_ON/Common/HDLCommon.cs
index 95bf73c..963549a 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,306 @@
#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
+
+ #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;
+ }
+ }
+ #endregion
}
}
--
Gitblit v1.8.0