Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save vs-mobiletools-engineering-service2/c68ab8cde4d1c6c6a34de757612298f7 to your computer and use it in GitHub Desktop.
Save vs-mobiletools-engineering-service2/c68ab8cde4d1c6c6a34de757612298f7 to your computer and use it in GitHub Desktop.
watchOS API diff from stable
title description author ms.author ms.date ms.topic ms.assetid ms.prod
Xamarin.WatchOS SDK API diff: 14.14.2 vs 14.17.3
List of API changes between Xamarin.WatchOS versions 14.14.2 and 14.17.3.
spouliot
sepoulio
4/15/2021
article
5ca9c906-4cea-c1c4-8155-2732e0b03eba
xamarin

Xamarin.WatchOS SDK API diff: 14.14.2 vs 14.17.3

Namespace AVFoundation

Type Changed: AVFoundation.AVAudioSession

Added property:

public virtual bool PrefersNoInterruptionsFromSystemAlerts { get; }

Added method:

public virtual bool SetPrefersNoInterruptionsFromSystemAlerts (bool inValue, out Foundation.NSError outError);

Type Changed: AVFoundation.AVAudioSessionCategoryOptions

Added value:

OverrideMutedMicrophoneInterruption = 128,

Type Changed: AVFoundation.AVAudioSessionInterruptionEventArgs

Added property:

public AVAudioSessionInterruptionReason Reason { get; }

Type Changed: AVFoundation.AVContentKeyRequest

Added properties:

public virtual AVContentKey ContentKey { get; }
public virtual AVContentKeySpecifier ContentKeySpecifier { get; }

Type Changed: AVFoundation.AVPlayer

Added property:

public static Foundation.NSString WaitingDuringInterstitialEventReason { get; }

Type Changed: AVFoundation.AVPlayerItem

Added property:

public virtual AVVariantPreferences VariantPreferences { get; set; }

Type Changed: AVFoundation.AVSampleBufferAudioRenderer

Added property:

public virtual bool HasSufficientMediaDataForReliablePlaybackStart { get; }

Type Changed: AVFoundation.AVSampleBufferRenderSynchronizer

Added property:

public virtual bool DelaysRateChangeUntilHasSufficientMediaData { get; set; }

Added method:

public virtual void SetRate (float rate, CoreMedia.CMTime time, CoreMedia.CMTime hostTime);

New Type: AVFoundation.AVAudioSessionInterruptionReason

[Serializable]
public enum AVAudioSessionInterruptionReason {
	AppWasSuspended = 1,
	BuiltInMicMuted = 2,
	Default = 0,
}

New Type: AVFoundation.AVContentKey

public class AVContentKey : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVContentKey ();
	protected AVContentKey (Foundation.NSObjectFlag t);
	protected AVContentKey (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual AVContentKeySpecifier ContentKeySpecifier { get; }
}

New Type: AVFoundation.AVContentKeyRecipient_Extensions

public static class AVContentKeyRecipient_Extensions {
	// methods
	public static void DidProvideContentKey (this IAVContentKeyRecipient This, AVContentKeySession contentKeySession, AVContentKey contentKey);
}

New Type: AVFoundation.AVContentKeySpecifier

public class AVContentKeySpecifier : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVContentKeySpecifier ();
	protected AVContentKeySpecifier (Foundation.NSObjectFlag t);
	protected AVContentKeySpecifier (IntPtr handle);
	public AVContentKeySpecifier (AVContentKeySystem keySystem, Foundation.NSObject contentKeyIdentifier, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> options);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSObject Identifier { get; }
	public virtual AVContentKeySystem KeySystem { get; }
	public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> Options { get; }
	// methods
	public static AVContentKeySpecifier GetContentKeySpecifier (AVContentKeySystem keySystem, Foundation.NSObject contentKeyIdentifier, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> options);
}

New Type: AVFoundation.AVPlayerInterstitialEvent

