diff --git a/src/accessorysetupkit.cs b/src/accessorysetupkit.cs index 6c78a3e29cde..3fd8e7e71b22 100644 --- a/src/accessorysetupkit.cs +++ b/src/accessorysetupkit.cs @@ -6,6 +6,8 @@ using ObjCRuntime; using UIKit; +using ASAccessoryWiFiAwarePairedDeviceId = System.UInt64; + namespace AccessorySetupKit { [Native] [iOS (18, 0)] @@ -69,6 +71,10 @@ interface ASAccessory { [Export ("bluetoothTransportBridgingIdentifier", ArgumentSemantic.Copy), NullAllowed] NSData BluetoothTransportBridgingIdentifier { get; } + + [iOS (26, 0)] + [Export ("wifiAwarePairedDeviceID")] + ASAccessoryWiFiAwarePairedDeviceId WifiAwarePairedDeviceId { get; } } [Native] @@ -140,8 +146,20 @@ interface ASAccessorySession { [Async] [Export ("failAuthorization:completionHandler:")] void FailAuthorization (ASAccessory accessory, ASAccessorySessionCompletionHandler completionHandler); + + [iOS (26, 0)] + [Export ("pickerDisplaySettings", ArgumentSemantic.Copy)] + [NullAllowed] + ASPickerDisplaySettings PickerDisplaySettings { get; set; } + + [Async] + [iOS (26, 0)] + [Export ("updateAuthorization:descriptor:completionHandler:")] + void UpdateAuthorization (ASAccessory accessory, ASDiscoveryDescriptor descriptor, ASAccessorySessionUpdateAuthorizationHandler completionHandler); } + delegate void ASAccessorySessionUpdateAuthorizationHandler ([NullAllowed] NSError error); + [BaseType (typeof (NSObject))] [iOS (18, 0)] interface ASAccessorySettings { @@ -194,6 +212,25 @@ interface ASDiscoveryDescriptor { [Export ("SSIDPrefix", ArgumentSemantic.Copy), NullAllowed] string SsidPrefix { get; set; } + + [iOS (26, 0)] + [Export ("wifiAwareServiceName")] + [NullAllowed] + string WifiAwareServiceName { get; set; } + + [iOS (26, 0)] + [Export ("wifiAwareServiceRole", ArgumentSemantic.Assign)] + ASDiscoveryDescriptorWiFiAwareServiceRole WifiAwareServiceRole { get; set; } + + [iOS (26, 0)] + [Export ("wifiAwareModelNameMatch", ArgumentSemantic.Copy)] + [NullAllowed] + ASPropertyCompareString WifiAwareModelNameMatch { get; set; } + + [iOS (26, 0)] + [Export ("wifiAwareVendorNameMatch", ArgumentSemantic.Copy)] + [NullAllowed] + ASPropertyCompareString WifiAwareVendorNameMatch { get; set; } } [Native] @@ -259,4 +296,52 @@ interface ASMigrationDisplayItem { [DesignatedInitializer] NativeHandle Constructor (string name, UIImage productImage, ASDiscoveryDescriptor descriptor); } + + [iOS (26, 0)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface ASPropertyCompareString { + [Export ("string")] + string String { get; } + + [Export ("compareOptions", ArgumentSemantic.Assign)] + NSStringCompareOptions CompareOptions { get; } + + [Export ("initWithString:compareOptions:")] + [DesignatedInitializer] + NativeHandle Constructor (string @string, NSStringCompareOptions compareOptions); + } + + [iOS (26, 0)] + [Native] + public enum ASDiscoveryDescriptorWiFiAwareServiceRole : long { + Subscriber = 10, + Publisher = 20, + } + + [iOS (26, 0)] + [BaseType (typeof (NSObject))] + interface ASPickerDisplaySettings { + [Static] + [Export ("defaultSettings")] + ASPickerDisplaySettings DefaultSettings { get; } + + [Export ("discoveryTimeout")] + double DiscoveryTimeout { get; set; } + } + + [Static] + partial interface ASPickerDisplaySettingsDiscoveryTimeout { + [iOS (26, 0)] + [Field ("ASPickerDisplaySettingsDiscoveryTimeoutShort")] + double Short { get; } + + [iOS (26, 0)] + [Field ("ASPickerDisplaySettingsDiscoveryTimeoutMedium")] + double Medium { get; } + + [iOS (26, 0)] + [Field ("ASPickerDisplaySettingsDiscoveryTimeoutLong")] + double Long { get; } + } } diff --git a/tests/introspection/ApiProtocolTest.cs b/tests/introspection/ApiProtocolTest.cs index 2ebbf4b958b0..bb65215db876 100644 --- a/tests/introspection/ApiProtocolTest.cs +++ b/tests/introspection/ApiProtocolTest.cs @@ -304,6 +304,10 @@ protected virtual bool Skip (Type type, string protocolName) case "SCWindow": case "SCStreamConfiguration": return true; + // Xcode 26.0 Conformance not in headers + case "ASPickerDisplaySettings": + case "ASPropertyCompareString": + return true; } break; case "NSMutableCopying": @@ -530,6 +534,10 @@ protected virtual bool Skip (Type type, string protocolName) case "FSTask": case "FSTaskOptions": return true; + // Xcode 26.0 Conformance not in headers + case "ASPickerDisplaySettings": + case "ASPropertyCompareString": + return true; } break; case "NSSecureCoding": @@ -759,6 +767,10 @@ protected virtual bool Skip (Type type, string protocolName) case "FSTask": case "FSTaskOptions": return true; + // Xcode 26.0 Conformance not in headers + case "ASPickerDisplaySettings": + case "ASPropertyCompareString": + return true; } break; // conformance added in Xcode 8 (iOS 10 / macOS 10.12) diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-AccessorySetupKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/iOS-AccessorySetupKit.todo deleted file mode 100644 index 2a43e9aea34f..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-AccessorySetupKit.todo +++ /dev/null @@ -1,24 +0,0 @@ -!missing-enum! ASDiscoveryDescriptorWiFiAwareServiceRole not bound -!missing-field! ASPickerDisplaySettingsDiscoveryTimeoutLong not bound -!missing-field! ASPickerDisplaySettingsDiscoveryTimeoutMedium not bound -!missing-field! ASPickerDisplaySettingsDiscoveryTimeoutShort not bound -!missing-selector! +ASPickerDisplaySettings::defaultSettings not bound -!missing-selector! ASAccessory::wifiAwarePairedDeviceID not bound -!missing-selector! ASAccessorySession::pickerDisplaySettings not bound -!missing-selector! ASAccessorySession::setPickerDisplaySettings: not bound -!missing-selector! ASAccessorySession::updateAuthorization:descriptor:completionHandler: not bound -!missing-selector! ASDiscoveryDescriptor::setWifiAwareModelNameMatch: not bound -!missing-selector! ASDiscoveryDescriptor::setWifiAwareServiceName: not bound -!missing-selector! ASDiscoveryDescriptor::setWifiAwareServiceRole: not bound -!missing-selector! ASDiscoveryDescriptor::setWifiAwareVendorNameMatch: not bound -!missing-selector! ASDiscoveryDescriptor::wifiAwareModelNameMatch not bound -!missing-selector! ASDiscoveryDescriptor::wifiAwareServiceName not bound -!missing-selector! ASDiscoveryDescriptor::wifiAwareServiceRole not bound -!missing-selector! ASDiscoveryDescriptor::wifiAwareVendorNameMatch not bound -!missing-selector! ASPickerDisplaySettings::discoveryTimeout not bound -!missing-selector! ASPickerDisplaySettings::setDiscoveryTimeout: not bound -!missing-selector! ASPropertyCompareString::compareOptions not bound -!missing-selector! ASPropertyCompareString::initWithString:compareOptions: not bound -!missing-selector! ASPropertyCompareString::string not bound -!missing-type! ASPickerDisplaySettings not bound -!missing-type! ASPropertyCompareString not bound