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/GatewayFirmwareUpdateForm.cs |  467 +++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 335 insertions(+), 132 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareUpdateForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareUpdateForm.cs
index 22baf6c..e9459e7 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareUpdateForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareUpdateForm.cs
@@ -6,36 +6,24 @@
 namespace Shared.Phone.UserCenter.GatewayUpdate
 {
     /// <summary>
-    /// 鍥轰欢鍗囩骇鐢婚潰
+    /// 缃戝叧鍥轰欢鍗囩骇鐣岄潰
     /// </summary>
-    public class GatewayFirmwareUpdateForm : DialogCommonForm
+    public class GatewayFirmwareUpdateForm : EditorCommonForm
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
 
         /// <summary>
-        /// 瑕佸崌绾х殑缃戝叧
+        /// 褰撳墠閫夋嫨鐨勭綉鍏�
         /// </summary>
-        private ZbGateway upDatezbGateway = null;
+        private ZbGateway zbGateway = null;
         /// <summary>
-        /// 铏氭嫙璁惧鐨勫浐浠朵俊鎭�
+        /// 鍗囩骇鍥轰欢淇℃伅(0:Linux鏂扮増鏈�  1:鍗忚皟鍣ㄦ柊鐗堟湰  2锝瀀:閮芥槸铏氭嫙椹卞姩鐨�)
         /// </summary>
-        private FirmwareVersionInfo virtualFirmware = null;
-        /// <summary>
-        /// 鍗忚皟鍣ㄦ柊鐗堟湰鐨勫浐浠朵俊鎭�
-        /// </summary>
-        private FirmwareVersionInfo coordinatorFirmware = null;
-        /// <summary>
-        /// 缃戝叧鏂扮増鏈殑鍥轰欢淇℃伅
-        /// </summary>
-        private FirmwareVersionInfo gatewayFirmware = null;
+        private List<FirmwareVersionInfo> listVersionInfo = null;
         /// <summary>
         /// 铏氭嫙椹卞姩鍙�
         /// </summary>
         private List<ZbGatewayData.DriveCodeObj> listVode = null;
-        /// <summary>
-        /// 璁惧鎴愬姛鍗囩骇瀹屾垚鐨勫洖璋冨嚱鏁�
-        /// </summary>
-        public Action FinishUpdateEvent = null;
 
         #endregion
 
@@ -44,100 +32,338 @@
         /// <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)
+        /// <param name="i_zbGateway">褰撳墠閫夋嫨鐨勭綉鍏�</param>
+        public void ShowForm(ZbGateway i_zbGateway)
         {
-            this.upDatezbGateway = i_zbGateway;
-            this.virtualFirmware = i_virtualFirmware;
-            this.coordinatorFirmware = i_coordinatorFirmware;
-            this.gatewayFirmware = i_gatewayFirmware;
-            this.listVode = i_listVode;
+            this.zbGateway = i_zbGateway;
 
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            //璁剧疆鏍囬淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFirmwareUpdate));
+
+            //鍒濆鍖栧彸涓婅鑿滃崟
+            this.InitTopRightMenu();
+
+            //鍒濆鍖栦腑閮ㄦ帶浠�
             this.InitMiddleFrame();
         }
 
         /// <summary>
-        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// 鍒濆鍖栦腑閮ㄦ帶浠�
         /// </summary>
         private void InitMiddleFrame()
         {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //寮�鍚繘搴︽潯
+                this.ShowProgressBar();
+
+                //鑾峰彇缃戝叧鏂扮増鏈俊鎭�
+                this.listVersionInfo = HdlGatewayLogic.Current.GetGatewayAllNewVersion(this.zbGateway);
+                if (listVersionInfo == null)
+                {
+                    //鍏抽棴杩涘害鏉�
+                    this.CloseProgressBar(ShowReLoadMode.YES);
+                    return;
+                }
+                //铏氭嫙椹卞姩鍙�
+                this.listVode = HdlGatewayLogic.Current.GetListVDDriveCode(this.zbGateway);
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar();
+
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍒濆鍖栧綋鍓嶇増鏈殑鎺т欢
+                    var yy = this.InitNowVersionControl();
+                    if (listVersionInfo[0] != null || listVersionInfo[1] != null || listVersionInfo[2] != null)
+                    {
+                        //鍒濆鍖栨柊鐗堟湰鐨勬帶浠�
+                        this.InitNewVersionControl(yy);
+                    }
+                });
+            });
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栧綋鍓嶇増鏈殑鎺т欢
+        /// </summary>
+        private int InitNowVersionControl()
+        {
+            bodyFrameLayout.RemoveAll();
+
             var frameBack = new FrameLayout();
-            frameBack.Width = Application.GetRealWidth(674);
-            frameBack.Height = Application.GetRealHeight(386);
             frameBack.BackgroundColor = UserCenterColor.Current.White;
-            frameBack.Gravity = Gravity.CenterHorizontal;
-            frameBack.Y = Application.GetRealHeight(683);
-            frameBack.Radius = 6;
+            frameBack.Height = Application.GetMinReal(800);
             bodyFrameLayout.AddChidren(frameBack);
 
-            //杩涘害鏄剧ず鏂囨湰
-            var btnText = new NormalViewControl(frameBack.Width, Application.GetRealHeight(58), false);
-            btnText.Y = Application.GetRealHeight(248);
-            btnText.TextColor = UserCenterColor.Current.TextGrayColor1;
-            btnText.TextAlignment = TextAlignment.Center;
-            //btnText.Text = "鍗囩骇涓�";
-            frameBack.AddChidren(btnText);
+            //褰撳墠鍥轰欢鐗堟湰
+            var btnTitle = new NormalViewControl(700, 65, true);
+            btnTitle.X = HdlControlResourse.XXLeft;
+            btnTitle.Y = Application.GetRealHeight(30);
+            btnTitle.TextID = R.MyInternationalizationString.uNowFirmwareVersion;
+            btnTitle.TextSize = 15;
+            frameBack.AddChidren(btnTitle);
 
-            //杩涘害鏉�
-            var btnProRow = new FrameLayout();
-            btnProRow.Gravity = Gravity.CenterHorizontal;
-            btnProRow.Y = Application.GetRealHeight(161);
-            btnProRow.Width = Application.GetRealWidth(559);
-            btnProRow.Height = Application.GetRealHeight(29);
-            btnProRow.BackgroundColor = 0xfff5f5f5;
-            btnProRow.Radius = (uint)Application.GetRealHeight(29) / 2;
-            frameBack.AddChidren(btnProRow);
-            var btnProgressBar = new FrameLayout();
-            btnProgressBar.Width = 0;
-            btnProgressBar.Height = btnProRow.Height;
-            btnProgressBar.Radius = btnProRow.Radius;
-            btnProgressBar.BackgroundColor = 0xfffb744a;
-            btnProgressBar.Radius = (uint)Application.GetRealHeight(29) / 2;
-            btnProRow.AddChidren(btnProgressBar);
+            var listView = new VerticalListControl(12);
+            listView.Y = Application.GetRealHeight(109);
+            listView.Height = Application.GetRealHeight(800);
+            frameBack.AddChidren(listView);
 
-            //杩涘害鍊兼枃鏈�
-            var frameProgress = new FrameLayout();
-            frameProgress.Width = Application.GetRealWidth(84);
-            frameProgress.Height = Application.GetRealHeight(60);
-            frameProgress.Y = Application.GetRealHeight(86);
-            frameBack.AddChidren(frameProgress);
-            frameProgress.X = btnProRow.X + btnProgressBar.Right - frameProgress.Width / 2;
-            var btnProgressPic = new PicViewControl(84, 60);
-            btnProgressPic.UnSelectedImagePath = "Item/ProgressMsg.png";
-            frameProgress.AddChidren(btnProgressPic);
-            var btnProgressView = new NormalViewControl(84, 32, true);
-            btnProgressView.TextSize = 10;
-            btnProgressView.TextAlignment = TextAlignment.Center;
-            btnProgressView.Text = "0%";
-            frameProgress.AddChidren(btnProgressView);
+            //Linux
+            var rowLinux = new FrameRowControl(listView.rowSpace / 2);
+            listView.AddChidren(rowLinux);
+            rowLinux.AddLeftCaption("Linux", 300);
+            rowLinux.AddRightArrow();
+            rowLinux.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new GatewayLinuxInfoForm();
+                form.AddForm(this.zbGateway.GwId);
+            };
 
