From 691dbe24f5724f153e07947c7b75bdfea5f0b6d5 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期二, 24 九月 2024 16:15:15 +0800
Subject: [PATCH] 离线控制模式

---
 HDL-ON_Android/Assets/Phone/Collection/TokenInvalidTipIcon.png |    0 
 HDL-ON_iOS/Resources/Phone/Public/RightIcon2.png               |    0 
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs                           |   54 +++--
 HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPageBLL.cs          |    2 
 HDL-ON_Android/Assets/Language.ini                             |   31 ++
 HDL-ON_iOS/HDL-ON_iOS.csproj                                   |    2 
 HDL_ON/Common/ApiUtlis.cs                                      |  110 ++++++----
 HDL_ON/DAL/DriverLayer/Control_Udp.cs                          |    2 
 HDL_ON/DAL/Mqtt/MqttClient.cs                                  |   16 
 HDL-ON_Android/HDL-ON_Android.csproj                           |    2 
 HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs                        |  108 ++++++++++
 HDL-ON_iOS/Resources/Language.ini                              |   31 ++
 HDL_ON/Common/HDLCommon.cs                                     |    2 
 HDL_ON/UI/UI0-Public/PublicAssmebly.cs                         |   12 
 HDL_ON/Common/UserInfo.cs                                      |   24 +
 HDL-ON_Android/Assets/Phone/Public/RightIcon2.png              |    0 
 HDL_ON/Common/R.cs                                             |   17 +
 HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPage.cs             |   58 -----
 HDL-ON_iOS/Resources/Phone/Collection/TokenInvalidTipIcon.png  |    0 
 HDL_ON/DAL/Server/HttpServerRequest.cs                         |    5 
 HDL_ON/DAL/DriverLayer/Control.cs                              |   12 
 HDL_ON/UI/MainPage.cs                                          |   58 -----
 22 files changed, 323 insertions(+), 223 deletions(-)

diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index 0a74118..a942d15 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -691,6 +691,10 @@
 704=Non Chinese users choose
 705=Please select a server
 706=NewEnergy
+707=Off-line Controlling, to switch to remote control, click here to login.
+708=Your current login status has expired, please log in again.
+709=Log in
+710=Off-line Control
 
 
 
@@ -2097,9 +2101,10 @@
 704=闈炰腑鍥界敤鎴烽�夋嫨
 705=璇烽�夋嫨鏈嶅姟鍣�
 706=鏂拌兘婧�
-
-
-
+707=绂荤嚎鎺у埗涓紝濡傞渶鍒囨崲鑷宠繙绋嬫帶鍒讹紝鐐规鐧诲綍
+708=鎮ㄥ綋鍓嶇殑鐧诲綍鐘舵�佸凡缁忓け鏁堬紝璇烽噸鏂扮櫥褰�
+709=鍘荤櫥褰�
+710=绂荤嚎鎺у埗
 
 
 
@@ -3500,7 +3505,10 @@
 704=Non Chinese users choose
 705=Please select a server
 706=NewEnergy
-
+707=Off-line Controlling, to switch to remote control, click here to login.
+708=Your current login status has expired, please log in again.
+709=Log in
+710=Off-line Control
 
 
 
@@ -4898,7 +4906,10 @@
 704=Non Chinese users choose
 705=Please select a server
 706=NewEnergy
-
+707=Off-line Controlling, to switch to remote control, click here to login.
+708=Your current login status has expired, please log in again.
+709=Log in
+710=Off-line Control
 
 
 
@@ -6284,7 +6295,10 @@
 704=Non Chinese users choose
 705=Please select a server
 706=NewEnergy
-
+707=Off-line Controlling, to switch to remote control, click here to login.
+708=Your current login status has expired, please log in again.
+709=Log in
+710=Off-line Control
 
 
 
@@ -7688,7 +7702,10 @@
 704=Non Chinese users choose
 705=Please select a server
 706=NewEnergy
-
+707=Off-line Controlling, to switch to remote control, click here to login.
+708=Your current login status has expired, please log in again.
+709=Log in
+710=Off-line Control
 
 
 
diff --git a/HDL-ON_Android/Assets/Phone/Collection/TokenInvalidTipIcon.png b/HDL-ON_Android/Assets/Phone/Collection/TokenInvalidTipIcon.png
new file mode 100644
index 0000000..b48cc2e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/Collection/TokenInvalidTipIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/Public/RightIcon2.png b/HDL-ON_Android/Assets/Phone/Public/RightIcon2.png
new file mode 100644
index 0000000..9821b76
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/Public/RightIcon2.png
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index ac42475..025fd1c 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -669,6 +669,8 @@
     <AndroidAsset Include="Assets\Phone\FunctionIcon\Acst\Inverter\BatteryIconDischarg100.png" />
     <AndroidAsset Include="Assets\Phone\FunctionIcon\Acst\Inverter\BatteryIconFault100.png" />
     <AndroidAsset Include="Assets\Phone\FunctionIcon\Acst\Inverter\BatteryIconShutdown100.png" />
+    <AndroidAsset Include="Assets\Phone\Collection\TokenInvalidTipIcon.png" />
+    <AndroidAsset Include="Assets\Phone\Public\RightIcon2.png" />
   </ItemGroup>
   <ItemGroup>
     <AndroidResource Include="Resources\values\colors.xml" />
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index 7bf23ac..6d6eb34 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1847,6 +1847,8 @@
       <BundleResource Include="Resources\Phone\FunctionIcon\Acst\Inverter\BatteryIconDischarg100.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\Acst\Inverter\BatteryIconFault100.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\Acst\Inverter\BatteryIconShutdown100.png" />