public class AVPlayerInterstitialEvent : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected AVPlayerInterstitialEvent (Foundation.NSObjectFlag t);
	protected AVPlayerInterstitialEvent (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSDate Date { get; }
	public virtual AVPlayerItem[] InterstitialTemplateItems { get; }
	public virtual AVPlayerItem PrimaryItem { get; }
	public virtual AVPlayerInterstitialEventRestrictions Restrictions { get; }
	public virtual CoreMedia.CMTime ResumptionOffset { get; }
	public virtual AVPlayerItem[] TemplateItems { get; }
	public virtual CoreMedia.CMTime Time { get; }
	// methods
	protected override void Dispose (bool disposing);
	public static AVPlayerInterstitialEvent GetInterstitialEvent (AVPlayerItem primaryItem, CoreMedia.CMTime time, AVPlayerItem[] templateItems, AVPlayerInterstitialEventRestrictions restrictions, CoreMedia.CMTime resumptionOffset);
	public static AVPlayerInterstitialEvent GetInterstitialEvent (AVPlayerItem primaryItem, Foundation.NSDate date, AVPlayerItem[] templateItems, AVPlayerInterstitialEventRestrictions restrictions, CoreMedia.CMTime resumptionOffset);
	public static AVPlayerInterstitialEvent GetPlayerInterstitialEvent (AVPlayerItem primaryItem, CoreMedia.CMTime time, AVPlayerItem[] interstitialTemplateItems, AVPlayerInterstitialEventRestrictions restrictions, CoreMedia.CMTime resumptionOffset);
	public static AVPlayerInterstitialEvent GetPlayerInterstitialEvent (AVPlayerItem primaryItem, Foundation.NSDate date, AVPlayerItem[] interstitialTemplateItems, AVPlayerInterstitialEventRestrictions restrictions, CoreMedia.CMTime resumptionOffset);
}

New Type: AVFoundation.AVPlayerInterstitialEventController

public class AVPlayerInterstitialEventController : AVFoundation.AVPlayerInterstitialEventObserver, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVPlayerInterstitialEventController (AVPlayer primaryPlayer);
	protected AVPlayerInterstitialEventController (Foundation.NSObjectFlag t);
	protected AVPlayerInterstitialEventController (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual AVPlayerInterstitialEvent[] Events { get; set; }
	public virtual AVPlayerInterstitialEvent[] InterstitialEvents { get; set; }
	// methods
	public virtual void CancelCurrentEvent (CoreMedia.CMTime resumptionOffset);
	public static AVPlayerInterstitialEventController GetInterstitialEventController (AVPlayer primaryPlayer);
	public static AVPlayerInterstitialEventController GetPlayerInterstitialEventController (AVPlayer primaryPlayer);
}

New Type: AVFoundation.AVPlayerInterstitialEventObserver

public class AVPlayerInterstitialEventObserver : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public AVPlayerInterstitialEventObserver (AVPlayer primaryPlayer);
	protected AVPlayerInterstitialEventObserver (Foundation.NSObjectFlag t);
	protected AVPlayerInterstitialEventObserver (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual AVPlayerInterstitialEvent CurrentEvent { get; }
	public static Foundation.NSString CurrentEventDidChangeNotification { get; }
	public virtual AVPlayerInterstitialEvent[] Events { get; }
	public static Foundation.NSString EventsDidChangeNotification { get; }
	public virtual AVPlayerInterstitialEvent[] InterstitialEvents { get; }
	public virtual AVQueuePlayer InterstitialPlayer { get; }
	public virtual AVPlayer PrimaryPlayer { get; }
	// methods
	protected override void Dispose (bool disposing);
	public static AVPlayerInterstitialEventObserver GetInterstitialEventObserver (AVPlayer primaryPlayer);
	public static AVPlayerInterstitialEventObserver GetPlayerInterstitialEventObserver (AVPlayer primaryPlayer);

	// inner types
	public static class Notifications {
		// methods
		public static Foundation.NSObject ObserveCurrentEventDidChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler);
		public static Foundation.NSObject ObserveCurrentEventDidChange (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler);
		public static Foundation.NSObject ObserveEventsDidChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler);
		public static Foundation.NSObject ObserveEventsDidChange (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler);
	}
}

New Type: AVFoundation.AVPlayerInterstitialEventRestrictions

[Serializable]
[Flags]
public enum AVPlayerInterstitialEventRestrictions {
	ConstrainsSeekingForwardInPrimaryContent = 1,
	DefaultPolicy = 0,
	None = 0,
	RequiresPlaybackAtPreferredRateForAdvancement = 4,
}

New Type: AVFoundation.AVQueuedSampleBufferRendering_Extensions

public static class AVQueuedSampleBufferRendering_Extensions {
	// methods
	public static bool GetHasSufficientMediaDataForReliablePlaybackStart (this IAVQueuedSampleBufferRendering This);
}

New Type: AVFoundation.AVVariantPreferences

[Serializable]
[Flags]
public enum AVVariantPreferences {
	None = 0,
	ScalabilityToLosslessAudio = 1,
}

Namespace AuthenticationServices

Removed Type AuthenticationServices.ASExtensionErrorCodeExtensions

Namespace CoreMedia

Type Changed: CoreMedia.CMVideoCodecType

Added value:

DolbyVisionHevc = 1685481521,

Namespace CoreText

Type Changed: CoreText.CTRunDelegate

Modified base type:

-System.Object
+CoreFoundation.NativeObject

