Xamarin.WatchOS SDK API diff: 13.4.0 vs 13.6.0

Xamarin.WatchOS.dll

Namespace AVFoundation

Type Changed: AVFoundation.AVMetadataObjectType

Added values:

CatBody = 16384,
DogBody = 32768,
HumanBody = 65536,
SalientObject = 131072,

Namespace Foundation

Type Changed: Foundation.NSUserActivity

Added property:

public virtual string TargetContentIdentifier { get; set; }

Namespace HomeKit

Type Changed: HomeKit.HMHome

Added property:

public virtual bool SupportsAddingNetworkRouter { get; }

Added event:

public event System.EventHandler DidUpdateSupportedFeatures;

Type Changed: HomeKit.HMHomeDelegate

Added method:

public virtual void DidUpdateSupportedFeatures (HMHome home);

Type Changed: HomeKit.HMHomeDelegate_Extensions

Added method:

public static void DidUpdateSupportedFeatures (this IHMHomeDelegate This, HMHome home);

Namespace Network

Type Changed: Network.NWBrowser

Added properties:

public NWBrowserCompleteChangesDelegate CompleteChangesDelegate { get; set; }
public System.Action<NWBrowseResult,Network.NWBrowseResult> IndividualChangesDelegate { get; set; }

Obsoleted methods:

 [Obsolete ("Uset the 'IndividualChangesDelegate' instead.")]
 public void SetChangesHandler (System.Action<NWBrowseResult,Network.NWBrowseResult> handler);

Type Changed: Network.NWConnection

Added methods:

public T GetProtocolMetadata<T> (NWProtocolDefinition definition);
public void ReceiveMessageReadOnlyData (NWConnectionReceiveReadOnlySpanCompletion callback);
public void ReceiveReadOnlyData (uint minimumIncompleteLength, uint maximumLength, NWConnectionReceiveReadOnlySpanCompletion callback);

Type Changed: Network.NWContentContext

Added method:

public T GetProtocolMetadata<T> (NWProtocolDefinition protocolDefinition);

Type Changed: Network.NWFramer

Added method:

public NWFramerMessage CreateMessage ();

Type Changed: Network.NWProtocolDefinition

Obsoleted properties:

 [Obsolete ("Use 'CreateIPDefinition' method instead.")]
 public static NWProtocolDefinition IPDefinition { get; }
 [Obsolete ("Use 'CreateTcpDefinition' method instead.")]
 public static NWProtocolDefinition TcpDefinition { get; }
 [Obsolete ("Use 'CreateTlsDefinition' method instead.")]
 public static NWProtocolDefinition TlsDefinition { get; }
 [Obsolete ("Use 'CreateUdpDefinition' method instead.")]
 public static NWProtocolDefinition UdpDefinition { get; }
 [Obsolete ("Use 'CreateWebSocketDefinition' method instead.")]
 public static NWProtocolDefinition WebSocketDefinition { get; }

Added methods:

public static NWProtocolDefinition CreateFramerDefinition (string identifier, NWFramerCreateFlags flags, System.Func<NWFramer,Network.NWFramerStartResult> startCallback);
public static NWProtocolDefinition CreateIPDefinition ();
public static NWProtocolDefinition CreateTcpDefinition ();
public static NWProtocolDefinition CreateTlsDefinition ();
public static NWProtocolDefinition CreateUdpDefinition ();
public static NWProtocolDefinition CreateWebSocketDefinition ();

Type Changed: Network.NWProtocolMetadata

Obsoleted properties:

 [Obsolete ("Use the 'NWIPMetadata' class and methods instead.")]
 public NWIPEcnFlag IPMetadataEcnFlag { get; set; }
 [Obsolete ("Use the 'NWIPMetadata' class and methods instead.")]
 public ulong IPMetadataReceiveTime { get; }
 [Obsolete ("Use the 'NWIPMetadata' class and methods instead.")]
 public NWServiceClass IPServiceClass { get; set; }
 [Obsolete ("Use the 'NWTlsMetadata' class and methods instead.")]
 public Security.SecProtocolMetadata TlsSecProtocolMetadata { get; }

Obsoleted methods:

 [Obsolete ("Use the 'NWIPMetadata' class and methods instead.")]
 public static NWProtocolMetadata CreateIPMetadata ();
 [Obsolete ("Use the 'NSUdpMetadata' class and methods instead.")]
 public static NWProtocolMetadata CreateUdpMetadata ();
 [Obsolete ("Use the 'NWTcpMetadata' class and methods instead.")]
 public uint TcpGetAvailableReceiveBuffer ();
 [Obsolete ("Use the 'NWTcpMetadata' class and methods instead.")]
 public uint TcpGetAvailableSendBuffer ();

Type Changed: Network.NWProtocolOptions

Obsoleted properties:

 [Obsolete ("Use the 'NWProtocolIPOptions' class instead.")]
 public NWIPLocalAddressPreference IPLocalAddressPreference { set; }
 [Obsolete ("Use the 'NWProtocolTlsOptions' class instead.")]
 public Security.SecProtocolOptions TlsProtocolOptions { get; }

