[XM] Add CoreLocation APIs that exist on macOS (#671)

- https://bugzilla.xamarin.com/show_bug.cgi?id=43593
This commit is contained in:
Chris Hamons 2016-08-25 12:46:55 -05:00 коммит произвёл Sebastien Pouliot
Родитель 0656de444b
Коммит 82882b70f7
1 изменённых файлов: 42 добавлений и 4 удалений

Просмотреть файл

@ -203,9 +203,11 @@ namespace XamCore.CoreLocation {
[NoWatch][NoTV]
[Export ("dismissHeadingCalibrationDisplay")]
void DismissHeadingCalibrationDisplay ();
#endif
[NoWatch][NoTV]
[Since (3,2)]
[Mac (10,7)]
[Availability (Introduced = Platform.iOS_3_2, Deprecated = Platform.iOS_6_0)]
// Default property value is null but it cannot be set to that value
// it crash when a null is provided
@ -214,25 +216,28 @@ namespace XamCore.CoreLocation {
[NoWatch][NoTV]
[Since (4,0)]
[Mac (10,7)]
[Export ("headingAvailable"), Static]
bool HeadingAvailable { get; }
[NoWatch][NoTV]
[Since (4,0)]
[Mac (10,7)]
[Export ("significantLocationChangeMonitoringAvailable"), Static]
bool SignificantLocationChangeMonitoringAvailable { get; }
[NoWatch][NoTV]
[Availability (Introduced = Platform.iOS_4_0, Deprecated = Platform.iOS_7_0, Message = "Use IsMonitoringAvailable instead")]
[Availability (Introduced = Platform.iOS_4_0 | Platform.Mac_10_8, Deprecated = Platform.iOS_7_0 | Platform.Mac_10_10, Message = "Use IsMonitoringAvailable instead")]
[Export ("regionMonitoringAvailable"), Static]
bool RegionMonitoringAvailable { get; }
[NoWatch][NoTV]
[Since (4,0)]
[Availability (Introduced = Platform.iOS_4_0, Deprecated = Platform.iOS_6_0, Message = "Use IsMonitoringAvailable and AuthorizationStatus instead")]
[Availability (Introduced = Platform.iOS_4_0 | Platform.Mac_10_8, Deprecated = Platform.iOS_6_0 | Platform.Mac_10_10, Message = "Use IsMonitoringAvailable and AuthorizationStatus instead")]
[Export ("regionMonitoringEnabled"), Static]
bool RegionMonitoringEnabled { get; }
#if !MONOMAC
[NoWatch][NoTV]
[Since (4,0)]
[Export ("headingOrientation", ArgumentSemantic.Assign)]
@ -242,47 +247,58 @@ namespace XamCore.CoreLocation {
[Export ("heading", ArgumentSemantic.Copy)]
[Since (4,0)]
CLHeading Heading { get; }
#endif
[NoWatch][NoTV]
[Export ("maximumRegionMonitoringDistance")]
[Since (4,0)]
[Mac (10,8)]
double MaximumRegionMonitoringDistance { get; }
[NoWatch][NoTV]
[Export ("monitoredRegions", ArgumentSemantic.Copy)]
[Since (4,0)]
[Mac (10,8)]
NSSet MonitoredRegions { get; }
[NoWatch][NoTV]
[Since (4,0)]
[Mac (10,7)]
[Export ("startMonitoringSignificantLocationChanges")]
void StartMonitoringSignificantLocationChanges ();
[NoWatch][NoTV]
[Since (4,0)]
[Mac (10,7)]
[Export ("stopMonitoringSignificantLocationChanges")]
void StopMonitoringSignificantLocationChanges ();
#if !MONOMAC
[NoWatch][NoTV]
[Since (4,0)]
[Availability (Introduced = Platform.iOS_4_0, Deprecated = Platform.iOS_6_0)]
[Export ("startMonitoringForRegion:desiredAccuracy:")]
void StartMonitoring (CLRegion region, double desiredAccuracy);
#endif
[NoWatch][NoTV]
[Since (4,0)]
[Mac (10,8)]
[Export ("stopMonitoringForRegion:")]
void StopMonitoring (CLRegion region);
[Since (4,2)]
[Mac (10,7)]
[Export ("authorizationStatus")][Static]
CLAuthorizationStatus Status { get; }
[NoWatch][NoTV]
[Since (5,0)]
[Mac (10,8)]
[Export ("startMonitoringForRegion:")]
void StartMonitoring (CLRegion region);
#if !MONOMAC
[NoWatch][NoTV]
[Since (6,0)]
[Export ("activityType", ArgumentSemantic.Assign)]
@ -302,29 +318,38 @@ namespace XamCore.CoreLocation {
[Since (6,0)]
[Export ("disallowDeferredLocationUpdates")]
void DisallowDeferredLocationUpdates ();
#endif
[NoWatch][NoTV]
[Since (6,0)]
[Mac (10,9)]
[Static]
[Export ("deferredLocationUpdatesAvailable")]
bool DeferredLocationUpdatesAvailable { get; }
#if !MONOMAC
[Since (6,0)]
[Field ("CLTimeIntervalMax")]
double MaxTimeInterval { get; }
#endif
[NoWatch][NoTV]
[Mac (10,10)]
[Since (7,0), Static, Export ("isMonitoringAvailableForClass:")]
bool IsMonitoringAvailable (Class regionClass);
#if !MONOMAC
[NoWatch][NoTV]
[Since (7,0), Export ("rangedRegions", ArgumentSemantic.Copy)]
NSSet RangedRegions { get; }
#endif
[Mac (10,10)]
[NoWatch][NoTV]
[Since (7,0), Export ("requestStateForRegion:")]
void RequestState (CLRegion region);
#if !MONOMAC
[NoWatch][NoTV]
[Since (7,0), Export ("startRangingBeaconsInRegion:")]
void StartRangingBeacons (CLBeaconRegion region);
@ -392,31 +417,36 @@ namespace XamCore.CoreLocation {
[Export ("locationManager:didFailWithError:"), EventArgs ("NSError", true)]
void Failed (CLLocationManager manager, NSError error);
#if !MONOMAC
[NoWatch][NoTV]
[Since (4,0)]
[Mac (10,8)]
[Export ("locationManager:didEnterRegion:"), EventArgs ("CLRegion")]
void RegionEntered (CLLocationManager manager, CLRegion region);
[NoWatch][NoTV]
[Since (4,0)]
[Mac (10,8)]
[Export ("locationManager:didExitRegion:"), EventArgs ("CLRegion")]
void RegionLeft (CLLocationManager manager, CLRegion region);
[NoWatch][NoTV]
[Since (4,0)]
[Mac (10,8)]
[Export ("locationManager:monitoringDidFailForRegion:withError:"), EventArgs ("CLRegionError")]
void MonitoringFailed (CLLocationManager manager, CLRegion region, NSError error);
[NoWatch][NoTV]
[Since(5,0)]
[Mac (10,8)]
[Export ("locationManager:didStartMonitoringForRegion:"), EventArgs ("CLRegion")]
void DidStartMonitoringForRegion (CLLocationManager manager, CLRegion region);
[NoWatch][NoTV]
[Mac (10,10)]
[Since (7,0), Export ("locationManager:didDetermineState:forRegion:"), EventArgs ("CLRegionStateDetermined")]
void DidDetermineState (CLLocationManager manager, CLRegionState state, CLRegion region);
#if !MONOMAC
[NoWatch][NoTV]
[Since (7,0), Export ("locationManager:didRangeBeacons:inRegion:"), EventArgs ("CLRegionBeaconsRanged")]
void DidRangeBeacons (CLLocationManager manager, CLBeacon [] beacons, CLBeaconRegion region);
@ -565,8 +595,11 @@ namespace XamCore.CoreLocation {
NSTimeZone TimeZone { get; }
}
#if !MONOMAC
[Mac (10,10)]
[Since (7,0), BaseType (typeof (CLRegion))]
#if MONOMAC
[DisableDefaultCtor]
#endif
public partial interface CLCircularRegion {
[Export ("initWithCenter:radius:identifier:")]
@ -582,6 +615,7 @@ namespace XamCore.CoreLocation {
bool ContainsCoordinate (CLLocationCoordinate2D coordinate);
}
#if !MONOMAC
[NoWatch][NoMac][NoTV]
[Since (7,0), BaseType (typeof (CLRegion))]
[DisableDefaultCtor] // nil-Handle on iOS8 if 'init' is used
@ -635,8 +669,11 @@ namespace XamCore.CoreLocation {
nint Rssi { get; }
}
#endif
delegate void CLGeocodeCompletionHandler (CLPlacemark [] placemarks, NSError error);
[Mac (10,8)]
[Since (5,0)]
[BaseType (typeof (NSObject))]
interface CLGeocoder {
@ -663,6 +700,7 @@ namespace XamCore.CoreLocation {
void CancelGeocode ();
}
#if !MONOMAC
[NoWatch][NoTV]
[iOS (8,0)]
[BaseType (typeof (NSObject))]