Skip to content

Instantly share code, notes, and snippets.

@vs-mobiletools-engineering-service2
Created November 2, 2022 18:47
Show Gist options
  • Save vs-mobiletools-engineering-service2/f745cb3b5a39202399c7e5248056ef77 to your computer and use it in GitHub Desktop.
Save vs-mobiletools-engineering-service2/f745cb3b5a39202399c7e5248056ef77 to your computer and use it in GitHub Desktop.
stable-api-comparison/watchos-api-diff.md
title description author ms.author ms.date ms.topic ms.assetid ms.prod
Xamarin.WatchOS SDK API diff: 16.0.0 vs 16.1.1
List of API changes between Xamarin.WatchOS versions 16.0.0 and 16.1.1.
spouliot
sepoulio
11/2/2022
article
4a1d64a6-a679-2a77-eb45-95481f028ef8
xamarin

Xamarin.WatchOS SDK API diff: 16.0.0 vs 16.1.1

Namespace AVFoundation

Type Changed: AVFoundation.AVAssetTrack

Added property:

public virtual bool CanProvideSampleCursors { get; }

Added methods:

public virtual AVSampleCursor MakeSampleCursor (CoreMedia.CMTime presentationTimeStamp);
public virtual AVSampleCursor MakeSampleCursorAtFirstSampleInDecodeOrder ();
public virtual AVSampleCursor MakeSampleCursorAtLastSampleInDecodeOrder ();

Type Changed: AVFoundation.AVAudioRecorder

Obsoleted properties:

 [Obsolete ("Use the 'CurrentTime' property instead.")]
 public virtual double currentTime { get; }

Added property:

public virtual double CurrentTime { get; }

Type Changed: AVFoundation.AVCaptureDevice

Removed property:

public static float LensPositionCurrent { get; }

Type Changed: AVFoundation.AVError

Added values:

AirPlayReceiverTemporarilyUnavailable = -11882,
FailedToLoadSampleData = -11881,
InvalidSampleCursor = -11880,

Type Changed: AVFoundation.AVMutableComposition

Added methods:

public virtual void Insert (CoreMedia.CMTimeRange timeRange, AVAsset asset, CoreMedia.CMTime startTime, System.Action<Foundation.NSError> completionHandler);
public virtual System.Threading.Tasks.Task InsertAsync (CoreMedia.CMTimeRange timeRange, AVAsset asset, CoreMedia.CMTime startTime);

Type Changed: AVFoundation.AVMutableCompositionTrack

Added methods:

public virtual void InsertTimeRange (CoreMedia.CMTimeRange timeRange, AVAsset asset, CoreMedia.CMTime startTime, System.Action<Foundation.NSError> completionHandler);
public virtual System.Threading.Tasks.Task InsertTimeRangeAsync (CoreMedia.CMTimeRange timeRange, AVAsset asset, CoreMedia.CMTime startTime);

Type Changed: AVFoundation.AVPlayer

Added property:

public virtual float DefaultRate { get; set; }

Type Changed: AVFoundation.AVPlayerInterstitialEvent

Modified properties:

-public virtual Foundation.NSDate Date { get; set; }
+public virtual Foundation.NSDate Date { get; }
-public virtual string Identifier { get; set; }
+public virtual string Identifier { get; }
-public virtual CoreMedia.CMTime PlayoutLimit { get; set; }
+public virtual CoreMedia.CMTime PlayoutLimit { get; }
-public virtual AVPlayerItem PrimaryItem { get; set; }
+public virtual AVPlayerItem PrimaryItem { get; }
-public virtual AVPlayerInterstitialEventRestrictions Restrictions { get; set; }
+public virtual AVPlayerInterstitialEventRestrictions Restrictions { get; }
-public virtual CoreMedia.CMTime ResumptionOffset { get; set; }
+public virtual CoreMedia.CMTime ResumptionOffset { get; }
-public virtual AVPlayerItem[] TemplateItems { get; set; }
+public virtual AVPlayerItem[] TemplateItems { get; }
-public virtual CoreMedia.CMTime Time { get; set; }
+public virtual CoreMedia.CMTime Time { get; }
-public virtual Foundation.NSDictionary UserDefinedAttributes { get; set; }
+public virtual Foundation.NSDictionary UserDefinedAttributes { get; }