Obsoleted methods:

 [Obsolete ("Use the 'NWProtocolTcpOptions' class methods and constructors instead.")]
 public static NWProtocolOptions CreateTcp ();
 [Obsolete ("Use the 'NWProtocolTlsOptions' class methods and constructors instead.")]
 public static NWProtocolOptions CreateTls ();
 [Obsolete ("Use the 'NWProtocolUdpOptions' class methods and constructors instead.")]
 public static NWProtocolOptions CreateUdp ();
 [Obsolete ("Use the 'NWProtocolIPOptions' class instead.")]
 public void IPSetCalculateReceiveTime (bool calculateReceiveTime);
 [Obsolete ("Use the 'NWProtocolIPOptions' class instead.")]
 public void IPSetDisableFragmentation (bool disableFragmentation);
 [Obsolete ("Use the 'NWProtocolIPOptions' class instead.")]
 public void IPSetHopLimit (byte hopLimit);
 [Obsolete ("Use the 'NWProtocolIPOptions' class instead.")]
 public void IPSetUseMinimumMtu (bool useMinimumMtu);
 [Obsolete ("Use the 'NWProtocolIPOptions' class instead.")]
 public void IPSetVersion (NWIPVersion version);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetConnectionTimeout (uint connectionTimeout);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetDisableAckStretching (bool disableAckStretching);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetDisableEcn (bool disableEcn);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetEnableFastOpen (bool enableFastOpen);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetEnableKeepAlive (bool enableKeepAlive);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetKeepAliveCount (uint keepaliveCount);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetKeepAliveIdleTime (uint keepaliveIdleTime);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetKeepAliveInterval (uint keepaliveInterval);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetMaximumSegmentSize (uint maximumSegmentSize);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetNoDelay (bool noDelay);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetNoOptions (bool noOptions);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetNoPush (bool noPush);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetPersistTimeout (uint persistTimeout);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetRetransmitConnectionDropTime (uint retransmitConnectionDropTime);
 [Obsolete ("Use the 'NWProtocolTcpOptions' class instead.")]
 public void TcpSetRetransmitFinDrop (bool retransmitFinDrop);
 [Obsolete ("Use the 'NWProtocolUdpOptions' class instead.")]
 public void UdpSetPreferNoChecksum (bool preferNoChecksums);

Type Changed: Network.NWTxtRecord

Obsoleted methods:

 [Obsolete ("Use the overload that takes an NWTxtRecordApplyDelegate2 instead.")]
 public bool Apply (NWTxtRecord.NWTxtRecordApplyDelegate handler);

Added method:

public bool Apply (NWTxtRecord.NWTxtRecordApplyDelegate2 handler);

New Type: Network.NWTxtRecord.NWTxtRecordApplyDelegate2

public sealed delegate NWTxtRecordApplyDelegate2 : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NWTxtRecord.NWTxtRecordApplyDelegate2 (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (string key, NWTxtRecordFindKey result, System.ReadOnlySpan<byte> value, System.AsyncCallback callback, object object);
	public virtual bool EndInvoke (System.IAsyncResult result);
	public virtual bool Invoke (string key, NWTxtRecordFindKey result, System.ReadOnlySpan<byte> value);
}

Type Changed: Network.NWWebSocketMetadata

Modified base type:

-CoreFoundation.NativeObject
+Network.NWProtocolMetadata

New Type: Network.NWBrowserChangesDelegate

public sealed delegate NWBrowserChangesDelegate : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NWBrowserChangesDelegate (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (NWBrowseResult oldResult, NWBrowseResult newResult, bool completed, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (NWBrowseResult oldResult, NWBrowseResult newResult, bool completed);
}

New Type: Network.NWBrowserCompleteChangesDelegate

public sealed delegate NWBrowserCompleteChangesDelegate : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NWBrowserCompleteChangesDelegate (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (System.Collections.Generic.List<System.ValueTuple<NWBrowseResult,Network.NWBrowseResultChange>> changes, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (System.Collections.Generic.List<System.ValueTuple<NWBrowseResult,Network.NWBrowseResultChange>> changes);
}

New Type: Network.NWConnectionReceiveReadOnlySpanCompletion

public sealed delegate NWConnectionReceiveReadOnlySpanCompletion : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NWConnectionReceiveReadOnlySpanCompletion (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (System.ReadOnlySpan<byte> data, NWContentContext context, bool isComplete, NWError error, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (System.ReadOnlySpan<byte> data, NWContentContext context, bool isComplete, NWError error);
}

New Type: Network.NWFramerCreateFlags

[Serializable]
[Flags]
public enum NWFramerCreateFlags {
	Default = 0,
}

New Type: Network.NWFramerMessage

public class NWFramerMessage : Network.NWProtocolMetadata, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public static NWFramerMessage Create (NWProtocolDefinition protocolDefinition);
	public bool GetData (string key, int dataLength, out System.ReadOnlySpan<byte> outData);
	public T GetObject<T> (string key);
	public void SetData (string key, byte[] value);
	public void SetObject (string key, Foundation.NSObject value);
}

New Type: Network.NWFramerStartResult

[Serializable]
public enum NWFramerStartResult {
	Ready = 1,
	Unknown = 0,
	WillMarkReady = 2,
}

New Type: Network.NWIPMetadata

public class NWIPMetadata : Network.NWProtocolMetadata, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NWIPMetadata ();
	// properties
	public NWIPEcnFlag EcnFlag { get; set; }
	public System.TimeSpan ReceiveTime { get; }
	public NWServiceClass ServiceClass { get; set; }
}

New Type: Network.NWProtocolIPOptions

public class NWProtocolIPOptions : Network.NWProtocolOptions, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public void SetCalculateReceiveTime (bool shouldCalculateReceiveTime);
	public void SetDisableFragmentation (bool disableFragmentation);
	public void SetHopLimit (nuint hopLimit);
	public void SetIPLocalAddressPreference (NWIPLocalAddressPreference localAddressPreference);
	public void SetUseMinimumMtu (bool useMinimumMtu);
	public void SetVersion (NWIPVersion version);
}

