From 2109463fab2eb1caed189e4f258e0e763c5cea7b Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 07 十一月 2019 11:58:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev-tzy' into dev-wjc

---
 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs |  205 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 205 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs
new file mode 100755
index 0000000..c55d2ae
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs
@@ -0,0 +1,205 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.GatewayUpdate
+{
+    /// <summary>
+    /// 缃戝叧鐨勫巻鍙茬増鏈晫闈�
+    /// </summary>
+    public class GatewayHistoryFirmwareVersionForm : EditorCommonForm
+    {
+        /// <summary>
+        /// 瑕佸崌绾х殑缃戝叧
+        /// </summary>
+        private ZbGateway upDatezbGateway = null;
+        /// <summary>
+        /// 铏氭嫙璁惧鐨勫浐浠朵俊鎭�
+        /// </summary>
+        private FirmwareVersionInfo virtualFirmware = null;
+        /// <summary>
+        /// 鍗忚皟鍣ㄦ柊鐗堟湰鐨勫浐浠朵俊鎭�
+        /// </summary>
+        private FirmwareVersionInfo coordinatorFirmware = null;
+        /// <summary>
+        /// 缃戝叧鏂扮増鏈殑鍥轰欢淇℃伅
+        /// </summary>
+        private FirmwareVersionInfo gatewayFirmware = null;
+        /// <summary>
+        /// 鍒楄〃鎺т欢
+        /// </summary>
+        private VerticalListControl listView = null;
+        /// <summary>
+        /// 铏氭嫙椹卞姩鍙�
+        /// </summary>
+        private List<ZbGatewayData.DriveCodeObj> listVode = null;
+        /// <summary>
+        /// 鐣岄潰鍏抽棴鐨凙ction(铏氭嫙璁惧,鍗忚皟鍣�,缃戝叧)
+        /// </summary>
+        public Action<FirmwareVersionInfo, FirmwareVersionInfo, FirmwareVersionInfo, List<ZbGatewayData.DriveCodeObj>> SelectFirmwareInfoEvent = null;
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_zbGateway">缃戝叧</param>
+        /// <param name="i_virtualFirmware">铏氭嫙璁惧鐨勫浐浠朵俊鎭�</param>
+        /// <param name="i_coordinatorFirmware">鍗忚皟鍣ㄦ柊鐗堟湰鐨勫浐浠朵俊鎭�</param>
+        /// <param name="i_gatewayFirmware">缃戝叧鏂扮増鏈殑鍥轰欢淇℃伅</param>
+        /// <param name="i_listVode">铏氭嫙椹卞姩</param>
+        public void ShowForm(ZbGateway i_zbGateway, FirmwareVersionInfo i_virtualFirmware,
+            FirmwareVersionInfo i_coordinatorFirmware, FirmwareVersionInfo i_gatewayFirmware, List<ZbGatewayData.DriveCodeObj> i_listVode)
+        {
+            this.upDatezbGateway = i_zbGateway;
+            this.virtualFirmware = i_virtualFirmware;
+            this.coordinatorFirmware = i_coordinatorFirmware;
+            this.gatewayFirmware = i_gatewayFirmware;
+            this.listVode = i_listVode;
+
+            //璁剧疆鏍囬淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uHistoryVersion) + "(娴嬭瘯鐗�,鍚庨潰浼拌浼氬垹闄�)");
+
+            //鍒濆鍖栦腑閮ㄦ帶浠�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄦ帶浠�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            listView = new VerticalListControl();
+            listView.Height = bodyFrameLayout.Height;
+            listView.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(listView);
+
+            //缃戝叧
+            var listData1 = HdlFirmwareUpdateLogic.GetFirmwareVersionListInfo(FirmwareLevelType.Linux,
+                 upDatezbGateway.getGwInfo.LinuxHWVersion.ToString(),
+                 upDatezbGateway.getGwInfo.LinuxImageType.ToString());
+
+            //鍗忚皟鍣�
+            var listData2 = HdlFirmwareUpdateLogic.GetFirmwareVersionListInfo(FirmwareLevelType.Coordinator,
+                 upDatezbGateway.getGwInfo.ZbHWVersion.ToString(),
+                 upDatezbGateway.getGwInfo.ZbImageType.ToString());
+
+            //铏氭嫙椹卞姩
+            var listData3 = new List<FirmwareVersionInfo>();
+            if (this.listVode != null && this.listVode.Count > 0)
+            {
+                //濡傛灉杩欎釜缃戝叧瑕佹湁铏氭嫙椹卞姩杩欎釜涓滆タ鐨勬椂鍊欐墠鑰冭檻
+                listData3 = HdlFirmwareUpdateLogic.GetFirmwareVersionListInfo(FirmwareLevelType.VirtualDevice,
+                     this.listVode[0].DriveHwVersion.ToString(),
+                     this.listVode[0].DriveImageType.ToString());
+            }
+
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                int fVersion1 = upDatezbGateway.getGwInfo.LinuxFWVersion;
+                string imageType1 = upDatezbGateway.getGwInfo.LinuxImageType.ToString();
+                foreach (var data in listData1)
+                {
+                    if (data.ImagType == imageType1 && fVersion1 == data.FirmwareVersion)
+                    {
+                        //鍚屼竴涓笢瑗匡紝涓嶆樉绀哄嚭鏉�
+                        continue;
+                    }
+                    this.AddRowlayout(data, FirmwareLevelType.Linux);
+                }
+
+                int fVersion2 = upDatezbGateway.getGwInfo.ZbFWVersion;
+                string imageType2 = upDatezbGateway.getGwInfo.ZbImageType.ToString();
+                foreach (var data in listData2)
+                {
+                    if (data.ImagType == imageType2 && fVersion2 == data.FirmwareVersion)
+                    {
+                        //鍚屼竴涓笢瑗匡紝涓嶆樉绀哄嚭鏉�
+                        continue;
+                    }
+                    this.AddRowlayout(data, FirmwareLevelType.Coordinator);
+                }
+
+                string imageType3 = this.listVode[0].DriveImageType.ToString();
+                foreach (var data in listData3)
+                {
+                    if (data.ImagType == imageType3 && this.listVode[0].DriveFwVersion == data.FirmwareVersion)
+                    {
+                        //鍚屼竴涓笢瑗匡紝涓嶆樉绀哄嚭鏉�
+                        continue;
+                    }
+                    this.AddRowlayout(data, FirmwareLevelType.VirtualDevice);
+                }
+                listView.AdjustRealHeight(Application.GetRealHeight(23));
+            });
+        }
+
+        /// <summary>
+        /// 娣诲姞琛�
+        /// </summary>
+        /// <param name="info"></param>
+        /// <param name="levelType"></param>
+        private void AddRowlayout(FirmwareVersionInfo info, FirmwareLevelType levelType)
+        {
+            var rowlayout = new FrameRowControl();
+            this.listView.AddChidren(rowlayout);
+
+            //鍥炬爣
+            var btnIcon = rowlayout.AddLeftIcon(81);
+            HdlGatewayLogic.Current.SetGatewayIcon(btnIcon, this.upDatezbGateway);
+            rowlayout.AddChidren(btnIcon);
+
+            //鎸囧畾鐨勭綉鍏�
+            var btnGateway = rowlayout.AddLeftCaption(info.ShowName, Application.GetRealWidth(800), rowlayout.Height / 2, false);
+            rowlayout.AddChidren(btnGateway);
+
+            //鍥轰欢淇℃伅
+            var btnVersion = rowlayout.AddLeftCaption(Common.LocalDevice.Current.AppendVersion(info.FirmwareVersion), Application.GetRealWidth(800), rowlayout.Height / 2, false);
+            btnVersion.Y = btnGateway.Bottom;
+            rowlayout.AddChidren(btnVersion);
+
+            //鍚戝彸鐨勫浘鏍�
+            rowlayout.AddRightArrow();
+            rowlayout.AddBottomLine();
+
+            rowlayout.ButtonClickEvent += (sender, e) =>
+            {
+                string gwID = HdlGatewayLogic.Current.GetGatewayId(upDatezbGateway);
+                if (FirmwareUpdateResourse.dicGatewayUpdateList.ContainsKey(gwID) == true)
+                {
+                    this.CloseForm();
+                    return;
+                }
+                if (levelType == FirmwareLevelType.Linux)
+                {
+                    this.gatewayFirmware = info;
+                }
+                else if (levelType == FirmwareLevelType.Coordinator)
+                {
+                    this.coordinatorFirmware = info;
+                }
+                else if (levelType == FirmwareLevelType.VirtualDevice)
+                {
+                    this.virtualFirmware = info;
+                    this.virtualFirmware.VirtualCode = this.listVode[0].DriveCode;
+                }
+
+                SelectFirmwareInfoEvent?.Invoke(this.virtualFirmware, this.coordinatorFirmware, this.gatewayFirmware, this.listVode);
+
+                this.CloseForm();
+            };
+        }
+
+        /// <summary>
+        /// 鐣岄潰鍏抽棴
+        /// </summary>
+        public override void CloseForm()
+        {
+            SelectFirmwareInfoEvent = null;
+
+            base.CloseForm();
+        }
+    }
+}

--
Gitblit v1.8.0