Xamarin.Mac SDK API diff: 6.14.1 vs 6.16.0

Xamarin.Mac.dll

Namespace AppKit

Type Changed: AppKit.NSDatePicker

Added property:

public virtual bool PresentsCalendarOverlay { get; set; }

Namespace AuthenticationServices

Type Changed: AuthenticationServices.ASWebAuthenticationSession

Added property:

public virtual bool CanStart { get; }

Type Changed: AuthenticationServices.ASWebAuthenticationSessionErrorCode

Added values:

PresentationContextInvalid = 3,
PresentationContextNotProvided = 2,

Namespace CoreBluetooth

Type Changed: CoreBluetooth.CBError

Added values:

EncryptionTimedOut = 15,
PeerRemovedPairingInformation = 14,

Namespace CoreGraphics

Type Changed: CoreGraphics.CGColorSpaceNames

Added properties:

public static Foundation.NSString DisplayP3_PQ { get; }
public static Foundation.NSString Itur_2020_PQ { get; }

Namespace CoreLocation

Type Changed: CoreLocation.CLLocation

Added constructor:

public CLLocation (CLLocationCoordinate2D coordinate, double altitude, double hAccuracy, double vAccuracy, double course, double courseAccuracy, double speed, double speedAccuracy, Foundation.NSDate timestamp);

Added properties:

public virtual double CourseAccuracy { get; }
public virtual double SpeedAccuracy { get; }

Namespace CoreText

Type Changed: CoreText.CTFontManagerError

Added value:

AssetNotFound = 107,

Namespace FileProvider

Type Changed: FileProvider.NSFileProviderItem_Extensions

Obsoleted methods:

 [Obsolete ("'IsTrashed' is not available in macOS and will be removed in the future.")]
 public static bool IsTrashed (this INSFileProviderItem This);

Namespace GameKit

Type Changed: GameKit.GKLocalPlayer

Added methods:

public virtual void FetchItemsForIdentityVerificationSignature (GKFetchItemsForIdentityVerificationSignatureCompletionHandler completionHandler);
public virtual System.Threading.Tasks.Task<GKFetchItemsForIdentityVerificationSignature> FetchItemsForIdentityVerificationSignatureAsync ();

New Type: GameKit.GKFetchItemsForIdentityVerificationSignature

public class GKFetchItemsForIdentityVerificationSignature {
	// constructors
	public GKFetchItemsForIdentityVerificationSignature (Foundation.NSUrl publicKeyUrl, Foundation.NSData signature, Foundation.NSData salt, ulong timestamp);
	// properties
	public Foundation.NSUrl PublicKeyUrl { get; set; }
	public Foundation.NSData Salt { get; set; }
	public Foundation.NSData Signature { get; set; }
	public ulong Timestamp { get; set; }
}

New Type: GameKit.GKFetchItemsForIdentityVerificationSignatureCompletionHandler

public sealed delegate GKFetchItemsForIdentityVerificationSignatureCompletionHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public GKFetchItemsForIdentityVerificationSignatureCompletionHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (Foundation.NSUrl publicKeyUrl, Foundation.NSData signature, Foundation.NSData salt, ulong timestamp, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (Foundation.NSUrl publicKeyUrl, Foundation.NSData signature, Foundation.NSData salt, ulong timestamp, Foundation.NSError error);
}

Namespace Intents

Type Changed: Intents.INCallDestinationType

Added value:

CallBack = 5,

Type Changed: Intents.INCallRecord

Added constructor:

public INCallRecord (string identifier, Foundation.NSDate dateCreated, INPerson caller, INCallRecordType callRecordType, INCallCapability callCapability, double? callDuration, bool? unseen, int? numberOfCalls);

Type Changed: Intents.INCallRecordType

Added values:

InProgress = 7,
OnHold = 8,
Ringing = 6,

Type Changed: Intents.INCallRecordTypeOptions

Added values:

InProgress = 64,
OnHold = 128,
Ringing = 32,

Type Changed: Intents.INPersonRelationship

Added values:

Daughter = 13,
Son = 12,

Type Changed: Intents.INSendMessageRecipientResolutionResult

Added methods:

public static INSendMessageRecipientResolutionResult GetConfirmationRequired (INPerson personToConfirm);
public static INSendMessageRecipientResolutionResult GetDisambiguation (INPerson[] peopleToDisambiguate);
public static INSendMessageRecipientResolutionResult GetSuccess (INPerson resolvedPerson);

Namespace LocalAuthentication

Type Changed: LocalAuthentication.LACredentialType

Added value:

SmartCardPin = -3,

Namespace Metal

Type Changed: Metal.MTLCommandBuffer_Extensions

Added method:

public static void PresentDrawableAfter (this IMTLCommandBuffer This, IMTLDrawable drawable, double duration);

Type Changed: Metal.MTLDevice_Extensions

Added methods:

public static IMTLRasterizationRateMap CreateRasterizationRateMap (this IMTLDevice This, MTLRasterizationRateMapDescriptor descriptor);
public static bool SupportsRasterizationRateMap (this IMTLDevice This, nuint layerCount);
public static bool SupportsVertexAmplification (this IMTLDevice This, nuint count);

