From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 30 八月 2022 09:37:38 +0800
Subject: [PATCH] 合并了IOS的代码

---
 ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs |  187 ++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 163 insertions(+), 24 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs b/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
old mode 100755
new mode 100644
index 726e76a..ae83791
--- a/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
@@ -84,6 +84,8 @@
             this.AddSensorDeviceReportEvent();
             //寮�鍚紶鎰熷櫒鐘舵�佽繕鍘熺殑绾跨▼
             this.StartRecoverSenorStatuThread();
+            //鏄剧ずApp鍏憡
+            this.ShowAppNotice();
         }
 
         /// <summary>
@@ -100,7 +102,7 @@
 
             //妤煎眰鍥炬爣
             var btnFloorIcon = new IconViewControl(69);
-            btnFloorIcon.X = HdlControlResourse.XXLeft;
+            btnFloorIcon.X = ControlCommonResourse.XXLeft;
             btnFloorIcon.Gravity = Gravity.CenterVertical;
             btnFloorIcon.UnSelectedImagePath = "Item/Floor.png";
             topFrameLayout.AddChidren(btnFloorIcon);
@@ -135,7 +137,7 @@
             //鍙瀵硅蹇嵎鏂瑰紡
             Shared.Phone.Device.VideoIntercom.VideoMachine.AccountSupportVideo(topFrameLayout);
             //瀹夐槻蹇嵎鏂瑰紡