+      <BundleResource Include="Resources\Phone\Collection\TokenInvalidTipIcon.png" />
+      <BundleResource Include="Resources\Phone\Public\RightIcon2.png" />
     </ItemGroup>
     <ItemGroup>
       <ITunesArtwork Include="iTunesArtwork" />
diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini
index 0a74118..a942d15 100644
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -691,6 +691,10 @@
 704=Non Chinese users choose
 705=Please select a server
 706=NewEnergy
+707=Off-line Controlling, to switch to remote control, click here to login.
+708=Your current login status has expired, please log in again.
+709=Log in
+710=Off-line Control
 
 
 
@@ -2097,9 +2101,10 @@
 704=闈炰腑鍥界敤鎴烽�夋嫨
 705=璇烽�夋嫨鏈嶅姟鍣�
 706=鏂拌兘婧�
-
-
-
+707=绂荤嚎鎺у埗涓紝濡傞渶鍒囨崲鑷宠繙绋嬫帶鍒讹紝鐐规鐧诲綍
+708=鎮ㄥ綋鍓嶇殑鐧诲綍鐘舵�佸凡缁忓け鏁堬紝璇烽噸鏂扮櫥褰�
+709=鍘荤櫥褰�
+710=绂荤嚎鎺у埗
 
 
 
@@ -3500,7 +3505,10 @@
 704=Non Chinese users choose
 705=Please select a server
 706=NewEnergy
-
+707=Off-line Controlling, to switch to remote control, click here to login.
+708=Your current login status has expired, please log in again.
+709=Log in
+710=Off-line Control
 
 
 
@@ -4898,7 +4906,10 @@
 704=Non Chinese users choose
 705=Please select a server
 706=NewEnergy
-
+707=Off-line Controlling, to switch to remote control, click here to login.
+708=Your current login status has expired, please log in again.
+709=Log in
+710=Off-line Control
 
 
 
@@ -6284,7 +6295,10 @@
 704=Non Chinese users choose
 705=Please select a server
 706=NewEnergy
-
+707=Off-line Controlling, to switch to remote control, click here to login.
+708=Your current login status has expired, please log in again.
+709=Log in
+710=Off-line Control
 
 
 
@@ -7688,7 +7702,10 @@
 704=Non Chinese users choose
 705=Please select a server
 706=NewEnergy
-
+707=Off-line Controlling, to switch to remote control, click here to login.
+708=Your current login status has expired, please log in again.
+709=Log in
+710=Off-line Control
 
 
 
diff --git a/HDL-ON_iOS/Resources/Phone/Collection/TokenInvalidTipIcon.png b/HDL-ON_iOS/Resources/Phone/Collection/TokenInvalidTipIcon.png
new file mode 100644
index 0000000..b48cc2e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/Collection/TokenInvalidTipIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/Public/RightIcon2.png b/HDL-ON_iOS/Resources/Phone/Public/RightIcon2.png
new file mode 100644
index 0000000..9821b76
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/Public/RightIcon2.png
Binary files differ
diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs
index d4666d5..93b3a72 100644
--- a/HDL_ON/Common/ApiUtlis.cs
+++ b/HDL_ON/Common/ApiUtlis.cs
@@ -4,6 +4,7 @@
 using System.Threading.Tasks;
 using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
+using HDL_ON.UI;
 using HDL_ON.UI.UI2.FuntionControlView.Video;
 using HDL_ON.UI.UI2.Intelligence.Automation;
 using Newtonsoft.Json;
@@ -104,7 +105,7 @@
             string code = StateCode.SUCCESS;
 
             Inverter.Ins.H5Page = null;//閲嶇疆鍏変紡椤甸潰
-            var downloadDataThread = new System.Threading.Thread(async() =>
+            var downloadDataThread = new System.Threading.Thread(() =>
             {
                 try
                 {
@@ -279,26 +280,6 @@
                     return;
                 }
                 MainPage.Log($"鍒锋柊涓汉淇℃伅鎴愬姛");
-
-                //int count = 0;
-                //while (count < 10)
-                //{
-                //    if (DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
-                //    {
-                //        System.Threading.Thread.Sleep(200);
-                //    }
-                //    else
-                //    {
-                //        break;
-                //    }
-                //    count++;
-                //}
-                //if (DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
-                //{
-                //    return;
-                //}
-
-                //return;
 
                 try
                 {
@@ -746,6 +727,34 @@
                         catch (Exception ex){
                             MainPage.Log("Error", $"璇诲彇鏈湴鏁版嵁寮傚父锛歿ex.StackTrace}");
                         }
+
+                        try
+                        {
+                            HomePage.LoadEvent_CheckTokenValid();
+                            if (IsValidToken && !UserInfo.Current.IsTipedInvalidToken)
+                            {
+                                UserInfo.Current.IsTipedInvalidToken = true;
+                                UserInfo.Current.SaveUserInfo();
+                                Application.RunOnMainThread(() =>
+                                {
+                                    try
+                                    {
+                                        new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.TokenInvalidTipMsg, StringId.OfflineControl, StringId.GoLogin, () =>
+                                        {
+                                            HDLCommon.Current.Logout();
+                                        });
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        MainPage.Log("Error", $"鎻愮ず鐧诲綍鍑瘉绐楀彛鍔犺浇寮傚父:{ex.StackTrace}");
+                                    }
+                                });
+                            }
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log("Error", $"鏇存柊鐧诲綍鍑瘉鏂规硶璋冪敤寮傚父:{ex.StackTrace}");
+                        }
                     }
                 }
             })
