HDL_ON/Common/HDLCommon.cs
@@ -2,6 +2,7 @@
using Shared;
using HDL_ON;
using HDL_ON.UI.CSS;
using HDL_ON.DAL.Server;
namespace HDL_ON
{
@@ -11,25 +12,25 @@
    /// </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弹窗提示_______________________
@@ -50,7 +51,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();
@@ -62,9 +64,279 @@
        #endregion
        #region ■ 通用Dialog_______________________
        #endregion
        #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);
                    if (revertObj.Code == StateCode.SUCCESS)
                    {
                        var mForceUpdateInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<ForceUpdateInfo>(revertObj.Data.ToString());
                        if (mForceUpdateInfo != null)
                        {
                            Application.RunOnMainThread(() =>
                            {
                                ShowForceUpdateDialog(mForceUpdateInfo);
                            });
                        }
                    }
                    else
                    {
                        Utlis.WriteLine("请求失败");
                    }
                }
                catch (Exception ex)
                {
                    //Shared.Utlis.WriteLine (ex.ToString ());
                }
                finally
                {
                }
            });
            //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.发现新版本App,当前版本已停用,马上更新!\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>
        /// 提示强制更新Dialog
        /// 点击确认跳转浏览器
        /// </summary>
        public void ShowForceUpdateDialog(ForceUpdateInfo mForceUpdateInfo)
        {
            //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()
            {
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(500),
                Height = Application.GetRealHeight(500),
                BackgroundColor = 0xFF000000,
                Radius = (uint)Application.GetRealWidth(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()
                {
                    Width = Application.GetRealWidth(249),
                    TextID = StringId.Ignore,
                    TextAlignment = TextAlignment.Center,
                    TextColor = 0xFFFFFFFF,
                    BackgroundColor = 0xFF000000,
                    //Text = "忽略"
                };
                bottomView.AddChidren(btnNext);
                btnNext.MouseUpEventHandler += (sender2, e2) =>
                {
                    //UserConfig.Instance.IfIgnoreUpdate = true;
                    UserInfo.Current.IgnoreUpdateVersion = mForceUpdateInfo.NewVersion;
                    UserInfo.Current.SaveUserInfo();
                    dialog.Close();
                };
                Button btnSave = new Button()
                {
                    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) =>
                {
                    dialog.Close();
                    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 (mAndroidUrl);
                    //SharedMethod.SharedMethod.OpenUrl ("https://shouji.baidu.com/software/26667787.html");
#endif
                    }
                    catch
                    {
                        //跳转下载地址失败
                        Utlis.WriteLine("open url error");
                    }
                };
                #endregion
            }
            else if (mForceUpdateInfo.UpdateType == 2)
            {
                #region 强制更新
                Button btnSave = new Button()
                {
                    Width = Application.GetRealWidth(500),
                    TextID = StringId.Confirm,
                    TextAlignment = TextAlignment.Center,
                    TextColor = 0xFFFFFFFF,
                    BackgroundColor = 0xFF000000,
                };
                bottomView.AddChidren(btnSave);
                //var mAndroidUrl = mForceUpdateInfo.AndroidUrl;
                //if (Language.CurrentLanguage == "Chinese") {
                //    btnMessage.Text = mForceUpdateInfo.ReasonStr;
                //} 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
            }
            else
            {
                #region 提示通知
                Button btnSave = new Button()
                {
                    Width = Application.GetRealWidth(500),
                    TextID = StringId.Close,
                    TextAlignment = TextAlignment.Center,
                    TextColor = 0xFFFFFFFF,
                    BackgroundColor = 0xFF000000,
                };
                bottomView.AddChidren(btnSave);
                btnSave.MouseUpEventHandler += (sender2, e2) =>
                {
                    dialog.Close();
                };
                #endregion
            }
            dialog.Show();
        }
        #endregion
    }
}