using AVFoundation; using com.hdl.on; using CoreLocation; using Foundation; using Shared; using System; using UIKit; public class BaseDelegate : UIApplicationDelegate { public static Action FinishedLaunchingAction; public static Action OnResignActivationAction; public static Action DidEnterBackgroundAction; public static Action WillEnterForegroundAction; public static Action OnActivatedAction; public static Action WillTerminateAction; public static Action 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); } }