using System;
using Shared.IO;
using Shared.Net;
using System.Text;
using System.Collections.Generic;
//
// 程序主入口
//
//using SystemConfiguration;
using System.Net;
using System.IO;
using Shared.SimpleControl.Phone;
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 CodeIDString = "20220112";
public static UserInfo LoginUser;
public static string SoftPadTitle = "Crabtree";
public static string SoftTitle = "Crabtree";
public static int SoftSmsType = 0;
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";
public static string RequestHttpsHost = "https://homeautomation.havells.com";
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;
}
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;
}
} catch (Exception ex) {
//new Alert ("Eorr", ex.Message, "Close").Show();
}
}
///
/// 增加rjfi
///
/// 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,
Radius = 10,
IsMoreLines = true,
Text = tip,
TextSize = 16,
};
MainFrameLayout.AddChidren (button);
button.MouseUpEventHandler += (sender, e) => {
button.RemoveFromParent ();
};
System.Threading.Tasks.Task.Run (() => {
System.Threading.Thread.Sleep (time);
Application.RunOnMainThread (() => {
button.RemoveFromParent ();
});
});
});
}
static DateTime requesTime = DateTime.MinValue;
static bool isShowLoading = true;
///
/// 请求服务器方法
///
/// The https.
/// 请求方法.
/// 请求的参数.
/// 是否需要包头.
public static ResponsePack RequestHttps (string methodType, string dataStringJson, bool needHeaders = true, bool needTip = true,string urlHead = "")
{
ResponsePack revertObj = null;
try {
if (!SystemRemote.checeInternet ()) {
Application.RunOnMainThread (() => {
MainPage.WiFiStatus = "CrabtreeAdd/WiFiUnlink.png";
MainPage.Loading.Hide ();
});
}
//new System.Threading.Thread (() => {
// requesTime = DateTime.Now;
// isShowLoading = true;
// while (isShowLoading) {
// System.Threading.Thread.Sleep (1000);
// if (requesTime == DateTime.MinValue) {
// break;
// }
// if (requesTime.AddSeconds (30) < DateTime.Now) {
// Application.RunOnMainThread (Loading.Hide);
// isShowLoading = false;
// }
// }
//}) { IsBackground = true }.Start ();
#region
var webClient = new WebClient ();
if (urlHead == "") {
urlHead = $"{"https://homeautomation.havells.com"}/WebApi/";
} else {
webClient.Headers.Add ("CONTENT-TYPE", "application/json");
}
string url = urlHead + methodType;
if (needHeaders && LoginUser != null) {/* 如果不需要验证Token可以不用传入 */
webClient.Headers.Add ("Authorization", LoginUser.LoginTokenString);
}
byte [] bytes = null;
try {
bytes = webClient.UploadData (url, Encoding.UTF8.GetBytes (dataStringJson));
} catch (System.Net.WebException webEx) {
Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
revertObj = new ResponsePack () { StateCode = "Network_Error" };
//new Alert ( "","Network abnormal, unable to connect to the Internet", Language.StringByID (R.MyInternationalizationString.Close)).Show ();
return;
});
}
string responseString = null;
if (bytes != null) {
responseString = Encoding.UTF8.GetString (bytes);
}
//var request = (HttpWebRequest)WebRequest.Create (url);
//var data = Encoding.UTF8.GetBytes (dataStringJson);
//request.Method = "POST";
//request.ContentLength = data.Length;
//if (needHeaders) {/* 如果不需要验证Token可以不用传入 */
// request.Headers.Set (HttpRequestHeader.Authorization, LoginUser.LoginTokenString);
//}
//using (var stream = request.GetRequestStream ()) {
// stream.Write (data, 0, data.Length);
//}
//var response = (HttpWebResponse)request.GetResponse ();
//var responseString = new StreamReader (response.GetResponseStream ()).ReadToEnd ();
if (responseString != null) {
try {
revertObj = Newtonsoft.Json.JsonConvert.DeserializeObject (responseString);
if (revertObj.StateCode != "SUCCESS") {
if (methodType == "IsExistingAccount") {
} else if (needTip) {
Application.RunOnMainThread (() => {
new Alert ("", revertObj.ErrorInfo, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
});
}
}
} catch (Exception ex) {
Console.WriteLine (ex.ToString ());
}
} else {
if (methodType == "Login" && needTip) {
Application.RunOnMainThread (() => {
new Alert ("", Language.StringByID (R.MyInternationalizationString.FailureToDataBase),
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
});
} else {
if (needTip)
FailureToServer ();
}
}
return revertObj;
#endregion
} catch (Exception ex) {
Console.WriteLine (ex.Message);
return revertObj;
} finally {
//requesTime = requesTime.AddDays(1);
}
}
///
/// 连接服务器失败
///
public static void FailureToServer ()
{
Application.RunOnMainThread (() => {
new Alert ("", Language.StringByID (R.MyInternationalizationString.FailureToServer),
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 LoadingHide ()
{
Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
});
}
}
}