using System;
using Android;
using Android.Content;
using Android.Net;
using Android.OS;
//using CN.Jpush.Android.Api;
//using CN.Jpush.Android.Service;
using Java.Lang;
using Java.Util;
using Java.Util.Zip;
using Shared;
using Shared.SimpleControl;
using SmartHome;
namespace SharedMethod
{
public static class SharedMethod
{
//public static UIApplication sharedApp;
public static void ChangeSkin ()
{
//if (UserConfig.Instance.SkinCode == 0) {
// sharedApp.StatusBarStyle = UIStatusBarStyle.LightContent;
// Shared.Application.Skin = UserConfig.Instance.CurrentSkinName;
//} else if (UserConfig.Instance.SkinCode == 1) {
// sharedApp.StatusBarStyle = UIStatusBarStyle.Default;
// Shared.Application.Skin = UserConfig.Instance.CurrentSkinName;
//}
}
public static PageLayout CurPageLayout = null;
}
}
namespace com.hdl.on
{
///
/// 设定为默认启动的Application
///
[Android.App.Application]
public class Application : Android.App.Application
{
static void reStartApp (Android.App.Application application)
{
var intent = new Intent (application, typeof (BaseActivity));
intent.AddFlags (ActivityFlags.NewTask);
application.StartActivity (intent);
Android.OS.Process.KillProcess (Android.OS.Process.MyPid ());
}
public Application (IntPtr handle, Android.Runtime.JniHandleOwnership ownerShip) : base (handle, ownerShip) { }
public override void OnCreate ()
{
if (Shared.Application.Activity != null) {
reStartApp (this);
return;
}
Shared.Application.IsGpsEnable = false;
base.OnCreate ();
initAll ();
}
///
/// 所有初始化全部在这个方法实现
///
void initAll ()
{
//BaseActivity.TopMargin = -30;
//BaseActivity.IsEnnableGPS = false;
//BaseActivity.VerifyDateTime = DateTime.MaxValue;
//BaseActivity.KeepScreenON = false;
BaseActivity.BackKeyAction = () => {
if (Shared.SimpleControl.MainPage.Loading != null) {
Console.WriteLine (MainPage.Loading.CurStatus);
if (Shared.SimpleControl.MainPage.Loading.CurStatus) {
Shared.SimpleControl.MainPage.Loading.Hide ();
return;
}
}
//if(BaseActivity.VerifyDateTime == DateTime.MaxValue) { } else
try {
var lastView = Shared.Application.MainPage.GetChildren (Shared.Application.MainPage.ChildrenCount - 1);
Console.WriteLine ("lastView " + lastView);
if (MainPage.Loading.CurStatus) {
return;
}
if (lastView != null && lastView.Tag.ToString () == "Dialog") {
if (SharedMethod.SharedMethod.CurPageLayout == null) {
BaseActivity.VerifyDateTime = DateTime.MaxValue;
return;
} else {
Console.WriteLine ("Remove Dialog!!!!");
var lastView2 = Shared.Application.MainPage.GetChildren (Shared.Application.MainPage.ChildrenCount - 2);
lastView.RemoveFromParent ();
lastView2.RemoveFromParent ();
Console.WriteLine ("Remove Dialog End!!!!");
BaseActivity.VerifyDateTime = DateTime.MinValue;
return;
}
}
} catch (System.Exception ezx) {
Console.WriteLine (ezx.Message);
}
if (SharedMethod.SharedMethod.CurPageLayout != null) {
if (SharedMethod.SharedMethod.CurPageLayout.ChildrenCount > 1) {
Console.WriteLine ("Remove PageLayout Children!!!!");
SharedMethod.SharedMethod.CurPageLayout.GetChildren (SharedMethod.SharedMethod.CurPageLayout.ChildrenCount - 1).RemoveFromParent ();
Console.WriteLine ("Remove PageLayout Children End!!!!");
BaseActivity.VerifyDateTime = DateTime.MinValue;
} else {
Console.WriteLine ("BaseActivity.VerifyDateTime = DateTime.MaxValue");
BaseActivity.VerifyDateTime = DateTime.MaxValue;
}
}
};
Shared.Application.FontSize = 16;
BaseActivity.IsHideVirualButtons = false;
ZXing.Mobile.MobileBarcodeScanner.Initialize (this);
init ();
BaseActivity.OnCreateActoin += (activity, application) => {
Microsoft.AppCenter.AppCenter.Start ("d0f0f0c5-88af-494b-93af-9a667801b7a3", typeof (Microsoft.AppCenter.Analytics.Analytics), typeof (Microsoft.AppCenter.Crashes.Crashes));
//保存获取的极光服务器上的注册ID到本地文件
//var tokenID = JPushInterface.GetRegistrationID (activity);
//if (!string.IsNullOrEmpty (tokenID) && UserConfig.Instance.tokenID != tokenID) {
// UserConfig.Instance.tokenID = tokenID;
// UserConfig.Instance.SaveUserConfig ();
//}
BaseActivity.NetworkStateChanged += (int obj) => {
Console.WriteLine ("NetworkStateChanged " + obj);
UserConfig.Instance.internetStatus = obj;
UserConfig.Instance.SaveUserConfig ();
EquipmentPublicClass.CheckLinkRemote (obj);
};
};
BaseActivity.RefreshUIAction += (activity) => {
MainPage.Show ();
checkSomeInfo ();
};
BaseActivity.OnResumeAction += (activity) => {
if (MainPage.Showed) {
checkSomeInfo ();
Shared.Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
});
}
if (WiFiSet.refreshView != null) {
WiFiSet.refreshView ();
}
};
BaseActivity.OnDestroyAction += (activity) => {
BusSocket.Stop ();
};
HDLUtils.SetAuthoritiesName ("com.hdl.crabtree.fileProvider");
}
public static bool IsShowTip = true;
void init ()
{
Shared.Application.Skin = UserConfig.Instance.CurrentSkinName;
SkinStyle.Current.ChangeColor ();
UserConfig.Instance.phoneName = Android.OS.Build.Manufacturer;
////设置极光调试模式,为false时只打印警告信息
//JPushInterface.SetDebugMode (false);
//JPushInterface.Init (this);//保存手机名称到本地文件
//获取经纬度
Shared.Application.LocationAction = (arg1, arg2) => {
Shared.Application.LocationAction = null;
Shared.Application.StopGPSLocationService ();
System.Threading.Tasks.Task.Run (() => {
while (true) {
try {
Shared.SimpleControl.CommonPage.AirQuality = new service.hdlcontrol.com_WebServiceAirQuality.WebServiceAirQuality ().GetAirQuality (arg2.ToString (), arg1.ToString ());
if (Shared.SimpleControl.CommonPage.AirQuality != null)
break;
} catch { }
}
Shared.Application.RunOnMainThread (() => {
if (CommonPage.RefreshAir != null)
CommonPage.RefreshAir ();
});
});
};
}
void checkSomeInfo ()
{
RemoteInfo.Current.ReadMsgList (UserConfig.Instance.tokenID, IsShowTip);
//JPushInterface.ClearAllNotifications (this);
IsShowTip = true;
int internetStatus = 0;
internetStatus = NetworkUtils.CheckConnectedMode ();
Console.WriteLine ("internetStatus:" + internetStatus);
Shared.SimpleControl.EquipmentPublicClass.CheckLinkRemote (internetStatus);
}
bool isNetworkAvailable (Context context)
{
var cm = (ConnectivityManager)context.GetSystemService (ConnectivityService);
if (cm == null || cm.ActiveNetworkInfo == null) {
return false;
} else {
return cm.ActiveNetworkInfo.IsAvailable;
}
}
bool isWifiConnected (Context context)
{
if (context != null) {
var mConnectivityManager = (ConnectivityManager)context.GetSystemService
(ConnectivityService);
var mWiFiNetworkInfo = mConnectivityManager.GetNetworkInfo (ConnectivityType.Wifi);
if (mWiFiNetworkInfo != null) {
return mWiFiNetworkInfo.IsAvailable;
}
}
return false;
}
}
}