Removed property:

public virtual IntPtr Handle { get; }

Removed methods:

public virtual void Dispose ();
protected virtual void Dispose (bool disposing);
protected override void ~CTRunDelegate ();

Type Changed: CoreText.CTRunDelegateOperations

Added property:

public IntPtr Handle { get; }

Namespace Foundation

Type Changed: Foundation.NSError

Added properties:

public static NSString MultipleUnderlyingErrorsKey { get; }
public virtual NSError[] UnderlyingErrors { get; }

Type Changed: Foundation.NSMutableUrlRequest

Added property:

public virtual bool AssumesHttp3Capable { get; set; }

Type Changed: Foundation.NSProgress

Added property:

public static NSString FileOperationKindUploading { get; }

Type Changed: Foundation.NSUrl

Added property:

public static NSString UbiquitousItemIsExcludedFromSyncKey { get; }

Type Changed: Foundation.NSUrlRequest

Added property:

public virtual bool AssumesHttp3Capable { get; set; }

Type Changed: Foundation.NSUrlSessionTask

Added property:

public virtual bool PrefersIncrementalDelivery { get; set; }

Namespace GameKit

Type Changed: GameKit.GKError

Added values:

FriendListDenied = 102,
FriendListDescriptionMissing = 100,
FriendListRestricted = 101,

Type Changed: GameKit.GKLocalPlayer

Added methods:

public virtual void LoadFriendsAuthorizationStatus (System.Action<GKFriendsAuthorizationStatus,Foundation.NSError> completionHandler);
public virtual System.Threading.Tasks.Task<GKFriendsAuthorizationStatus> LoadFriendsAuthorizationStatusAsync ();
public virtual void LoadFriendsList (System.Action<GKPlayer[],Foundation.NSError> completionHandler);
public virtual void LoadFriendsList (string[] identifiers, System.Action<GKPlayer[],Foundation.NSError> completionHandler);
public virtual System.Threading.Tasks.Task<GKPlayer[]> LoadFriendsListAsync ();
public virtual System.Threading.Tasks.Task<GKPlayer[]> LoadFriendsListAsync (string[] identifiers);

New Type: GameKit.GKFriendsAuthorizationStatus

[Serializable]
public enum GKFriendsAuthorizationStatus {
	Authorized = 3,
	Denied = 2,
	NotDetermined = 0,
	Restricted = 1,
}

Namespace HealthKit

Type Changed: HealthKit.HKQuantityTypeIdentifier

Added value:

AppleMoveTime = 90,

Namespace HomeKit

Type Changed: HomeKit.HMCameraSource

Added property:

public virtual double AspectRatio { get; }

Namespace ImageIO

Type Changed: ImageIO.CGImageProperties

Added property:

public static Foundation.NSString PNGTransparency { get; }

Namespace Intents

Type Changed: Intents.INCallRecord

Added constructors:

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

Added properties:

public virtual bool? IsCallerIdBlocked { get; }
public virtual INPerson[] Participants { get; }

Type Changed: Intents.INMediaReference

Added value:

My = 2,

New Type: Intents.INCallGroup

public class INCallGroup : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public INCallGroup (Foundation.NSCoder coder);
	protected INCallGroup (Foundation.NSObjectFlag t);
	protected INCallGroup (IntPtr handle);
	public INCallGroup (string groupName, string groupId);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string GroupId { get; }
	public virtual string GroupName { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

Namespace MapKit

Type Changed: MapKit.MKMapItem

Modified methods:

 public bool OpenMaps (MKMapItem[] mapItems--- = NULL---, MKLaunchOptions launchOptions = NULL)

Namespace MediaPlayer

Type Changed: MediaPlayer.MPMediaItem

Added property:

public static Foundation.NSString IsPreorderProperty { get; }

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string SdkVersion = "7.2";
+public const string SdkVersion = "7.4";
-public const string Version = "14.14.2";
+public const string Version = "14.17.3";

Type Changed: ObjCRuntime.PlatformName

Obsoleted fields:

 [Obsolete ("Use 'MacCatalyst' instead.")]
 UIKitForMac = 5,

Namespace PassKit

Type Changed: PassKit.PKPaymentNetwork

Added property:

public static Foundation.NSString Mir { get; }

Type Changed: PassKit.PKTransitPassProperties

Added property:

public virtual bool Blocked { get; }

New Type: PassKit.PKRadioTechnology

[Serializable]
[Flags]
public enum PKRadioTechnology {
	Bluetooth = 2,
	Nfc = 1,
	None = 0,
}

Namespace StoreKit

Type Changed: StoreKit.SKError

Added value:

OverlayPresentedInBackgroundScene = 20,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment