wxr
2022-12-13 5bed96bdc308ee10e1a5e9bd7ff056ed67808d02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
 
 
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);
    }
}