Added properties:

public virtual bool AlignsResumptionWithPrimarySegmentBoundary { get; set; }
public virtual bool AlignsStartWithPrimarySegmentBoundary { get; set; }
public virtual string Cue { get; set; }
public virtual bool WillPlayOnce { get; set; }

Added methods:

public static AVPlayerInterstitialEvent GetInterstitialEvent (AVPlayerItem primaryItem, CoreMedia.CMTime time);
public static AVPlayerInterstitialEvent GetInterstitialEvent (AVPlayerItem primaryItem, Foundation.NSDate date);

Type Changed: AVFoundation.AVSpeechSynthesisVoiceQuality

Added value:

Premium = 3,

Type Changed: AVFoundation.AVSpeechSynthesizer

Added method:

public virtual void WriteUtterance (AVSpeechUtterance utterance, AVSpeechSynthesizerBufferCallback bufferCallback, AVSpeechSynthesizerMarkerCallback markerCallback);

Type Changed: AVFoundation.AVSpeechUtterance

Removed constructor:

public AVSpeechUtterance (string speechString);

Added constructor:

public AVSpeechUtterance (string speechString, bool isSsmlRepresentation);

Added method:

public static AVSpeechUtterance GetSpeechUtterance (string SsmlRepresentation);

Type Changed: AVFoundation.AVUrlAsset

Added interfaces:

IAVContentKeyRecipient
ObjCRuntime.INativeObject
System.IDisposable

Added properties:

public virtual Foundation.NSUuid HttpSessionIdentifier { get; }
public static Foundation.NSString HttpUserAgentKey { get; }
public virtual bool MayRequireContentKeysForMediaDataProcessing { get; }
public static Foundation.NSString PrimarySessionIdentifierKey { get; }

Added method:

public virtual void DidProvideContentKey (AVContentKeySession contentKeySession, AVContentKey contentKey);

New Type: AVFoundation.AVAssetPlaybackAssistant