@@ -778,39 +787,50 @@
         {
             lock (FunctionList.List.securities)
             {
-                var pack = Ins.HttpRequest.GetSecurityList();
-                if (pack.Code == StateCode.SUCCESS)
+                try
                 {
-                    var packList = JsonConvert.DeserializeObject<List<SecurityAlarm>>(pack.Data.ToString());
-                    Console.WriteLine("瀹夐槻鎬绘暟锛�" + packList.Count);
-                    var sidList = new List<string>();
-                    foreach (var function in packList)
+                    var pack = Ins.HttpRequest.GetSecurityList();
+                    if (pack.Code == StateCode.SUCCESS)
                     {
-                        sidList.Add(function.sid);
-                    }
-                    var infoListPack = Ins.httpRequest.GetSecurityInfo(sidList, new List<string>());
-                    var infoList = JsonConvert.DeserializeObject<List<SecurityAlarm>>(infoListPack.Data.ToString());
-                    if (infoList != null)
-                    {
-                        var filePathList = FileUtlis.Files.ReadFiles().FindAll((obj) => obj.StartsWith("SecurityData_"));
-                        if (filePathList != null)
+                        var packList = JsonConvert.DeserializeObject<List<SecurityAlarm>>(pack.Data.ToString());
+                        Console.WriteLine("瀹夐槻鎬绘暟锛�" + packList.Count);
+                        var sidList = new List<string>();
+                        foreach (var function in packList)
                         {
-                            foreach (var file in filePathList)
+                            sidList.Add(function.sid);
+                        }
+                        if (sidList.Count == 0)
+                        {
+                            return;
+                        }
+                        var infoListPack = Ins.httpRequest.GetSecurityInfo(sidList, new List<string>());
+                        var infoList = JsonConvert.DeserializeObject<List<SecurityAlarm>>(infoListPack.Data.ToString());
+                        if (infoList != null)
+                        {
+                            var filePathList = FileUtlis.Files.ReadFiles().FindAll((obj) => obj.StartsWith("SecurityData_"));
+                            if (filePathList != null)
                             {
-                                FileUtlis.Files.DeleteFile(file);
+                                foreach (var file in filePathList)
+                                {
+                                    FileUtlis.Files.DeleteFile(file);
+                                }
+                            }
+                            FunctionList.List.securities.Clear();
+                            foreach (var function in infoList)
+                            {
+                                function.SaveFile();
+                                FunctionList.List.IniFunctionList(function.savePath, true);
                             }
                         }
-                        FunctionList.List.securities.Clear();
-                        foreach (var function in infoList)
-                        {
-                            function.SaveFile();
-                            FunctionList.List.IniFunctionList(function.savePath, true);
-                        }
+                    }
+                    else
+                    {
+                        MainPage.Log($"璇诲彇瀹夐槻鍒楄〃澶辫触:Code:{pack.Code}; Msg:{pack.message}");
                     }
                 }
-                else
+                catch (Exception ex)
                 {
-                    MainPage.Log($"璇诲彇瀹夐槻鍒楄〃澶辫触:Code:{pack.Code}; Msg:{pack.message}");
+                    MainPage.Log("Error", $"璇诲彇瀹夐槻鍒楄〃澶辫触:Code:{ex.StackTrace}");
                 }
             }
         }
diff --git a/HDL_ON/Common/HDLCommon.cs b/HDL_ON/Common/HDLCommon.cs
index 5944bdc..c9e3c41 100644
--- a/HDL_ON/Common/HDLCommon.cs
+++ b/HDL_ON/Common/HDLCommon.cs
@@ -602,7 +602,7 @@
                             //6.娓呯┖Siri鍏变韩鏁版嵁淇℃伅
                             new Other.SkipControl().SetData(false, "", "", "", "");
                             var sDM = new SiriKit.SceneDateManager();