-            //璁惧鍗囩骇
-            this.GatewayUpdateMethod(btnText, btnProgressView, frameProgress, btnProgressBar, btnProRow.Width);
+            //鍗忚皟鍣�
+            var rowCoordinator = new FrameRowControl(listView.rowSpace / 2);
+            listView.AddChidren(rowCoordinator);
+            rowCoordinator.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uCoordinator), 500);
+            rowCoordinator.AddRightArrow();
+            rowCoordinator.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new GatewayCoordinatorInfoForm();
+                form.AddForm(this.zbGateway.GwId);
+            };
+
+            if (this.listVode != null)
+            {
+                //铏氭嫙椹卞姩
+                var rowVirtual = new FrameRowControl(listView.rowSpace / 2);
+                listView.AddChidren(rowVirtual);
+                rowVirtual.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uVirtualDrive), 500);
+                rowVirtual.AddRightArrow();
+                rowVirtual.ButtonClickEvent += (sender, e) =>
+                {
+                    var form = new GatewayVirtualDriveInfoForm();
+                    form.AddForm(listVode);
+                };
+            }
+            //娌℃湁鏂扮増鏈�
+            if (listVersionInfo[0] == null && listVersionInfo[1] == null && listVersionInfo[2] == null)
+            {
+                //鏈�鏂板浐浠剁増鏈�
+                var rowNew = new FrameRowControl();
+                rowNew.UseClickStatu = false;
+                listView.AddChidren(rowNew);
+                rowNew.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uNewFirmwareVersion), 500);
+                rowNew.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uNothing), 500);
+            }
+            //鍒掔嚎
+            for (int i = 0; i < listView.ChildrenCount - 1; i++)
+            {
+                ((FrameRowControl)listView.GetChildren(i)).AddBottomLine();
+            }
+
+            //璋冩暣鐪熷疄楂樺害
+            listView.AdjustRealHeight(Application.GetRealHeight(23));
+            frameBack.Height = listView.Bottom;
+
+            return frameBack.Bottom;
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨柊鐗堟湰鐨勬帶浠�
+        /// </summary>
+        private void InitNewVersionControl(int YY)
+        {
+            var frameBack = new FrameLayout();
+            frameBack.Y = YY + Application.GetRealHeight(35);
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.Height = Application.GetMinReal(832);
+            bodyFrameLayout.AddChidren(frameBack);
+
+            //鏈�鏂板浐浠剁増鏈�
+            var btnTitle = new NormalViewControl(700, 65, true);
+            btnTitle.X = HdlControlResourse.XXLeft;
+            btnTitle.Y = Application.GetRealHeight(30);
+            btnTitle.TextID = R.MyInternationalizationString.uNewFirmwareVersion;
+            btnTitle.TextSize = 15;
+            frameBack.AddChidren(btnTitle);
+
+            var listView = new VerticalListControl(12);
+            listView.Y = Application.GetRealHeight(109);
+            listView.Height = frameBack.Height - Application.GetRealHeight(109);
+            frameBack.AddChidren(listView);
+
+            //Linux
+            if (listVersionInfo[0] != null)
+            {
+                var rowLinux = new FrameRowControl(listView.rowSpace / 2);
+                rowLinux.UseClickStatu = false;
+                listView.AddChidren(rowLinux);
+                rowLinux.AddLeftCaption("Linux", 300);
+                rowLinux.AddMostRightView(HdlDeviceCommonLogic.Current.AppendVersion(listVersionInfo[0].FirmwareVersion), 300);
+                rowLinux.AddBottomLine();
+            }
+
+            //鍗忚皟鍣�
+            if (listVersionInfo[1] != null)
+            {
+                var rowCoordinator = new FrameRowControl(listView.rowSpace / 2);
+                rowCoordinator.UseClickStatu = false;
+                listView.AddChidren(rowCoordinator);
+                rowCoordinator.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uCoordinator), 500);
+                rowCoordinator.AddMostRightView(HdlDeviceCommonLogic.Current.AppendVersion(listVersionInfo[1].FirmwareVersion), 300);
+                rowCoordinator.AddBottomLine();
+            }
+
+            //铏氭嫙椹卞姩
+            if (listVersionInfo[2] != null)
+            {
+                var rowVirtual = new FrameRowControl(listView.rowSpace / 2);
+                rowVirtual.UseClickStatu = false;
+                listView.AddChidren(rowVirtual);
+                rowVirtual.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uVirtualDrive), 500);
+                rowVirtual.AddMostRightView(HdlDeviceCommonLogic.Current.AppendVersion(listVersionInfo[2].FirmwareVersion), 300);
+                rowVirtual.AddBottomLine();
+            }
+
+            //娣诲姞鍥轰欢浠嬬粛琛�
+            this.AddUpdateContent(listView);
+
+            //鍗囩骇
+            var btnUpdate = new BottomClickButton();
+            btnUpdate.TextID = R.MyInternationalizationString.uLevelUp;
+            bodyFrameLayout.AddChidren(btnUpdate);
+            btnUpdate.ButtonClickEvent += (sender, e) =>
+            {
+                ZbGateway realway = null;
+                if (HdlGatewayLogic.Current.GetRealGateway(ref realway, zbGateway) == false)
+                {
+                    //閿欒:缃戝叧瀵硅薄涓㈠け
+                    string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg);
+                    this.ShowMassage(ShowMsgType.Error, msg);
+                    return;
+                }
+              
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    //缃戝叧鍗囩骇
+                    DoGatewayUpdate(realway);
+                });
+            };
         }
 
         #endregion
 
