From 5eeafe3af80bfd88306bd8ad9e76c8f4b51ca35f Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 14:16:20 +0800 Subject: [PATCH] 增加本地发送的重发机制 --- HDL_ON/UI/MainPage.cs | 285 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 224 insertions(+), 61 deletions(-) diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs index 3f421d9..51f1f50 100644 --- a/HDL_ON/UI/MainPage.cs +++ b/HDL_ON/UI/MainPage.cs @@ -1,6 +1,7 @@ 锘縰sing System; using System.Collections.Generic; using HDL_ON.DAL; +using HDL_ON.UI; using HDL_ON.UI.CSS; using Shared; @@ -8,27 +9,57 @@ { public static class MainPage { + /// <summary> + /// BaseView + /// </summary> public static FrameLayout BaseView { get; internal set; } + /// <summary> + /// BasePageView + /// </summary> public static PageLayout BasePageView { get; set; } - + /// <summary> + /// DisplayCompleted + /// </summary> public static bool DisplayCompleted = false; - public static UserInfo LoginUser; - - public static List<string> LocationFiles; - - public static string VersionString = "1.0103"; - - public static Entity.CityInfo cityInfo = new Entity.CityInfo(); - - public static Action RefreshAir; + //public static UserInfo LoginUser; + /// <summary> + /// 鐗堟湰鍙� + /// </summary> + public static string VersionString = "1.0.0924"; + ///// <summary> + ///// 瀹㈡埛绔被鍨� + ///// </summary> + //public static string ClientType = APIClientType.HDL_ON_PRO.ToString(); /// <summary> - /// 鍏徃浠g爜 - /// 棰勭暀绗笁鏂瑰畾鍒舵爣璁� - /// 0:HDL + /// /// </summary> - public static int Company = 0; + public static Entity.CityInfo cityInfo = new Entity.CityInfo(); + /// <summary> + /// 澶╂皵鍒锋柊action + /// </summary> + public static Action RefreshAir; + /// <summary> + /// 鏃犵櫥褰曟ā寮� + /// </summary> + public static bool NoLoginMode = false; + /// <summary> + /// 杩滅▼妯″紡 + /// </summary> + public static bool IsRemote = false; + /// <summary> + /// 缃戠粶杩炴帴鐘舵�� + /// 0:鏃犵綉缁� + /// </summary> + public static int InternetStatus = 2; + + ///// <summary> + ///// 鍏徃浠g爜 + ///// 棰勭暀绗笁鏂瑰畾鍒舵爣璁� + ///// 0:HDL + ///// </summary> + //public static int Company = 0; /// <summary> /// 鏄惁鍏ㄩ潰灞忔墜鏈� @@ -57,88 +88,193 @@ Application.DesignWidth = 375; Application.DesignHeight = 667; - BusSocket.Start(6000); - CommonPage.InitReceiveEvent(); - BaseView = Application.MainPage; Application.MainPage.BackgroundColor = CSS_Color.MainBackgroundColor; - LoginUser = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInfo>(System.Text.Encoding.UTF8.GetString(FileUtils.ReadFile("Register_File"))); - //鍒ゆ柇闇�涓嶉渶瑕佺櫥褰曪紝鏈夋病鏈夌櫥褰曪紝鎴栬�呯櫥褰曟槸鍚﹁繃鏈燂紝 - if (LoginUser == null || !LoginUser.IsLogin) + + if (string.IsNullOrEmpty(OnAppConfig.Instance.LastLoginUserId)) { GoLoginPage(); } else { - new System.Threading.Thread(() => + //鍒ゆ柇闇�涓嶉渶瑕佺櫥褰曪紝鏈夋病鏈夌櫥褰曪紝鎴栬�呯櫥褰曟槸鍚﹁繃鏈燂紝 + if (UserInfo.Current == null || !UserInfo.Current.IsLogin) { - var pm =new DAL.Server.HttpServerRequest(); - pm.GetUserInfo();//鍒锋柊涓汉淇℃伅 - }) - { IsBackground = true }.Start(); - new System.Threading.Thread(() => + GoLoginPage(UserInfo.Current); + } + else { - var pm = new DAL.Server.HttpServerRequest(); - pm.GetHomePager();//鍒锋柊浣忓畢淇℃伅 - }) - { IsBackground = true }.Start(); - GoUserPage(); + new System.Threading.Thread(() => + { + var pm = new DAL.Server.HttpServerRequest(); + pm.RefreshToken();//鍒锋柊Token + pm.GetHomePager();//鍒锋柊浣忓畢淇℃伅 + pm.GetUserInfo();//鍒锋柊涓汉淇℃伅 + }) + { IsBackground = true }.Start(); + + GoUserPage(true); + } } } catch (Exception ex) { Log("root erorr : " + ex.Message); } + finally + { + //Application.RunOnMainThread(() => { + // Application.HideSoftInput(); + //}); + } } /// <summary> /// 杩涘叆鐧诲綍鐣岄潰 /// </summary> - public static void GoLoginPage(string account ="") + public static void GoLoginPage(UserInfo userInfo = null) { BaseView.RemoveAll(); - + BaseView.BackgroundColor = CSS_Color.BackgroundColor; var fisrtView = new UI.UI1Login.LoginPage(); fisrtView.BackgroundColor = CSS_Color.MainBackgroundColor; BaseView.AddChidren(fisrtView); - fisrtView.LoadView(account); + fisrtView.LoadView(userInfo); } /// <summary> /// 杩涘叆涓婚〉 /// </summary> - public static void GoUserPage() + /// <param name="isFirstOpen">濡傛灉鏄涓�娆″惎鍔� 妫�娴嬫牎楠屽瘑鐮�</param> + public static void GoUserPage(bool isFirstOpen = false) { - BaseView.RemoveAll(); - BasePageView = new PageLayout(); - BasePageView.ScrollEnabled = false; - BasePageView.IsShowPoint = false; - BasePageView.PageChange += (sender, e) => { - if (e < BasePageView.ChildrenCount - 1) - { - BasePageView.RemoveAt(BasePageView.ChildrenCount - 1); - } - }; - BasePageView.MouseDownEventHandler += (sender, e) => { - BasePageView.ScrollEnabled = true; - }; - BasePageView.MouseUpEventHandler += (sender, e) => { - BasePageView.ScrollEnabled = false; - }; - BaseView.AddChidren(BasePageView); - - //璺宠浆椤甸潰---- - var userPage = new UI.UserPage(); - BasePageView.AddChidren(userPage); - userPage.LoadPage(); - BasePageView.PageChange += (sender, e) => + //鍔犺浇Loading鏁堟灉 + var waitPage = new Loading(); + BaseView.AddChidren(waitPage); + waitPage.Start(Language.StringByID(StringId.PleaseWait)); + new System.Threading.Thread(() => { - while (e < BasePageView.ChildrenCount - 1) + try { - BasePageView.GetChildren(BasePageView.ChildrenCount - 1).RemoveFromParent(); + if (UserInfo.Current.regionList.Count == 0) + { + bool loadPage = true; + var pm = new DAL.Server.HttpServerRequest(); + while (UserInfo.Current.regionList.Count == 0) + { + pm.GetHomePager();//鍒锋柊浣忓畢淇℃伅 + System.Threading.Thread.Sleep(2000); + if (loadPage) + { + loadPage = false; + Application.RunOnMainThread(() => + { + waitPage.Hide(); + var addResidencePage = new BindingResidencePage(); + BaseView.AddChidren(addResidencePage); + addResidencePage.LoadView(); + }); + } + } + } + else + { + Entity.FunctionList.List.Clear(); + Entity.SpatialInfo.CurrentSpatial.Clear(); + } + ///绛夊緟鑾峰彇浣忓畢淇℃伅 + Application.RunOnMainThread(() => + { + waitPage.Hide(); + BaseView.RemoveAll(); + BasePageView = new PageLayout(); + BasePageView.ScrollEnabled = false; + BasePageView.IsShowPoint = false; + BasePageView.PageChange = (sender, e) => + { + if (e < BasePageView.ChildrenCount - 1) + { + MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent(); + } + + while (e < BasePageView.ChildrenCount - 1) + { + BasePageView.GetChildren(BasePageView.ChildrenCount - 1).RemoveFromParent(); + } + }; + BasePageView.MouseDownEventHandler += (sender, e) => + { + BasePageView.ScrollEnabled = true; + }; + BasePageView.MouseUpEventHandler += (sender, e) => + { + BasePageView.ScrollEnabled = false; + }; + BaseView.AddChidren(BasePageView); + + //璺宠浆椤甸潰---- + var userPage = new UserPage(); + BasePageView.AddChidren(userPage); + userPage.LoadPage(); + BasePageView.PageIndex = 0; + + if (isFirstOpen) + { + //鍚姩瀵嗙爜楠岃瘉 + new AppUnlockPage().LoadPage(isFirstOpen); + } + }); } - }; + catch (Exception ex) + { + MainPage.Log($"GoUserPage : {ex.Message}"); + }finally + { + ///鍒濆鍖朼pp鏁版嵁 + InitializationData(); + } + }).Start(); + } + + /// <summary> + /// 鍒濆鍖朼pp鎵�闇�瑕佺殑鏁版嵁 + /// </summary> + public static void InitializationData() + { + new System.Threading.Thread(() => + { + while (true) + { + if (Entity.DB_ResidenceData.Instance == null )//|| Entity.DB_ResidenceData.residenceData.HomeGateway == null) + { + System.Threading.Thread.Sleep(100); + } + else + { + break; + } + } + //System.Threading.Thread.Sleep(2000); + #region 璇诲彇浜戠鏁版嵁-- + //todo鏁版嵁瑕嗙洊澶勭悊 + //璇诲彇浜戠鎴块棿銆佹ゼ灞傛暟鎹� + Entity.SpatialInfo.CurrentSpatial.DownloadRoomList(); + //璇诲彇浜戠璁惧鏁版嵁 + Entity.FunctionList.List.DownloadFunctionList(); + //璇诲彇浜戠鍦烘櫙鏁版嵁 + Entity.FunctionList.List.DownloadSceneList(); + #endregion + + }) + { IsBackground = true }.Start(); + + #region 璇诲彇鏈湴鏁版嵁 + //璇诲彇闊充箰淇℃伅 + UI.Music.A31MusicModel.ReadMusicStates(); + //鎼滅储缃戝叧 + DriverLayer.Control.Ins.SearchLoaclGateway(); + #endregion } /// <summary> @@ -150,5 +286,32 @@ Console.WriteLine(msg); #endif } + + /// <summary> + /// 鐢熸垚13浣嶆椂闂存埑 + /// </summary> + /// <param name="value">鏃堕棿</param> + /// <returns></returns> + public static long GetTimestamp13bit(DateTime value) + { + return new DateTimeOffset(value).ToUnixTimeSeconds(); + } + + /// <summary> + /// 鑾峰彇鏃堕棿 + /// </summary> + /// <param name="timestamp"></param> + /// <returns></returns> + public static DateTime GetDateTime (long timestamp) + { + long begtime = timestamp * 10000000; + DateTime dt_1970 = new DateTime(1970, 1, 1, 0, 0, 0); + long tricks_1970 = dt_1970.Ticks;//1970骞�1鏈�1鏃ュ埢搴� + long time_tricks = tricks_1970 + begtime;//鏃ュ織鏃ユ湡鍒诲害 + DateTime dt = new DateTime(time_tricks);//杞寲涓篋ateTime + return dt; + } + } + } -- Gitblit v1.8.0