| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.DAL; |
| | | using HDL_ON.UI; |
| | | using HDL_ON.UI.CSS; |
| | | using Shared; |
| | | |
| | |
| | | { |
| | | 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.1220"; |
| | | ///// <summary> |
| | | ///// 客户端类型 |
| | | ///// </summary> |
| | | //public static string ClientType = APIClientType.HDL_ON_PRO.ToString(); |
| | | |
| | | /// <summary> |
| | | /// 公司代码 |
| | | /// 预留第三方定制标记 |
| | | /// 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> |
| | | /// 是否进入后台 |
| | | /// </summary> |
| | | public static bool IsEnterBackground = false; |
| | | |
| | | ///// <summary> |
| | | ///// 公司代码 |
| | | ///// 预留第三方定制标记 |
| | | ///// 0:HDL |
| | | ///// </summary> |
| | | //public static int Company = 0; |
| | | |
| | | /// <summary> |
| | | /// 是否全面屏手机 |
| | | /// </summary> |
| | | public static bool Increase |
| | | { |
| | | get |
| | |
| | | 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) |
| | | { |
| | | new DAL.Server.HttpServerRequest().GetUserInfo(); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | GoUserPage(); |
| | | GoLoginPage(UserInfo.Current); |
| | | } |
| | | else |
| | | { |
| | | 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) |
| | | { |
| | | MainPage.Log("root erorr : " + ex.Message); |
| | | 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> |
| | | /// <param name="pageShowEvent">主页显示之后触发的事件(没有住宅的话,则不会触发)</param> |
| | | public static void GoUserPage(bool isFirstOpen = false, Action pageShowEvent = null) |
| | | { |
| | | 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); |
| | | //加载Loading效果 |
| | | var waitPage = new Loading(); |
| | | BaseView.AddChidren(waitPage); |
| | | waitPage.Start(Language.StringByID(StringId.PleaseWait)); |
| | | |
| | | //跳转页面---- |
| | | var userPage = new UI.UserPage(); |
| | | BasePageView.AddChidren(userPage); |
| | | userPage.LoadPage(); |
| | | BasePageView.PageChange += (sender, e) => |
| | | //当没有住宅时,不能让它往下走 |
| | | if (UserInfo.Current.regionList.Count == 0) |
| | | { |
| | | while (e < BasePageView.ChildrenCount - 1) |
| | | waitPage.Hide(); |
| | | var addResidencePage = new BindingResidencePage(); |
| | | BaseView.AddChidren(addResidencePage); |
| | | addResidencePage.LoadView(); |
| | | return; |
| | | } |
| | | |
| | | new System.Threading.Thread(() => |
| | | { |
| | | try |
| | | { |
| | | BasePageView.GetChildren(BasePageView.ChildrenCount - 1).RemoveFromParent(); |
| | | 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); |
| | | } |
| | | //主页加载完成,回调事件 |
| | | pageShowEvent?.Invoke(); |
| | | pageShowEvent = null; |
| | | }); |
| | | } |
| | | }; |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"GoUserPage : {ex.Message}"); |
| | | }finally |
| | | { |
| | | ///初始化app数据 |
| | | InitializationData(); |
| | | } |
| | | }).Start(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 初始化app所需要的数据 |
| | | /// </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(); |
| | | //读取逻辑列表 |
| | | UI.UI2.Intelligence.Automation.MainView.GetLogicList(); |
| | | #endregion |
| | | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | |
| | | #region 读取本地数据 |
| | | //读取音乐信息 |
| | | UI.Music.A31MusicModel.ReadMusicStates(); |
| | | //搜索网关 |
| | | DriverLayer.Control.Ins.SearchLoaclGateway(); |
| | | #endregion |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | 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);//转化为DateTime |
| | | return dt; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |