using System;
using System.Text;
using System.Collections.Generic;
using System.Net;
using System.IO;
using Shared.SimpleControl.Phone;
//
// 程序主入口
//
//using SystemConfiguration;
namespace Shared.SimpleControl
{
///
/// 主页面
///
public static class MainPage
{
///
/// 主页面,根界面
///
public static FrameLayout MainFrameLayout { get; internal set; }
public static bool Showed;
static Loading loading;
///
/// 显示加载界面
///
public static Loading Loading {
get {
if (loading == null) {
loading = new Loading ();
}
return loading;
}
}
//public static Button LogoButton = new Button ();
public static string RequestVersion = "2.701111";
public static UserInfo LoginUser;
///
/// 是否是管理员权限(变更了,成员的时候,这个也为ture。为什么会声明这样变量,因为有些接口必须使用原来的Token)
///
public static bool IsAdministrator {
get {
if (UserConfig.Instance == null || UserConfig.Instance.CurrentRegion == null) {
return false;
} else {
return UserConfig.Instance.CurrentRegion.IsOthreShare;
}
}
}
/////
///// 是否账号在其它设备登录了
/////
//public static bool IsOtherDevicesLogin = false;
//#if __IOS__
// public static readonly string PhoneType = "iOS";
//#else
// public static readonly string PhoneType = "Android";
//#endif
public static string SoftPadTitle = "Crabtree";
public static string SoftTitle = "Crabtree";
public static int SoftSmsType = 0;
public static string RequestSource = "1"; //0:Zigbee、1:HdlOn、2:GraphicsMonitor、3:BusproSoft、4:AgentWeb
public static string LogoString = "";//"Logo/Logo.png";
public static string WiFiStatus = "CrabtreeAdd/WiFi.png";//"CrabtreeAdd/WiFi.png";
public static string RegisterLogoString = "Logo/Register_logo.png";
public static string SeviceIP = "52.172.25.151";
#region GetDesignHeight
///
/// 获取view的计算高度,ON软件为了适配全面特殊使用的比例方法,由于一些背景图片是直接全部填充的,改动成三层的(view-button-button)的工作量很大,不禁需要增加一个view,还需要修改图片
///
/// The view height.
public static int GetDesignHeight (int height)
{
int ss = Convert.ToInt32 (height / PixelScale);
return Application.GetRealHeight (ss);
}
#endregion
public static double PixelScale {
get {
#if __IOS__
switch (Application.PhoneType) {
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
return 1.0;
case 10:
return 1.1;
case 11:
case 12:
return 1.2;
//case 13:
// return 1.3;
}
var widthScale = Application.CurrentWidth / 640.0f;
var heightScale = Application.CurrentHeight / 1136.0f;
var scale = Math.Round (System.Math.Abs (widthScale - heightScale), 2);
return scale + 1;
#else
return 1;
#endif
}
}
///
/// 显示当前界面
///
public static void Show ()
{
try {
Showed = true;
UserConfig.Instance.SkinCode = 1;
if (Shared.Application.IsPad) {
Application.DesignWidth = 2048;
Application.DesignHeight = 1536;
} else {
Application.DesignWidth = 640;
Application.DesignHeight = 1136;
}
//印度客户定制APP默认使用英文
Language.CurrentLanguage = "English";
Shared.BusSocket.Start (6000);
CommonPage.InitReceiveEvent ();
MainFrameLayout = Application.MainPage;
MainFrameLayout.AddChidren (Loading);
if (Shared.Application.IsPad) {
//Pad.UserHomePage.Init ();
} else {
Phone.UserHomePage.Init ();
#if __IOS__
//Loading.LodingBackgroundColor = 0x10777777;
#else
//Loading.LodingBackgroundColor = SkinStyle.Current.MainColor;
#endif
Loading.TextColor = 0xFFA9A9A9;
Loading.LodingBackgroundColor = SkinStyle.Current.MainColor;
}
CommonUtlis.Current.CheckIfJailBreak ();
} catch (Exception ex) {
//new Alert ("Eorr", ex.Message, "Close").Show();
}
}
///
/// 弹出错误提示
///
/// Tip.
/// Time.
public static void AddTip (string tip, int time = 2000)
{
if (MainFrameLayout == null) {
return;
}
Application.RunOnMainThread (() => {
var button = new TextView {
Gravity = Gravity.Center,
Width = Application.GetRealWidth (560),
Height = Application.GetRealHeight (126),
//BackgroundColor = SkinStyle.Current.AddTipButtonColor,
BackgroundColor = SkinStyle.Current.MainColor,
Radius = 10,
IsMoreLines = true,
Text = tip,
TextSize = 16,
TextColor = 0xFF000000
};
MainFrameLayout.AddChidren (button);
button.MouseUpEventHandler += (sender, e) => {
button.RemoveFromParent ();
};
System.Threading.Tasks.Task.Run (() => {
System.Threading.Thread.Sleep (time);
Application.RunOnMainThread (() => {
button.RemoveFromParent ();
});
});
});
}
#region LoadingTipMsg 远程连接Tip
static Button btnLoadingTipMsg;
public static void LoadingTipShow (string tip)
{
if (MainFrameLayout == null) {
return;
}
Application.RunOnMainThread (() => {
try {
if (btnLoadingTipMsg == null) {
btnLoadingTipMsg = new Button () {
Height = Application.GetRealHeight (90),
BackgroundColor = SkinStyle.Current.MainColor,
//BackgroundColor = 0xFF000000,
Y = Application.GetRealHeight (36),
TextAlignment = TextAlignment.Center,
TextColor = 0xFF000000,
};
}
if (btnLoadingTipMsg.Parent == null) {
MainFrameLayout.AddChidren (btnLoadingTipMsg);
if (btnLoadingTipMsg.MouseUpEventHandler == null) {
btnLoadingTipMsg.MouseUpEventHandler += (sender, e) => {
if (btnLoadingTipMsg.Parent != null)
btnLoadingTipMsg.RemoveFromParent ();
};
}
}
btnLoadingTipMsg.Text = tip;
} catch { }
});
}
public static void LoadingTipHide ()
{
if (MainFrameLayout == null) {
return;
}
Application.RunOnMainThread (() => {
try {
if (btnLoadingTipMsg != null) {
if (btnLoadingTipMsg.Parent != null)
btnLoadingTipMsg.RemoveFromParent ();
}
} catch { }
});
}
#endregion
///
/// 连接服务器失败
///
public static void FailureToServer ()
{
//Application.RunOnMainThread (() => {
// new Alert ("", Language.StringByID (R.MyInternationalizationString.FailureToServer),
// Language.StringByID (R.MyInternationalizationString.Close)).Show ();
//});
ShowAlertOnMainThread (ErrorCode.FailedRequestServer);
}
///
/// 2020-01-11 弹窗提示
///
///
public static void ShowAlertOnMainThread (string mes)
{
Application.RunOnMainThread (() => {
new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
});
}
///
/// 设备不在线,无响应
///
public static void DeviceNotOnline ()
{
Application.RunOnMainThread (() => {
new Alert ("", Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
MainPage.Loading.Hide ();
});
}
public static void LoadingStart (string showString = "")
{
Application.RunOnMainThread (() => {
MainPage.Loading.Start (showString);
});
}
public static void LoadingSetText (string showString = "")
{
Application.RunOnMainThread (() => {
MainPage.Loading.Text = showString;
});
}
public static void LoadingHide ()
{
Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
});
}
}
}