From f6e34a69f1d1e0b0b3a6252fe20acddca7fe56e5 Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期二, 17 三月 2020 15:43:44 +0800
Subject: [PATCH] 2020-03-17-1
---
ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs | 607 ++++++++++++++++++++++++++++++++----------------------
1 files changed, 360 insertions(+), 247 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs
index 824b65f..124ab42 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Abount/AbountForm.cs
@@ -12,46 +12,40 @@
/// </summary>
public class AbountForm : EditorCommonForm
{
- #region **鍙橀噺*****************************
+ #region 鈼� 鍙橀噺____________________________
/// <summary>
/// 鏄惁姝e湪鏇存柊涓�
/// </summary>
- public bool isUpdating=false;
+ public bool isUpdating;
/// <summary>
/// The web client.
/// </summary>
public WebClient webClient=new WebClient { };
/// <summary>
- /// 杩涘害鏉�
- /// </summary>
- public HorizontalSeekBar seekBar;
- /// <summary>
- /// 杩涘害鐧惧垎姣�
- /// </summary>
- public Button seekBarTitle;
- /// <summary>
- /// 鍙栨秷涓嬭浇鎸夐挳
- /// </summary>
- public Button cancelDownLoadBtn;
- /// <summary>
- /// 鏇存柊鎸夐挳
- /// </summary>
- public Button updateBtn;
- /// <summary>
/// 鏇存柊涓�
/// </summary>
public Button updatingBtn;
/// <summary>
- /// The instance.
+ /// distributedMark
/// </summary>
- public static AbountForm instance;
+ public string distributedMark;
+ /// <summary>
+ /// updateRow
+ /// </summary>
+ public DeviceInfoRow updateRow;
+ /// <summary>
+ /// 涓嬭浇瀹夊崜apk鐨刡yte闀垮害
+ /// </summary>
+ public long ApkBytesTotalLength = 0;
+
#endregion
+
/// <summary>
/// Initializes a new instance of the <see cref="T:Shared.Phone.UserCenter.Abount.AbountForm"/> class.
/// </summary>
public AbountForm()
{
- instance = this;
+
}
/// <summary>
/// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
@@ -59,7 +53,7 @@
public void ShowForm()
{
//璁剧疆鏍囬淇℃伅
- base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uVersionInformation));
+ base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAboutMe));
//鍒濆鍖栦腑閮ㄦ帶浠�
this.InitMiddleFrame();
}
@@ -69,30 +63,28 @@
public override void CloseFormBefore()
{
#if Android
- if(isUpdating==true)
- {
- var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.CancelUpdating), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
- alert.Show();
- alert.ResultEventHandler += (send, e) =>
- {
- if (e)
- {
- updateBtn.Visible = true;
+ //if (isUpdating == true)
+ //{
+ //var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.CancelUpdating), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
+ //alert.Show();
+ //alert.ResultEventHandler += (send, e) =>
+ //{
+ // if (e)
+ // {
SetDownLoadBtnNoVisible();
- CommonPage.CancelDownLoadApkAsync();
+ CancelDownLoadApkAsync();
base.CloseFormBefore();
- }
- else
- {
- return;
- }
- };
- }
- else
- {
- Phone.UserView.HomePage.Instance.ScrollEnabled = true;
- base.CloseFormBefore();
- }
+ //}
+ // else
+ // {
+ // return;
+ // }
+ // };
+ //}
+ //else
+ //{
+ // base.CloseFormBefore();
+ //}
#elif iOS
base.CloseFormBefore();
#endif
@@ -102,288 +94,288 @@
/// </summary>
private void InitMiddleFrame()
{
+ bodyFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
+ var logoFrameLayout = new FrameLayout
+ {
+ Height = Application.GetRealHeight(484),
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+ };
+ bodyFrameLayout.AddChidren(logoFrameLayout);
+
+ var logoBackground = new FrameLayout
+ {
+ Y = Application.GetRealHeight(104),
+ Width = Application.GetMinRealAverage(167),
+ Height = Application.GetMinRealAverage(167),
+ Gravity = Gravity.CenterHorizontal,
+ BackgroundColor = ZigbeeColor.Current.GXCButtonBlackSelectedColor,
+ Radius = (uint)Application.GetRealHeight(37),
+ };
+ logoFrameLayout.AddChidren(logoBackground);
+
var logoBtn = new Button()
{
- Width = Application.GetMinRealAverage(270),
- Height = Application.GetMinRealAverage(270),
- Y = Application.GetRealHeight(100),
- UnSelectedImagePath = "Logo/Logo.png",
- Gravity = Gravity.CenterHorizontal
+ Width = Application.GetMinRealAverage(144),
+ Height = Application.GetMinRealAverage(144),
+ UnSelectedImagePath = "Account/Logo_White.png",
+ Gravity = Gravity.Center
};
- bodyFrameLayout.AddChidren(logoBtn);
+ logoBackground.AddChidren(logoBtn);
var nameBtn = new Button()
{
- Width = Application.GetMinRealAverage(700),
- Height = Application.GetMinRealAverage(100),
- Y = Application.GetRealHeight(100)+logoBtn.Bottom,
+ Y = Application.GetRealHeight(294),
+ Width = Application.GetRealWidth(700),
+ Height = Application.GetRealHeight(60),
Gravity = Gravity.CenterHorizontal,
- Text="HDL Home",
- TextSize=20,
- TextColor=ZigbeeColor.Current.GXCTextBlackColor
+ Text = "HDL Home",
+ TextSize = 15,
+ TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor
};
- bodyFrameLayout.AddChidren(nameBtn);
+ logoFrameLayout.AddChidren(nameBtn);
var versionBtn = new Button()
{
- Width = Application.GetMinRealAverage(700),
- Height = Application.GetMinRealAverage(100),
- Y = Application.GetRealHeight(10) + nameBtn.Bottom,
+ Y = Application.GetRealHeight(366),
+ Width = Application.GetRealWidth(700),
+ Height = Application.GetRealHeight(50),
Gravity = Gravity.CenterHorizontal,
- Text = $"v{CommonPage.CodeIDString}",
- TextSize = 14,
- TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor
+ Text = $"{Language.StringByID(R.MyInternationalizationString.VersionCode)} {CommonPage.CodeIDString}",
+ TextSize = 12,
+ TextColor = ZigbeeColor.Current.GXCTextGrayColor
};
- bodyFrameLayout.AddChidren(versionBtn);
+ logoFrameLayout.AddChidren(versionBtn);
- updateBtn = new Button()
- {
- Y= Application.GetRealHeight(50)+versionBtn.Bottom,
- Width = Application.GetMinRealAverage(700),
- Gravity = Gravity.CenterHorizontal,
- Height =Application.GetRealHeight(Shared.Common.CommonPage.ButtonHeight),
- TextID=R.MyInternationalizationString.Update,
- TextColor=ZigbeeColor.Current.GXCTextBlueColor
- };
- bodyFrameLayout.AddChidren(updateBtn);
- updateBtn.MouseUpEventHandler += GetVersion;
- seekBar = new HorizontalSeekBar()
+ var versionFL = new FrameLayout
{
- Y = updateBtn.Bottom + Application.GetRealHeight(50),
- Width = Application.GetRealWidth(750),
- Height = Application.GetRealHeight(80),
- Gravity = Gravity.CenterHorizontal,
- BackgroundColor = ZigbeeColor.Current.GXCSliderUnSelectedColor,
- ThumbColor = 0x00000000,
- ProgressColor = ZigbeeColor.Current.GXCButtonBlueColor,
- Max = 100,
- Progress = 0,
- IsCanScrolled=false,
- IsCanMove=false
+ Y = Application.GetRealHeight(510),
+ Height = Application.GetRealHeight(300),
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
- bodyFrameLayout.AddChidren(seekBar);
+ bodyFrameLayout.AddChidren(versionFL);
- seekBarTitle = new Button()
+ var SLARow = new DeviceInfoRow(12);
+ SLARow.Init();
+ SLARow.SetTipTitle(R.MyInternationalizationString.SLA);
+ SLARow.NameText.TextAlignment = TextAlignment.CenterRight;
+ versionFL.AddChidren(SLARow);
+ SLARow.ClickBtn.MouseUpEventHandler += (sender, e) =>
{
- Y = updateBtn.Bottom + Application.GetRealHeight(50),
- X= seekBar.Right+Application.GetRealWidth(10),
- Width = Application.GetRealWidth(150),
- Height = Application.GetRealHeight(80),
- Text = $"{seekBar.Progress}%",
- TextAlignment=TextAlignment.CenterLeft,
- TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+ var slaForm = new SLAForm();
+ slaForm.AddForm();
};
- bodyFrameLayout.AddChidren(seekBarTitle);
+
+ updateRow = new DeviceInfoRow(12 + 127 + 12);
+ updateRow.Init();
+ updateRow.SetTipTitle(R.MyInternationalizationString.UpdateVersion);
+ updateRow.NameText.TextAlignment = TextAlignment.CenterRight;
+ updateRow.HideLine(true);
+ updateRow.SetTitle(R.MyInternationalizationString.TheAppVersionIsNewest);
+ updateRow.CanClick(false);
+ updateRow.SetTitleColor(ZigbeeColor.Current.GXCTextGrayColor);
+ versionFL.AddChidren(updateRow);
+ updateRow.ClickBtn.MouseUpEventHandler += (sender, e) =>
+ {
+ UpdateVersion();
+ };
+
updatingBtn = new Button()
{
- Y = seekBar.Bottom + Application.GetRealHeight(20),
- Width = Application.GetRealWidth(300),
- Height = Application.GetRealHeight(80),
- TextID= R.MyInternationalizationString.Updating,
- TextAlignment = TextAlignment.Center,
- TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+ Y = Application.GetRealHeight(994),
+ Width = Application.GetRealWidth(556),
+ Height = Application.GetRealHeight(106),
+ Radius=(uint)Application.GetRealHeight(53),
+ BackgroundColor=ZigbeeColor.Current.GXCDailogBackGroundColor,
+ TextID = R.MyInternationalizationString.Updating,
+ TextSize=15,
+ TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
Gravity=Gravity.CenterHorizontal
};
bodyFrameLayout.AddChidren(updatingBtn);
- cancelDownLoadBtn = new Button()
- {
- TextID = R.MyInternationalizationString.Cancel,
- TextColor = ZigbeeColor.Current.GXCTextBlueColor,
- Height = Application.GetRealHeight(80),
- Width = Application.GetRealWidth(500),
- Gravity = Gravity.CenterHorizontal,
- Y = updatingBtn.Bottom + Application.GetRealHeight(500)
- };
- bodyFrameLayout.AddChidren(cancelDownLoadBtn);
-#if Android
- cancelDownLoadBtn.MouseUpEventHandler += CancelDownLoadApk;
-#endif
+
SetDownLoadBtnNoVisible();
+ CheckVersion();
+ }
+
+ /// <summary>
+ /// CheckVersion
+ /// </summary>
+ private void CheckVersion()
+ {
+ new System.Threading.Thread(async () =>
+ {
+ var re = await CanUpdateAsync();
+ if (re)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ updateRow.CanClick(true);
+ updateRow.SetTitleColor(ZigbeeColor.Current.GXCButtonSelectedColor);
+ updateRow.SetTitle(R.MyInternationalizationString.Update);
+ });
+ }
+ })
+ { IsBackground = true }.Start();
+
}
/// <summary>
/// 璁剧疆杩涘害鎺т欢涓嶅彲瑙�
/// </summary>
- public void SetDownLoadBtnNoVisible()
+ private void SetDownLoadBtnNoVisible()
{
- Phone.UserView.HomePage.Instance.ScrollEnabled = true;
isUpdating = false;
- updateBtn.Visible = true;
- seekBar.Visible = seekBarTitle.Visible = cancelDownLoadBtn.Visible = updatingBtn.Visible = false;
+ updatingBtn.Visible = false;
}
/// <summary>
/// 璁剧疆杩涘害鎺т欢鍙
/// </summary>
- public void SetDownLoadBtnVisible()
+ private void SetDownLoadBtnVisible()
{
- Phone.UserView.HomePage.Instance.ScrollEnabled = false;
isUpdating = true;
- updateBtn.Visible = false;
- seekBar.Visible = seekBarTitle.Visible = cancelDownLoadBtn.Visible = updatingBtn.Visible = true;
+ updatingBtn.Visible = true;
+ updateRow.CanClick(false);
}
+
/// <summary>
- /// Gets the version.
+ /// 妫�鏌ョ増鏈�
/// </summary>
- /// <param name="sender">Sender.</param>
- /// <param name="e">E.</param>
- private async void GetVersion(object sender, MouseEventArgs e)
+ /// <returns></returns>
+ private async System.Threading.Tasks.Task<bool> CanUpdateAsync()
{
#if iOS
- try
- {
- CommonPage.Loading.Start();
- var versionResult = await Shared.Common.CommonPage.Instance.RequestHttpsiOSAppVersionAsync();
+ try
+ {
+ var versionResult = await RequestHttpsiOSAppVersionAsync();
if (versionResult == null || versionResult.Results == null)
{
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
- return;
+ return false;
}
var results = Newtonsoft.Json.Linq.JArray.Parse(versionResult.Results.ToString());
if (results[0] == null)
{
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
- return;
+ return false;
}
var newVersion = results[0]["version"]?.ToString();
var updateContent = results[0]["releaseNotes"]?.ToString();
if (newVersion != CommonPage.CodeIDString)
{
- Application.RunOnMainThread(() =>
- {
- var alert = new Alert(Language.StringByID(R.MyInternationalizationString.UpdateContent), updateContent, Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
- alert.Show();
- alert.ResultEventHandler += (sender1, e1) =>
- {
- if (e1)
- {
- CommonPage.Instance.OpenUrl();
- }
- };
- });
+ return true;
}
- else
- {
- Application.RunOnMainThread(() =>
- {
- var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.TheAppVersionIsNewest), Language.StringByID(R.MyInternationalizationString.Close));
- alert.Show();
- });
- }
+ return false;
}
catch
{
+ return false;
+ }
- }
- finally
- {
- CommonPage.Loading.Hide();
- }
#elif Android
try
{
- CommonPage.Loading.Start();
- var versionResult = await CommonPage.Instance.RequestHttpsAndroidAppVersionAsync();
+ var versionResult = await RequestHttpsAndroidAppVersionAsync();
if (versionResult == null)
{
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
- return;
+ return false;
}
- if (int.Parse(versionResult.FirmwareVersion.Replace(".","")) > int.Parse(CommonPage.CodeIDString.Replace(".","")))
+ if (int.Parse(versionResult.FirmwareVersion.Replace(".", "")) > int.Parse(CommonPage.CodeIDString.Replace(".", "")))
{
- var alert = new Alert(Language.StringByID(R.MyInternationalizationString.UpdateContent), versionResult.Remarks, Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
- alert.Show();
- alert.ResultEventHandler += async (sender1, e1) =>
- {
- if (e1)
- {
- try
- {
- SetDownLoadBtnVisible();
- var requestObj = new SendDataToServer.DownLoadAndroidApk
- {
- RequestVersion = CommonPage.RequestVersion,
- DistributedMark = versionResult.DistributedMark
- };
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
-
- var bytesTotalLengthResult = await CommonPage.Instance.RequestHttpsZigbeeAsync("FirmwareMana/DownloadPlatformUploadFirmwarePreLength", Encoding.UTF8.GetBytes(requestJson));
- if (bytesTotalLengthResult == null || bytesTotalLengthResult.ResponseData == null)
- {
- SetDownLoadBtnNoVisible();
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
- return;
- }
- var bytesTotalLength = Newtonsoft.Json.JsonConvert.DeserializeObject<long>(bytesTotalLengthResult.ResponseData.ToString());
- if (bytesTotalLength == 0)
- {
- SetDownLoadBtnNoVisible();
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
- return;
- }
- CommonPage.ApkBytesTotalLength = bytesTotalLength;
- var bytes = await CommonPage.Instance.DownLoadApkAsync("FirmwareMana/DownloadPlatformUploadFirmware", Encoding.UTF8.GetBytes(requestJson));
- if (bytes == null)
- {
- SetDownLoadBtnNoVisible();
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
- return;
- }
- if(bytes.ToString().Contains("DownloadFail"))
- {
- SetDownLoadBtnNoVisible();
- CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
- return;
- }
- var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, "home.apk");
- Shared.IO.FileUtils.WriteFileByBytes(path, bytes);
- Install(Shared.Application.Activity);
- }
- catch(Exception ex)
- {
- SetDownLoadBtnNoVisible();
- System.Console.WriteLine($"涓嬭浇澶辫触--{ex.Message}");
- }
- }
- };
+ distributedMark = versionResult.DistributedMark;
+ return true;
}
- else
- {
- var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.TheAppVersionIsNewest), Language.StringByID(R.MyInternationalizationString.Close));
- alert.Show();
- }
+ return false;
}
catch (Exception ex)
{
- SetDownLoadBtnNoVisible();
- System.Console.WriteLine(ex.Message);
- }
- finally
- {
- CommonPage.Loading.Hide();
+ return false;
}
#endif
}
-#if Android
/// <summary>
- /// Cancels down load apk.
+ /// 鏇存柊
/// </summary>
- private void CancelDownLoadApk(object sender,MouseEventArgs mouseEventArgs)
+ private async void UpdateVersion()
{
- var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.CancelUpdating), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim));
- alert.Show();
- alert.ResultEventHandler += (send, e) =>
- {
- if (e)
- {
- isUpdating = false;
- updateBtn.Visible = true;
- SetDownLoadBtnNoVisible();
- CommonPage.CancelDownLoadApkAsync();
- }
- };
+#if iOS
+ OpenUrl();
+#elif Android
+ try
+ {
+ var requestObj = new SendDataToServer.DownLoadAndroidApk
+ {
+ RequestVersion = CommonPage.RequestVersion,
+ DistributedMark = distributedMark
+ };
+ var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
+
+ var bytesTotalLengthResult = await CommonPage.Instance.RequestHttpsZigbeeAsync("FirmwareMana/DownloadPlatformUploadFirmwarePreLength", Encoding.UTF8.GetBytes(requestJson));
+ if (bytesTotalLengthResult == null || bytesTotalLengthResult.ResponseData == null)
+ {
+ CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
+ return;
+ }
+ var bytesTotalLength = Newtonsoft.Json.JsonConvert.DeserializeObject<long>(bytesTotalLengthResult.ResponseData.ToString());
+ if (bytesTotalLength == 0)
+ {
+ CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
+ return;
+ }
+ ApkBytesTotalLength = bytesTotalLength;
+ var bytes = await DownLoadApkAsync("FirmwareMana/DownloadPlatformUploadFirmware", Encoding.UTF8.GetBytes(requestJson));
+ if (bytes == null)
+ {
+ CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.UpdateAppFail);
+ return;
+ }
+ if (bytes.ToString().Contains("DownloadFail"))
+ {
+ CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
+ return;
+ }
+ var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, "home.apk");
+ Shared.IO.FileUtils.WriteFileByBytes(path, bytes);
+ Install(Shared.Application.Activity);
+ }
+ catch (Exception ex)
+ {
+ System.Console.WriteLine($"涓嬭浇澶辫触--{ex.Message}");
+ }
+#endif
}
+
+#if iOS
+ /// <summary>
+ /// 鑾峰彇iOS-APP鐗堟湰淇℃伅
+ /// </summary>
+ /// <returns>The https app version async.</returns>
+ public async System.Threading.Tasks.Task<Common.ResponseEntity.ResultPack> RequestHttpsiOSAppVersionAsync()
+ {
+ try
+ {
+ var webClient = new WebClient { };
+ var result = await webClient.DownloadDataTaskAsync("https://itunes.apple.com/lookup?id=1461693569");
+ if (result == null)
+ {
+ return null;
+ }
+ return Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.ResultPack>(Encoding.UTF8.GetString(result));
+ }
+ catch
+ {
+ return null;
+ }
+ }
+ /// <summary>
+ /// 璺宠浆鍒癆PP Store
+ /// </summary>
+ public void OpenUrl()
+ {
+ Uri url = new Uri("https://itunes.apple.com/cn/app/hdl-home/id1461693569?mt=8");
+ UIKit.UIApplication.SharedApplication.OpenUrl(url);
+ }
+#elif Android
+
/// <summary>
/// Install the specified context.
/// </summary>
@@ -411,6 +403,127 @@
}
context.StartActivity(intent);
}
+
+ /// <summary>
+ /// 鑾峰彇 Android-APP 鐗堟湰淇℃伅
+ /// </summary>
+ /// <returns>The https app version async.</returns>
+ private async System.Threading.Tasks.Task<Common.ResponseEntity.ApkInfoOBJ> RequestHttpsAndroidAppVersionAsync()
+ {
+ try
+ {
+ var requestOBJ = new SendDataToServer.GetAndroidApkInfoOBJ
+ {
+ Name = "ZigbeeApp",
+ RequestVersion = CommonPage.CodeIDString
+ };
+ var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestOBJ);
+ var result = await CommonPage.Instance.RequestHttpsZigbeeAsync("FirmwareMana/DetectionPlatformUploadFirmware", System.Text.Encoding.UTF8.GetBytes(requestJson));
+ if (result == null)
+ {
+ return null;
+ }
+ if (result.StateCode.ToUpper() == "SUCCESS")
+ {
+ if (result.ResponseData == null)
+ {
+ return null;
+ }
+
+ var responeData = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.ApkInfoRes>(result.ResponseData.ToString());
+ if (responeData == null || responeData.pageData == null || responeData.pageData.Count == 0)
+ {
+ return null;
+ }
+ int MaxIndex = 0;
+ int NewVersion = 0;
+ for (int i = 0; i < responeData.pageData.Count; i++)
+ {
+ var apkInfo = responeData.pageData[i];
+ var version = int.Parse(apkInfo.FirmwareVersion.Replace(".", ""));
+ if (version > NewVersion)
+ {
+ NewVersion = version;
+ MaxIndex = i;
+ }
+ }
+ return responeData.pageData[MaxIndex];
+ }
+ return null;
+ }
+ catch (Exception ex)
+ {
+ return null;
+ }
+ }
+
+ /// <summary>
+ /// 涓嬭浇瀹夎apk
+ /// </summary>
+ /// <returns>The load apk async.</returns>
+ /// <param name="requestUrl">璇锋眰閾炬帴</param>
+ /// <param name="byteData">璇锋眰鍙傛暟</param>
+ private System.Threading.Tasks.Task<byte[]> DownLoadApkAsync(string requestUrl, byte[] byteData)
+ {
+ try
+ {
+ webClient.Headers.Add(HttpRequestHeader.ContentType, "application/json");
+ webClient.Headers.Add(HttpRequestHeader.Authorization, Config.Instance.Token);
+ webClient.UploadProgressChanged += Client_DownloadProgressChanged;
+ webClient.UploadDataCompleted += Client_UploadCompleted;
+ var result = webClient.UploadDataTaskAsync($"{CommonPage.RequestHttpsHost}/{requestUrl}", "POST", byteData);
+ if (result == null)
+ {
+ return null;
+ }
+ return result;
+ }
+ catch (Exception ex)
+ {
+ return null;
+ }
+ finally
+ {
+ }
+ }
+ /// <summary>
+ /// apk涓嬭浇杩涘害
+ /// </summary>
+ /// <param name="sender">Sender.</param>
+ /// <param name="e">E.</param>
+ void Client_DownloadProgressChanged(object sender, UploadProgressChangedEventArgs e)
+ {
+ //System.Console.WriteLine($"褰撳墠杩涘害--{(int)(e.BytesReceived / (float)ApkBytesTotalLength * 100)} % --BytesReceived--{e.BytesReceived}--totalByte{e.TotalBytesToReceive}");
+ if (e.BytesReceived <= ApkBytesTotalLength)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ SetDownLoadBtnVisible();
+ updatingBtn.Text = $"{ Language.StringByID(R.MyInternationalizationString.Updating)} {(int)(e.BytesReceived / (float)ApkBytesTotalLength * 100)}%";
+ });
+ }
+ }
+
+ /// <summary>
+ /// Client_UploadCompleted
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="e"></param>
+ void Client_UploadCompleted(object sender, UploadDataCompletedEventArgs e)
+ {
+ System.Console.WriteLine("涓嬭浇apk瀹屾垚");
+ SetDownLoadBtnNoVisible();
+ }
+ /// <summary>
+ /// 鍙栨秷涓嬭浇apk
+ /// </summary>
+ private void CancelDownLoadApkAsync()
+ {
+ webClient?.CancelAsync();
+ SetDownLoadBtnNoVisible();
+ System.Console.WriteLine("鍙栨秷涓嬭浇apk");
+ }
#endif
+
}
}
--
Gitblit v1.8.0