-                            Console.WriteLine($"IsLogin:{sDM.IsLgoin};accessToken:{sDM.AccessToken};refreshToken:{sDM.RefreshToken};RegionUrl:{sDM.RegionUrl};HomeId:{sDM.HomeId}");
+                            //Console.WriteLine($"IsLogin:{sDM.IsLgoin};accessToken:{sDM.AccessToken};refreshToken:{sDM.RefreshToken};RegionUrl:{sDM.RegionUrl};HomeId:{sDM.HomeId}");
 #endif
                         }
                         catch (Exception ex)
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index b0e0a67..8353782 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -5,6 +5,23 @@
 {
     public static class StringId
     {
+
+        /// <summary>
+        /// 绂荤嚎鎺у埗
+        /// </summary>
+        public const int OfflineControl = 710;
+        /// <summary>
+        /// 鍘荤櫥褰�
+        /// </summary>
+        public const int GoLogin = 709;
+        /// <summary>
+        /// 鎮ㄥ綋鍓嶇殑鐧诲綍鐘舵�佸凡缁忓け鏁堬紝璇烽噸鏂扮櫥褰�
+        /// </summary>
+        public const int TokenInvalidTipMsg = 708;
+        /// <summary>
+        /// 绂荤嚎鎺у埗涓紝濡傞渶鍒囨崲鑷宠繙绋嬫帶鍒讹紝鐐规鐧诲綍
+        /// </summary>
+        public const int TokenInvalidMsg = 707;
         /// <summary>
         /// 鏂拌兘婧�
         /// </summary>
diff --git a/HDL_ON/Common/UserInfo.cs b/HDL_ON/Common/UserInfo.cs
index 1e53ae7..4f59c01 100644
--- a/HDL_ON/Common/UserInfo.cs
+++ b/HDL_ON/Common/UserInfo.cs
@@ -164,19 +164,27 @@
         /// </summary>
         public List<RegionInfoRes> regionList = new List<RegionInfoRes>();
         /// <summary>
+        /// token鏄惁鏈夋晥
+        /// </summary>
+        public bool ValidToken = false;
+        /// <summary>
+        /// 鏄惁鎻愮ず杩嘥oken杩囨湡
+        /// </summary>
+        public bool IsTipedInvalidToken = false;
+        /// <summary>
         /// 涓婁竴娆$櫥褰曟椂闂�
         /// </summary>
-        public DateTime LastTime = DateTime.MinValue;
+        //public DateTime LastTime = DateTime.MinValue;
         /// <summary>
         /// 鏄惁鏄櫥褰曠姸鎬�
         /// </summary>
-        public bool IsLogin
-        {
-            get
-            {
-                return (DateTime.Now - LastTime).TotalDays < 7;
-            }
-        }
+        //public bool IsLogin = false;
+        //{
+        //    get
+        //    {
+        //        return (DateTime.Now - LastTime).TotalDays < 7;
+        //    }
+        //}
 
         [Newtonsoft.Json.JsonIgnore]
         public DateTime LastTimeOpenDoor = DateTime.MinValue;
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index 318bd99..baec645 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -276,8 +276,8 @@
         public void SearchLoaclGateway()
         {
             //2021-01-15 : 浣忓畢娌℃湁缁戝畾缃戝叧鐨勬椂鍊欎笉鐢ㄦ悳绱紝骞朵笖涓嶈兘閾炬帴mqtt
-            if (DB_ResidenceData.Instance.HomeGateway == null || string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.gatewayId) ||
-                    !UserInfo.Current.IsLogin)
+            if (DB_ResidenceData.Instance.HomeGateway == null || string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.gatewayId))
+                //|| !UserInfo.Current.IsLogin)
             {
                 return;
             }
@@ -978,10 +978,10 @@
         /// <returns></returns>
         public void ConvertReceiveData(byte[] receiveBytes, string ip)
         {
-            if (!UserInfo.Current.IsLogin)
-            {
-                return;
-            }
+            //if (!UserInfo.Current.IsLogin)
+            //{
+            //    return;
+            //}
             var reString = Encoding.UTF8.GetString(receiveBytes);
             AnalysisReceiveData(reString, receiveBytes, ip);
         }
diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index 6ad5775..a697e0b 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -104,7 +104,7 @@
             try
             {
                 //璐﹀彿娌$櫥褰曚笉鍥炲
-                if ( UserInfo.Current == null || ! UserInfo.Current.IsLogin)
+                if ( UserInfo.Current == null )///|| ! UserInfo.Current.IsLogin)
                 {
                     return;
                 }
diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs
index cea69ec..36272cc 100644
--- a/HDL_ON/DAL/Mqtt/MqttClient.cs
+++ b/HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -353,10 +353,10 @@
             }
             MainPage.LinkHdlMqttCount++;
 
-            if (!UserInfo.Current.IsLogin)
-            {
-                return;
-            }
+            //if (!UserInfo.Current.IsLogin)
+            //{
+            //    return;
+            //}
             if (DB_ResidenceData.Instance.CurrentRegion == null || DB_ResidenceData.Instance.CurrentRegion.id == null)
             {
                 return;
@@ -868,10 +868,10 @@
                     return;
             }
 
-            if (!UserInfo.Current.IsLogin)
-            {
-                return;
-            }
+            //if (!UserInfo.Current.IsLogin)
+            //{
+            //    return;
+            //}
 
             DisConnectRemoteMqttClient("鎸や笅绾�");
 
diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs
index d818a1c..10cec37 100644
--- a/HDL_ON/DAL/Server/HttpServerRequest.cs
+++ b/HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -171,7 +171,7 @@
                 UserInfo.Current.LoginTokenString = revertData.headerPrefix + revertData.accessToken;
                 UserInfo.Current.AccessToken = revertData.accessToken;
                 UserInfo.Current.RefreshToken = revertData.refreshToken;
-                UserInfo.Current.LastTime = DateTime.Now;
+                UserInfo.Current.ValidToken = true;
                 UserInfo.Current.SaveUserInfo();
 
 #if __IOS__
@@ -182,7 +182,7 @@
             }
             else if (revertObj.Code == StateCode.PasswrodError)
             {
-                UserInfo.Current.LastTime = DateTime.MinValue;
+                UserInfo.Current.ValidToken = false;
             }
 #if __IOS__
             else if (revertObj.Code == "10001")