-            if (HdlUserCenterResourse.ResidenceOption.SafetyShortcut)
+            if (UserCenterResourse.ResidenceOption.SafetyShortcut)
             {
                 var btnSafety = new Controls.SafetyShortcutControl();
                 btnSafety.X = Application.GetRealWidth(860);
@@ -152,7 +154,7 @@
 
             //浣忓畢鍚嶅瓧
             var btnHouseName = new NormalViewControl(700, 95, true);
-            btnHouseName.X = HdlControlResourse.XXLeft;
+            btnHouseName.X = ControlCommonResourse.XXLeft;
             btnHouseName.Y = Application.GetRealHeight(161);
             btnHouseName.TextSize = 24;
             btnHouseName.TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor;
@@ -188,7 +190,7 @@
         private void InitMidFrameLayoutControl()
         {
             //鎴愬憳韬唤涓嶅厑璁告坊鍔犵綉鍏�
-            if (HdlUserCenterResourse.ResidenceOption.AuthorityNo == 3)
+            if (UserCenterResourse.UserInfo.AuthorityNo == 3)
             {
                 //鍒濆鍖栧満鏅�,鍔熻兘鐨勫垏鎹㈡帶浠�
                 this.InitSceneFunctionSwitchControl();
@@ -247,13 +249,13 @@
             btnFunction.TextID = R.MyInternationalizationString.Function;
             btnFunction.TextAlignment = TextAlignment.Center;
             functionSceneView.AddChidren(btnFunction);
-            if (HdlUserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 1)
+            if (UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 1)
             {
                 btnScene.IsSelected = true;
                 btnScene.TextSize = 17;
                 btnScene.IsBold = true;
             }
-            else if (HdlUserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 2)
+            else if (UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 2)
             {
                 btnFunction.IsSelected = true;
                 btnFunction.TextSize = 17;
@@ -275,7 +277,7 @@
                     return;
                 }
                 //鍔熻兘鍒嗘敮閫夋嫨
-                HdlUserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 2;
+                UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 2;
 
                 btnScene.IsSelected = false;
                 btnScene.TextSize = 15;
@@ -295,7 +297,7 @@
                     return;
                 }
                 //鍦烘櫙鍒嗘敮閫夋嫨
-                HdlUserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 1;
+                UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 1;
 
                 btnScene.IsSelected = true;
                 btnScene.TextSize = 17;
@@ -549,9 +551,9 @@
             var listDevice = new List<CommonDevice>();
             foreach (var mainkeys in HdlRoomLogic.Current.NowMainPageRoom.ListDevice)
             {
-                var device = HdlDeviceCommonLogic.Current.GetDevice(mainkeys);
+                var device = LocalDevice.Current.GetDevice(mainkeys);
                 //鍒ゆ柇璇ヨ澶囪兘鍚︽樉绀哄湪涓婚〉
-                if (HdlDeviceCommonLogic.Current.CanShowInHomeHomeMainPage(device) == false)
+                if (LocalDevice.Current.CanShowInHomeHomeMainPage(device) == false)
                 {
                     continue;
                 }
@@ -630,6 +632,11 @@
                     {
                         cardContr = new Controls.DevicePmSensorCardControl();
                     }
+                    // 鏅捐。鏋� 
+                    else if (device.Type == DeviceType.Airer)
+                    {
+                        cardContr = new Controls.DeviceAirerCardControl();
+                    }
                     //褰╃伅(璋冨厜鍣�)
                     else if (device.Type == DeviceType.DimmableLight)
                     {
@@ -643,7 +650,17 @@
                     //娓╂箍搴�
                     else if (device.Type == DeviceType.TemperatureSensor)
                     {
-                        cardContr = new Controls.DeviceTemperatureCardControl();
+                        //绌烘皵璐ㄩ噺浼犳劅鍣� 
+                        //鑾峰彇璁惧绫诲瀷
+                        var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
+                        if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
+                        {
+                            cardContr = new Controls.DeviceAirQualitySensorCardControl();
+                        }
+                        else
+                        {
+                            cardContr = new Controls.DeviceTemperatureCardControl();
+                        }
                     }
                     //闂ㄩ攣
                     else if (device.Type == DeviceType.DoorLock)
@@ -656,7 +673,7 @@
                         cardContr = new Controls.DeviceColorTemperatureCardControl();
                     }
                     //鏃犳硶璇嗗埆
-                    else
+                    if (cardContr == null)
                     {
                         cardContr = new Controls.DeviceCardCommon();
                     }
@@ -670,7 +687,7 @@
                     cardContr.CardNeedRemoveEvent += () =>
                     {
                         //閲嶇疆璁惧鍗$墖鎺т欢鍧愭爣(鍗$墖闇�瑕佽鍒犻櫎涓撶敤)
-                        this.ResetDeviceCardControlLocation(HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device));
+                        this.ResetDeviceCardControlLocation(LocalDevice.Current.GetDeviceMainKeys(device));
                     };
                     //璁惧璁℃暟
                     contrCount++;
@@ -682,7 +699,7 @@
                         YY = cardContr.Bottom + this.GetPictrueRealSize(15);
                     }
                     //鎺т欢璁板綍鍒扮紦瀛樹腑
-                    this.dicDeviceCardControl[HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device)] = cardContr;
+                    this.dicDeviceCardControl[LocalDevice.Current.GetDeviceMainKeys(device)] = cardContr;
                     //鍔犵紦瀛�,鐒跺悗鍙戝懡浠�
                     listContr.Add(cardContr);
 
@@ -697,6 +714,7 @@
                         }
                         HdlThreadLogic.Current.RunThread(() =>
                         {
+                            int sendCount = 0;
                             while (listDeviceBackContr.Parent != null)
                             {
                                 bool hadSend = false;
@@ -712,7 +730,7 @@
                                         //鍙戦�佽幏鍙栫姸鎬佺殑鍛戒护
                                         listContr[i].SendStatuComand();
                                         hadSend = true;
-                                        System.Threading.Thread.Sleep(200);
+                                        System.Threading.Thread.Sleep(300);
                                     }
                                 }
                                 if (hadSend == false)
@@ -720,7 +738,13 @@
                                     //濡傛灉宸茬粡鍏ㄩ儴鍥炶矾閮芥帴鏀朵簡缃戝叧鍥炲,鍒欎笉鍐嶄簩娆″彂閫�
                                     break;
                                 }
