using System;
using Shared;
using HDL_ON;
using HDL_ON.UI.CSS;
using HDL_ON.DAL.Server;
using HDL_ON.UI;
namespace HDL_ON
{
///
/// HDLCommon
/// 暂时没用
///
public class HDLCommon
{
#region ■ 变量声明___________________________
///
/// 通用方法
///
private static HDLCommon m_Current = null;
///
/// 通用方法
///
public static HDLCommon Current
{
get
{
if (m_Current == null)
{
m_Current = new HDLCommon();
}
return m_Current;
}
}
#endregion
#region ■ Alter弹窗提示_______________________
///
/// 弹窗提示
///
///
public void ShowAlert(string mes)
{
new Alert("", mes, Language.StringByID(StringId.Close)).Show();
}
///
/// 弹窗提示
///
/// 弹窗提示信息
/// 确认按钮事件
public void ShowActionAlert(string mes, Action okAction)
{
Alert alert = new Alert("", mes, Language.StringByID(StringId.Cancel), Language.StringByID(StringId.Confirm));
alert.ResultEventHandler += (sender2, e2) =>
{
if (e2)
{
okAction?.Invoke();
}
};
alert.Show();
}
#endregion
#region ■ 通用Dialog_______________________
#endregion
#region 检测更新
///
/// 检测更新线程
///
public void CheckIfNeedForceUpdate()
{
System.Threading.Tasks.Task.Run(() =>
{
try
{
var requestObj = new ForceUpdateObj()
{
LanguageType = Utlis.GetPostLanguageType()
};
#if __IOS__
requestObj.DeviceType = PhoneDeviceType.IOS.ToString();
#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(revertObj.Data.ToString());
if (mForceUpdateInfo != null)
{
Application.RunOnMainThread(() =>
{
ShowForceUpdateDialog(mForceUpdateInfo);
});
}
}
else
{
Utlis.WriteLine("请求失败");
}
}
catch (Exception ex)
{
//Shared.Utlis.WriteLine (ex.ToString ());
}
finally
{
}
});
}
///
/// 提示强制更新Dialog
/// 点击确认跳转浏览器
///
public void ShowForceUpdateDialog(ForceUpdateInfo mForceUpdateInfo)
{
// 1.1 没有更新 返回
if (mForceUpdateInfo.UpdateType == 0) return;
// 1.2 有新版本但是忽略过 返回
if (mForceUpdateInfo.UpdateType == 1 && (UserInfo.Current.IgnoreUpdateVersion == mForceUpdateInfo.NewVersion)) return;
// 2.1 有新版本没有忽略过 提示更新
if (mForceUpdateInfo.UpdateType == 1)
{
Action okAction = () =>
{
if (string.IsNullOrEmpty(mForceUpdateInfo.NewVersionUrl)) return;
HDLUtils.OpenUrl(mForceUpdateInfo.NewVersionUrl);
};
Action cancelAction = () =>
{
//UserInfo.Current.IgnoreUpdateVersion = mForceUpdateInfo.NewVersion;
//UserInfo.Current.SaveUserInfo();
};
//1提示更新
var dialog = new UpdateTipDialog();
var tipStr = Language.StringByID(StringId.VersionNumber) + mForceUpdateInfo.NewVersion;
dialog.ShowUpdateDialog(Language.StringByID(StringId.DiscoverNewVersion), tipStr, mForceUpdateInfo.ReasonStr, okAction, cancelAction);
}
else if (mForceUpdateInfo.UpdateType == 2) //2.2 需要强制更新
{
//2强制更新
//"1.发现新版本App,当前版本已停用,马上更新!\n2.请下载和安装新版本!....."
Action okAction = () =>
{
if (string.IsNullOrEmpty(mForceUpdateInfo.NewVersionUrl)) {
Utlis.ShowTip(Language.StringByID(StringId.DataExceptionPleaseTryAgain));
return;
};
HDLUtils.OpenUrl(mForceUpdateInfo.NewVersionUrl);
};
//1提示更新
var dialog = new UpdateTipDialog();
var tipStr = Language.StringByID(StringId.VersionNumber) + mForceUpdateInfo.NewVersion;
dialog.ShowForcedUpdateDialog(Language.StringByID(StringId.DiscoverNewVersion), tipStr, mForceUpdateInfo.ReasonStr, okAction);
}
else //3. 只需提示
{
//3提示通知
Action okAction = () =>
{
};
var dialog = new UpdateTipDialog();
dialog.ShowTipDialog(Language.StringByID(StringId.Tip), mForceUpdateInfo.ReasonStr, okAction);
}
}
#endregion
}
}