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.1.0323";
/////
///// 客户端类型
/////
//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;
///
/// 网络连接状态
/// 0:无网络
///
public static int InternetStatus = 2;
///
/// 是否进入后台
///
public static bool IsEnterBackground = false;
///
/// 当前分页索引
/// 0:收藏
/// 1:分类
/// 2:智能
/// 3:个人
///
public static int CurPageIndex = 9999;
/////
///// 公司代码
///// 预留第三方定制标记
///// 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;
//#region 测试
//var ddd = new UI.test.TestDialog();
//ddd.InitView();
//return;
//#endregion
if (string.IsNullOrEmpty(OnAppConfig.Instance.LastLoginUserId))
{
GoLoginPage();
}
else
{
//判断需不需要登录,有没有登录,或者登录是否过期,
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);
}
}
}
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(bool downloadData , bool isFirstOpen = false, Action pageShowEvent = null)
{
//加载Loading效果
var waitPage = new Loading();
BaseView.AddChidren(waitPage);
waitPage.Start(Language.StringByID(StringId.PleaseWait));
//当没有住宅时,不能让它往下走
if (UserInfo.Current.regionList.Count == 0)
{
waitPage.Hide();
var addResidencePage = new BindingResidencePage();
BaseView.AddChidren(addResidencePage);
addResidencePage.LoadView();
return;
}
new System.Threading.Thread(() =>
{
try
{
Entity.FunctionList.List.Clear();
Entity.SpatialInfo.CurrentSpatial.Clear();
///等待获取住宅信息
Application.RunOnMainThread(() =>
{
waitPage.Hide();
waitPage.RemoveFromParent();
BaseView.RemoveAll();
BasePageView = new PageLayout();
BasePageView.ScrollEnabled = true;
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 UserBasePage = new UserPage();
BasePageView.AddChidren(UserBasePage);
UserBasePage.LoadPage();
BasePageView.PageIndex = 0;
if (isFirstOpen)
{
//启动密码验证
new AppUnlockPage().LoadPage(isFirstOpen);
}
//主页加载完成,回调事件
pageShowEvent?.Invoke();
pageShowEvent = null;
});
}
catch (Exception ex)
{
MainPage.Log($"GoUserPage : {ex.Message}");
}finally
{
Application.RunOnMainThread(() =>
{
if (downloadData)
{
///初始化app数据
Common.ApiUtlis.Ins.DownloadData();
};
});
}
}).Start();
}
///
/// 后退事件
/// 0:后退
/// 1:有等待界面
/// 2:无法再后退,可以执行退到桌面
///
public static int LoadEvent_BackAction()
{
int result = 0;
Application.RunOnMainThread(() =>
{
if (BaseView.ChildrenCount>1)
{
var view = BaseView.GetChildren(BaseView.ChildrenCount - 1);
if(view.GetType() == typeof(Loading))
{
var loading = view as Loading;
if (loading.CurStatus == false)//有一些等待界面隐藏了,但是没有移除到,需要先移除
{
loading.RemoveFromParent();
result = LoadEvent_BackAction();
}
else
{
result = 1;//正在等待某些操作
}
}
}
else
{
if (BasePageView.ChildrenCount > 1)
{
int index = BasePageView.ChildrenCount - 1;
var view = BasePageView.GetChildren(index);
if (view != null)
{
view.RemoveFromParent();
}
}
else
{
result = 2;//无法再后退,可以执行退到桌面
}
}
});
return result;
}
///
/// 自定义日志输出
///
public static void Log(string msg)
{
#if DEBUG
Console.WriteLine(msg);
#endif
}
}
}