-        #region 鈻� 璁惧鍗囩骇___________________________
+        #region 鈻� 鍙充笂瑙掕彍鍗昣________________________
+
+        /// <summary>
+        /// 鍒濆鍖栧彸涓婅鑿滃崟
+        /// </summary>
+        private void InitTopRightMenu()
+        {
+            if (HdlUserCenterResourse.HideOption.DeviceHistory != 1)
+            {
+                return;
+            }
+            var btnIcon = new MostRightIconControl(69, 69);
+            btnIcon.UnSelectedImagePath = "Item/More.png";
+            topFrameLayout.AddChidren(btnIcon);
+            btnIcon.InitControl();
+            btnIcon.ButtonClickEvent += ((sender, e) =>
+            {
+                //鏄剧ず鍙充笂瑙掕彍鍗曠晫闈�
+                this.ShowTopRightMenu();
+            });
+        }
+
+        /// <summary>
+        /// 鏄剧ず鍙充笂瑙掕彍鍗曠晫闈�
+        /// </summary>
+        private void ShowTopRightMenu()
+        {
+            var frame = new TopRightMenuControl(1, 2);
+            //鍘嗗彶鐗堟湰
+            var deviceMenu = Language.StringByID(R.MyInternationalizationString.uHistoryVersion);
+            frame.AddRowMenu(deviceMenu, "", "", () =>
+            {
+                var form = new GatewayHistoryFirmwareVersionForm();
+                form.AddForm(zbGateway, listVersionInfo[2], listVersionInfo[1], listVersionInfo[0], listVode);
+                form.SelectFirmwareInfoEvent += (info1,info2,info3,listCode) =>
+                {
+                    listVersionInfo[2] = info1;
+                    listVersionInfo[1] = info2;
+                    listVersionInfo[0] = info3;
+                    listVode = listCode;
+
+                    //鍒濆鍖栧綋鍓嶇増鏈殑鎺т欢
+                    var yy = this.InitNowVersionControl();
+                    if (listVersionInfo[0] != null || listVersionInfo[1] != null || listVersionInfo[2] != null)
+                    {
+                        //鍒濆鍖栨柊鐗堟湰鐨勬帶浠�
+                        this.InitNewVersionControl(yy);
+                    }
+                };
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞鍥轰欢浠嬬粛琛宊____________________
+
+        /// <summary>
+        /// 娣诲姞鍥轰欢浠嬬粛琛�
+        /// </summary>
+        /// <param name="listContent">鍒楄〃鎺т欢</param>
+        private void AddUpdateContent(VerticalListControl listContent)
+        {
+            //淇敼鍐呭
+            var frameContent = new FrameLayout();
+            frameContent.Height = Application.GetRealHeight(87);
+            listContent.AddChidren(frameContent);
+            var btnContent = new NormalViewControl(500, 87, true);
+            btnContent.X = HdlControlResourse.XXLeft;
+            btnContent.Y = Application.GetRealHeight(28);
+            btnContent.TextID = R.MyInternationalizationString.uEditorContent;
+            btnContent.TextSize = 12;
+            frameContent.AddChidren(btnContent);
+
+            foreach (var info in this.listVersionInfo)
+            {
+                if (info == null)
+                {
+                    continue;
+                }
+                foreach (var msg in info.UpdateContent)
+                {
+                    var btnRow = new FrameRowControl();
+                    btnRow.UseClickStatu = false;
+                    btnRow.Height = Application.GetRealHeight(40);
+                    listContent.AddChidren(btnRow);
+
+                    var btnMsg = btnRow.AddLeftCaption(msg, 965);
+                    btnMsg.TextSize = 10;
+                    btnMsg.TextColor = UserCenterColor.Current.TextGrayColor3;
+                }
+            }
+            //娣诲姞搴曢儴绌虹櫧闂撮殭
+            var frameSpace3 = new FrameLayout();
+            frameSpace3.Height = Application.GetRealHeight(58);
+            listContent.AddChidren(frameSpace3);
+        }
+
+        #endregion
+
+        #region 鈻� 缃戝叧鍗囩骇___________________________
 
         /// <summary>
         /// 缃戝叧鍗囩骇
         /// </summary>
-        /// <param name="btnText">鏍囬鎺т欢</param>
-        /// <param name="btnProgressView">杩涘害鍊兼枃鏈殑鏄剧ず鎺т欢</param>
-        /// <param name="frameProgress">杩涘害鍊艰兘澶熺Щ鍔ㄧ殑閭d釜妗嗘帶浠�</param>
-        /// <param name="btnProgressBar">杩涘害鏉�</param>
-        /// <param name="ProRowWidth">杩涘害鏉″鍣ㄧ殑鏈�澶у搴�</param>
-        private void GatewayUpdateMethod(NormalViewControl btnText, NormalViewControl btnProgressView,
-            FrameLayout frameProgress, FrameLayout btnProgressBar, int ProRowWidth)
+        private void DoGatewayUpdate(ZbGateway realway)
         {
-            //璁惧鍗囩骇
-            var updateLogic = new HdlGatewayUpdateLogic(this.upDatezbGateway, virtualFirmware, coordinatorFirmware, gatewayFirmware);
+            //鎵撳紑杩涘害鏉�
+            ProgressFormBar.Current.Start();
+            //缃戝叧鍗囩骇
+            var updateLogic = new HdlGatewayUpdateLogic(realway, listVersionInfo[2], listVersionInfo[1], listVersionInfo[0]);
             //鏇存柊鐘舵�佸彉鍖栫殑浜嬩欢
             updateLogic.UpdateStatuChangedEvent += (div, msg) =>
             {
@@ -147,70 +373,47 @@
                     {
                         //寮傚父
                         this.ShowMassage(ShowMsgType.Tip, msg);
-                        this.CloseForm();
+                        ProgressFormBar.Current.Close();
                     }
                     else if (div == 0)
                     {
                         //涓�鑸俊鎭�
-                        btnText.Text = msg;
+                        ProgressFormBar.Current.SetMsg(msg);
                     }
                     else if (div == 1)
                     {
                         //鍗囩骇瀹屾垚
-                        btnText.Text = msg;
+                        ProgressFormBar.Current.Close();
                         this.ShowMassage(ShowMsgType.Tip, msg);
-                        //璋冪敤鍥炶皟鍑芥暟
-                        this.FinishUpdateEvent?.Invoke();
-                        this.CloseForm();
+
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            //鍒濆鍖栦腑閮ㄦ帶浠�
+                            this.InitMiddleFrame();
+                        });
                     }
                 });
             };
             //杩涘害鍊兼敼鍙樹簨浠�
             updateLogic.ProgressEvent += (value) =>
             {
-                Application.RunOnMainThread(() =>
-                {
-                    //杩涘害鏉�
-                    int width = (int)(value * ProRowWidth);
-                    btnProgressBar.Width = width;
-
-                    //鏂囨湰鏄剧ず
-                    int persent = (int)(value * 100);
-                    btnProgressView.Text = persent + "%";
-                    //鏂囨湰鏄剧ず鐨勯偅涓浘鐗囨绉诲姩
-                    frameProgress.X = ControlCommonResourse.XXLeft + btnProgressBar.Right - frameProgress.Width / 2;
-                });
-
+                ProgressFormBar.Current.SetValue(value);
             };
             //缃戝叧鍗囩骇寮�濮�
             updateLogic.StartUpdateReady();
