From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 17 十二月 2020 09:07:13 +0800
Subject: [PATCH] 新云端Ver1.3

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

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs
index cf020f3..5311b7f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs
@@ -29,7 +29,7 @@
         /// <summary>
         /// 鍒楄〃鎺т欢
         /// </summary>
-        private VerticalScrolViewLayout listView = null;
+        private VerticalListControl listView = null;
         /// <summary>
         /// 铏氭嫙椹卞姩鍙�
         /// </summary>
@@ -37,7 +37,7 @@
         /// <summary>
         /// 鐣岄潰鍏抽棴鐨凙ction(铏氭嫙璁惧,鍗忚皟鍣�,缃戝叧)
         /// </summary>
-        public Action<FirmwareVersionInfo, FirmwareVersionInfo, FirmwareVersionInfo, List<ZbGatewayData.DriveCodeObj>> FormCloseAction = null;
+        public Action<FirmwareVersionInfo, FirmwareVersionInfo, FirmwareVersionInfo, List<ZbGatewayData.DriveCodeObj>> SelectFirmwareInfoEvent = null;
 
         /// <summary>
         /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
@@ -60,144 +60,175 @@
             base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uHistoryVersion) + "(娴嬭瘯鐗�,鍚庨潰浼拌浼氬垹闄�)");
 
             //鍒濆鍖栦腑閮ㄦ帶浠�
-            //this.InitMiddleFrame();
+            this.InitMiddleFrame();
         }
 
-        ///// <summary>
-        ///// 鍒濆鍖栦腑閮ㄦ帶浠�
-        ///// </summary>
-        //private void InitMiddleFrame()
-        //{
-        //    //娓呯┖bodyFrame
-        //    this.ClearBodyFrame();
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄦ帶浠�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
 
-        //    listView = new VerticalScrolViewLayout();
-        //    listView.Height = bodyFrameLayout.Height;
-        //    bodyFrameLayout.AddChidren(listView);
+            listView = new VerticalListControl();
+            listView.Height = bodyFrameLayout.Height;
+            listView.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(listView);
 
-        //    //缃戝叧
-        //    var listData1 = HdlFirmwareUpdateLogic.GetFirmwareVersionListInfo(FirmwareLevelType.Linux,
-        //         Common.LocalGateway.Current.GetGwInfoAttribute(upDatezbGateway, "LinuxHWVersion").ToString(),
-        //         Common.LocalGateway.Current.GetGwInfoAttribute(upDatezbGateway, "LinuxImageType").ToString());
+            //缃戝叧
+            var listData1 = HdlFirmwareUpdateLogic.Current.GetFirmwareVersionListInfo(FirmwareLevelType.Linux,
+                 upDatezbGateway.LinuxHardVersion.ToString(),
+                 upDatezbGateway.LinuxImageType.ToString());
 
-        //    //鍗忚皟鍣�
-        //    var listData2 = HdlFirmwareUpdateLogic.GetFirmwareVersionListInfo(FirmwareLevelType.Coordinator,
-        //         Common.LocalGateway.Current.GetGwInfoAttribute(upDatezbGateway, "ZbHWVersion").ToString(),
-        //         Common.LocalGateway.Current.GetGwInfoAttribute(upDatezbGateway, "ZbImageType").ToString());
+            //鍗忚皟鍣�
+            var listData2 = HdlFirmwareUpdateLogic.Current.GetFirmwareVersionListInfo(FirmwareLevelType.A鍗忚皟鍣�,
+                 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());
-        //    }
+            //铏氭嫙椹卞姩
+            var listData3 = new List<FirmwareVersionInfo>();
+            if (this.listVode != null && this.listVode.Count > 0)
+            {
+                //濡傛灉杩欎釜缃戝叧瑕佹湁铏氭嫙椹卞姩杩欎釜涓滆タ鐨勬椂鍊欐墠鑰冭檻
+                listData3 = HdlFirmwareUpdateLogic.Current.GetFirmwareVersionListInfo(FirmwareLevelType.A铏氭嫙椹卞姩,
+                     this.listVode[0].DriveHwVersion.ToString(),
+                     this.listVode[0].DriveImageType.ToString());
+            }
 
-        //    HdlThreadLogic.Current.Run(() =>
-        //    {
-        //        string fVersion = Common.LocalGateway.Current.GetGwInfoAttribute(upDatezbGateway, "LinuxFWVersion").ToString();
-        //        string imageType = Common.LocalGateway.Current.GetGwInfoAttribute(upDatezbGateway, "LinuxImageType").ToString();
-        //        foreach (var data in listData1)
-        //        {
-        //            //if (data.ImagType == imageType && fVersion == data.FirmwareVersion)
-        //            //{
-        //            //    //鍚屼竴涓笢瑗匡紝涓嶆樉绀哄嚭鏉�
-        //            //    continue;
-        //            //}
-        //            Application.RunOnMainThread(() =>
-        //            {
-        //                this.AddRowlayout(data, FirmwareLevelType.Linux);
-        //            });
-        //        }
+            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);
+                }
 