Type Changed: Metal.MTLDrawable

Added properties:

public virtual nuint DrawableID { get; }
public virtual double PresentedTime { get; }

Added methods:

public virtual void AddPresentedHandler (System.Action<IMTLDrawable> block);
public virtual void PresentAfter (double duration);

Type Changed: Metal.MTLRenderCommandEncoder_Extensions

Added method:

public static void SetVertexAmplificationCount (this IMTLRenderCommandEncoder This, nuint count, MTLVertexAmplificationViewMapping viewMappings);

Type Changed: Metal.MTLRenderPassDescriptor

Added property:

public virtual IMTLRasterizationRateMap RasterizationRateMap { get; set; }

Type Changed: Metal.MTLRenderPipelineDescriptor

Added property:

public virtual nuint MaxVertexAmplificationCount { get; set; }

New Type: Metal.IMTLRasterizationRateMap

public interface IMTLRasterizationRateMap : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual IMTLDevice Device { get; }
	public virtual string Label { get; }
	public virtual nuint LayerCount { get; }
	public virtual MTLSizeAndAlign ParameterBufferSizeAndAlign { get; }
	public virtual MTLSize PhysicalGranularity { get; }
	public virtual MTLSize ScreenSize { get; }
	// methods
	public virtual void CopyParameterData (IMTLBuffer buffer, nuint offset);
	public virtual MTLSize GetPhysicalSize (nuint layerIndex);
	public virtual MTLCoordinate2D MapPhysicalToScreenCoordinates (MTLCoordinate2D physicalCoordinates, nuint layerIndex);
	public virtual MTLCoordinate2D MapScreenToPhysicalCoordinates (MTLCoordinate2D screenCoordinates, nuint layerIndex);
}

New Type: Metal.MTLCoordinate2D

public struct MTLCoordinate2D {
	// fields
	public float X;
	public float Y;
}

New Type: Metal.MTLDrawable_Extensions

public static class MTLDrawable_Extensions {
	// methods
	public static void AddPresentedHandler (this IMTLDrawable This, System.Action<IMTLDrawable> block);
	public static nuint GetDrawableID (this IMTLDrawable This);
	public static double GetPresentedTime (this IMTLDrawable This);
	public static void PresentAfter (this IMTLDrawable This, double duration);
}

New Type: Metal.MTLRasterizationRateLayerArray

public class MTLRasterizationRateLayerArray : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLRasterizationRateLayerArray ();
	protected MTLRasterizationRateLayerArray (Foundation.NSObjectFlag t);
	protected MTLRasterizationRateLayerArray (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual MTLRasterizationRateLayerDescriptor GetObject (nuint layerIndex);
	public virtual void SetObject (MTLRasterizationRateLayerDescriptor layer, nuint layerIndex);
}

New Type: Metal.MTLRasterizationRateLayerDescriptor

public class MTLRasterizationRateLayerDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MTLRasterizationRateLayerDescriptor (Foundation.NSObjectFlag t);
	public MTLRasterizationRateLayerDescriptor (MTLSize sampleCount);
	protected MTLRasterizationRateLayerDescriptor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLRasterizationRateMapDescriptor

public class MTLRasterizationRateMapDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLRasterizationRateMapDescriptor ();
	protected MTLRasterizationRateMapDescriptor (Foundation.NSObjectFlag t);
	protected MTLRasterizationRateMapDescriptor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MTLRasterizationRateMapDescriptor Create (MTLSize screenSize);
	public static MTLRasterizationRateMapDescriptor Create (MTLSize screenSize, MTLRasterizationRateLayerDescriptor layer);
	public static MTLRasterizationRateMapDescriptor Create (MTLSize screenSize, nuint layerCount, out MTLRasterizationRateLayerDescriptor layers);
	public virtual MTLRasterizationRateLayerDescriptor GetLayer (nuint layerIndex);
	public virtual void SetLayer (MTLRasterizationRateLayerDescriptor layer, nuint layerIndex);
}

New Type: Metal.MTLRasterizationRateSampleArray

public class MTLRasterizationRateSampleArray : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLRasterizationRateSampleArray ();
	protected MTLRasterizationRateSampleArray (Foundation.NSObjectFlag t);
	protected MTLRasterizationRateSampleArray (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual Foundation.NSNumber GetObject (nuint index);
	public virtual void SetObject (Foundation.NSNumber value, nuint index);
}

New Type: Metal.MTLVertexAmplificationViewMapping

public struct MTLVertexAmplificationViewMapping {
	// fields
	public uint RenderTargetArrayIndexOffset;
	public uint ViewportArrayIndexOffset;
}

Namespace NetworkExtension

Type Changed: NetworkExtension.NEAppProxyFlow

Added property:

public virtual Network.NWInterface NetworkInterface { get; set; }

Added methods:

protected override void Dispose (bool disposing);
public void SetMetadata (Network.NWParameters parameters);