@@ -190,7 +190,6 @@
                 if (canRefresh)
                 {
                     UserInfo.Current.RefreshToken = SiriKit.NSUserDefaultsHelper.DataSuite.StringForKey(SiriKit.NSUserDefaultsHelper.StorageKeys.GLOBAL_GRefreshToken);
-                    //UserInfo.Current.AccessToken = SiriKit.NSUserDefaultsHelper.DataSuite.StringForKey(SiriKit.NSUserDefaultsHelper.StorageKeys.GLOBAL_GAccessToken);
                     RefreshToken(false);
                 }
             }
diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs
index fe8645f..5abbe13 100644
--- a/HDL_ON/UI/MainPage.cs
+++ b/HDL_ON/UI/MainPage.cs
@@ -171,44 +171,22 @@
 
                 BaseView = Application.MainPage;
                 Application.MainPage.BackgroundColor = CSS_Color.MainBackgroundColor;
-                //Application.MainPage.BackgroundColor = 0xFFFF0000;// CSS_Color.MainBackgroundColor;
-                //BaseView = new FrameLayout()
-                //{
-                //    Y = Application.GetRealHeight(20),
-                //    Width = Application.GetRealWidth(376),
-                //    Height = Application.GetRealHeight(667),
-                //};
-                //Application.MainPage.AddChidren(BaseView);
                 Language.UpdateLanguage();
-                //#region 娴嬭瘯
-                //var ddd = new UI.test.TestDialog();
-                //ddd.InitView();
-                //return;
-                //#endregion
 
                 if (string.IsNullOrEmpty(OnAppConfig.Instance.LastLoginUserId))
                 {
-                    GoLoginPage();
+                    GoLoginPage(UserInfo.Current);
                 }
                 else
                 {
                     //鍒ゆ柇闇�涓嶉渶瑕佺櫥褰曪紝鏈夋病鏈夌櫥褰曪紝鎴栬�呯櫥褰曟槸鍚﹁繃鏈燂紝
-                    if (UserInfo.Current == null || !UserInfo.Current.IsLogin)
+                    if (UserInfo.Current == null)// || !UserInfo.Current.IsLogin)
                     {
                         GoLoginPage(UserInfo.Current);
                     }
                     else
                     {
-                        //new System.Threading.Thread(() =>
-                        //{
-                        //    var pm = new DAL.Server.HttpServerRequest();
-                        //    pm.RefreshToken();//鍒锋柊Token
-                        //    pm.GetHomePager();//鍒锋柊浣忓畢淇℃伅
-                        //    pm.GetUserInfo();//鍒锋柊涓汉淇℃伅
-                        //})
-                        //{ IsBackground = true }.Start();
                         Common.ApiUtlis.Ins.DownloadData();
-
                         GoUserPage(false, true);
                     }
                 }
@@ -239,36 +217,6 @@
 
             }
 
-//#if __ANDROID__
-//            new System.Threading.Thread(async () =>
-//            {
-//                int i = 10;
-//                while (i < 10) {
-//                    try
-//                    {
-//                        var location_android = await HDL_ON_Android.LocationUtils.GetCurrentLocationAsync();
-//                        if (location_android != null)
-//                        {
-//                            MainPage.cityInfo.lat = location_android.Latitude.ToString();
-//                            MainPage.cityInfo.lon = location_android.Longitude.ToString();
-//                            new HDL_ON.DAL.Server.HttpServerRequest().GetCityWeatherInfo(MainPage.cityInfo.lon.Replace(",", "."), MainPage.cityInfo.lat.ToString().Replace(",", "."));
-//                            i = 100;
-//                            Application.RunOnMainThread(() => {
-//                                HomePage.LoadEvent_RefreshAir();
-//                            });
-//                        }
-//                        else
-//                        {
-//                            i++;
-//                        }
-//                    } catch (Exception ex)
-//                    {
-//                        Log($"缁忕含搴﹁幏鍙栧紓甯�: {ex.Message}");
-//                    }
-//                }
-//            })
-//            { IsBackground = true }.Start();
-//#endif
         }
 
         /// <summary>
@@ -284,6 +232,8 @@
                 }
             }
             catch { }
+            OnAppConfig.Instance.LastLoginUserId = "";
+            UserInfo.Current.ClearUserInfo();
             BaseView.BackgroundColor = CSS_Color.BackgroundColor;
             var fisrtView = new UI.UI1Login.LoginPage();
             fisrtView.BackgroundColor = CSS_Color.MainBackgroundColor;
diff --git a/HDL_ON/UI/UI0-Public/PublicAssmebly.cs b/HDL_ON/UI/UI0-Public/PublicAssmebly.cs
index ef20fb3..5ac7e29 100644
--- a/HDL_ON/UI/UI0-Public/PublicAssmebly.cs
+++ b/HDL_ON/UI/UI0-Public/PublicAssmebly.cs
@@ -244,13 +244,19 @@
         {
             TipOptionMsg(titleId, Language.StringByID(msgId), callBackAction);
         }
+
+        public void TipOptionMsg(int titleId, int msgId,int cancelTextId,int confrimTextId, Action callBackAction)
+        {
+            TipOptionMsg(titleId, Language.StringByID(msgId), callBackAction, 0,cancelTextId, confrimTextId);
+        }
+
         /// <summary>
         /// 鍔犺浇鎻愮ず寮圭獥
         /// </summary>
         /// <param name="titleId"></param>
         /// <param name="msgId"></param>
         /// <param name="callBackAction"></param>
