using System; using System.Collections.Generic; using HDL_ON.DAL; using HDL_ON.UI; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON { public static class MainPage { /// /// BaseView /// public static FrameLayout BaseView { get; internal set; } /// /// BasePageView /// public static PageLayout BasePageView { get; set; } /// /// DisplayCompleted /// public static bool DisplayCompleted = false; //public static UserInfo LoginUser; /// /// 版本号 /// public static string VersionString = "1.0.0924"; ///// ///// 客户端类型 ///// //public static string ClientType = APIClientType.HDL_ON_PRO.ToString(); /// /// /// public static Entity.CityInfo cityInfo = new Entity.CityInfo(); /// /// 天气刷新action /// public static Action RefreshAir; /// /// 无登录模式 /// public static bool NoLoginMode = false; /// /// 远程模式 /// public static bool IsRemote = false; ///// ///// 公司代码 ///// 预留第三方定制标记 ///// 0:HDL ///// //public static int Company = 0; /// /// 是否全面屏手机 /// public static bool Increase { get { #if __IOS__ if (Application.PhoneType>10) { return true; } return false; #else return false; #endif } } public static void Show() { try { Application.DesignWidth = 375; Application.DesignHeight = 667; BaseView = Application.MainPage; Application.MainPage.BackgroundColor = CSS_Color.MainBackgroundColor; //LoginUser = Newtonsoft.Json.JsonConvert.DeserializeObject(System.Text.Encoding.UTF8.GetString(FileUtils.ReadFile("UserInfo_File"))); //判断需不需要登录,有没有登录,或者登录是否过期, 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();//刷新住宅信息 }) { IsBackground = true }.Start(); new System.Threading.Thread(() => { var pm =new DAL.Server.HttpServerRequest(); pm.GetUserInfo();//刷新个人信息 }) { IsBackground = true }.Start(); GoUserPage(); //启动密码验证 new AppUnlockPage().LoadPage(); ///初始化app数据 InitializationData(); } } catch (Exception ex) { Log("root erorr : " + ex.Message); } finally { //Application.RunOnMainThread(() => { // Application.HideSoftInput(); //}); } } /// /// 进入登录界面 /// 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(userInfo); } /// /// 进入主页 /// public static void GoUserPage() { 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; } /// /// 初始化app所需要的数据 /// public static void InitializationData() { new System.Threading.Thread(() => { while (true) { if (Entity.DB_ResidenceData.residenceData == null || Entity.DB_ResidenceData.residenceData.HomeGateway == null) { System.Threading.Thread.Sleep(100); } else { break; } } #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 } /// /// 自定义日志输出 /// public static void Log(string msg) { #if DEBUG Console.WriteLine(msg); #endif } /// /// 生成13位时间戳 /// /// 时间 /// public static long GetTimestamp13bit(DateTime value) { return new DateTimeOffset(value).ToUnixTimeSeconds(); } /// /// 获取时间 /// /// /// 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; } } }