-        }
-
-        #endregion
-
-        #region 鈻� 鐣岄潰鍏抽棴___________________________
-
-        /// <summary>
-        /// 鐢婚潰鍏抽棴
-        /// </summary>
-        public override void CloseFormBefore()
-        {
-            //瀹夊崜鍙互鐐瑰嚮绯荤粺鐨勮繑鍥為敭
-            UserView.HomePage.Instance.ScrollEnabled = true;
-            Shared.Common.CommonPage.BackKeyCanClick = true;
-
-            //鍗囩骇瀵硅薄
-            string gwId = HdlGatewayLogic.Current.GetGatewayId(upDatezbGateway);
-            if (FirmwareUpdateResourse.dicGatewayUpdateList.ContainsKey(gwId) == true
-                && FirmwareUpdateResourse.dicGatewayUpdateList[gwId].IsFinishUpdate == true)
+            //鍏抽棴浜嬩欢
+            ProgressFormBar.Current.CloseEvent += () =>
             {
-                //濡傛灉缃戝叧宸茬粡鍗囩骇瀹屾垚锛岀晫闈㈠叧闂椂锛屽垯绉婚櫎鍐呭瓨
-                FirmwareUpdateResourse.dicGatewayUpdateList[gwId].Dispose();
-                FirmwareUpdateResourse.dicGatewayUpdateList.Remove(gwId);
-            }
-            this.FinishUpdateEvent = null;
-
-            base.CloseFormBefore();
+                //鍗囩骇瀵硅薄
+                string gwId = realway.GwId;
+                if (HdlFirmwareUpdateResourse.dicUpdateList.ContainsKey(gwId) == true
+                    && HdlFirmwareUpdateResourse.dicUpdateList[gwId].IsFinishUpdate == true)
+                {
+                    //濡傛灉缃戝叧宸茬粡鍗囩骇瀹屾垚锛岀晫闈㈠叧闂椂锛屽垯绉婚櫎鍐呭瓨
+                    HdlFirmwareUpdateResourse.dicUpdateList[gwId].Dispose();
+                    HdlFirmwareUpdateResourse.dicUpdateList.Remove(gwId);
+                }
+            };
         }
 
         #endregion

--
Gitblit v1.8.0