-        //        fVersion = Common.LocalGateway.Current.GetGwInfoAttribute(upDatezbGateway, "ZbFWVersion").ToString();
-        //        imageType = Common.LocalGateway.Current.GetGwInfoAttribute(upDatezbGateway, "ZbImageType").ToString();
-        //        foreach (var data in listData2)
-        //        {
-        //            if (data.ImagType == imageType && Convert.ToInt32(fVersion) == data.FirmwareVersion)
-        //            {
-        //                //鍚屼竴涓笢瑗匡紝涓嶆樉绀哄嚭鏉�
-        //                continue;
-        //            }
-        //            Application.RunOnMainThread(() =>
-        //            {
-        //                this.AddRowlayout(data, FirmwareLevelType.Coordinator);
-        //            });
-        //        }
+                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.A鍗忚皟鍣�);
+                }
 
-        //        imageType = this.listVode[0].DriveImageType.ToString();
-        //        foreach (var data in listData3)
-        //        {
-        //            if (data.ImagType == imageType && this.listVode[0].DriveFwVersion == data.FirmwareVersion)
-        //            {
-        //                //鍚屼竴涓笢瑗匡紝涓嶆樉绀哄嚭鏉�
-        //                continue;
-        //            }
-        //            Application.RunOnMainThread(() =>
-        //            {
-        //                this.AddRowlayout(data, FirmwareLevelType.VirtualDevice);
-        //            });
-        //        }
-        //    });
-        //}
+                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.A铏氭嫙椹卞姩);
+                }
+                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 StatuRowLayout(listView);
+        /// <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 = new RowLeftIconView();
-        //    Common.LocalGateway.Current.SetGatewayIcon(btnIcon, this.upDatezbGateway);
-        //    rowlayout.AddChidren(btnIcon);
+            //鍥炬爣
+            var btnIcon = rowlayout.AddLeftIcon(81);
+            HdlGatewayLogic.Current.SetGatewayIcon(btnIcon, this.upDatezbGateway);
+            rowlayout.AddChidren(btnIcon);
 
-        //    //鎸囧畾鐨勭綉鍏�
-        //    var btnGateway = new RowTopBlackView();
-        //    btnGateway.BackgroundColor = UserCenterColor.Current.Transparent;
-        //    btnGateway.Text = info.ShowName;
-        //    rowlayout.AddChidren(btnGateway);
+            //鎸囧畾鐨勭綉鍏�
+            rowlayout.AddTopView(info.ShowName, 800);
 
-        //    //鍥轰欢淇℃伅
-        //    var btnVersion = new RowBottomBlackView();
-        //    btnVersion.Text = Common.LocalDevice.Current.AppendVersion(info.FirmwareVersion);
-        //    rowlayout.AddChidren(btnVersion);
+            //鍥轰欢淇℃伅
+            string firmwareText = HdlDeviceCommonLogic.Current.AppendVersion(info.FirmwareVersion);
+            firmwareText += "        " + HdlCommonLogic.Current.ConvertUtcTimeToLocalTime(info.CreatedOnUtc).ToString("yyyy/MM/dd HH:mm:ss");
+            rowlayout.AddBottomView(firmwareText, 800);
 
-        //    //鍚戝彸鐨勫浘鏍�
-        //    rowlayout.AddRightArrow();
+            //鍚戝彸鐨勫浘鏍�
+            rowlayout.AddRightArrow();
+            rowlayout.AddBottomLine();
 
-        //    rowlayout.MouseUpEvent += (sender, e) =>
-        //    {
-        //        string gwID = Common.LocalGateway.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;
-        //        }
+            rowlayout.ButtonClickEvent += (sender, e) =>
+            {
+                if (HdlFirmwareUpdateResourse.dicUpdateList.ContainsKey(upDatezbGateway.GwId) == true)
+                {
+                    this.CloseForm();
+                    return;
+                }
+                if (levelType == FirmwareLevelType.Linux)
+                {
+                    this.gatewayFirmware = info;
+                }
+                else if (levelType == FirmwareLevelType.A鍗忚皟鍣�)
+                {
+                    this.coordinatorFirmware = info;
+                }
+                else if (levelType == FirmwareLevelType.A铏氭嫙椹卞姩)
+                {
+                    this.virtualFirmware = info;
+                    this.virtualFirmware.VirtualCode = this.listVode[0].DriveCode;
+                }
 
-        //        FormCloseAction?.Invoke(this.virtualFirmware, this.coordinatorFirmware, this.gatewayFirmware, this.listVode);
-        //        FormCloseAction = null;
+                SelectFirmwareInfoEvent?.Invoke(this.virtualFirmware, this.coordinatorFirmware, this.gatewayFirmware, this.listVode);
 
-        //        this.CloseForm();
-        //    };
-        //}
+                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