-        public void TipOptionMsg(int titleId, string msg, Action callBackAction,int extraHeight = 0)
+        public void TipOptionMsg(int titleId, string msg, Action callBackAction,int extraHeight = 0, int cancelTextId = StringId.Cancel, int confrimTextId = StringId.Confirm)
         {
             Dialog dialog = new Dialog()
             {
@@ -314,7 +320,7 @@
                 TextSize = CSS_FontSize.SubheadingFontSize,
                 //SelectedTextColor = CSS_Color.MainBackgroundColor,
                 //SelectedBackgroundColor = CSS_Color.MainColor,
-                TextID = StringId.Cancel,
+                TextID = cancelTextId,
             };
             contentView.AddChidren(btnCancel);
 
@@ -329,7 +335,7 @@
                 TextSize = CSS_FontSize.SubheadingFontSize,
                 TextColor = CSS_Color.MainBackgroundColor,
                 BackgroundColor = CSS_Color.MainColor,
-                TextID = StringId.Confirm,
+                TextID = confrimTextId,
             };
             contentView.AddChidren(btnConfirm);
             //渚嬶細鍙充笅鍦嗚 澶у皬涓�50
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index e69bd40..48d096f 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
+using HDL_ON.Common;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using Shared;
@@ -24,7 +25,11 @@
         /// <summary>
         /// 杩炴帴鐘舵�佹彁绀�
         /// </summary>
-        FrameLayout divLinkStateTip;
+        FrameLayout linkStateMsgView;
+        /// <summary>
+        /// 鐧诲綍鐘舵�佹彁绀哄尯鍩�
+        /// </summary>
+        FrameLayout tokenInvalidMsgView;
         /// <summary>
         /// 瀹夐槻鐘舵�佸浘鏍�
         /// </summary>
@@ -159,14 +164,14 @@
                 };
                 topView = new FrameLayout()
                 {
-                    Height = Application.GetRealHeight(113),//216),
+                    Height = Application.GetRealHeight(113) + Application.GetRealWidth(24),//216),
                     BackgroundImagePath = DB_ResidenceData.Instance.residenceImage,
                 };
                 bodyView.AddChidren(topView);
 #else
                 VerticalRefreshLayout refreshLayout = new VerticalRefreshLayout()
                 {
-                    Height = Application.GetRealHeight(113),//216),
+                    Height = Application.GetRealHeight(113) + Application.GetRealWidth(24),//216),
                     BackgroundImagePath = DB_ResidenceData.Instance.residenceImage,
                 };
                 bodyView.AddChidren(refreshLayout);
@@ -179,20 +184,21 @@
                 };
                 topView = new FrameLayout()
                 {
-                    Height = Application.GetRealHeight(113),//216),
+                    Height = Application.GetRealHeight(113) + Application.GetRealWidth(24),//216),
                 };
                 refreshLayout.AddChidren(topView);
 #endif
-                #region topView
-
-
-
-                Button btnTop;
-                btnTop = new Button()
+                topView.AddChidren(new Button()
                 {
                     BackgroundColor = CSS_Color.DialogTransparentColor2,
-                };
-                topView.AddChidren(btnTop);
+                });
+
+                topView.AddChidren(
+                    new Button() {Y = Application.GetRealHeight(113),
+                    BackgroundColor = CSS_Color.BackgroundColor,
+                    Height = Application.GetRealWidth(24) });
+
+                #region topView
 
                 btnResidenceName = new Button()
                 {
@@ -207,15 +213,19 @@
                     IsBold = true
                 };
                 topView.AddChidren(btnResidenceName);
+                //鐧诲綍鍑瘉鏄惁鏈夋晥
+                CheckTokenValid();
 
-                divLinkStateTip = new FrameLayout()
+                #region 缃戝叧杩炴帴鐘舵��
+                linkStateMsgView = new FrameLayout()
                 {
-                    Y = Application.GetRealHeight(113) - Application.GetRealWidth(24),
+                    Y = ApiUtlis.Ins.IsValidToken ? Application.GetRealHeight(113) : Application.GetRealHeight(113) - Application.GetRealWidth(24),
                     Height = Application.GetRealWidth(24),
                     BackgroundColor = 0xFFFF4747,
                     Visible = false,
                 };
-                topView.AddChidren(divLinkStateTip);
+                topView.AddChidren(linkStateMsgView);
+
                 Button btnLinkStateIcon = new Button()
                 {
                     X = Application.GetRealWidth(16),
@@ -224,7 +234,7 @@
                     Height = Application.GetRealWidth(20),
                     UnSelectedImagePath = "Collection/GatewayOnlineTipIcon.png"
                 };
-                divLinkStateTip.AddChidren(btnLinkStateIcon);
+                linkStateMsgView.AddChidren(btnLinkStateIcon);
 
                 var btnLinkStateTip = new Button()
                 {
@@ -234,15 +244,18 @@
                     TextColor = CSS_Color.MainBackgroundColor,
                     TextID = StringId.NetworkAnomaly,
                 };
-                divLinkStateTip.AddChidren(btnLinkStateTip);
+                linkStateMsgView.AddChidren(btnLinkStateTip);
+
                 //鏇存柊閾炬帴鐘舵�乮con棰滆壊
