|
|
using AVFoundation;
|
using com.hdl.on;
|
using CoreLocation;
|
using Foundation;
|
using Shared;
|
using System;
|
using UIKit;
|
|
public class BaseDelegate : UIApplicationDelegate
|
{
|
public static Action<UIApplication, NSDictionary> FinishedLaunchingAction;
|
|
public static Action<UIApplication> OnResignActivationAction;
|
|
public static Action<UIApplication> DidEnterBackgroundAction;
|
|
public static Action<UIApplication> WillEnterForegroundAction;
|
|
public static Action<UIApplication> OnActivatedAction;
|
|
public static Action<UIApplication> WillTerminateAction;
|
|
public static Action<string> DeviceTokenAction;
|
|
private CLLocationManager locationManager;
|
|
public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
|
{
|
//registerForRemoteNotification (application);
|
//new MusicInfo ();
|
//Volume.Init ();
|
//locate ();
|
FinishedLaunchingAction?.Invoke (application, launchOptions);
|
return true;
|
}
|
|
//private void registerForRemoteNotification (UIApplication application)
|
//{
|
// if (8 <= int.Parse (UIDevice.CurrentDevice.SystemVersion.Split ('.') [0])) {
|
// UIUserNotificationSettings settingsForTypes = UIUserNotificationSettings.GetSettingsForTypes (UIUserNotificationType.Badge | UIUserNotificationType.Sound | UIUserNotificationType.Alert, null);
|
// application.RegisterUserNotificationSettings (settingsForTypes);
|
// application.RegisterForRemoteNotifications ();
|
// } else {
|
// application.RegisterForRemoteNotificationTypes (UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound | UIRemoteNotificationType.Alert | UIRemoteNotificationType.NewsstandContentAvailability);
|
// }
|
//}
|
|
//private void locate ()
|
//{
|
// locationManager = new CLLocationManager ();
|
// locationManager.DesiredAccuracy = 100.0;
|
// locationManager.PausesLocationUpdatesAutomatically = false;
|
// locationManager.DistanceFilter = 10.0;
|
// locationManager.LocationsUpdated += delegate (object sender, CLLocationsUpdatedEventArgs e) {
|
// CLLocation cLLocation = e.Locations [e.Locations.Length - 1];
|
// Application.LocationAction?.Invoke (cLLocation.Coordinate.Longitude, cLLocation.Coordinate.Latitude);
|
// };
|
// if (8 <= int.Parse (UIDevice.CurrentDevice.SystemVersion.Split ('.') [0])) {
|
// locationManager.RequestWhenInUseAuthorization ();
|
// }
|
// locationManager.StartUpdatingLocation ();
|
//}
|
|
public override void OnResignActivation (UIApplication application)
|
{
|
OnResignActivationAction?.Invoke (application);
|
}
|
|
public override void DidEnterBackground (UIApplication application)
|
{
|
DidEnterBackgroundAction?.Invoke (application);
|
}
|
|
public override void WillEnterForeground (UIApplication application)
|
{
|
WillEnterForegroundAction?.Invoke (application);
|
}
|
|
public override void OnActivated (UIApplication application)
|
{
|
AVAudioSession.SharedInstance ().SetActive (beActive: true);
|
OnActivatedAction?.Invoke (application);
|
}
|
|
public override void WillTerminate (UIApplication application)
|
{
|
WillTerminateAction?.Invoke (application);
|
}
|
|
public override void RegisteredForRemoteNotifications (UIApplication application, NSData deviceToken)
|
{
|
string text = deviceToken.Description;
|
if (!string.IsNullOrWhiteSpace (text)) {
|
text = text.Trim ('<').Trim ('>').Replace (" ", "");
|
HDLUtils.WriteLine ("DeviceToken:" + text);
|
}
|
if (NSUserDefaults.StandardUserDefaults.StringForKey ("PushDeviceToken") != text) {
|
NSUserDefaults.StandardUserDefaults.SetString (text, "PushDeviceToken");
|
}
|
DeviceTokenAction?.Invoke (text);
|
}
|
}
|