Type Changed: NetworkExtension.NEAppRule

Added property:

public virtual NEAppRule[] MatchTools { get; set; }

Type Changed: NetworkExtension.NEFilterDataProvider

Added method:

public virtual void UpdateFlow (NEFilterSocketFlow flow, NEFilterDataVerdict verdict, NETrafficDirection direction);

Type Changed: NetworkExtension.NEFilterDataVerdict

Added property:

public virtual NEFilterReportFrequency StatisticsReportFrequency { get; set; }

Type Changed: NetworkExtension.NEFilterNewFlowVerdict

Added property:

public virtual NEFilterReportFrequency StatisticsReportFrequency { get; set; }

Type Changed: NetworkExtension.NEFlowMetaData

Added property:

public virtual Foundation.NSUuid FilterFlowIdentifier { get; }

Type Changed: NetworkExtension.NETunnelProviderManager

Modified properties:

-public virtual NEAppRule[] AppRules { get; set; }
+public virtual NEAppRule[] AppRules { get; }

Added properties:

public virtual string[] CalendarDomains { get; set; }
public virtual string[] ContactsDomains { get; set; }
public virtual string[] MailDomains { get; set; }
public virtual string[] SafariDomains { get; set; }

Added methods:

public virtual NEAppRule[] CopyAppRules ();
public static NETunnelProviderManager CreatePerAppVpn ();

New Type: NetworkExtension.NEFilterReportFrequency

[Serializable]
public enum NEFilterReportFrequency {
	High = 3,
	Low = 1,
	Medium = 2,
	None = 0,
}

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string Version = "6.14.1";
+public const string Version = "6.16.0";

Added field:

public static const string AutomaticAssessmentConfigurationLibrary = "/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/AutomaticAssessmentConfiguration";

Namespace VideoSubscriberAccount

Type Changed: VideoSubscriberAccount.VSErrorCode

Added value:

Unsupported = 7,

Namespace VideoToolbox

Type Changed: VideoToolbox.VTStatus

Added value:

SessionMalfunction = -17691,

New Namespace AutomaticAssessmentConfiguration

New Type: AutomaticAssessmentConfiguration.AEAssessmentConfiguration

public class AEAssessmentConfiguration : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AEAssessmentConfiguration ();
	protected AEAssessmentConfiguration (Foundation.NSObjectFlag t);
	protected AEAssessmentConfiguration (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: AutomaticAssessmentConfiguration.AEAssessmentErrorCode

[Serializable]
public enum AEAssessmentErrorCode {
	Unknown = 1,
}

New Type: AutomaticAssessmentConfiguration.AEAssessmentErrorCodeExtensions

public static class AEAssessmentErrorCodeExtensions {
	// methods
	public static Foundation.NSString GetDomain (this AEAssessmentErrorCode self);
}

New Type: AutomaticAssessmentConfiguration.AEAssessmentSession

public class AEAssessmentSession : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AEAssessmentSession (AEAssessmentConfiguration configuration);
	protected AEAssessmentSession (Foundation.NSObjectFlag t);
	protected AEAssessmentSession (IntPtr handle);
	// properties
	public virtual bool Active { get; }
	public override IntPtr ClassHandle { get; }
	public IAEAssessmentSessionDelegate Delegate { get; set; }
	public virtual Foundation.NSObject WeakDelegate { get; set; }
	// methods
	public virtual void Begin ();
	protected override void Dispose (bool disposing);
	public virtual void End ();
}

New Type: AutomaticAssessmentConfiguration.AEAssessmentSessionDelegate

public class AEAssessmentSessionDelegate : Foundation.NSObject, IAEAssessmentSessionDelegate, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AEAssessmentSessionDelegate ();
	protected AEAssessmentSessionDelegate (Foundation.NSObjectFlag t);
	protected AEAssessmentSessionDelegate (IntPtr handle);
	// methods
	public virtual void DidBegin (AEAssessmentSession session);
	public virtual void DidEnd (AEAssessmentSession session);
	public virtual void FailedToBegin (AEAssessmentSession session, Foundation.NSError error);
	public virtual void WasInterrupted (AEAssessmentSession session, Foundation.NSError error);
}

New Type: AutomaticAssessmentConfiguration.AEAssessmentSessionDelegate_Extensions

public static class AEAssessmentSessionDelegate_Extensions {
	// methods
	public static void DidBegin (this IAEAssessmentSessionDelegate This, AEAssessmentSession session);
	public static void DidEnd (this IAEAssessmentSessionDelegate This, AEAssessmentSession session);
	public static void FailedToBegin (this IAEAssessmentSessionDelegate This, AEAssessmentSession session, Foundation.NSError error);
	public static void WasInterrupted (this IAEAssessmentSessionDelegate This, AEAssessmentSession session, Foundation.NSError error);
}

New Type: AutomaticAssessmentConfiguration.IAEAssessmentSessionDelegate

public interface IAEAssessmentSessionDelegate : ObjCRuntime.INativeObject, System.IDisposable {
}