From f500e14c0a994487070380c50c85e0929cbc8e63 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期二, 05 一月 2021 10:48:04 +0800
Subject: [PATCH] 2021-01-05 1.更新

---
 Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs |  163 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 125 insertions(+), 38 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs
index 6d97bb6..f08fd6d 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddGateway.cs
@@ -303,7 +303,7 @@
                             goNext = CheckIfGoNext (common);
                          
                         } catch (Exception ex) {
-                            Console.WriteLine (ex.Message);
+                            Utlis.WriteLine (ex.Message);
                         } finally {
                             Application.RunOnMainThread (() => {
                                 MainPage.Loading.Hide ();
@@ -312,17 +312,17 @@
                                     CommonPage.FindGatewayChilrenIPAddress = common.IPAddress;
                                     inThisView = false;
                                     if (inView != null) {
-                                        Console.WriteLine ("inView != null");
+                                        Utlis.WriteLine ("inView != null");
                                         var deviceListView = new GuideSettingGateway (common);
                                         (inView.Parent as PageLayout).AddChidren (deviceListView);
                                         deviceListView.ShowPage ();
                                         (inView.Parent as PageLayout).PageIndex = (inView.Parent as PageLayout).ChildrenCount - 1;
                                     } else {
-                                        Console.WriteLine ("inView == null");
+                                        Utlis.WriteLine ("inView == null");
                                         UserHomePage.FrameLayoutMain.AddChidren (UserMiddle.guidePageView);
                                         var guide = new GuideAddResidence ();
                                         UserMiddle.guidePageView.AddChidren (guide);
-                                        guide.ShowHomeList ();
+                                        guide.ShowHomeView ();
                                         UserMiddle.guidePageView.PageIndex = 0;
                                         //閲嶇疆涓哄姞瀵嗘ā寮�
                                         UserConfig.Instance.IsLocalEncrypt = true;
@@ -345,12 +345,16 @@
 
 
         static bool inThisView = false;
-        Alert checkInternetAlert = new Alert ("", "Your phone in not connected to WIFI network, please connet", "Close", "Search again");
-        Alert confirmAlert = new Alert ("", "Please make sure gateway is powered up and comect to WiFi router.", "Close", "Search again");
-        Alert confirmAlert1 = new Alert ("", "If not all the gateways are in the list,you can search again.", "Close", "Search again");
+        //Alert checkInternetAlert = new Alert ("", "Your phone in not connected to WIFI network, please connet", "Close", "Search again");
+        //Alert confirmAlert = new Alert ("", "Please make sure gateway is powered up and comect to WiFi router.", "Close", "Search again");
+        //Alert confirmAlert1 = new Alert ("", "If not all the gateways are in the list,you can search again.", "Close", "Search again");
+        //Alert wrongPasswordAlert = new Alert ("", ErrorCode.GatewayPasswordError, "Close", "Search again");
+
         void SearchGatewayList ()
         {
             if (UserConfig.Instance.internetStatus == 0 || UserConfig.Instance.internetStatus == 1) {
+                Alert checkInternetAlert = new Alert ("", ErrorCode.NotConnectedToWIFI, "Close", "Search again");
+
                 checkInternetAlert.Show ();
 
                 checkInternetAlert.ResultEventHandler += (dsss, eee) => {
@@ -370,6 +374,7 @@
                     #region 鎼滅储璁惧
                     ////2020-01-14 榛樿鏄庢枃寮�濮嬫悳绱�
                     UserConfig.Instance.IsLocalEncrypt = false;
+                    UserConfig.Instance.EncryptedPasswordCorrect = true;
 
                     CommonPage.LocalPhoneFindDevice = true;
                     CommonPage.RandomHigh = (byte)new Random ().Next (255);
@@ -398,7 +403,7 @@
                         }
                         Control control = new Control ();
 
-                        Console.WriteLine ("缁勬挱鎼滅储缃戝叧锛屾悳绱㈠湴鍧�鏄�:" + CommonPage.EndPoint.ToString () + "    " + CommonPage.GateWayList.Count);
+                        Utlis.WriteLine ("缁勬挱鎼滅储缃戝叧锛屾悳绱㈠湴鍧�鏄�:" + CommonPage.EndPoint.ToString () + "    " + CommonPage.GateWayList.Count);
                         control.Send (new Target () {
                             IPEndPoint = CommonPage.EndPoint,
                             Command = Command.ReadGateway,
@@ -407,7 +412,7 @@
                             AddData = ms.ToArray ()
                         }, SendCount.Zero, false);
 
-                        Console.WriteLine ("骞挎挱鎼滅储缃戝叧锛屾悳绱㈠湴鍧�鏄�:" + new Net.NetWiFi ().BroadcastIpAddress.ToString () + "    " + CommonPage.GateWayList.Count);
+                        Utlis.WriteLine ("骞挎挱鎼滅储缃戝叧锛屾悳绱㈠湴鍧�鏄�:" + new Net.NetWiFi ().BroadcastIpAddress.ToString () + "    " + CommonPage.GateWayList.Count);
                         control.Send (new Target () {
                             IPEndPoint = new System.Net.IPEndPoint (new Net.NetWiFi ().BroadcastIpAddress, 6000),
                             Command = Command.ReadGateway,
@@ -427,23 +432,21 @@
                     CommonPage.LocalPhoneFindDevice = false;
                     #endregion
                 } catch (Exception ex) {
-                    Console.WriteLine (ex.ToString ());
+                    Utlis.WriteLine (ex.ToString ());
                 } finally {
                     Application.RunOnMainThread (() => {
                         if (CommonPage.GateWayList.Count == 0) {
                             MainPage.Loading.Hide ();
                             if (this != null && this.Parent != null) {
-                                confirmAlert.Show ();
-                                confirmAlert.ResultEventHandler += (ddf, ddd) => {
-                                    MainPage.Loading.Hide ();
-                                    if (ddd) {
-                                        SearchGatewayList ();
-                                    }
-                                };
+                                ShowConfirmAlert ();
+                                
+                               
                             }
                         } else {
                             if (this != null && this.Parent != null) {
                                 if (inThisView) {// this.Parent.GetChildren (this.Parent.ChildrenCount - 1) == this) {
+                                    Alert confirmAlert1 = new Alert ("", ErrorCode.IfAllTheGatewaysAreNotInTheList, "Close", "Search again");
+
                                     confirmAlert1.Show ();
                                     confirmAlert1.ResultEventHandler += (ddf, ddd) => {
                                         MainPage.Loading.Hide ();
@@ -459,7 +462,49 @@
             }) { IsBackground = true }.Start ();
         }
 
+        /// <summary>
+        /// 鎻愮ず
+        /// Please make sure gateway is powered up and comect to WiFi router.
+        /// 鎴栬��
+        /// 
+        /// </summary>
+        static void ShowConfirmAlert () {
+            if (UserConfig.Instance.IsLocalEncrypt) {
+                //瀵嗙爜妫�楠屾纭�
+                if (UserConfig.Instance.EncryptedPasswordCorrect) {
+                    Alert confirmAlert = new Alert ("", ErrorCode.MakeSureGatewayIsPoweredUp, "Close", "Search again");
+                    confirmAlert.Show ();
+                    confirmAlert.ResultEventHandler += (ddf, ddd) => {
+                        MainPage.Loading.Hide ();
+                        if (ddd) {
+                            inView.SearchGatewayList ();
+                        }
+                    };
+                } else {
+                    Alert wrongPasswordAlert = new Alert ("", ErrorCode.GatewayPasswordError, "Close", "Search again");
+                    wrongPasswordAlert.Show ();
+                    wrongPasswordAlert.ResultEventHandler += (ddf, ddd) => {
+                        MainPage.Loading.Hide ();
+                        if (ddd) {
+                            inView.SearchGatewayList ();
+                        }
+                    };
 
+                }
+            } else {
+                Alert confirmAlert = new Alert ("", ErrorCode.MakeSureGatewayIsPoweredUp, "Close", "Search again");
+                confirmAlert.Show ();
+                confirmAlert.ResultEventHandler += (ddf, ddd) => {
+                    MainPage.Loading.Hide ();
+                    if (ddd) {
+                        inView.SearchGatewayList ();
+                    }
+                };
+
+            }
+           
+
+        }
 
 
         //static byte [] AseKeyBytes;
@@ -486,11 +531,11 @@
         /// </summary>
         /// <param name="backBytes"></param>
         /// <returns></returns>
-        static bool CheckIsSuccessfulWithBytes (byte [] backBytes)
+        static bool CheckIsSuccessfulWithBytes (byte [] backBytes, string errorStr = "Modify gateway configuration failed,please try again!")
         {
             if (backBytes == null) {
                 Application.RunOnMainThread (() => {
-                    new Alert ("", Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline),
+                    new Alert ("", ErrorCode.GatewayNoResponse,
                                Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                 });
                 return false;
@@ -498,7 +543,7 @@
                 return true;
             } else {
                 Application.RunOnMainThread (() => {
-                    new Alert ("", Language.StringByID (R.MyInternationalizationString.OperationFailed),
+                    new Alert ("", errorStr,
                                Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                 });
                 return false;
@@ -532,19 +577,19 @@
             });
 
             bool goNext = false;
-            if (!UserConfig.Instance.IsLocalEncrypt) {
-                //濡傛灉娌″姞瀵嗭紝璧颁慨鏀瑰姞瀵嗘柟娉�
-                var result = SetGateWayLocalEncryption (common);
-                if (!result) {
-                    MainPage.LoadingHide ();
-                    return result;//淇敼澶辫触 杩斿洖goNext false
-                }
-                //淇敼鎴愬姛,璁剧疆鏈湴涓哄姞瀵嗘柟寮�
-                UserConfig.Instance.IsLocalEncrypt = true;
-                //string aseKeyStr = CommonPage.MyEncodingUTF8.GetString (AseKeyBytes);
-                //UserConfig.Instance.LocalEncryptKey = aseKeyStr;
-                System.Console.WriteLine ($"============>LocalEncryptKey 鍔犲瘑鎴愬姛Key涓猴細{UserConfig.Instance.LocalEncryptKey}");
-            }
+            //if (!UserConfig.Instance.IsLocalEncrypt) {
+            //    //濡傛灉娌″姞瀵嗭紝璧颁慨鏀瑰姞瀵嗘柟娉�
+            //    var result = SetGateWayLocalEncryption (common);
+            //    if (!result) {
+            //        MainPage.LoadingHide ();
+            //        return result;//淇敼澶辫触 杩斿洖goNext false
+            //    }
+            //    //淇敼鎴愬姛,璁剧疆鏈湴涓哄姞瀵嗘柟寮�
+            //    UserConfig.Instance.IsLocalEncrypt = true;
+            //    //string aseKeyStr = CommonPage.MyEncodingUTF8.GetString (AseKeyBytes);
+            //    //UserConfig.Instance.LocalEncryptKey = aseKeyStr;
+            //    Utlis.WriteLine ($"============>LocalEncryptKey 鍔犲瘑鎴愬姛Key涓猴細{UserConfig.Instance.LocalEncryptKey}");
+            //}
 
             var backBytes = Control.ControlBytesSendHasReturn (Command.Read_APP_Data_STORE_1D5C_CMD, common.SubnetID, common.DeviceID, new byte [] { });
           
@@ -552,9 +597,8 @@
                 Application.RunOnMainThread (() => {
                     new Alert ("", "No response from gateway. Please make sure the gateway is online and its firmware is up to date.", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                 });
+               
             }
-
-            MainPage.LoadingHide ();
 
             if (backBytes.Length >= 37) {
                 //******************浣忓畢ID string绫诲瀷*************
@@ -565,19 +609,62 @@
                 //2020-01-12
                 backIDStr = backIDStr.Replace ("\0", "");
                 if (enable || backIDStr == UserConfig.Instance.CurrentRegion.Id || string.IsNullOrEmpty (backIDStr)) {
+                   
+
+                    if (!UserConfig.Instance.IsLocalEncrypt) {
+                        //濡傛灉娌″姞瀵嗭紝璧颁慨鏀瑰姞瀵嗘柟娉�
+                        var result = SetGateWayLocalEncryption (common);
+                        if (!result) {
+                            Application.RunOnMainThread (() => {
+                                MainPage.Loading.Hide ();
+                                new Alert ("", "Encryption gateway failed, please try again.", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
+
+                            });
+                          
+                            return result;//淇敼澶辫触 杩斿洖goNext false
+                        }
+                        //淇敼鎴愬姛,璁剧疆鏈湴涓哄姞瀵嗘柟寮�
+                        UserConfig.Instance.IsLocalEncrypt = true;
+                        //Utlis.WriteLine ($"============>LocalEncryptKey 鍔犲瘑鎴愬姛Key涓猴細{UserConfig.Instance.LocalEncryptKey}");
+                    }
                     goNext = true;
+
                 } else {
-                    Application.RunOnMainThread (() => {
-                        new Alert ("", ErrorCode.UnableToBindGateway, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
-                    });
+                    UnableToBindGatewayAlertShow ();
                 }
             } else {
                 Application.RunOnMainThread (() => {
                     new Alert ("", ErrorCode.GatewayVersionLow, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                 });
             }
+            MainPage.LoadingHide ();
             return goNext;
 
         }
+
+
+        static void UnableToBindGatewayAlertShow ()
+        {
+            if (inView == null)
+                return;
+            Application.RunOnMainThread (() => {
+
+                //if (this != null && this.Parent != null) {
+                var alter = new Alert ("", ErrorCode.UnableToBindGateway, Language.StringByID (R.MyInternationalizationString.Close));
+                alter.ResultEventHandler += (sender1, e1) => {
+                    if (e1) {
+                        if (inView == null)
+                            return;
+                        //閲嶇疆涓哄姞瀵嗘ā寮�
+                        UserConfig.Instance.IsLocalEncrypt = true;
+                        (inView.Parent as PageLayout).PageIndex -= 1;
+                    }
+                };
+                alter.Show ();
+                //}
+
+            });
+
+        }
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0