From 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期二, 21 七月 2020 09:46:53 +0800
Subject: [PATCH] 请合并最新多功能面板代码

---
 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs |  234 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 234 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..ae56315
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs
@@ -0,0 +1,234 @@
+锘縰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.LinuxHardVersion.ToString(),
+                 upDatezbGateway.LinuxImageType.ToString());
+
+            //鍗忚皟鍣�
+            var listData2 = HdlFirmwareUpdateLogic.GetFirmwareVersionListInfo(FirmwareLevelType.Coordinator,
+                 upDatezbGateway.CoordinatorHardVersion.ToString(),
+                 upDatezbGateway.CoordinatorImageId.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(() =>
+            {
+                bool canAddTitle = true;
+                int fVersion1 = upDatezbGateway.LinuxFirmwareVersion;
+                string imageType1 = upDatezbGateway.LinuxImageType.ToString();
+                foreach (var data in listData1)
+                {
+                    if (data.ImagType == imageType1 && fVersion1 == data.FirmwareVersion)
+                    {
+                        //鍚屼竴涓笢瑗匡紝涓嶆樉绀哄嚭鏉�
+                        continue;
+                    }
+                    if (canAddTitle == true)
+                    {
+                        this.AddTitleRowlayout("Linux妯″潡");
+                        canAddTitle = false;
+                    }
+                    this.AddRowlayout(data, FirmwareLevelType.Linux);
+                }
+
+                canAddTitle = true;
+                int fVersion2 = upDatezbGateway.CoordinatorFirmwareVersion;
+                string imageType2 = upDatezbGateway.CoordinatorImageId.ToString();
+                foreach (var data in listData2)
+                {
+                    if (data.ImagType == imageType2 && fVersion2 == data.FirmwareVersion)
+                    {
+                        //鍚屼竴涓笢瑗匡紝涓嶆樉绀哄嚭鏉�
+                        continue;
+                    }
+                    if (canAddTitle == true)
+                    {
+                        this.AddTitleRowlayout("鍗忚皟鍣ㄦā鍧�");
+                        canAddTitle = false;
+                    }
+                    this.AddRowlayout(data, FirmwareLevelType.Coordinator);
+                }
+
+                canAddTitle = true;
+                string imageType3 = this.listVode[0].DriveImageType.ToString();
+                foreach (var data in listData3)
+                {
+                    if (data.ImagType == imageType3 && this.listVode[0].DriveFwVersion == data.FirmwareVersion)
+                    {
+                        //鍚屼竴涓笢瑗匡紝涓嶆樉绀哄嚭鏉�
+                        continue;
+                    }
+                    if (canAddTitle == true)
+                    {
+                        this.AddTitleRowlayout("铏氭嫙璁惧妯″潡");
+                        canAddTitle = false;
+                    }
+                    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);
+
+            //鎸囧畾鐨勭綉鍏�
+            rowlayout.AddTopView(info.ShowName, 800);
+
+            //鍥轰欢淇℃伅
+            string firmwareText = Common.LocalDevice.Current.AppendVersion(info.FirmwareVersion);
+            firmwareText += "        " + UserCenterLogic.ConvertUtcTimeToLocalTime(info.CreatedOnUtc).ToString("yyyy/MM/dd HH:mm:ss");
+            rowlayout.AddBottomView(firmwareText, 800);
+
+            //鍚戝彸鐨勫浘鏍�
+            rowlayout.AddRightArrow();
+            rowlayout.AddBottomLine();
+
+            rowlayout.ButtonClickEvent += (sender, e) =>
+            {
+                if (FirmwareUpdateResourse.dicUpdateList.ContainsKey(upDatezbGateway.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>
+        /// <param name="title"></param>
+        private void AddTitleRowlayout(string title)
+        {
+            var rowlayout = new FrameRowControl();
+            rowlayout.UseClickStatu = false;
+            this.listView.AddChidren(rowlayout);
+
+            rowlayout.AddLeftCaption(title, 800);
+        }
+
+        /// <summary>
+        /// 鐣岄潰鍏抽棴
+        /// </summary>
+        public override void CloseFormBefore()
+        {
+            SelectFirmwareInfoEvent = null;
+
+            base.CloseFormBefore();
+        }
+    }
+}

--
Gitblit v1.8.0