+                CheckLinkStatus();//2020-12-22
+                #endregion
+
                 environmentalView = new FrameLayout()
                 {
                     Y = Application.GetRealHeight(1) + btnResidenceName.Bottom,
                     Height = Application.GetRealHeight(32),
                 };
                 topView.AddChidren(environmentalView);
-                CheckLinkStatus();//2020-12-22
 
                 #region 鐜鏁版嵁
                 var tempSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorTemperature);
@@ -535,7 +548,7 @@
 
                 #region 鍔熻兘鍦烘櫙鍒囨崲
 
-                bodyView.AddChidren(new Button() { Height = Application.GetRealHeight(20), BackgroundColor = 0xFFFF0000 });
+                //bodyView.AddChidren(new Button() { Height = Application.GetRealHeight(20), BackgroundColor = 0xFFFF0000 });
 
                 loadNavView();
 
@@ -553,10 +566,7 @@
 #if DEBUG
                 btnResidenceName.MouseUpEventHandler = (envent, ee) =>
                 {
-                    MainPage.Log("sss");
-
 #if __ANDROID__
-                    //HDLLinphoneKit.Instance.MediaPlayerLooping(true);
                     Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.PlayRingtone();
 #elif __IOS__
 
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
index dd9844d..6093297 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -1,8 +1,10 @@
 锘縰sing System;
 using System.Collections.Generic;
+using HDL_ON.Common;
 using HDL_ON.DAL.Server;
 using HDL_ON.DriverLayer;
 using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
 using Shared;
 
 namespace HDL_ON.UI
@@ -254,7 +256,87 @@
             }
         }
 
+        void CheckTokenValid()
+        {
+            //Dome妯″紡
+            if (MainPage.NoLoginMode)
+            {
+                return;
+            }
 
+            try
+            {
+                #region 璐﹀彿鐧诲綍鐘舵�侊紙鐧诲綍token鏄惁鏈夋晥锛�
+                if (ApiUtlis.Ins.IsValidToken)
+                {
+                    if (tokenInvalidMsgView == null)
+                    {
+                        tokenInvalidMsgView = new FrameLayout()
+                        {
+                            Y = Application.GetRealHeight(113) - Application.GetRealWidth(24),
+                            Height = Application.GetRealWidth(24),
+                            BackgroundColor = 0xFF69A0F7,
+                        };
+                        topView.AddChidren(tokenInvalidMsgView);
+
+                        Button btnTokenInvalidIcon = new Button()
+                        {
+                            X = Application.GetRealWidth(16),
+                            Gravity = Gravity.CenterVertical,
+                            Width = Application.GetRealWidth(20),
+                            Height = Application.GetRealWidth(20),
+                            UnSelectedImagePath = "Collection/TokenInvalidTipIcon.png"
+                        };
+                        tokenInvalidMsgView.AddChidren(btnTokenInvalidIcon);
+                        var btnTokenInvalidTip = new Button()
+                        {
+                            X = btnTokenInvalidIcon.Right + Application.GetRealWidth(4),
+                            TextAlignment = TextAlignment.CenterLeft,
+                            TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                            TextColor = CSS_Color.MainBackgroundColor,
+                            TextID = StringId.TokenInvalidMsg,
+                        };
+                        btnTokenInvalidTip.Width = btnTokenInvalidTip.GetTextWidth() + Application.GetRealWidth(8);
+                        tokenInvalidMsgView.AddChidren(btnTokenInvalidTip);
+                        btnTokenInvalidTip.MouseUpEventHandler = (sender, e) => {
+                            new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.TokenInvalidTipMsg,StringId.Cancel,StringId.GoLogin, () => {
+                                HDLCommon.Current.Logout();
+                            });
+                        };
+
+                        var btnRight = new Button()
+                        {
+                            X= btnTokenInvalidTip.Right,
+                            Gravity = Gravity.CenterVertical,
+                            Width = Application.GetMinRealAverage(8),
+                            Height = Application.GetMinRealAverage(8),
+                            UnSelectedImagePath = "Public/RightIcon2.png",
+                        };
+
+                        tokenInvalidMsgView.AddChidren(btnRight);
+
+                    }
+                }
+                else
+                {
+                    if (tokenInvalidMsgView != null)
+                    {
+                        if (tokenInvalidMsgView.Parent != null)
+                        {
+                            tokenInvalidMsgView.RemoveAll();
+                            tokenInvalidMsgView.RemoveFromParent();
+                            tokenInvalidMsgView = null;
+                        }
+                    }
+                }
+                #endregion
+                bodyView.linkStateMsgView.Y = ApiUtlis.Ins.IsValidToken ? Application.GetRealHeight(113) : Application.GetRealHeight(113) - Application.GetRealWidth(24);
+            }
+            catch (Exception ex)
+            {
+                MainPage.Log("Error", $"HomePage 璐﹀彿鐧诲綍鐘舵�佷俊鎭樉绀哄紓甯�:{ex.StackTrace}");
+            }
+        }
 
         /// <summary>
         /// 鏇存柊杩炴帴鐘舵�佸浘鏍�
@@ -267,13 +349,15 @@
                 return;
             }
 