-                                System.Threading.Thread.Sleep(2000);
+                                sendCount++;
+                                if (sendCount == 2)
+                                {
+                                    //灏卞彂2娆�
+                                    break;
+                                }
+                                System.Threading.Thread.Sleep(5000);
                             }
                         }, ShowErrorMode.NO);
                     }
@@ -1057,7 +1081,7 @@
             //璁╃晫闈㈠埆闂儊
             HdlThreadLogic.Current.RunMainInThread(() =>
             {
-                if (HdlUserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 2)
+                if (UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 2)
                 {
                     //鍔熻兘
                     this.ShowFunction();
@@ -1113,11 +1137,23 @@
                 HdlThreadLogic.Current.RunMain(() =>
                 {
                     //澶勭悊涓�鑸澶囩殑涓婃姤鏁版嵁
-                    string mainKeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(report);
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+
+                    //鏅捐。鏋朵笂鎶ラ渶瑕佺壒娈婂鐞嗭紝鍏朵粬涓婃姤鐨勫洖璺粺涓�杞负绔偣1
+                    var tempList = LocalDevice.Current.GetDevicesByMac(report.DeviceAddr);
+                    if (tempList.Count > 0)
+                    {
+                        var tempDeviceEnum = LocalDevice.Current.GetMyDeviceEnumInfo(tempList);
+                        if (tempDeviceEnum.ConcreteType == Common.DeviceConcreteType.Airer)
+                        {
+                            mainKeys = report.DeviceAddr + "_" + 1;
+                        }
+                    }
+
                     if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
                     {
                         //鍒锋柊鍗$墖淇℃伅
-                        var locadevice = HdlDeviceCommonLogic.Current.GetDevice(mainKeys);
+                        var locadevice = LocalDevice.Current.GetDevice(mainKeys);
                         //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉 2020.05.09:鍒犻櫎Ack涓婚
                         this.dicDeviceCardControl[mainKeys].SetHadGetResponeResultStatu();
                         //鍒锋柊鎺т欢
@@ -1140,11 +1176,11 @@
             {
                 HdlThreadLogic.Current.RunMain(() =>
                 {
-                    string mainKeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(report);
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
                     if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
                     {
                         //鍒锋柊鍗$墖鐘舵��
-                        bool bolOnline = HdlDeviceCommonLogic.Current.CheckDeviceIsOnline(report);
+                        bool bolOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(report);
                         this.dicDeviceCardControl[mainKeys].SetCardOnlineStatu(bolOnline);
                         return;
                     }
@@ -1168,7 +1204,7 @@
                 HdlThreadLogic.Current.RunMain(() =>
                 {
                     //澶勭悊浼犳劅鍣ㄤ笂鎶ユ暟鎹�
-                    string mainKeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(report);
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
                     if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
                     {
                         //寮�鍚崱鐗囬棯鐑佺壒鏁�
@@ -1204,7 +1240,7 @@
                                 HdlThreadLogic.Current.RunMain(() =>
                                 {
                                     //璁惧鐘舵�佸繀椤诲埛鏂�
-                                    string statuText = HdlDeviceCommonLogic.Current.GetMainPageDeviceStatuText(contr.device);
+                                    string statuText = HdlDeviceOtherLogic.Current.GetDeviceStatu(contr.device);
                                     contr.SetDeviceStatuText(statuText);
                                     //浼犳劅鍣ㄥ垏鎹负鐏拌壊鐘舵��
                                     contr.SwitchCardStatuAppeal(false);
@@ -1280,6 +1316,109 @@
             return true;
         }
 
+        /// <summary>
+        /// 鏄剧ずApp鍏憡
+        /// </summary>
+        private void ShowAppNotice()
+        {
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                if (HdlFirmwareUpdateLogic.CheckCanShowNotice() == true)
+                {
+                    while (this.IsFormOpen("HdlAutoBackupForm") == true)
+                    {
+                        //鑷姩澶囦唤鐨勭晫闈㈡鍦ㄦ墦寮�涓�
+                        System.Threading.Thread.Sleep(1000);
+                    }
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        //鍔犺浇绯荤粺鍏憡
+                        var form2 = new AppNoticeForm();
+                        UserView.UserPage.Instance.AddChidren(form2);
+                        form2.Show();
+                        form2.FinishEvent += () =>
+                        {
+                            HdlThreadLogic.Current.RunThread(() =>
+                            {
+                                System.Threading.Thread.Sleep(1000);
+                                //鏄剧ずApp鍗囩骇鐨勫脊绐�
+                                this.ShowUpdateAppDialog();
+
+                            }, ShowErrorMode.NO);
+                        };
+
+                    }, ShowErrorMode.NO);
+                }
+                else
+                {
+                    //鏄剧ずApp鍗囩骇鐨勫脊绐�
+                    this.ShowUpdateAppDialog();
+                }
+            }, ShowErrorMode.NO);
+        }
+
+        /// <summary>
+        /// 鏄剧ずApp鍗囩骇鐨勫脊绐�
+        /// </summary>
+        private void ShowUpdateAppDialog()
+        {
+            //App鍗囩骇鎻愮ず
+            if (string.IsNullOrEmpty(FirmwareUpdateResourse.AppNeedUpdateUrl) == false)
+            {
+                //鏁翠簡涓�娆′箣鍚庡氨涓嶆暣浜�
+                string updateUrl = FirmwareUpdateResourse.AppNeedUpdateUrl;
+                FirmwareUpdateResourse.AppNeedUpdateUrl = string.Empty;
+
+                while (this.IsFormOpen("HdlAutoBackupForm") == true)
+                {
+                    //鑷姩澶囦唤鐨勭晫闈㈡鍦ㄦ墦寮�涓�
+                    System.Threading.Thread.Sleep(1000);
+                }
+                //鍙戠幇APP鏂扮増鏈�,椹笂鍗囩骇{0}寮�鍚柊浣撻獙鍝
+                this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uAppUpdateMsg1).Replace("{0}", "\r\n"), () =>
+                {
+#if iOS
+                    Uri url = new Uri(updateUrl);
+                    UIKit.UIApplication.SharedApplication.OpenUrl(url);
+#endif
+#if Android
+                    HDLUtils.OpenUrl(updateUrl);
+#endif
+                }, Language.StringByID(R.MyInternationalizationString.uLevelUp));
+                //App鍗囩骇鎻愮ず浼樺厛
+                return;
+            }
+            //缃戝叧鍗囩骇鎻愮ず
+            if (FirmwareUpdateResourse.ListGatewayNeedUpdate.Count > 0)
+            {
+                //鏁村畬涔嬪悗灏辨竻绌�
+                var listGateway = new List<string>();
+                listGateway.AddRange(FirmwareUpdateResourse.ListGatewayNeedUpdate);
+                FirmwareUpdateResourse.ListGatewayNeedUpdate = new List<string>();
+
+                while (this.IsFormOpen("HdlAutoBackupForm") == true)
+                {
+                    //鑷姩澶囦唤鐨勭晫闈㈡鍦ㄦ墦寮�涓�
+                    System.Threading.Thread.Sleep(1000);
+                }
+                foreach (var gwId in listGateway)
+                {
+                    //鐩墠鍙暣涓�涓�
+                    if (HdlGatewayLogic.Current.IsGatewayExist(gwId) == true)
+                    {
+                        //鍙戠幇缃戝叧鏂扮増鏈�,椹笂鍗囩骇{0}寮�鍚柊浣撻獙鍝
+                        this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uGatewayUpdateMsg1).Replace("{0}", "\r\n"), () =>
+                        {
+                            var form = new UserCenter.GatewayUpdate.GatewayFirmwareUpdateForm();
+                            form.AddForm(HdlGatewayLogic.Current.GetLocalGateway(gwId));
+                        });
+                        break;
+                    }
+                }
+                return;
+            }
+        }
+
         #endregion
 
         #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
@@ -1293,6 +1432,6 @@
             return 1;
         }
 
-        #endregion
+#endregion
     }
 }

--
Gitblit v1.8.0