New Type: Network.NWProtocolTcpOptions

public class NWProtocolTcpOptions : Network.NWProtocolOptions, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NWProtocolTcpOptions ();
	// methods
	public void SetConnectionTimeout (System.TimeSpan connectionTimeout);
	public void SetDisableAckStretching (bool disableAckStretching);
	public void SetDisableEcn (bool disableEcn);
	public void SetEnableFastOpen (bool enableFastOpen);
	public void SetEnableKeepAlive (bool enableKeepAlive);
	public void SetKeepAliveCount (uint keepAliveCount);
	public void SetKeepAliveIdleTime (System.TimeSpan keepAliveIdleTime);
	public void SetKeepAliveInterval (System.TimeSpan keepAliveInterval);
	public void SetMaximumSegmentSize (uint maximumSegmentSize);
	public void SetNoDelay (bool noDelay);
	public void SetNoOptions (bool noOptions);
	public void SetNoPush (bool noPush);
	public void SetPersistTimeout (System.TimeSpan persistTimeout);
	public void SetRetransmitConnectionDropTime (System.TimeSpan connectionDropTime);
	public void SetRetransmitFinDrop (bool retransmitFinDrop);
}

New Type: Network.NWProtocolTlsOptions

public class NWProtocolTlsOptions : Network.NWProtocolOptions, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NWProtocolTlsOptions ();
	// properties
	public Security.SecProtocolOptions ProtocolOptions { get; }
}

New Type: Network.NWProtocolUdpOptions

public class NWProtocolUdpOptions : Network.NWProtocolOptions, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NWProtocolUdpOptions ();
	// methods
	public void SetPreferNoChecksum (bool preferNoChecksum);
}

New Type: Network.NWTcpMetadata

public class NWTcpMetadata : Network.NWProtocolMetadata, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public uint AvailableReceiveBuffer { get; }
	public uint AvailableSendBuffer { get; }
}

New Type: Network.NWTlsMetadata

public class NWTlsMetadata : Network.NWProtocolMetadata, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public Security.SecProtocolMetadata SecProtocolMetadata { get; }
}

New Type: Network.NWUdpMetadata

public class NWUdpMetadata : Network.NWProtocolMetadata, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NWUdpMetadata ();
}

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string SdkVersion = "6.0";
+public const string SdkVersion = "6.1";
-public const string Version = "13.4.0";
+public const string Version = "13.6.0";

Namespace WatchKit

Type Changed: WatchKit.WKInterfaceAuthorizationAppleIdButton

Added constructor:

public WKInterfaceAuthorizationAppleIdButton (WKInterfaceAuthorizationAppleIdButtonStyle style, Foundation.NSObject target, ObjCRuntime.Selector action);

Type Changed: WatchKit.WKInterfaceDevice

Added property:

public virtual bool IsWaterLockEnabled { get; }

Added method:

public virtual void EnableWaterLock ();

Type Changed: WatchKit.WKInterfaceMap

Added methods:

public virtual void SetShowsUserHeading (bool showsUserHeading);
public virtual void SetShowsUserLocation (bool showsUserLocation);
public virtual void SetUserTrackingMode (WKInterfaceMapUserTrackingMode mode, bool animated);

New Type: WatchKit.WKInterfaceAuthorizationAppleIdButtonStyle

[Serializable]
public enum WKInterfaceAuthorizationAppleIdButtonStyle {
	Default = 0,
	White = 1,
}

New Type: WatchKit.WKInterfaceMapUserTrackingMode

[Serializable]
public enum WKInterfaceMapUserTrackingMode {
	Follow = 1,
	None = 0,
}