+            bodyView.linkStateMsgView.Y = ApiUtlis.Ins.IsValidToken ? Application.GetRealHeight(113) : Application.GetRealHeight(113) - Application.GetRealWidth(24);
+
             if (!Control.Ins.GatewayOnline_Local && !Control.Ins.GatewayOnline_Cloud)
             {
-                bodyView.divLinkStateTip.Visible = true;
+                bodyView.linkStateMsgView.Visible = true;
             }
             else
             {
-                bodyView.divLinkStateTip.Visible = false;
+                bodyView.linkStateMsgView.Visible = false;
             }
         }
 
@@ -296,6 +380,26 @@
                 }
             });
         }
+        /// <summary>
+        /// 纭Token鏄惁鏈夋晥
+        /// </summary>
+        public static void LoadEvent_CheckTokenValid()
+        {
+            Application.RunOnMainThread(() =>
+            {
+                try
+                {
+                    if (bodyView != null)
+                    {
+                        bodyView.CheckTokenValid();
+                    }
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log("Error",$"LoadEvent_CheckTokenValid : {ex.StackTrace}");
+                }
+            });
+        }
 
         /// <summary>
         /// 鍔犺浇鍔熻兘鏀惰棌鎸夐挳浜嬩欢
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPage.cs
index 85a2377..d62276a 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPage.cs
@@ -444,7 +444,7 @@
             userEmailInfoView.AddChidren(btnUserEmailRight);
             optionListView.AddChidren(new Button() { X = Application.GetRealWidth(16), Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
             #endregion
-#region 涓汉閫夐」-鎵嬫満淇℃伅鍖哄煙
+            #region 涓汉閫夐」-鎵嬫満淇℃伅鍖哄煙
             /// <summary>
             /// 涓汉閫夐」-鎵嬫満淇℃伅鍖哄煙
             /// </summary>
@@ -559,11 +559,11 @@
             resetPasswordView.AddChidren(btnResetPasswordRight);
             optionListView.AddChidren(new Button() { X = Application.GetRealWidth(16), Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
 #endregion
-
+            
 #region 涓汉閫夐」-娣诲姞浣忓畢
             addResidenceView = new FrameLayout()
             {
-                Height = Application.GetRealHeight(50),
+                    Height = Application.GetRealHeight(50),
             };
             optionListView.AddChidren(addResidenceView);
             btnAddResidenceScan = new Button()
@@ -765,58 +765,6 @@
                 Height = Application.GetRealHeight(8)
             };
             bodyScrolView.AddChidren(topPaddingView2);
-
-#region 瑙i攣璁剧疆鍖哄煙
-            ///// <summary>
-            ///// 瑙i攣璁剧疆鍖哄煙
-            ///// </summary>
-            //interpretationSettingsView = new FrameLayout()
-            //{
-            //    BackgroundColor = CSS_Color.MainBackgroundColor,
-            //    Height = Application.GetRealHeight(70),
-            //};
-            //bodyScrolView.AddChidren(interpretationSettingsView);
-            //if(Language.CurrentLanguage != "Chinese")
-            //{
-            //    interpretationSettingsView.Height = Application.GetRealHeight(80);
-            //}
-
-            //btnInterpretationSettingsTitle = new Button()
-            //{
-            //    X = Application.GetRealWidth(16),
-            //    Height = Application.GetRealHeight(32),
-            //    TextAlignment = TextAlignment.BottomLeft,
-            //    TextColor = CSS_Color.FirstLevelTitleColor,
-            //    TextSize = CSS_FontSize.SubheadingFontSize,
-            //    TextID = StringId.InterpretationSettings,
-            //};
-            //interpretationSettingsView.AddChidren(btnInterpretationSettingsTitle);
-
-            //btnInterpretationSettingsTip = new Button()
-            //{
-            //    X = Application.GetRealWidth(16),
-            //    Y = btnInterpretationSettingsTitle.Bottom,
-            //    Height = Application.GetRealHeight(32),
-            //    Width = Application.GetRealWidth(310),
-            //    TextAlignment = TextAlignment.TopLeft,
-            //    TextColor = CSS_Color.PromptingColor1,
-            //    TextSize = CSS_FontSize.TextFontSize,
-            //    TextID = StringId.AppUnlockSettingsTip,
-            //    IsMoreLines = true,
-            //};
-            //interpretationSettingsView.AddChidren(btnInterpretationSettingsTip);
-
-            //btnInterpretationSettingsRight = new Button()
-            //{
-            //    X = Application.GetRealWidth(339),
-            //    Gravity = Gravity.CenterVertical,
-            //    Width = Application.GetMinRealAverage(16),
-            //    Height = Application.GetMinRealAverage(16),
-            //    UnSelectedImagePath = "Public/Right.png",
-            //};
-            //interpretationSettingsView.AddChidren(btnInterpretationSettingsRight);
-            //interpretationSettingsView.AddChidren(new LineView(interpretationSettingsView.Height));
-#endregion
 
 #region 鏈嶅姟鍣ㄤ俊鎭�
             ListCellView myServerInfoCellView = new ListCellView()
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPageBLL.cs
index e84a5cb..706e841 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPageBLL.cs
@@ -420,7 +420,7 @@
         }
 #endregion
 
-#region 瑙i攣璁剧疆鍖哄煙
+        #region 瑙i攣璁剧疆鍖哄煙
         //void LoadEvent_SkipInterpretationSettings()
         //{
         //    EventHandler<MouseEventArgs> eventHandler = (sender, e) =>

--
Gitblit v1.8.0