public class AVAssetPlaybackAssistant : Foundation.NSObject {
	// constructors
	protected AVAssetPlaybackAssistant (Foundation.NSObjectFlag t);
	protected AVAssetPlaybackAssistant (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public static AVAssetPlaybackAssistant Create (AVAsset asset);
	public virtual void LoadPlaybackConfigurationOptions (System.Action<Foundation.NSArray<Foundation.NSString>> completionHandler);
	public virtual System.Threading.Tasks.Task<Foundation.NSArray<Foundation.NSString>> LoadPlaybackConfigurationOptionsAsync ();
}

New Type: AVFoundation.AVAssetPlaybackConfigurationOption

[Serializable]
public enum AVAssetPlaybackConfigurationOption {
	StereoMultiviewVideo = 1,
	StereoVideo = 0,
}

New Type: AVFoundation.AVAssetPlaybackConfigurationOptionExtensions

public static class AVAssetPlaybackConfigurationOptionExtensions {
	// methods
	public static Foundation.NSString GetConstant (this AVAssetPlaybackConfigurationOption self);
	public static AVAssetPlaybackConfigurationOption GetValue (Foundation.NSString constant);
}

New Type: AVFoundation.AVCompositionTrack_SynchronousTrackInterface

public static class AVCompositionTrack_SynchronousTrackInterface {
	// methods
	public static AVAssetTrack[] GetAssociatedTracks (this AVCompositionTrack This, Foundation.NSString avAssetTrackTrackAssociationType);
	public static AVMetadataItem[] GetMetadata (this AVCompositionTrack This, AVMetadataFormat format);
	public static AVMetadataItem[] GetMetadataForFormat (this AVCompositionTrack This, string format);
	public static CoreMedia.CMTime GetSamplePresentationTime (this AVCompositionTrack This, CoreMedia.CMTime trackTime);
	public static bool HasMediaCharacteristic (this AVCompositionTrack This, string mediaCharacteristic);
}

New Type: AVFoundation.AVComposition_SynchronousAssetInterface

public static class AVComposition_SynchronousAssetInterface {
	// methods
	public static AVTimedMetadataGroup[] GetChapterMetadataGroups (this AVComposition This, Foundation.NSLocale locale, string[] commonKeys);
	public static AVTimedMetadataGroup[] GetChapterMetadataGroupsBestMatchingPreferredLanguages (this AVComposition This, string[] preferredLanguages);
	public static AVMediaSelectionGroup GetMediaSelectionGroup (this AVComposition This, string mediaCharacteristic);
	public static AVMetadataItem[] GetMetadata (this AVComposition This, AVMetadataFormat format);
	public static AVMetadataItem[] GetMetadataForFormat (this AVComposition This, Foundation.NSString format);
	public static int GetUnusedTrackId (this AVComposition This);
}

New Type: AVFoundation.AVMidiControlChangeMessageType

[Serializable]
public enum AVMidiControlChangeMessageType {
	AllNotesOff = 123,
	AllSoundOff = 120,
	AttackTime = 73,
	Balance = 8,
	BankSelect = 0,
	Breath = 2,
	Brightness = 74,
	ChorusLevel = 93,
	DataEntry = 6,
	DecayTime = 75,
	Expression = 11,
	FilterResonance = 71,
	Foot = 4,
	Hold2Pedal = 69,
	LegatoPedal = 68,
	ModWheel = 1,
	MonoModeOff = 127,
	MonoModeOn = 126,
	OmniModeOff = 124,
	OmniModeOn = 125,
	Pan = 10,
	Portamento = 65,
	PortamentoTime = 5,
	ReleaseTime = 72,
	ResetAllControllers = 121,
	ReverbLevel = 91,
	RpnLsb = 100,
	RpnMsb = 101,
	Soft = 67,
	Sostenuto = 66,
	Sustain = 64,
	VibratoDelay = 78,
	VibratoDepth = 77,
	VibratoRate = 76,
	Volume = 7,
}

New Type: AVFoundation.AVMidiMetaEventType

[Serializable]
public enum AVMidiMetaEventType {
	Copyright = 2,
	CuePoint = 7,
	EndOfTrack = 47,
	Instrument = 4,
	KeySignature = 89,
	Lyric = 5,
	Marker = 6,
	MidiChannel = 32,
	MidiPort = 33,
	ProprietaryEvent = 127,
	SequenceNumber = 0,
	SmpteOffset = 84,
	Tempo = 81,
	Text = 1,
	TimeSignature = 88,
	TrackName = 3,
}

New Type: AVFoundation.AVMutableMovieTrack_SynchronousTrackInterface

public static class AVMutableMovieTrack_SynchronousTrackInterface {
	// methods
	public static AVAssetTrack[] GetAssociatedTracks (this AVMutableMovieTrack This, Foundation.NSString avAssetTrackTrackAssociationType);
	public static AVMetadataItem[] GetMetadata (this AVMutableMovieTrack This, AVMetadataFormat format);
	public static AVMetadataItem[] GetMetadataForFormat (this AVMutableMovieTrack This, Foundation.NSString format);
	public static CoreMedia.CMTime GetSamplePresentationTime (this AVMutableMovieTrack This, CoreMedia.CMTime trackTime);
	public static AVAssetTrackSegment GetSegment (this AVMutableMovieTrack This, CoreMedia.CMTime trackTime);
	public static bool HasMediaCharacteristic (this AVMutableMovieTrack This, string mediaCharacteristic);
}

New Type: AVFoundation.AVMutableMovie_SynchronousAssetInterface

public static class AVMutableMovie_SynchronousAssetInterface {
	// methods
	public static AVTimedMetadataGroup[] GetChapterMetadataGroups (this AVMutableMovie This, Foundation.NSLocale locale, string[] commonKeys);
	public static AVTimedMetadataGroup[] GetChapterMetadataGroupsBestMatchingPreferredLanguages (this AVMutableMovie This, string[] preferredLanguages);
	public static AVMediaSelectionGroup GetMediaSelectionGroup (this AVMutableMovie This, string mediaCharacteristic);
	public static AVMetadataItem[] GetMetadataForFormat (this AVMutableMovie This, string format);
	public static int GetUnusedTrackId (this AVMutableMovie This);
}

New Type: AVFoundation.AVPlayerInterstitialEventCue

[Serializable]
public enum AVPlayerInterstitialEventCue {
	JoinCue = 1,
	LeaveCue = 2,
	NoCue = 0,
}

New Type: AVFoundation.AVPlayerInterstitialEventCueExtensions

public static class AVPlayerInterstitialEventCueExtensions {
	// methods
	public static Foundation.NSString GetConstant (this AVPlayerInterstitialEventCue self);
	public static AVPlayerInterstitialEventCue GetValue (Foundation.NSString constant);
}

New Type: AVFoundation.AVSampleBufferGenerator

public class AVSampleBufferGenerator : Foundation.NSObject {
	// constructors
	protected AVSampleBufferGenerator (Foundation.NSObjectFlag t);
	protected AVSampleBufferGenerator (IntPtr handle);
	public AVSampleBufferGenerator (AVAsset asset, CoreMedia.CMTimebase timebase);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual CoreMedia.CMSampleBuffer CreateSample (AVSampleBufferRequest request, AVSampleBufferGeneratorBatch batch, out Foundation.NSError outError);
	public virtual CoreMedia.CMSampleBuffer CreateSampleBuffer (AVSampleBufferRequest request);
	public virtual CoreMedia.CMSampleBuffer CreateSampleBuffer (AVSampleBufferRequest request, out Foundation.NSError outError);
	public virtual AVSampleBufferGeneratorBatch MakeBatch ();
	public static void NotifyOfDataReady (CoreMedia.CMSampleBuffer sbuf, System.Action<System.Boolean,Foundation.NSError> completionHandler);
	public static System.Threading.Tasks.Task<System.Tuple<System.Boolean,Foundation.NSError>> NotifyOfDataReadyAsync (CoreMedia.CMSampleBuffer sbuf);
}

New Type: AVFoundation.AVSampleBufferGeneratorBatch

public class AVSampleBufferGeneratorBatch : Foundation.NSObject {
	// constructors
	protected AVSampleBufferGeneratorBatch (Foundation.NSObjectFlag t);
	protected AVSampleBufferGeneratorBatch (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual void Cancel ();
	public virtual CoreMedia.CMSampleBuffer CreateSampleBuffer (AVSampleBufferRequest request, out Foundation.NSError outError);
	public virtual CoreMedia.CMSampleBuffer CreateSampleBuffer (AVSampleBufferRequest request, AVSampleBufferGeneratorBatch batch, out Foundation.NSError outError);
	public virtual AVSampleBufferGeneratorBatch MakeBatch ();
	public virtual void MakeDataReady (System.Action<Foundation.NSError> completionHandler);
	public virtual System.Threading.Tasks.Task MakeDataReadyAsync ();
}

New Type: AVFoundation.AVSampleBufferRequest

public class AVSampleBufferRequest : Foundation.NSObject {
	// constructors
	public AVSampleBufferRequest (AVSampleCursor startCursor);
	protected AVSampleBufferRequest (Foundation.NSObjectFlag t);
	protected AVSampleBufferRequest (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual AVSampleBufferRequestDirection Direction { get; set; }
	public virtual AVSampleCursor LimitCursor { get; set; }
	public virtual nint MaxSampleCount { get; set; }
	public virtual AVSampleBufferRequestMode Mode { get; set; }
	public virtual CoreMedia.CMTime OverrideTime { get; set; }
	public virtual nint PreferredMinSampleCount { get; set; }
	public virtual AVSampleCursor StartCursor { get; }
}

New Type: AVFoundation.AVSampleCursor

public class AVSampleCursor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected AVSampleCursor (Foundation.NSObjectFlag t);
	protected AVSampleCursor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual AVSampleCursorChunkInfo CurrentChunkInfo { get; }
	public virtual AVSampleCursorStorageRange CurrentChunkStorageRange { get; }
	public virtual Foundation.NSUrl CurrentChunkStorageUrl { get; }
	public virtual AVSampleCursorAudioDependencyInfo CurrentSampleAudioDependencyInfo { get; }
	public virtual Foundation.NSDictionary CurrentSampleDependencyAttachments { get; }
	public virtual AVSampleCursorSyncInfo CurrentSampleDependencyInfo { get; }
	public virtual CoreMedia.CMTime CurrentSampleDuration { get; }
	public virtual long CurrentSampleIndexInChunk { get; }
	public virtual AVSampleCursorStorageRange CurrentSampleStorageRange { get; }
	public virtual AVSampleCursorSyncInfo CurrentSampleSyncInfo { get; }
	public virtual CoreMedia.CMTime DecodeTimeStamp { get; }
	public virtual CoreMedia.CMTime PresentationTimeStamp { get; }
	public virtual nint SamplesRequiredForDecoderRefresh { get; }
	// methods
	public virtual Foundation.NSComparisonResult ComparePositionInDecodeOrder (AVSampleCursor positionOfCursor);
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual CoreMedia.CMFormatDescription CopyCurrentSampleFormatDescription ();
	public virtual bool SamplesWithEarlierDecodeTimeStampsMayHaveLaterPresentationTimeStampsThan (AVSampleCursor positionOfCursor);
	public virtual bool SamplesWithLaterDecodeTimeStampsMayHaveEarlierPresentationTimeStampsThan (AVSampleCursor positionOfCursor);
	public virtual CoreMedia.CMTime StepByDecodeTime (CoreMedia.CMTime deltaDecodeTime, out bool wasPinned);
	public virtual CoreMedia.CMTime StepByPresentationTime (CoreMedia.CMTime deltaPresentationTime, out bool wasPinned);
	public virtual long StepInDecodeOrder (long stepCount);
	public virtual long StepInPresentationOrder (long stepCount);
}

New Type: AVFoundation.AVSampleCursorAudioDependencyInfo

public struct AVSampleCursorAudioDependencyInfo {
	// fields
	public bool IsIndependentlyDecodable;
	public nint PacketRefreshCount;
}

New Type: AVFoundation.AVSpeechSynthesisMarker

public class AVSpeechSynthesisMarker : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public AVSpeechSynthesisMarker ();
	public AVSpeechSynthesisMarker (Foundation.NSCoder coder);
	protected AVSpeechSynthesisMarker (Foundation.NSObjectFlag t);
	protected AVSpeechSynthesisMarker (IntPtr handle);
	public AVSpeechSynthesisMarker (AVSpeechSynthesisMarkerMark type, Foundation.NSRange range, nuint byteSampleOffset);
	// properties
	public virtual nuint ByteSampleOffset { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual AVSpeechSynthesisMarkerMark Mark { get; set; }
	public virtual Foundation.NSRange TextRange { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: AVFoundation.AVSpeechSynthesisMarkerMark

[Serializable]
public enum AVSpeechSynthesisMarkerMark {
	Paragraph = 3,
	Phoneme = 0,
	Sentence = 2,
	Word = 1,
}

New Type: AVFoundation.AVSpeechSynthesisProviderRequest

public class AVSpeechSynthesisProviderRequest : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public AVSpeechSynthesisProviderRequest (Foundation.NSCoder coder);
	protected AVSpeechSynthesisProviderRequest (Foundation.NSObjectFlag t);
	protected AVSpeechSynthesisProviderRequest (IntPtr handle);
	public AVSpeechSynthesisProviderRequest (string text, AVSpeechSynthesisProviderVoice voice);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string SsmlRepresentation { get; }
	public virtual AVSpeechSynthesisProviderVoice Voice { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: AVFoundation.AVSpeechSynthesisProviderVoice

public class AVSpeechSynthesisProviderVoice : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public AVSpeechSynthesisProviderVoice (Foundation.NSCoder coder);
	protected AVSpeechSynthesisProviderVoice (Foundation.NSObjectFlag t);
	protected AVSpeechSynthesisProviderVoice (IntPtr handle);
	public AVSpeechSynthesisProviderVoice (string name, string identifier, string[] primaryLanguages, string[] supportedLanguages);
	// properties
	public virtual nint Age { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual AVSpeechSynthesisVoiceGender Gender { get; set; }
	public virtual string Identifier { get; }
	public virtual string Name { get; }
	public virtual string[] PrimaryLanguages { get; }
	public virtual string[] SupportedLanguages { get; }
	public virtual string Version { get; set; }
	public virtual long VoiceSize { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
	public static void UpdateSpeechVoices ();
}

New Type: AVFoundation.AVSpeechSynthesizerBufferCallback

public sealed delegate AVSpeechSynthesizerBufferCallback : System.MulticastDelegate {
	// constructors
	public AVSpeechSynthesizerBufferCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (AVAudioBuffer buffer, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (AVAudioBuffer buffer);
}

New Type: AVFoundation.AVSpeechSynthesizerMarkerCallback

public sealed delegate AVSpeechSynthesizerMarkerCallback : System.MulticastDelegate {
	// constructors
	public AVSpeechSynthesizerMarkerCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (AVSpeechSynthesisMarker[] markers, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (AVSpeechSynthesisMarker[] markers);
}

Namespace CoreLocation

Type Changed: CoreLocation.CLError

Added value:

HistoricalLocationError = 19,

Type Changed: CoreLocation.CLLocationManager

Added method:

public virtual void RequestHistoricalLocations (string purposeKey, nint sampleCount, RequestHistoricalLocationsCompletionHandler handler);

New Type: CoreLocation.RequestHistoricalLocationsCompletionHandler

public sealed delegate RequestHistoricalLocationsCompletionHandler : System.MulticastDelegate {
	// constructors
	public RequestHistoricalLocationsCompletionHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CLLocation[] locations, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CLLocation[] locations, Foundation.NSError error);
}

Namespace CoreMedia

Type Changed: CoreMedia.CMSampleBufferAttachmentKey

Added value:

Hdr10PlusPerFrameData = 34,

Type Changed: CoreMedia.CMSampleBufferAttachmentSettings

Added property:

public Foundation.NSData Hdr10PlusPerFrameData { get; set; }

Namespace CoreMotion

New Type: CoreMotion.CMWaterSubmersionDepthState

[Serializable]
public enum CMWaterSubmersionDepthState {
	ApproachingMaxDepth = 400,
	NotSubmerged = 100,
	PastMaxDepth = 500,
	SensorDepthError = 600,
	SubmergedDeep = 300,
	SubmergedShallow = 200,
	Unknown = 0,
}

New Type: CoreMotion.CMWaterSubmersionEvent

public class CMWaterSubmersionEvent : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public CMWaterSubmersionEvent ();
	public CMWaterSubmersionEvent (Foundation.NSCoder coder);
	protected CMWaterSubmersionEvent (Foundation.NSObjectFlag t);
	protected CMWaterSubmersionEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSDate Date { get; }
	public virtual CMWaterSubmersionState State { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: CoreMotion.CMWaterSubmersionManager

public class CMWaterSubmersionManager : Foundation.NSObject {
	// constructors
	public CMWaterSubmersionManager ();
	protected CMWaterSubmersionManager (Foundation.NSObjectFlag t);
	protected CMWaterSubmersionManager (IntPtr handle);
	// properties
	public static CMAuthorizationStatus AuthorizationStatus { get; }
	public override IntPtr ClassHandle { get; }
	public ICMWaterSubmersionManagerDelegate Delegate { get; set; }
	public static bool IsWaterSubmersionAvailable { get; }
	public virtual Foundation.NSObject WeakDelegate { get; set; }
	// methods
	protected override void Dispose (bool disposing);
}

New Type: CoreMotion.CMWaterSubmersionManagerDelegate

public abstract class CMWaterSubmersionManagerDelegate : Foundation.NSObject, ICMWaterSubmersionManagerDelegate, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected CMWaterSubmersionManagerDelegate ();
	protected CMWaterSubmersionManagerDelegate (Foundation.NSObjectFlag t);
	protected CMWaterSubmersionManagerDelegate (IntPtr handle);
	// methods
	public virtual void DidUpdateEvent (CMWaterSubmersionManager manager, CMWaterSubmersionEvent event);
	public virtual void DidUpdateMeasurement (CMWaterSubmersionManager manager, CMWaterSubmersionMeasurement measurement);
	public virtual void DidUpdateTemperature (CMWaterSubmersionManager manager, CMWaterTemperature measurement);
	public virtual void ErrorOccurred (CMWaterSubmersionManager manager, Foundation.NSError error);
}

New Type: CoreMotion.CMWaterSubmersionMeasurement

public class CMWaterSubmersionMeasurement : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public CMWaterSubmersionMeasurement ();
	public CMWaterSubmersionMeasurement (Foundation.NSCoder coder);
	protected CMWaterSubmersionMeasurement (Foundation.NSObjectFlag t);
	protected CMWaterSubmersionMeasurement (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSDate Date { get; }
	public virtual Foundation.NSMeasurement<Foundation.NSUnitLength> Depth { get; }
	public virtual Foundation.NSMeasurement<Foundation.NSUnitPressure> Pressure { get; }
	public virtual CMWaterSubmersionDepthState SubmersionState { get; }
	public virtual Foundation.NSMeasurement<Foundation.NSUnitPressure> SurfacePressure { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: CoreMotion.CMWaterSubmersionState

[Serializable]
public enum CMWaterSubmersionState {
	NotSubmerged = 1,
	Submerged = 2,
	Unknown = 0,
}

New Type: CoreMotion.CMWaterTemperature

public class CMWaterTemperature : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public CMWaterTemperature ();
	public CMWaterTemperature (Foundation.NSCoder coder);
	protected CMWaterTemperature (Foundation.NSObjectFlag t);
	protected CMWaterTemperature (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSDate Date { get; }
	public virtual Foundation.NSMeasurement<Foundation.NSUnitTemperature> Temperature { get; }
	public virtual Foundation.NSMeasurement<Foundation.NSUnitTemperature> TemperatureUncertainty { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: CoreMotion.ICMWaterSubmersionManagerDelegate

public interface ICMWaterSubmersionManagerDelegate : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void DidUpdateEvent (CMWaterSubmersionManager manager, CMWaterSubmersionEvent event);
	public virtual void DidUpdateMeasurement (CMWaterSubmersionManager manager, CMWaterSubmersionMeasurement measurement);
	public virtual void DidUpdateTemperature (CMWaterSubmersionManager manager, CMWaterTemperature measurement);
	public virtual void ErrorOccurred (CMWaterSubmersionManager manager, Foundation.NSError error);
}

Namespace Foundation

Type Changed: Foundation.NSArray

Added interfaces:

System.Collections.Generic.IEnumerable<NSObject>
System.Collections.IEnumerable

Added methods:

public TKey[] ToArray<TKey> ();
public NSObject[] ToArray ();

Type Changed: Foundation.NSArray`1

Added method:

public TKey[] ToArray ();

Type Changed: Foundation.NSMutableUrlRequest

Added property:

public virtual bool RequiresDnsSecValidation { get; set; }

Type Changed: Foundation.NSUrlRequest

Added property:

public virtual bool RequiresDnsSecValidation { get; }

Type Changed: Foundation.NSValue

Added property:

public virtual CoreMedia.CMVideoDimensions CMVideoDimensionsValue { get; }

Added method:

public static NSValue FromCMVideoDimensions (CoreMedia.CMVideoDimensions dimensions);

Namespace HealthKit

Type Changed: HealthKit.HKCategoryTypeIdentifier

Added values:

InfrequentMenstrualCycles = 62,
IrregularMenstrualCycles = 63,
PersistentIntermenstrualBleeding = 64,
ProlongedMenstrualPeriods = 65,

Type Changed: HealthKit.HKQuantityTypeIdentifier

Added values:

AppleSleepingWristTemperature = 100,
UnderwaterDepth = 101,
WaterTemperature = 102,

Namespace HomeKit

Type Changed: HomeKit.HMAccessory

Added property:

public virtual Foundation.NSNumber MatterNodeId { get; }

Type Changed: HomeKit.HMAccessorySetupManager

Obsoleted methods:

 [Obsolete ("This API has been removed from the 'HomeKit' framework.")]
 public virtual void AddAndSetUpAccessories (HMChipServiceTopology topology, HMErrorHandler completion);
 [Obsolete ("This API has been removed from the 'HomeKit' framework.")]
 public virtual System.Threading.Tasks.Task AddAndSetUpAccessoriesAsync (HMChipServiceTopology topology);

Type Changed: HomeKit.HMHome

Added properties:

public virtual string MatterControllerId { get; }
public virtual System.Func<Foundation.NSXpcConnection> MatterControllerXPCConnectBlock { get; }

Namespace NearbyInteraction

Type Changed: NearbyInteraction.NISession

Obsoleted methods:

 [Obsolete ("This method was removed and will always throw a InvalidOperationException.")]
 public virtual OpenTK.NMatrix4 GetWorldTransform (NINearbyObject object);
 [Obsolete ("This method was removed and will always throw a InvalidOperationException.")]
 public virtual void SetARSession (Foundation.NSObject session);

Namespace Network

Type Changed: Network.NWPath

Obsoleted methods:

 [Obsolete ("Use the overload that takes a 'Func<NWEndpoint, bool>' instead.")]
 public void EnumerateGateways (System.Action<NWEndpoint> callback);
 [Obsolete ("Use the overload that takes a 'Func<NWInterface, bool>' instead.")]
 public void EnumerateInterfaces (System.Action<NWInterface> callback);

Added methods:

public void EnumerateGateways (System.Func<NWEndpoint,System.Boolean> callback);
public void EnumerateInterfaces (System.Func<NWInterface,System.Boolean> callback);

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string SdkVersion = "9.0";
+public const string SdkVersion = "9.1";
-public const string Version = "16.0.0";
+public const string Version = "16.1.1";

Namespace WatchKit

Type Changed: WatchKit.WKExtendedRuntimeSession

Added methods:

public static void RequestAutoLaunchAuthorizationStatus (WKRequestAutoLaunchAuthorizationStatusCompletionHandler completion);
public static System.Threading.Tasks.Task<WKExtendedRuntimeSessionAutoLaunchAuthorizationStatus> RequestAutoLaunchAuthorizationStatusAsync ();

Type Changed: WatchKit.WKExtendedRuntimeSessionErrorCode

Added values:

MustBeActiveToPrompt = 9,
UnsupportedSessionType = 10,

Type Changed: WatchKit.WKHapticType

Added values:

UnderwaterDepthCriticalPrompt = 13,
UnderwaterDepthPrompt = 12,

Type Changed: WatchKit.WKWaterResistanceRating

Added value:

WR100 = 2,

New Type: WatchKit.WKExtendedRuntimeSessionAutoLaunchAuthorizationStatus

[Serializable]
public enum WKExtendedRuntimeSessionAutoLaunchAuthorizationStatus {
	Active = 2,
	Inactive = 1,
	Unknown = 0,
}

New Type: WatchKit.WKRequestAutoLaunchAuthorizationStatusCompletionHandler

public sealed delegate WKRequestAutoLaunchAuthorizationStatusCompletionHandler : System.MulticastDelegate {
	// constructors
	public WKRequestAutoLaunchAuthorizationStatusCompletionHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (WKExtendedRuntimeSessionAutoLaunchAuthorizationStatus authorizationStatus, Foundation.NSError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (WKExtendedRuntimeSessionAutoLaunchAuthorizationStatus authorizationStatus, Foundation.NSError error);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment