From d87400af518ebc9274f4447f06476959c3aa5102 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期二, 14 七月 2020 16:29:42 +0800
Subject: [PATCH] Merge branch 'dev-tzy' into dev-2020xm

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs |  126 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 125 insertions(+), 1 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
index 0f40b6d..ce24a39 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
@@ -114,7 +114,6 @@
         /// </summary>
         private Com.Mediatek.Elian.ElianNative hdlWiFi = null;
 #endif
-
         /// <summary>
         /// TCP鍗忚
         /// </summary>
@@ -127,6 +126,40 @@
         /// Ap妯″紡缃戝叧杩斿洖鐨勭閽�
         /// </summary>
         private string randDesKey = null;
+        /// <summary>
+        /// 鏄惁宸茬粡娣诲姞缃戠粶鍙樺寲鐩戝惉
+        /// </summary>
+        private bool hadAddListenNetWork = false;
+
+        /// <summary>
+        /// 鑳藉惁璁块棶http
+        /// </summary>
+        private bool m_CanAccessHttp = true;
+        /// <summary>
+        /// 涓婁竴娆¤闂甴ttp鐨勬椂闂�
+        /// </summary>
+        private DateTime oldAccessHttpTime = DateTime.Now;
+        /// <summary>
+        /// 鑳藉惁璁块棶http
+        /// </summary>
+        public bool CanAccessHttp
+        {
+            set
+            {
+                m_CanAccessHttp = value;
+                oldAccessHttpTime = DateTime.Now;
+            }
+            get
+            {
+                //8绉掑悗鍏佽鍐嶆璁块棶
+                if (m_CanAccessHttp == true || (DateTime.Now - oldAccessHttpTime).TotalMilliseconds > 8 * 1000)
+                {
+                    oldAccessHttpTime = DateTime.Now;
+                    return true;
+                }
+                return false;
+            }
+        }
 
         #endregion
 
@@ -286,6 +319,97 @@
 
         #endregion
 
+        #region 鈻� 鐩戝惉缃戠粶鍙樺寲_______________________
+
+        /// <summary>
+        /// 寮�鍚洃鍚綉缁�
+        /// </summary>
+        public void StartListenNetWork()
+        {
+            if (hadAddListenNetWork == true)
+            {
+                return;
+            }
+            hadAddListenNetWork = true;
+
+#if Android
+            //寮�鍚洃鍚畨鍗撶綉缁滃彉鍖�
+            BaseActivity.NetworkStateChanged += (value) =>
+            {
+                //缃戠粶鍙樺寲
+                this.NetworkStateChanged(value);
+            };
+#endif
+
+#if iOS
+            //寮�鍚洃鍚琁OS缃戠粶鍙樺寲
+            GateWay.Ios.Reachability.ReachabilityChanged += (sender, e) =>
+            {
+                var internetStatus = GateWay.Ios.Reachability.InternetConnectionStatus();
+                if (internetStatus == GateWay.Ios.NetworkStatus.NotReachable)//娌℃湁缃戠粶杩炴帴 0
+                {
+                    //缃戠粶鍙樺寲
+                    this.NetworkStateChanged(0);
+                }
+                else if (internetStatus == GateWay.Ios.NetworkStatus.ReachableViaCarrierDataNetwork)//3,4G鐨勭綉缁滆繛鎺� 1
+                {
+                    //缃戠粶鍙樺寲
+                    this.NetworkStateChanged(1);
+                }
+                else if (internetStatus == GateWay.Ios.NetworkStatus.ReachableViaWiFiNetwork) //wifi鐨勭綉缁滆繛鎺� 2
+                {
+                    //缃戠粶鍙樺寲
+                    this.NetworkStateChanged(2);
+                }
+            };
+#endif
+        }
+
+        /// <summary>
+        /// 鐩戝惉瀹夊崜缃戠粶鍙樺寲
+        /// </summary>
+        /// <param name="value">0:娌℃湁缃戠粶 1:4G  2:wifi</param>
+        private void NetworkStateChanged(int value)
+        {
+            //娌℃湁缃戠粶
+            if (value == 0)
+            {
+                this.CanAccessHttp = false;
+                //鍏抽棴Socket
+                ZigBee.Common.Application.FindGateWaySocket.Stop();
+            }
+            //WIFI鎴栬��4G鏃�
+            if (value == 1 || value == 2)
+            {
+                //鍏佽鑱旂綉
+                this.CanAccessHttp = true;
+
+                //妫�娴嬫槸鍚﹀凡缁忓畬鎴愯处鍙蜂俊鎭垵濮嬪寲
+                if (UserCenterResourse.UserInfo.InitUserInfoSuccess == false
+                   && Common.Config.Instance.HomeId != string.Empty)
+                {
+                    HdlThreadLogic.Current.RunThread(() =>
+                    {
+                        ProgressBar.Show();
+                        //閲嶆柊鍒濆鍖栬处鍙蜂俊鎭�
+                        UserCenterLogic.ReInitUserAccoutInfo();
+                        ProgressBar.Close();
+
+                    }, ShowErrorMode.NO);
+                }
+                //閲嶆柊鍒濆鍖朣ocket
+                ZigBee.Common.Application.FindGateWaySocket.Stop();
+                if (value == 2)
+                {
+                    ZigBee.Common.Application.FindGateWaySocket.Start();
+                }
+                //鏂帀鏈湴杩炴帴
+                HdlGatewayLogic.Current.ClearAllRealGateway();
+            }
+        }
+
+        #endregion
+
         #region 鈻� 涓�鑸柟娉昣__________________________
 
 #if Android

--
Gitblit v1.8.0