From bc6d77416f970db41697e7af78694416f77e3ac8 Mon Sep 17 00:00:00 2001 From: Alex Soto Date: Mon, 14 Aug 2017 21:17:12 -0500 Subject: [PATCH 1/4] [Intents] Add bindings for Xcode 9 Beta 1, 2, 3, 4 & 5 --- src/Intents/INBillTypeResolutionResult.cs | 43 + src/Intents/INCallRecord.cs | 27 + .../INCallRecordTypeResolutionResult.cs | 47 + ...INCarAirCirculationModeResolutionResult.cs | 43 + .../INCarAudioSourceResolutionResult.cs | 43 + src/Intents/INCarDefrosterResolutionResult.cs | 43 + .../INCarSignalOptionsResolutionResult.cs | 43 + ...MessageAttributeOptionsResolutionResult.cs | 47 + .../INMessageAttributeResolutionResult.cs | 47 + .../INPaymentStatusResolutionResult.cs | 43 + src/Intents/INRadioTypeResolutionResult.cs | 43 + .../INRelativeReferenceResolutionResult.cs | 43 + .../INRelativeSettingResolutionResult.cs | 43 + src/Intents/INSearchCallHistoryIntent.cs | 23 + src/Intents/INSpeakableString.cs | 32 + .../INWorkoutGoalUnitTypeResolutionResult.cs | 43 + .../INWorkoutLocationTypeResolutionResult.cs | 43 + src/frameworks.sources | 19 +- src/intents.cs | 2622 ++++++++++++++++- tests/introspection/ApiSelectorTest.cs | 7 + tests/xtro-sharpie/common.pending | 3 + tests/xtro-sharpie/ios.pending | 2 + tests/xtro-sharpie/osx.pending | 3 + tests/xtro-sharpie/watchos.pending | 12 + 24 files changed, 3309 insertions(+), 55 deletions(-) create mode 100644 src/Intents/INBillTypeResolutionResult.cs create mode 100644 src/Intents/INCallRecord.cs create mode 100644 src/Intents/INCallRecordTypeResolutionResult.cs create mode 100644 src/Intents/INCarAirCirculationModeResolutionResult.cs create mode 100644 src/Intents/INCarAudioSourceResolutionResult.cs create mode 100644 src/Intents/INCarDefrosterResolutionResult.cs create mode 100644 src/Intents/INCarSignalOptionsResolutionResult.cs create mode 100644 src/Intents/INMessageAttributeOptionsResolutionResult.cs create mode 100644 src/Intents/INMessageAttributeResolutionResult.cs create mode 100644 src/Intents/INPaymentStatusResolutionResult.cs create mode 100644 src/Intents/INRadioTypeResolutionResult.cs create mode 100644 src/Intents/INRelativeReferenceResolutionResult.cs create mode 100644 src/Intents/INRelativeSettingResolutionResult.cs create mode 100644 src/Intents/INSearchCallHistoryIntent.cs create mode 100644 src/Intents/INSpeakableString.cs create mode 100644 src/Intents/INWorkoutGoalUnitTypeResolutionResult.cs create mode 100644 src/Intents/INWorkoutLocationTypeResolutionResult.cs diff --git a/src/Intents/INBillTypeResolutionResult.cs b/src/Intents/INBillTypeResolutionResult.cs new file mode 100644 index 000000000000..a0dd2b65da62 --- /dev/null +++ b/src/Intents/INBillTypeResolutionResult.cs @@ -0,0 +1,43 @@ +// +// INBillTypeResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 && !MONOMAC +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INBillTypeResolutionResult { + + public static INBillTypeResolutionResult GetSuccess (INBillType resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return SuccessWithResolvedBillType (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INBillTypeResolutionResult GetConfirmationRequired (INBillType valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return ConfirmationRequiredWithBillTypeToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/Intents/INCallRecord.cs b/src/Intents/INCallRecord.cs new file mode 100644 index 000000000000..7f61356e8725 --- /dev/null +++ b/src/Intents/INCallRecord.cs @@ -0,0 +1,27 @@ +// +// INCallRecord.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INCallRecord { + + public double? CallDuration { + get { return WeakCallDuration?.DoubleValue; } + } + + public bool? Unseen { + get { return WeakUnseen?.BoolValue; } + } + } +} +#endif diff --git a/src/Intents/INCallRecordTypeResolutionResult.cs b/src/Intents/INCallRecordTypeResolutionResult.cs new file mode 100644 index 000000000000..f2fd7e4b38e9 --- /dev/null +++ b/src/Intents/INCallRecordTypeResolutionResult.cs @@ -0,0 +1,47 @@ +// +// INCallRecordTypeResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INCallRecordTypeResolutionResult { + + public static INCallRecordTypeResolutionResult GetSuccess (INCallRecordType resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#elif MONOMAC + if (PlatformHelper.CheckSystemVersion (10, 13)) +#endif + return SuccessWithResolvedCallRecordType (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INCallRecordTypeResolutionResult GetConfirmationRequired (INCallRecordType valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#elif MONOMAC + if (PlatformHelper.CheckSystemVersion (10, 13)) +#endif + return ConfirmationRequiredWithCallRecordTypeToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/Intents/INCarAirCirculationModeResolutionResult.cs b/src/Intents/INCarAirCirculationModeResolutionResult.cs new file mode 100644 index 000000000000..298fb3959fcf --- /dev/null +++ b/src/Intents/INCarAirCirculationModeResolutionResult.cs @@ -0,0 +1,43 @@ +// +// INCarAirCirculationModeResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 && !MONOMAC +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INCarAirCirculationModeResolutionResult { + + public static INCarAirCirculationModeResolutionResult GetSuccess (INCarAirCirculationMode resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return SuccessWithResolvedCarAirCirculationMode (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INCarAirCirculationModeResolutionResult GetConfirmationRequired (INCarAirCirculationMode valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return ConfirmationRequiredWithCarAirCirculationModeToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/Intents/INCarAudioSourceResolutionResult.cs b/src/Intents/INCarAudioSourceResolutionResult.cs new file mode 100644 index 000000000000..3466267f8dfb --- /dev/null +++ b/src/Intents/INCarAudioSourceResolutionResult.cs @@ -0,0 +1,43 @@ +// +// INCarAudioSourceResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 && !MONOMAC +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INCarAudioSourceResolutionResult { + + public static INCarAudioSourceResolutionResult GetSuccess (INCarAudioSource resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return SuccessWithResolvedCarAudioSource (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INCarAudioSourceResolutionResult GetConfirmationRequired (INCarAudioSource valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return ConfirmationRequiredWithCarAudioSourceToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/Intents/INCarDefrosterResolutionResult.cs b/src/Intents/INCarDefrosterResolutionResult.cs new file mode 100644 index 000000000000..89e80df50ebc --- /dev/null +++ b/src/Intents/INCarDefrosterResolutionResult.cs @@ -0,0 +1,43 @@ +// +// INCarDefrosterResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 && !MONOMAC +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INCarDefrosterResolutionResult { + + public static INCarDefrosterResolutionResult GetSuccess (INCarDefroster resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return SuccessWithResolvedCarDefroster (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INCarDefrosterResolutionResult GetConfirmationRequired (INCarDefroster valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return ConfirmationRequiredWithCarDefrosterToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/Intents/INCarSignalOptionsResolutionResult.cs b/src/Intents/INCarSignalOptionsResolutionResult.cs new file mode 100644 index 000000000000..4f0450546c23 --- /dev/null +++ b/src/Intents/INCarSignalOptionsResolutionResult.cs @@ -0,0 +1,43 @@ +// +// INCarAirCirculationModeResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 && !MONOMAC +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INCarSignalOptionsResolutionResult { + + public static INCarSignalOptionsResolutionResult GetSuccess (INCarSignalOptions resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return SuccessWithResolvedCarSignalOptions (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INCarSignalOptionsResolutionResult GetConfirmationRequired (INCarSignalOptions valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return ConfirmationRequiredWithCarSignalOptionsToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/Intents/INMessageAttributeOptionsResolutionResult.cs b/src/Intents/INMessageAttributeOptionsResolutionResult.cs new file mode 100644 index 000000000000..a550e690a6d5 --- /dev/null +++ b/src/Intents/INMessageAttributeOptionsResolutionResult.cs @@ -0,0 +1,47 @@ +// +// INMessageAttributeOptionsResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INMessageAttributeOptionsResolutionResult { + + public static INMessageAttributeOptionsResolutionResult GetSuccess (INMessageAttributeOptions resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#elif MONOMAC + if (PlatformHelper.CheckSystemVersion (10, 13)) +#endif + return SuccessWithResolvedMessageAttributeOptions (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INMessageAttributeOptionsResolutionResult GetConfirmationRequired (INMessageAttributeOptions valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#elif MONOMAC + if (PlatformHelper.CheckSystemVersion (10, 13)) +#endif + return ConfirmationRequiredWithMessageAttributeOptionsToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/Intents/INMessageAttributeResolutionResult.cs b/src/Intents/INMessageAttributeResolutionResult.cs new file mode 100644 index 000000000000..dd9d3f0ffe2d --- /dev/null +++ b/src/Intents/INMessageAttributeResolutionResult.cs @@ -0,0 +1,47 @@ +// +// INMessageAttributeResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INMessageAttributeResolutionResult { + + public static INMessageAttributeResolutionResult GetSuccess (INMessageAttribute resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#elif MONOMAC + if (PlatformHelper.CheckSystemVersion (10, 13)) +#endif + return SuccessWithResolvedMessageAttribute (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INMessageAttributeResolutionResult GetConfirmationRequired (INMessageAttribute valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#elif MONOMAC + if (PlatformHelper.CheckSystemVersion (10, 13)) +#endif + return ConfirmationRequiredWithMessageAttributeToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/Intents/INPaymentStatusResolutionResult.cs b/src/Intents/INPaymentStatusResolutionResult.cs new file mode 100644 index 000000000000..50f43cd96dc4 --- /dev/null +++ b/src/Intents/INPaymentStatusResolutionResult.cs @@ -0,0 +1,43 @@ +// +// INPaymentStatusResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 && !MONOMAC +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INPaymentStatusResolutionResult { + + public static INPaymentStatusResolutionResult GetSuccess (INPaymentStatus resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return SuccessWithResolvedPaymentStatus (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INPaymentStatusResolutionResult GetConfirmationRequired (INPaymentStatus valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return ConfirmationRequiredWithPaymentStatusToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/Intents/INRadioTypeResolutionResult.cs b/src/Intents/INRadioTypeResolutionResult.cs new file mode 100644 index 000000000000..c018f196c448 --- /dev/null +++ b/src/Intents/INRadioTypeResolutionResult.cs @@ -0,0 +1,43 @@ +// +// INRadioTypeResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 && !MONOMAC +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INRadioTypeResolutionResult { + + public static INRadioTypeResolutionResult GetSuccess (INRadioType resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return SuccessWithResolvedRadioType (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INRadioTypeResolutionResult GetConfirmationRequired (INRadioType valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return ConfirmationRequiredWithRadioTypeToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/Intents/INRelativeReferenceResolutionResult.cs b/src/Intents/INRelativeReferenceResolutionResult.cs new file mode 100644 index 000000000000..ea8129300b30 --- /dev/null +++ b/src/Intents/INRelativeReferenceResolutionResult.cs @@ -0,0 +1,43 @@ +// +// INRelativeReferenceResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 && !MONOMAC +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INRelativeReferenceResolutionResult { + + public static INRelativeReferenceResolutionResult GetSuccess (INRelativeReference resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return SuccessWithResolvedRelativeReference (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INRelativeReferenceResolutionResult GetConfirmationRequired (INRelativeReference valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return ConfirmationRequiredWithRelativeReferenceToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/Intents/INRelativeSettingResolutionResult.cs b/src/Intents/INRelativeSettingResolutionResult.cs new file mode 100644 index 000000000000..e6dd58686452 --- /dev/null +++ b/src/Intents/INRelativeSettingResolutionResult.cs @@ -0,0 +1,43 @@ +// +// INRelativeSettingResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 && !MONOMAC +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INRelativeSettingResolutionResult { + + public static INRelativeSettingResolutionResult GetSuccess (INRelativeSetting resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return SuccessWithResolvedRelativeSetting (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INRelativeSettingResolutionResult GetConfirmationRequired (INRelativeSetting valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return ConfirmationRequiredWithRelativeSettingToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/Intents/INSearchCallHistoryIntent.cs b/src/Intents/INSearchCallHistoryIntent.cs new file mode 100644 index 000000000000..b0ee38f8ef6f --- /dev/null +++ b/src/Intents/INSearchCallHistoryIntent.cs @@ -0,0 +1,23 @@ +// +// INSearchCallHistoryIntent.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INSearchCallHistoryIntent { + + public bool? Unseen { + get { return WeakUnseen?.BoolValue; } + } + } +} +#endif diff --git a/src/Intents/INSpeakableString.cs b/src/Intents/INSpeakableString.cs new file mode 100644 index 000000000000..7354143ffec2 --- /dev/null +++ b/src/Intents/INSpeakableString.cs @@ -0,0 +1,32 @@ +// +// INSpeakableString.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INSpeakableString { + public INSpeakableString (string identifier, string spokenPhrase, string pronunciationHint) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#elif MONOMAC + if (PlatformHelper.CheckSystemVersion (10, 13)) +#endif + InitializeHandle (InitWithVocabularyIdentifier (identifier, spokenPhrase, pronunciationHint)); + else + InitializeHandle (InitWithIdentifier (identifier, spokenPhrase, pronunciationHint)); + } + } +} +#endif diff --git a/src/Intents/INWorkoutGoalUnitTypeResolutionResult.cs b/src/Intents/INWorkoutGoalUnitTypeResolutionResult.cs new file mode 100644 index 000000000000..294f343d745c --- /dev/null +++ b/src/Intents/INWorkoutGoalUnitTypeResolutionResult.cs @@ -0,0 +1,43 @@ +// +// INWorkoutGoalUnitTypeResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 && !MONOMAC +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INWorkoutGoalUnitTypeResolutionResult { + + public static INWorkoutGoalUnitTypeResolutionResult GetSuccess (INWorkoutGoalUnitType resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return SuccessWithResolvedWorkoutGoalUnitType (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INWorkoutGoalUnitTypeResolutionResult GetConfirmationRequired (INWorkoutGoalUnitType valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return ConfirmationRequiredWithWorkoutGoalUnitTypeToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/Intents/INWorkoutLocationTypeResolutionResult.cs b/src/Intents/INWorkoutLocationTypeResolutionResult.cs new file mode 100644 index 000000000000..69c7feb77f0c --- /dev/null +++ b/src/Intents/INWorkoutLocationTypeResolutionResult.cs @@ -0,0 +1,43 @@ +// +// INWorkoutLocationTypeResolutionResult.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 && !MONOMAC +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INWorkoutLocationTypeResolutionResult { + + public static INWorkoutLocationTypeResolutionResult GetSuccess (INWorkoutLocationType resolvedValue) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return SuccessWithResolvedWorkoutLocationType (resolvedValue); + else + return SuccessWithResolvedValue (resolvedValue); + } + + public static INWorkoutLocationTypeResolutionResult GetConfirmationRequired (INWorkoutLocationType valueToConfirm) + { +#if IOS + if (XamCore.UIKit.UIDevice.CurrentDevice.CheckSystemVersion (11, 0)) +#elif WATCH + if (XamCore.WatchKit.WKInterfaceDevice.CurrentDevice.CheckSystemVersion (4, 0)) +#endif + return ConfirmationRequiredWithWorkoutLocationTypeToConfirm (valueToConfirm); + else + return ConfirmationRequiredWithValueToConfirm (valueToConfirm); + } + } +} +#endif diff --git a/src/frameworks.sources b/src/frameworks.sources index fa5ba163649d..eb9150e3badf 100644 --- a/src/frameworks.sources +++ b/src/frameworks.sources @@ -847,19 +847,36 @@ IMAGEKIT_CORE_SOURCES = \ # Intents INTENTS_SOURCES = \ + Intents/INBillTypeResolutionResult.cs \ + Intents/INCallRecord.cs \ + Intents/INCallRecordTypeResolutionResult.cs \ + Intents/INCarAirCirculationModeResolutionResult.cs \ + Intents/INCarAudioSourceResolutionResult.cs \ + Intents/INCarDefrosterResolutionResult.cs \ + Intents/INCarSignalOptionsResolutionResult.cs \ Intents/INCompat.cs \ Intents/INGetCarLockStatusIntentResponse.cs \ Intents/INGetCarPowerLevelStatusIntentResponse.cs \ Intents/INIntentResolutionResult.cs \ + Intents/INMessageAttributeOptionsResolutionResult.cs \ + Intents/INMessageAttributeResolutionResult.cs \ + Intents/INPaymentStatusResolutionResult.cs \ Intents/INPriceRange.cs \ + Intents/INRadioTypeResolutionResult.cs \ + Intents/INRelativeReferenceResolutionResult.cs \ + Intents/INRelativeSettingResolutionResult.cs \ Intents/INRideOption.cs \ + Intents/INSaveProfileInCarIntent.cs \ + Intents/INSearchCallHistoryIntent.cs \ Intents/INSetCarLockStatusIntent.cs \ Intents/INSetClimateSettingsInCarIntent.cs \ Intents/INSetDefrosterSettingsInCarIntent.cs \ Intents/INSetProfileInCarIntent.cs \ Intents/INSetSeatSettingsInCarIntent.cs \ + Intents/INSpeakableString.cs \ Intents/INStartWorkoutIntent.cs \ - Intents/INSaveProfileInCarIntent.cs \ + Intents/INWorkoutGoalUnitTypeResolutionResult.cs \ + Intents/INWorkoutLocationTypeResolutionResult.cs \ # JavaScriptCore diff --git a/src/intents.cs b/src/intents.cs index 9e1e3c1c5c7b..a4c3e543907d 100644 --- a/src/intents.cs +++ b/src/intents.cs @@ -15,6 +15,7 @@ using XamCore.ObjCRuntime; using XamCore.CoreLocation; using XamCore.Contacts; +using XamCore.EventKit; #if MONOMAC using UIImage = XamCore.Foundation.NSObject; @@ -55,7 +56,11 @@ public enum INCallRecordType : nint { Unknown = 0, Outgoing, Missed, - Received + Received, + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + Latest, + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + Voicemail, } [Introduced (PlatformName.iOS, 10, 0)] @@ -65,10 +70,15 @@ public enum INCallRecordType : nint { public enum INCancelWorkoutIntentResponseCode : nint { Unspecified = 0, Ready, + [Deprecated (PlatformName.iOS, 11, 0, message:"Use 'HandleInApp' instead.")] // yup just iOS ContinueInApp, Failure, FailureRequiringAppLaunch, - FailureNoMatchingWorkout + FailureNoMatchingWorkout, + [NoWatch, iOS (11,0)] + Success, + [NoWatch, iOS (11,0)] + HandleInApp, } [Introduced (PlatformName.iOS, 10, 0)] @@ -142,10 +152,15 @@ public enum INConditionalOperator : nint { public enum INEndWorkoutIntentResponseCode : nint { Unspecified = 0, Ready, + [Deprecated (PlatformName.iOS, 11, 0, message:"Use 'HandleInApp' instead.")] // yup just iOS ContinueInApp, Failure, FailureRequiringAppLaunch, - FailureNoMatchingWorkout + FailureNoMatchingWorkout, + [NoWatch, iOS (11,0)] + Success, + [NoWatch, iOS (11,0)] + HandleInApp, } [Introduced (PlatformName.iOS, 10, 0)] @@ -182,6 +197,8 @@ public enum INGetRestaurantGuestIntentResponseCode : nint { public enum INGetRideStatusIntentResponseCode : nint { Unspecified = 0, Ready, + [Deprecated (PlatformName.iOS, 11, 0)] + [Deprecated (PlatformName.WatchOS, 4, 0)] InProgress, Success, Failure, @@ -251,6 +268,8 @@ public enum INInteractionDirection : nint { public enum INListRideOptionsIntentResponseCode : nint { Unspecified = 0, Ready, + [Deprecated (PlatformName.iOS, 11, 0)] + [Deprecated (PlatformName.WatchOS, 4, 0)] InProgress, Success, Failure, @@ -258,7 +277,9 @@ public enum INListRideOptionsIntentResponseCode : nint { FailureRequiringAppLaunchMustVerifyCredentials, FailureRequiringAppLaunchNoServiceInArea, FailureRequiringAppLaunchServiceTemporarilyUnavailable, - FailureRequiringAppLaunchPreviousRideNeedsCompletion + FailureRequiringAppLaunchPreviousRideNeedsCompletion, + [iOS (11,0), Watch (4,0)] + FailurePreviousRideNeedsFeedback, } [Introduced (PlatformName.iOS, 10, 0)] @@ -270,7 +291,9 @@ public enum INMessageAttribute : nint { Read, Unread, Flagged, - Unflagged + Unflagged, + [iOS (11,0), Mac (10,13, onlyOn64:true), Watch (4,0)] + Played, } [Introduced (PlatformName.iOS, 10, 0)] @@ -282,7 +305,9 @@ public enum INMessageAttributeOptions : nuint { Read = (1 << 0), Unread = (1 << 1), Flagged = (1 << 2), - Unflagged = (1 << 3) + Unflagged = (1 << 3), + [iOS (11,0), Mac (10,13, onlyOn64:true), Watch (4,0)] + Played = (1UL << 4), } [Introduced (PlatformName.iOS, 10, 0)] @@ -292,10 +317,15 @@ public enum INMessageAttributeOptions : nuint { public enum INPauseWorkoutIntentResponseCode : nint { Unspecified = 0, Ready, + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'HandleInApp' instead.")] // yup just iOS ContinueInApp, Failure, FailureRequiringAppLaunch, - FailureNoMatchingWorkout + FailureNoMatchingWorkout, + [NoWatch, iOS (11,0)] + Success, + [NoWatch, iOS (11,0)] + HandleInApp, } [Introduced (PlatformName.iOS, 10, 0)] @@ -412,7 +442,9 @@ public enum INRequestPaymentIntentResponseCode : nint { FailurePaymentsAmountBelowMinimum, FailurePaymentsAmountAboveMaximum, FailurePaymentsCurrencyUnsupported, - FailureNoBankAccount + FailureNoBankAccount, + [iOS (11,0), Watch (4,0)] + NotEligible, } [Introduced (PlatformName.iOS, 10, 0)] @@ -422,6 +454,8 @@ public enum INRequestPaymentIntentResponseCode : nint { public enum INRequestRideIntentResponseCode : nint { Unspecified = 0, Ready, + [Deprecated (PlatformName.iOS, 11, 0)] + [Deprecated (PlatformName.WatchOS, 4, 0)] InProgress, Success, Failure, @@ -448,10 +482,15 @@ public enum INRestaurantReservationUserBookingStatus : nuint { public enum INResumeWorkoutIntentResponseCode : nint { Unspecified = 0, Ready, + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'HandleInApp' instead.")] // yup just iOS ContinueInApp, Failure, FailureRequiringAppLaunch, - FailureNoMatchingWorkout + FailureNoMatchingWorkout, + [NoWatch, iOS (11,0)] + Success, + [NoWatch, iOS (11,0)] + HandleInApp, } [Introduced (PlatformName.iOS, 10, 0)] @@ -494,6 +533,10 @@ public enum INSearchCallHistoryIntentResponseCode : nint { [Introduced (PlatformName.iOS, 10, 2)] [Introduced (PlatformName.MacOSX, 10, 12, 2, PlatformArchitecture.Arch64)] FailureAppConfigurationRequired, + [iOS (11,0), Mac (10,13, onlyOn64:true), Watch (4,0)] + InProgress, + [iOS (11,0), Mac (10,13, onlyOn64:true), Watch (4,0)] + Success, } [Introduced (PlatformName.iOS, 10, 0)] @@ -507,7 +550,9 @@ public enum INSearchForMessagesIntentResponseCode : nint { Success, Failure, FailureRequiringAppLaunch, - FailureMessageServiceNotAvailable + FailureMessageServiceNotAvailable, + [iOS (11,0), Mac (10,13, onlyOn64:true), Watch (4,0)] + FailureMessageTooManyResults, } [Introduced (PlatformName.iOS, 10, 0)] @@ -555,7 +600,10 @@ public enum INSendPaymentIntentResponseCode : nint { FailurePaymentsAmountAboveMaximum, FailurePaymentsCurrencyUnsupported, FailureInsufficientFunds, - FailureNoBankAccount + FailureNoBankAccount, + [Introduced (PlatformName.iOS, 11, 0)] + [Introduced (PlatformName.MacOSX, 10, 13, PlatformArchitecture.Arch64)] + FailureNotEligible, } [Introduced (PlatformName.iOS, 10, 0)] @@ -679,6 +727,10 @@ public enum INStartAudioCallIntentResponseCode : nint { [Introduced (PlatformName.iOS, 10, 2)] [Introduced (PlatformName.MacOSX, 10, 12, 2, PlatformArchitecture.Arch64)] FailureCallingServiceNotAvailable, + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + FailureContactNotSupportedByApp, + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + FailureNoValidNumber, } [Introduced (PlatformName.iOS, 10, 0)] @@ -711,6 +763,10 @@ public enum INStartVideoCallIntentResponseCode : nint { [Introduced (PlatformName.iOS, 10, 2)] [Introduced (PlatformName.MacOSX, 10, 12, 2, PlatformArchitecture.Arch64)] FailureCallingServiceNotAvailable, + [Watch (4,0), iOS (11,0)] + FailureContactNotSupportedByApp, + [Watch (4,0), iOS (11,0)] + FailureInvalidNumber, } [Introduced (PlatformName.iOS, 10, 0)] @@ -724,7 +780,11 @@ public enum INStartWorkoutIntentResponseCode : nint { Failure, FailureRequiringAppLaunch, FailureOngoingWorkout, - FailureNoMatchingWorkout + FailureNoMatchingWorkout, + [Watch (4,0), iOS (11,0)] + Success, + [Watch (4,0), iOS (11,0)] + HandleInApp, } [Introduced (PlatformName.iOS, 10, 0)] @@ -744,6 +804,10 @@ public enum INVocabularyStringType : nint { PaymentsOrganizationName = 400, [Introduced (PlatformName.iOS, 10, 3)] PaymentsAccountNickname, + [iOS (11,0)] + NotebookItemTitle = 500, + [iOS (11,0)] + NotebookItemGroupName, } [Introduced (PlatformName.iOS, 10, 0)] @@ -821,6 +885,12 @@ public enum INAmountType : nint { MinimumDue, AmountDue, CurrentBalance, + [iOS (11,0), Watch (4,0)] + MaximumTransferAmount, + [iOS (11,0), Watch (4,0)] + MinimumTransferAmount, + [iOS (11,0), Watch (4,0)] + StatementBalance, } [Introduced (PlatformName.iOS, 10, 3)] @@ -932,6 +1002,324 @@ public enum INSetCarLockStatusIntentResponseCode : nint { FailureRequiringAppLaunch, } + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INAddTasksIntentResponseCode : nint { + Unspecified = 0, + Ready, + InProgress, + Success, + Failure, + FailureRequiringAppLaunch, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INAppendToNoteIntentResponseCode : nint { + Unspecified = 0, + Ready, + InProgress, + Success, + Failure, + FailureRequiringAppLaunch, + FailureCannotUpdatePasswordProtectedNote, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INBalanceType : nint { + Unknown = 0, + Money, + Points, + Miles, + } + + [Watch (3,2), Mac (10,12, onlyOn64:true), iOS (10,0)] + [Native] + public enum INCallCapability : nint { + Unknown = 0, + AudioCall, + VideoCall, + } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Native] + public enum INCallDestinationType : nint { + Unknown = 0, + Normal, + Emergency, + Voicemail, + Redial, + } + + [Watch (3,2), Mac (10,12, onlyOn64:true), iOS (10,0)] + [Native] + [Flags] + public enum INCallRecordTypeOptions : nuint { + Outgoing = (1 << 0), + Missed = (1 << 1), + Received = (1 << 2), + Latest = (1 << 3), + Voicemail = (1 << 4), + } + + [NoWatch, NoMac, iOS (11,0)] + [Native] + public enum INCancelRideIntentResponseCode : nint { + Unspecified = 0, + Ready, + Success, + Failure, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INCreateNoteIntentResponseCode : nint { + Unspecified = 0, + Ready, + InProgress, + Success, + Failure, + FailureRequiringAppLaunch, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INCreateTaskListIntentResponseCode : nint { + Unspecified = 0, + Ready, + InProgress, + Success, + Failure, + FailureRequiringAppLaunch, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INDateSearchType : nint { + Unknown = 0, + ByDueDate, + ByModifiedDate, + ByCreatedDate, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INGetVisualCodeIntentResponseCode : nint { + Unspecified = 0, + Ready, + ContinueInApp, + InProgress, + Success, + Failure, + FailureRequiringAppLaunch, + FailureAppConfigurationRequired, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INLocationSearchType : nint { + Unknown = 0, + ByLocationTrigger, + } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Native] + public enum INMessageType : nint { + Unspecified = 0, + Text, + Audio, + DigitalTouch, + Handwriting, + Sticker, + TapbackLiked, + TapbackDisliked, + TapbackEmphasized, + TapbackLoved, + TapbackQuestioned, + TapbackLaughed, + MediaCalendar, + MediaLocation, + MediaAddressCard, + MediaImage, + MediaVideo, + MediaPass, + MediaAudio, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INNoteContentType : nint { + Unknown = 0, + Text, + Image, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INNotebookItemType : nint { + Unknown = 0, + Note, + TaskList, + Task, + } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Native] + public enum INRecurrenceFrequency : nint { + Unknown = 0, + Minute, + Hourly, + Daily, + Weekly, + Monthly, + Yearly, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INRequestPaymentCurrencyAmountUnsupportedReason : nint { + AmountBelowMinimum = 1, + AmountAboveMaximum, + CurrencyUnsupported, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INRequestPaymentPayerUnsupportedReason : nint { + CredentialsUnverified = 1, + NoAccount, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INRideFeedbackTypeOptions : nuint { + Rate = (1 << 0), + Tip = (1 << 1), + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INSearchForAccountsIntentResponseCode : nint { + Unspecified = 0, + Ready, + InProgress, + Success, + Failure, + FailureRequiringAppLaunch, + FailureCredentialsUnverified, + FailureAccountNotFound, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INSearchForNotebookItemsIntentResponseCode : nint { + Unspecified = 0, + Ready, + InProgress, + Success, + Failure, + FailureRequiringAppLaunch, + } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Native] + public enum INSendMessageRecipientUnsupportedReason : nint { + NoAccount = 1, + Offline, + MessagingServiceNotEnabledForRecipient, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INSendPaymentCurrencyAmountUnsupportedReason : nint { + AmountBelowMinimum = 1, + AmountAboveMaximum, + CurrencyUnsupported, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INSendPaymentPayeeUnsupportedReason : nint { + CredentialsUnverified = 1, + InsufficientFunds, + NoAccount, + } + + [NoWatch, NoMac, iOS (11,0)] + [Native] + public enum INSendRideFeedbackIntentResponseCode : nint { + Unspecified = 0, + Ready, + Success, + Failure, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INSetTaskAttributeIntentResponseCode : nint { + Unspecified = 0, + Ready, + InProgress, + Success, + Failure, + FailureRequiringAppLaunch, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INSortType : nint { + Unknown = 0, + AsIs, + ByDate, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INSpatialEvent : nint { + Unknown = 0, + Arrive, + Depart, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INTaskStatus : nint { + Unknown = 0, + NotCompleted, + Completed, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INTaskType : nint { + Unknown = 0, + NotCompletable, + Completable, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INTransferMoneyIntentResponseCode : nint { + Unspecified = 0, + Ready, + InProgress, + Success, + Failure, + FailureRequiringAppLaunch, + FailureCredentialsUnverified, + FailureInsufficientFunds, + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Native] + public enum INVisualCodeType : nint { + Unknown = 0, + Contact, + RequestPayment, + SendPayment, + } + [Introduced (PlatformName.iOS, 10, 0)] [Introduced (PlatformName.MacOSX, 10, 12, PlatformArchitecture.Arch64)] [Introduced (PlatformName.WatchOS, 3, 2)] @@ -1202,6 +1590,10 @@ interface CLPlacemark_INIntentsAdditions { [BaseType (typeof (INIntent))] interface INBookRestaurantReservationIntent : NSCopying { + [iOS (11,0)] + [Export ("initWithRestaurant:bookingDateComponents:partySize:bookingIdentifier:guest:selectedOffer:guestProvidedSpecialRequestText:")] + IntPtr Constructor (INRestaurant restaurant, NSDateComponents bookingDateComponents, nuint partySize, [NullAllowed] string bookingIdentifier, [NullAllowed] INRestaurantGuest guest, [NullAllowed] INRestaurantOffer selectedOffer, [NullAllowed] string guestProvidedSpecialRequestText); + [Export ("restaurant", ArgumentSemantic.Copy)] INRestaurant Restaurant { get; set; } @@ -1310,13 +1702,33 @@ interface INBooleanResolutionResult { [DisableDefaultCtor] interface INCallRecordTypeResolutionResult { + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Internal] + [Static] + [Export ("successWithResolvedCallRecordType:")] + INCallRecordTypeResolutionResult SuccessWithResolvedCallRecordType (INCallRecordType resolvedCallRecordType); + + [Internal] + [Deprecated (PlatformName.MacOSX, 10, 13)] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("successWithResolvedValue:")] - INCallRecordTypeResolutionResult GetSuccess (INCallRecordType resolvedValue); + INCallRecordTypeResolutionResult SuccessWithResolvedValue (INCallRecordType resolvedValue); + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Internal] + [Static] + [Export ("confirmationRequiredWithCallRecordTypeToConfirm:")] + INCallRecordTypeResolutionResult ConfirmationRequiredWithCallRecordTypeToConfirm (INCallRecordType callRecordTypeToConfirm); + [Internal] + [Deprecated (PlatformName.MacOSX, 10, 13)] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INCallRecordTypeResolutionResult GetConfirmationRequired (INCallRecordType valueToConfirm); + INCallRecordTypeResolutionResult ConfirmationRequiredWithValueToConfirm (INCallRecordType valueToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -1389,13 +1801,28 @@ interface INCancelWorkoutIntentResponse { [DisableDefaultCtor] interface INCarAirCirculationModeResolutionResult { + [iOS (11,0)] + [Internal] + [Static] + [Export ("successWithResolvedCarAirCirculationMode:")] + INCarAirCirculationModeResolutionResult SuccessWithResolvedCarAirCirculationMode (INCarAirCirculationMode resolvedCarAirCirculationMode); + + [Deprecated (PlatformName.iOS, 11, 0)] + [Internal] [Static] [Export ("successWithResolvedValue:")] - INCarAirCirculationModeResolutionResult GetSuccess (INCarAirCirculationMode resolvedValue); + INCarAirCirculationModeResolutionResult SuccessWithResolvedValue (INCarAirCirculationMode resolvedValue); + + [iOS (11,0)] + [Static] + [Export ("confirmationRequiredWithCarAirCirculationModeToConfirm:")] + INCarAirCirculationModeResolutionResult ConfirmationRequiredWithCarAirCirculationModeToConfirm (INCarAirCirculationMode carAirCirculationModeToConfirm); + [Deprecated (PlatformName.iOS, 11, 0)] + [Internal] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INCarAirCirculationModeResolutionResult GetConfirmationRequired (INCarAirCirculationMode valueToConfirm); + INCarAirCirculationModeResolutionResult ConfirmationRequiredWithValueToConfirm (INCarAirCirculationMode valueToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -1422,13 +1849,29 @@ interface INCarAirCirculationModeResolutionResult { [DisableDefaultCtor] interface INCarAudioSourceResolutionResult { + [iOS (11,0)] + [Internal] + [Static] + [Export ("successWithResolvedCarAudioSource:")] + INCarAudioSourceResolutionResult SuccessWithResolvedCarAudioSource (INCarAudioSource resolvedCarAudioSource); + + [Internal] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("successWithResolvedValue:")] - INCarAudioSourceResolutionResult GetSuccess (INCarAudioSource resolvedValue); + INCarAudioSourceResolutionResult SuccessWithResolvedValue (INCarAudioSource resolvedValue); + + [iOS (11,0)] + [Internal] + [Static] + [Export ("confirmationRequiredWithCarAudioSourceToConfirm:")] + INCarAudioSourceResolutionResult ConfirmationRequiredWithCarAudioSourceToConfirm (INCarAudioSource carAudioSourceToConfirm); + [Internal] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INCarAudioSourceResolutionResult GetConfirmationRequired (INCarAudioSource valueToConfirm); + INCarAudioSourceResolutionResult ConfirmationRequiredWithValueToConfirm (INCarAudioSource valueToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -1455,13 +1898,29 @@ interface INCarAudioSourceResolutionResult { [DisableDefaultCtor] interface INCarDefrosterResolutionResult { + [iOS (11,0)] + [Internal] + [Static] + [Export ("successWithResolvedCarDefroster:")] + INCarDefrosterResolutionResult SuccessWithResolvedCarDefroster (INCarDefroster resolvedCarDefroster); + + [Internal] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("successWithResolvedValue:")] - INCarDefrosterResolutionResult GetSuccess (INCarDefroster resolvedValue); + INCarDefrosterResolutionResult SuccessWithResolvedValue (INCarDefroster resolvedValue); + + [iOS (11,0)] + [Internal] + [Static] + [Export ("confirmationRequiredWithCarDefrosterToConfirm:")] + INCarDefrosterResolutionResult ConfirmationRequiredWithCarDefrosterToConfirm (INCarDefroster carDefrosterToConfirm); + [Internal] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INCarDefrosterResolutionResult GetConfirmationRequired (INCarDefroster valueToConfirm); + INCarDefrosterResolutionResult ConfirmationRequiredWithValueToConfirm (INCarDefroster valueToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -1579,14 +2038,31 @@ interface INCurrencyAmountResolutionResult { interface INDateComponentsRange : NSCopying, NSSecureCoding { [Export ("initWithStartDateComponents:endDateComponents:")] - [DesignatedInitializer] IntPtr Constructor ([NullAllowed] NSDateComponents startDateComponents, [NullAllowed] NSDateComponents endDateComponents); + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("initWithEKRecurrenceRule:")] + IntPtr Constructor (EKRecurrenceRule recurrenceRule); + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("initWithStartDateComponents:endDateComponents:recurrenceRule:")] + [DesignatedInitializer] + IntPtr Constructor ([NullAllowed] NSDateComponents startDateComponents, [NullAllowed] NSDateComponents endDateComponents, [NullAllowed] INRecurrenceRule recurrenceRule); + [NullAllowed, Export ("startDateComponents", ArgumentSemantic.Copy)] NSDateComponents StartDateComponents { get; } [NullAllowed, Export ("endDateComponents", ArgumentSemantic.Copy)] NSDateComponents EndDateComponents { get; } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [NullAllowed, Export ("recurrenceRule", ArgumentSemantic.Copy)] + INRecurrenceRule RecurrenceRule { get; } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("EKRecurrenceRule")] + [return: NullAllowed] + EKRecurrenceRule GetEKRecurrenceRule (); } [Introduced (PlatformName.iOS, 10, 0)] @@ -1683,7 +2159,7 @@ interface INMessagesDomainHandling : INSendMessageIntentHandling, INSearchForMes [Introduced (PlatformName.WatchOS, 3, 2)] [Unavailable (PlatformName.MacOSX)] [Protocol] - interface INPaymentsDomainHandling : INSendPaymentIntentHandling, INRequestPaymentIntentHandling, INPayBillIntentHandling, INSearchForBillsIntentHandling { + interface INPaymentsDomainHandling : INSendPaymentIntentHandling, INRequestPaymentIntentHandling, INPayBillIntentHandling, INSearchForBillsIntentHandling, INSearchForAccountsIntentHandling, INTransferMoneyIntentHandling { } [Introduced (PlatformName.iOS, 10, 0)] @@ -1697,7 +2173,21 @@ interface INPhotosDomainHandling : INSearchForPhotosIntentHandling, INStartPhoto [Introduced (PlatformName.WatchOS, 3, 2)] [Unavailable (PlatformName.MacOSX)] [Protocol] - interface INRidesharingDomainHandling : INListRideOptionsIntentHandling, INRequestRideIntentHandling, INGetRideStatusIntentHandling { + interface INRidesharingDomainHandling : INListRideOptionsIntentHandling, INRequestRideIntentHandling, INGetRideStatusIntentHandling +#if !WATCH + , INCancelRideIntentHandling, INSendRideFeedbackIntentHandling +#endif + { + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Protocol] + interface INNotebookDomainHandling : INCreateNoteIntentHandling, INAppendToNoteIntentHandling, INAddTasksIntentHandling, INCreateTaskListIntentHandling, INSetTaskAttributeIntentHandling, INSearchForNotebookItemsIntentHandling { + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Protocol] + interface INVisualCodeDomainHandling : INGetVisualCodeIntentHandling { } [Introduced (PlatformName.iOS, 10, 0)] @@ -1842,6 +2332,10 @@ interface INExtension : INIntentHandlerProviding { [BaseType (typeof (INIntent))] interface INGetAvailableRestaurantReservationBookingDefaultsIntent { + [iOS (11,0)] + [Export ("initWithRestaurant:")] + IntPtr Constructor ([NullAllowed] INRestaurant restaurant); + [NullAllowed, Export ("restaurant", ArgumentSemantic.Copy)] INRestaurant Restaurant { get; set; } } @@ -1898,6 +2392,10 @@ interface INGetAvailableRestaurantReservationBookingDefaultsIntentResponse { [BaseType (typeof (INIntent))] interface INGetAvailableRestaurantReservationBookingsIntent : NSCopying { + [iOS (11,0)] + [Export ("initWithRestaurant:partySize:preferredBookingDateComponents:maximumNumberOfResults:earliestBookingDateForResults:latestBookingDateForResults:")] + IntPtr Constructor (INRestaurant restaurant, nuint partySize, [NullAllowed] NSDateComponents preferredBookingDateComponents, [NullAllowed] NSNumber maximumNumberOfResults, [NullAllowed] NSDate earliestBookingDateForResults, [NullAllowed] NSDate latestBookingDateForResults); + [Export ("restaurant", ArgumentSemantic.Copy)] INRestaurant Restaurant { get; set; } @@ -2073,6 +2571,10 @@ interface INGetRideStatusIntentResponse { [BaseType (typeof (INIntent))] interface INGetUserCurrentRestaurantReservationBookingsIntent : NSCopying { + [iOS (11,0)] + [Export ("initWithRestaurant:reservationIdentifier:maximumNumberOfResults:earliestBookingDateForResults:")] + IntPtr Constructor ([NullAllowed] INRestaurant restaurant, [NullAllowed] string reservationIdentifier, [NullAllowed] NSNumber maximumNumberOfResults, [NullAllowed] NSDate earliestBookingDateForResults); + [NullAllowed, Export ("restaurant", ArgumentSemantic.Copy)] INRestaurant Restaurant { get; set; } @@ -2140,6 +2642,12 @@ interface INImage : NSCopying, NSSecureCoding { [Export ("imageWithURL:")] INImage FromUrl (NSUrl url); + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Static] + [Export ("imageWithURL:width:height:")] + [return: NullAllowed] + INImage FromUrl (NSUrl url, double width, double height); + // INImage_IntentsUI (IntentsUI) [NoMac, NoWatch] @@ -2205,6 +2713,10 @@ interface INIntent : NSCopying, NSSecureCoding { [Unavailable (PlatformName.MacOSX)] [Wrap ("INIntentIdentifierExtensions.GetValue (IdentifierString)")] INIntentIdentifier? Identifier { get; } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [NullAllowed, Export ("intentDescription")] + string IntentDescription { get; } } interface INIntentResolutionResult : INIntentResolutionResult { } @@ -2294,6 +2806,13 @@ interface INInteraction : NSSecureCoding, NSCopying { [NullAllowed, Export ("groupIdentifier")] string GroupIdentifier { get; set; } + + // From INParameter.h INInteraction () + + [iOS (11,0), Watch (4,0), NoMac] + [Export ("parameterValueForParameter:")] + [return: NullAllowed] + NSObject GetParameterValue (INParameter parameter); } [Introduced (PlatformName.iOS, 10, 0)] @@ -2364,13 +2883,25 @@ interface INListRideOptionsIntentResponse { [DisableDefaultCtor] interface INMessage : NSCopying, NSSecureCoding { - [Export ("initWithIdentifier:content:dateSent:sender:recipients:")] + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("initWithIdentifier:conversationIdentifier:content:dateSent:sender:recipients:groupName:messageType:")] [DesignatedInitializer] + IntPtr Constructor (string identifier, [NullAllowed] string conversationIdentifier, [NullAllowed] string content, [NullAllowed] NSDate dateSent, [NullAllowed] INPerson sender, [NullAllowed] INPerson [] recipients, [NullAllowed] INSpeakableString groupName, INMessageType messageType); + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("initWithIdentifier:conversationIdentifier:content:dateSent:sender:recipients:messageType:")] + IntPtr Constructor (string identifier, [NullAllowed] string conversationIdentifier, [NullAllowed] string content, [NullAllowed] NSDate dateSent, [NullAllowed] INPerson sender, [NullAllowed] INPerson [] recipients, INMessageType messageType); + + [Export ("initWithIdentifier:content:dateSent:sender:recipients:")] IntPtr Constructor (string identifier, [NullAllowed] string content, [NullAllowed] NSDate dateSent, [NullAllowed] INPerson sender, [NullAllowed] INPerson [] recipients); [Export ("identifier")] string Identifier { get; } + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [NullAllowed, Export ("conversationIdentifier")] + string ConversationIdentifier { get; } + [NullAllowed, Export ("content")] string Content { get; } @@ -2382,6 +2913,14 @@ interface INMessage : NSCopying, NSSecureCoding { [NullAllowed, Export ("recipients", ArgumentSemantic.Copy)] INPerson [] Recipients { get; } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [NullAllowed, Export ("groupName", ArgumentSemantic.Copy)] + INSpeakableString GroupName { get; } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("messageType")] + INMessageType MessageType { get; } } [Introduced (PlatformName.iOS, 10, 0)] @@ -2391,13 +2930,33 @@ interface INMessage : NSCopying, NSSecureCoding { [DisableDefaultCtor] interface INMessageAttributeOptionsResolutionResult { + [Watch (4,0), Mac (10,13, onlyOn64: true), iOS (11,0)] + [Internal] + [Static] + [Export ("successWithResolvedMessageAttributeOptions:")] + INMessageAttributeOptionsResolutionResult SuccessWithResolvedMessageAttributeOptions (INMessageAttributeOptions resolvedMessageAttributeOptions); + + [Internal] + [Deprecated (PlatformName.MacOSX, 10, 13)] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("successWithResolvedValue:")] - INMessageAttributeOptionsResolutionResult GetSuccess (INMessageAttributeOptions resolvedValue); + INMessageAttributeOptionsResolutionResult SuccessWithResolvedValue (INMessageAttributeOptions resolvedValue); + + [Watch (4,0), Mac (10,13, onlyOn64: true), iOS (11,0)] + [Internal] + [Static] + [Export ("confirmationRequiredWithMessageAttributeOptionsToConfirm:")] + INMessageAttributeOptionsResolutionResult ConfirmationRequiredWithMessageAttributeOptionsToConfirm (INMessageAttributeOptions messageAttributeOptionsToConfirm); + [Internal] + [Deprecated (PlatformName.MacOSX, 10, 13)] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INMessageAttributeOptionsResolutionResult GetConfirmationRequired (INMessageAttributeOptions valueToConfirm); + INMessageAttributeOptionsResolutionResult ConfirmationRequiredWithValueToConfirm (INMessageAttributeOptions valueToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -2425,13 +2984,33 @@ interface INMessageAttributeOptionsResolutionResult { [DisableDefaultCtor] interface INMessageAttributeResolutionResult { + [Watch (4,0), Mac (10,13, onlyOn64: true), iOS (11,0)] + [Internal] + [Static] + [Export ("successWithResolvedMessageAttribute:")] + INMessageAttributeResolutionResult SuccessWithResolvedMessageAttribute (INMessageAttribute resolvedMessageAttribute); + + [Internal] + [Introduced (PlatformName.MacOSX, 10, 12)] + [Introduced (PlatformName.WatchOS, 3, 2)] + [Introduced (PlatformName.iOS, 10, 0)] [Static] [Export ("successWithResolvedValue:")] - INMessageAttributeResolutionResult GetSuccess (INMessageAttribute resolvedValue); + INMessageAttributeResolutionResult SuccessWithResolvedValue (INMessageAttribute resolvedValue); + + [Watch (4,0), Mac (10,13, onlyOn64: true), iOS (11,0)] + [Internal] + [Static] + [Export ("confirmationRequiredWithMessageAttributeToConfirm:")] + INMessageAttributeResolutionResult ConfirmationRequiredWithMessageAttributeToConfirm (INMessageAttribute messageAttributeToConfirm); + [Internal] + [Deprecated (PlatformName.MacOSX, 10, 13)] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INMessageAttributeResolutionResult GetConfirmationRequired (INMessageAttribute valueToConfirm); + INMessageAttributeResolutionResult ConfirmationRequiredWithValueToConfirm (INMessageAttribute valueToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -2618,6 +3197,10 @@ interface INPerson : NSCopying, NSSecureCoding, INSpeakable { [Unavailable (PlatformName.MacOSX)] [Export ("siriMatches", ArgumentSemantic.Copy), NullAllowed] INPerson [] SiriMatches { get; } + + [Mac (10,13, onlyOn64:true), iOS (11,0), Watch (4,0)] + [Export ("isMe")] + bool IsMe { get; } } [Introduced (PlatformName.iOS, 10, 0)] @@ -2627,7 +3210,7 @@ interface INPerson : NSCopying, NSSecureCoding, INSpeakable { [DisableDefaultCtor] interface INPersonHandle : NSCopying, NSSecureCoding { - [Export ("value")] + [Export ("value"), NullAllowed] string Value { get; } [Export ("type")] @@ -2652,10 +3235,10 @@ interface INPersonHandle : NSCopying, NSSecureCoding { [Introduced (PlatformName.iOS, 10, 2)] [Introduced (PlatformName.MacOSX, 10, 12, 2, PlatformArchitecture.Arch64)] [Export ("initWithValue:type:label:"), Protected] - IntPtr Constructor (string value, INPersonHandleType type, [NullAllowed] NSString stringLabel); + IntPtr Constructor ([NullAllowed] string value, INPersonHandleType type, [NullAllowed] NSString stringLabel); [Export ("initWithValue:type:")] - IntPtr Constructor (string value, INPersonHandleType type); + IntPtr Constructor ([NullAllowed] string value, INPersonHandleType type); } [Introduced (PlatformName.iOS, 10, 0)] @@ -2797,13 +3380,29 @@ interface INPriceRange : NSCopying, NSSecureCoding { [DisableDefaultCtor] interface INRadioTypeResolutionResult { + [iOS (11,0)] + [Internal] + [Static] + [Export ("successWithResolvedRadioType:")] + INRadioTypeResolutionResult SuccessWithResolvedRadioType (INRadioType resolvedRadioType); + + [Internal] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("successWithResolvedValue:")] - INRadioTypeResolutionResult GetSuccess (INRadioType resolvedValue); + INRadioTypeResolutionResult SuccessWithResolvedValue (INRadioType resolvedValue); + + [iOS (11,0)] + [Internal] + [Static] + [Export ("confirmationRequiredWithRadioTypeToConfirm:")] + INRadioTypeResolutionResult ConfirmationRequiredWithRadioTypeToConfirm (INRadioType radioTypeToConfirm); + [Internal] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INRadioTypeResolutionResult GetConfirmationRequired (INRadioType valueToConfirm); + INRadioTypeResolutionResult ConfirmationRequiredWithValueToConfirm (INRadioType valueToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -2830,13 +3429,29 @@ interface INRadioTypeResolutionResult { [DisableDefaultCtor] interface INRelativeReferenceResolutionResult { + [iOS (11,0)] + [Internal] + [Static] + [Export ("successWithResolvedRelativeReference:")] + INRelativeReferenceResolutionResult SuccessWithResolvedRelativeReference (INRelativeReference resolvedRelativeReference); + + [Internal] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("successWithResolvedValue:")] - INRelativeReferenceResolutionResult GetSuccess (INRelativeReference resolvedValue); + INRelativeReferenceResolutionResult SuccessWithResolvedValue (INRelativeReference resolvedValue); + + [iOS (11,0)] + [Internal] + [Static] + [Export ("confirmationRequiredWithRelativeReferenceToConfirm:")] + INRelativeReferenceResolutionResult ConfirmationRequiredWithRelativeReferenceToConfirm (INRelativeReference relativeReferenceToConfirm); + [Internal] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INRelativeReferenceResolutionResult GetConfirmationRequired (INRelativeReference valueToConfirm); + INRelativeReferenceResolutionResult ConfirmationRequiredWithValueToConfirm (INRelativeReference valueToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -2863,13 +3478,29 @@ interface INRelativeReferenceResolutionResult { [DisableDefaultCtor] interface INRelativeSettingResolutionResult { + [iOS (11,0)] + [Internal] + [Static] + [Export ("successWithResolvedRelativeSetting:")] + INRelativeSettingResolutionResult SuccessWithResolvedRelativeSetting (INRelativeSetting resolvedRelativeSetting); + + [Internal] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("successWithResolvedValue:")] - INRelativeSettingResolutionResult GetSuccess (INRelativeSetting resolvedValue); + INRelativeSettingResolutionResult SuccessWithResolvedValue (INRelativeSetting resolvedValue); + + [iOS (11,0)] + [Internal] + [Static] + [Export ("confirmationRequiredWithRelativeSettingToConfirm:")] + INRelativeSettingResolutionResult ConfirmationRequiredWithRelativeSettingToConfirm (INRelativeSetting relativeSettingToConfirm); + [Internal] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INRelativeSettingResolutionResult GetConfirmationRequired (INRelativeSetting valueToConfirm); + INRelativeSettingResolutionResult ConfirmationRequiredWithValueToConfirm (INRelativeSetting valueToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -2923,12 +3554,24 @@ interface INRequestPaymentIntentHandling { [Export ("confirmRequestPayment:completion:")] void ConfirmRequestPayment (INRequestPaymentIntent intent, Action completion); + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use 'ResolvePayer (INRequestPaymentIntent, Action)' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'ResolvePayer (INRequestPaymentIntent, Action)' instead.")] [Export ("resolvePayerForRequestPayment:withCompletion:")] void ResolvePayer (INRequestPaymentIntent intent, Action completion); + [Watch (4,0), iOS (11,0)] + [Export ("resolvePayerForRequestPayment:completion:")] + void ResolvePayer (INRequestPaymentIntent intent, Action completion); + + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use 'ResolveCurrencyAmount (INRequestPaymentIntent, Action)' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'ResolveCurrencyAmount (INRequestPaymentIntent, Action)' instead.")] [Export ("resolveCurrencyAmountForRequestPayment:withCompletion:")] void ResolveCurrencyAmount (INRequestPaymentIntent intent, Action completion); + [Watch (4,0), iOS (11,0)] + [Export ("resolveCurrencyAmountForRequestPayment:completion:")] + void ResolveCurrencyAmount (INRequestPaymentIntent intent, Action completion); + [Export ("resolveNoteForRequestPayment:withCompletion:")] void ResolveNote (INRequestPaymentIntent intent, Action completion); } @@ -3340,6 +3983,11 @@ interface INRideCompletionStatus : NSCopying, NSSecureCoding { [Export ("completedWithOutstandingPaymentAmount:")] INRideCompletionStatus GetOutstandingPaymentAmount (INCurrencyAmount outstandingPaymentAmount); + [Watch (4,0), iOS (11,0)] + [Static] + [Export ("completedWithOutstandingFeedbackType:")] + INRideCompletionStatus GetCompleted (INRideFeedbackTypeOptions feedbackType); + [Static] [Export ("canceledByService")] INRideCompletionStatus GetCanceledByService (); @@ -3367,8 +4015,16 @@ interface INRideCompletionStatus : NSCopying, NSSecureCoding { [NullAllowed, Export ("paymentAmount", ArgumentSemantic.Strong)] INCurrencyAmount PaymentAmount { get; } + [Watch (4,0), iOS (11,0)] + [Export ("feedbackType", ArgumentSemantic.Assign)] + INRideFeedbackTypeOptions FeedbackType { get; } + [Export ("outstanding")] bool Outstanding { [Bind ("isOutstanding")] get; } + + [Watch (4,0), iOS (11,0)] + [NullAllowed, Export ("defaultTippingOptions", ArgumentSemantic.Strong)] + NSSet DefaultTippingOptions { get; set; } } [Introduced (PlatformName.iOS, 10, 0)] @@ -3628,10 +4284,24 @@ interface INSaveProfileInCarIntentResponse { [BaseType (typeof (INIntent))] interface INSearchCallHistoryIntent { - [Export ("initWithCallType:dateCreated:recipient:callCapabilities:")] + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("initWithDateCreated:recipient:callCapabilities:callTypes:unseen:")] [DesignatedInitializer] + IntPtr Constructor ([NullAllowed] INDateComponentsRange dateCreated, [NullAllowed] INPerson recipient, INCallCapabilityOptions callCapabilities, INCallRecordTypeOptions callTypes, [NullAllowed] NSNumber unseen); + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Wrap ("this (dateCreated, recipient, callCapabilities, callTypes, new NSNumber (unseen))")] + IntPtr Constructor ([NullAllowed] INDateComponentsRange dateCreated, [NullAllowed] INPerson recipient, INCallCapabilityOptions callCapabilities, INCallRecordTypeOptions callTypes, bool unseen); + + [Deprecated (PlatformName.MacOSX, 10, 13, message: "Use '.ctor (INDateComponentsRange, INPerson, INCallCapabilityOptions, INCallRecordTypeOptions, NSNumber)' instead.")] + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use '.ctor (INDateComponentsRange, INPerson, INCallCapabilityOptions, INCallRecordTypeOptions, NSNumber)' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use '.ctor (INDateComponentsRange, INPerson, INCallCapabilityOptions, INCallRecordTypeOptions, NSNumber)' instead.")] + [Export ("initWithCallType:dateCreated:recipient:callCapabilities:")] IntPtr Constructor (INCallRecordType callType, [NullAllowed] INDateComponentsRange dateCreated, [NullAllowed] INPerson recipient, INCallCapabilityOptions callCapabilities); + [Deprecated (PlatformName.MacOSX, 10, 13, message: "Use 'CallTypes' instead.")] + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use 'CallTypes' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'CallTypes' instead.")] [Export ("callType", ArgumentSemantic.Assign)] INCallRecordType CallType { get; } @@ -3643,6 +4313,15 @@ interface INSearchCallHistoryIntent { [Export ("callCapabilities", ArgumentSemantic.Assign)] INCallCapabilityOptions CallCapabilities { get; } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("callTypes", ArgumentSemantic.Assign)] + INCallRecordTypeOptions CallTypes { get; } + + [Protected] + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [NullAllowed, Export ("unseen", ArgumentSemantic.Copy)] + NSNumber WeakUnseen { get; } } [Introduced (PlatformName.iOS, 10, 0)] @@ -3658,6 +4337,9 @@ interface INSearchCallHistoryIntentHandling { [Export ("confirmSearchCallHistory:completion:")] void ConfirmSearchCallHistory (INSearchCallHistoryIntent intent, Action completion); + [Deprecated (PlatformName.MacOSX, 10, 13, message: "Use 'ResolveCallTypes' instead.")] + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use 'ResolveCallTypes' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'ResolveCallTypes' instead.")] [Export ("resolveCallTypeForSearchCallHistory:withCompletion:")] void ResolveCallType (INSearchCallHistoryIntent intent, Action completion); @@ -3666,6 +4348,14 @@ interface INSearchCallHistoryIntentHandling { [Export ("resolveRecipientForSearchCallHistory:withCompletion:")] void ResolveRecipient (INSearchCallHistoryIntent intent, Action completion); + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("resolveCallTypesForSearchCallHistory:withCompletion:")] + void ResolveCallTypes (INSearchCallHistoryIntent intent, Action completion); + + [Watch (4,0), NoMac, iOS (11,0)] + [Export ("resolveUnseenForSearchCallHistory:withCompletion:")] + void ResolveUnseen (INSearchCallHistoryIntent intent, Action completion); } [Introduced (PlatformName.iOS, 10, 0)] @@ -3681,6 +4371,10 @@ interface INSearchCallHistoryIntentResponse { [Export ("code")] INSearchCallHistoryIntentResponseCode Code { get; } + + [Mac (10,13, onlyOn64:true), iOS (11,0), Watch (4,0)] + [NullAllowed, Export ("callRecords", ArgumentSemantic.Copy)] + INCallRecord [] CallRecords { get; set; } } [Introduced (PlatformName.iOS, 10, 0)] @@ -3689,8 +4383,15 @@ interface INSearchCallHistoryIntentResponse { [BaseType (typeof (INIntent))] interface INSearchForMessagesIntent { - [Export ("initWithRecipients:senders:searchTerms:attributes:dateTimeRange:identifiers:notificationIdentifiers:groupNames:")] + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("initWithRecipients:senders:searchTerms:attributes:dateTimeRange:identifiers:notificationIdentifiers:speakableGroupNames:")] [DesignatedInitializer] + IntPtr Constructor ([NullAllowed] INPerson [] recipients, [NullAllowed] INPerson [] senders, [NullAllowed] string [] searchTerms, INMessageAttributeOptions attributes, [NullAllowed] INDateComponentsRange dateTimeRange, [NullAllowed] string [] identifiers, [NullAllowed] string [] notificationIdentifiers, [NullAllowed] INSpeakableString [] speakableGroupNames); + + [Deprecated (PlatformName.MacOSX, 10, 13, message: "Use '.ctor (INPerson [], INPerson [], string [], INMessageAttributeOptions, INDateComponentsRange, string [], string [], INSpeakableString [])' instead.")] + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use '.ctor (INPerson [], INPerson [], string [], INMessageAttributeOptions, INDateComponentsRange, string [], string [], INSpeakableString [])' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use '.ctor (INPerson [], INPerson [], string [], INMessageAttributeOptions, INDateComponentsRange, string [], string [], INSpeakableString [])' instead.")] + [Export ("initWithRecipients:senders:searchTerms:attributes:dateTimeRange:identifiers:notificationIdentifiers:groupNames:")] IntPtr Constructor ([NullAllowed] INPerson [] recipients, [NullAllowed] INPerson [] senders, [NullAllowed] string [] searchTerms, INMessageAttributeOptions attributes, [NullAllowed] INDateComponentsRange dateTimeRange, [NullAllowed] string [] identifiers, [NullAllowed] string [] notificationIdentifiers, [NullAllowed] string [] groupNames); [NullAllowed, Export ("recipients", ArgumentSemantic.Copy)] @@ -3729,11 +4430,25 @@ interface INSearchForMessagesIntent { [Export ("notificationIdentifiersOperator", ArgumentSemantic.Assign)] INConditionalOperator NotificationIdentifiersOperator { get; } + [Deprecated (PlatformName.MacOSX, 10, 13, message: "Use 'SpeakableGroupNames' instead.")] + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use 'SpeakableGroupNames' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'SpeakableGroupNames' instead.")] [NullAllowed, Export ("groupNames", ArgumentSemantic.Copy)] string [] GroupNames { get; } + [Deprecated (PlatformName.MacOSX, 10, 13, message: "Use 'SpeakableGroupNamesOperator' instead.")] + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use 'SpeakableGroupNamesOperator' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'SpeakableGroupNamesOperator' instead.")] [Export ("groupNamesOperator", ArgumentSemantic.Assign)] INConditionalOperator GroupNamesOperator { get; } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [NullAllowed, Export ("speakableGroupNames", ArgumentSemantic.Copy)] + INSpeakableString [] SpeakableGroupNames { get; } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("speakableGroupNamesOperator", ArgumentSemantic.Assign)] + INConditionalOperator SpeakableGroupNamesOperator { get; } } [Introduced (PlatformName.iOS, 10, 0)] @@ -3761,8 +4476,15 @@ interface INSearchForMessagesIntentHandling { [Export ("resolveDateTimeRangeForSearchForMessages:withCompletion:")] void ResolveDateTimeRange (INSearchForMessagesIntent intent, Action completion); + [Deprecated (PlatformName.MacOSX, 10, 13, message: "Use 'ResolveSpeakableGroupNames' instead.")] + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use 'ResolveSpeakableGroupNames' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'ResolveSpeakableGroupNames' instead.")] [Export ("resolveGroupNamesForSearchForMessages:withCompletion:")] void ResolveGroupNames (INSearchForMessagesIntent intent, Action completion); + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("resolveSpeakableGroupNamesForSearchForMessages:withCompletion:")] + void ResolveSpeakableGroupNames (INSearchForMessagesIntent intent, Action completion); } [Introduced (PlatformName.iOS, 10, 0)] @@ -3843,6 +4565,10 @@ interface INSearchForPhotosIntentHandling { [Export ("resolveAlbumNameForSearchForPhotos:withCompletion:")] void ResolveAlbumName (INSearchForPhotosIntent intent, Action completion); + [Watch (4,0), iOS (11,0)] + [Export ("resolveSearchTermsForSearchForPhotos:withCompletion:")] + void ResolveSearchTerms (INSearchForPhotosIntent intent, Action completion); + [Export ("resolvePeopleInPhotoForSearchForPhotos:withCompletion:")] void ResolvePeopleInPhoto (INSearchForPhotosIntent intent, Action completion); } @@ -3871,8 +4597,15 @@ interface INSearchForPhotosIntentResponse { [BaseType (typeof (INIntent))] interface INSendMessageIntent { - [Export ("initWithRecipients:content:groupName:serviceName:sender:")] + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("initWithRecipients:content:speakableGroupName:conversationIdentifier:serviceName:sender:")] [DesignatedInitializer] + IntPtr Constructor ([NullAllowed] INPerson [] recipients, [NullAllowed] string content, [NullAllowed] INSpeakableString speakableGroupName, [NullAllowed] string conversationIdentifier, [NullAllowed] string serviceName, [NullAllowed] INPerson sender); + + [Deprecated (PlatformName.MacOSX, 10, 13, message: "Use '.ctor (INPerson [], string, INSpeakableString, string, string, INPerson)' instead.")] + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use '.ctor (INPerson [], string, INSpeakableString, string, string, INPerson)' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use '.ctor (INPerson [], string, INSpeakableString, string, string, INPerson)' instead.")] + [Export ("initWithRecipients:content:groupName:serviceName:sender:")] IntPtr Constructor ([NullAllowed] INPerson [] recipients, [NullAllowed] string content, [NullAllowed] string groupName, [NullAllowed] string serviceName, [NullAllowed] INPerson sender); [NullAllowed, Export ("recipients", ArgumentSemantic.Copy)] @@ -3881,6 +4614,17 @@ interface INSendMessageIntent { [NullAllowed, Export ("content")] string Content { get; } + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [NullAllowed, Export ("speakableGroupName", ArgumentSemantic.Copy)] + INSpeakableString SpeakableGroupName { get; } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [NullAllowed, Export ("conversationIdentifier")] + string ConversationIdentifier { get; } + + [Deprecated (PlatformName.MacOSX, 10, 13, message: "Use 'SpeakableGroupNames' instead.")] + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use 'SpeakableGroupNames' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'SpeakableGroupNames' instead.")] [NullAllowed, Export ("groupName")] string GroupName { get; } @@ -3904,14 +4648,28 @@ interface INSendMessageIntentHandling { [Export ("confirmSendMessage:completion:")] void ConfirmSendMessage (INSendMessageIntent intent, Action completion); + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use 'ResolveRecipients (INSendMessageIntent, Action)' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'ResolveRecipients (INSendMessageIntent, Action)' instead.")] + [Deprecated (PlatformName.MacOSX, 10, 13, message: "Use 'ResolveRecipients (INSendMessageIntent, Action)' instead.")] [Export ("resolveRecipientsForSendMessage:withCompletion:")] void ResolveRecipients (INSendMessageIntent intent, Action completion); + [Watch (4,0), iOS (11,0), Mac (10,13, onlyOn64:true)] + [Export ("resolveRecipientsForSendMessage:completion:")] + void ResolveRecipients (INSendMessageIntent intent, Action completion); + [Export ("resolveContentForSendMessage:withCompletion:")] void ResolveContent (INSendMessageIntent intent, Action completion); + [Deprecated (PlatformName.MacOSX, 10, 13, message: "Use 'ResolveSpeakableGroupName' instead.")] + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use 'ResolveSpeakableGroupName' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'ResolveSpeakableGroupName' instead.")] [Export ("resolveGroupNameForSendMessage:withCompletion:")] void ResolveGroupName (INSendMessageIntent intent, Action completion); + + [Watch (4,0), iOS (11,0), Mac (10,13, onlyOn64:true)] + [Export ("resolveSpeakableGroupNameForSendMessage:withCompletion:")] + void ResolveSpeakableGroupName (INSendMessageIntent intent, Action completion); } [Introduced (PlatformName.iOS, 10, 0)] @@ -3927,6 +4685,10 @@ interface INSendMessageIntentResponse { [Export ("code")] INSendMessageIntentResponseCode Code { get; } + + [Watch (4,0), iOS (11,0), Mac (10,13, onlyOn64:true)] + [NullAllowed, Export ("sentMessage", ArgumentSemantic.Copy)] + INMessage SentMessage { get; set; } } [Introduced (PlatformName.iOS, 10, 0)] @@ -3962,12 +4724,24 @@ interface INSendPaymentIntentHandling { [Export ("confirmSendPayment:completion:")] void ConfirmSendPayment (INSendPaymentIntent intent, Action completion); + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use 'ResolvePayee (INSendPaymentIntent, Action)' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'ResolvePayee (INSendPaymentIntent, Action)' instead.")] [Export ("resolvePayeeForSendPayment:withCompletion:")] void ResolvePayee (INSendPaymentIntent intent, Action completion); + [Watch (4,0), iOS (11,0)] + [Export ("resolvePayeeForSendPayment:completion:")] + void ResolvePayee (INSendPaymentIntent intent, Action completion); + + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use 'ResolveCurrencyAmount (INSendPaymentIntent, Action)' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'ResolveCurrencyAmount (INSendPaymentIntent, Action)' instead.")] [Export ("resolveCurrencyAmountForSendPayment:withCompletion:")] void ResolveCurrencyAmount (INSendPaymentIntent intent, Action completion); + [Watch (4,0), iOS (11,0)] + [Export ("resolveCurrencyAmountForSendPayment:completion:")] + void ResolveCurrencyAmount (INSendPaymentIntent intent, Action completion); + [Export ("resolveNoteForSendPayment:withCompletion:")] void ResolveNote (INSendPaymentIntent intent, Action completion); } @@ -4306,6 +5080,7 @@ interface INSetProfileInCarIntentHandling { [Export ("resolveProfileNumberForSetProfileInCar:withCompletion:")] void ResolveProfileNumber (INSetProfileInCarIntent intent, Action completion); + [Deprecated (PlatformName.iOS, 11, 0, message: "The property doesn't need to be resolved.")] [Export ("resolveDefaultProfileForSetProfileInCar:withCompletion:")] void ResolveDefaultProfile (INSetProfileInCarIntent intent, Action completion); @@ -4479,6 +5254,8 @@ interface INSetSeatSettingsInCarIntentResponse { INSetSeatSettingsInCarIntentResponseCode Code { get; } } + interface IINSpeakable { } + [Introduced (PlatformName.iOS, 10, 0)] [Introduced (PlatformName.MacOSX, 10, 12, PlatformArchitecture.Arch64)] [Introduced (PlatformName.WatchOS, 3, 2)] @@ -4493,7 +5270,22 @@ interface INSpeakable { [NullAllowed, Export ("pronunciationHint")] string PronunciationHint { get; } + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Abstract] + [NullAllowed, Export ("vocabularyIdentifier")] + string VocabularyIdentifier { get; } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Abstract] + [NullAllowed, Export ("alternativeSpeakableMatches")] + IINSpeakable [] AlternativeSpeakableMatches { get; } + + [Deprecated (PlatformName.MacOSX, 10, 13, message: "Use 'VocabularyIdentifier' instead.")] + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use 'VocabularyIdentifier' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use 'VocabularyIdentifier' instead.")] +#if !XAMCORE_4_0 // Apple made this @optional in iOS 11 [Abstract] +#endif [NullAllowed, Export ("identifier")] string Identifier { get; } } @@ -4505,9 +5297,14 @@ interface INSpeakable { [DisableDefaultCtor] interface INSpeakableString : INSpeakable { + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Internal] + [Export ("initWithVocabularyIdentifier:spokenPhrase:pronunciationHint:")] + IntPtr InitWithVocabularyIdentifier (string vocabularyIdentifier, string spokenPhrase, [NullAllowed] string pronunciationHint); + + [Internal] [Export ("initWithIdentifier:spokenPhrase:pronunciationHint:")] - [DesignatedInitializer] - IntPtr Constructor (string identifier, string spokenPhrase, [NullAllowed] string pronunciationHint); + IntPtr InitWithIdentifier (string identifier, string spokenPhrase, [NullAllowed] string pronunciationHint); [Introduced (PlatformName.iOS, 10, 2)] [Introduced (PlatformName.MacOSX, 10, 12, 2, PlatformArchitecture.Arch64)] @@ -4559,10 +5356,21 @@ interface INSpeakableStringResolutionResult { [BaseType (typeof (INIntent))] interface INStartAudioCallIntent { + [Deprecated (PlatformName.MacOSX, 10, 13, message: "Use '.ctor (INCallDestinationType, INPerson [])' instead.")] + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Use '.ctor (INCallDestinationType, INPerson [])' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Use '.ctor (INCallDestinationType, INPerson [])' instead.")] [Export ("initWithContacts:")] - [DesignatedInitializer] IntPtr Constructor ([NullAllowed] INPerson [] contacts); + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("initWithDestinationType:contacts:")] + [DesignatedInitializer] + IntPtr Constructor (INCallDestinationType destinationType, [NullAllowed] INPerson [] contacts); + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("destinationType", ArgumentSemantic.Assign)] + INCallDestinationType DestinationType { get; } + [NullAllowed, Export ("contacts", ArgumentSemantic.Copy)] INPerson [] Contacts { get; } } @@ -4580,6 +5388,10 @@ interface INStartAudioCallIntentHandling { [Export ("confirmStartAudioCall:completion:")] void ConfirmStartAudioCall (INStartAudioCallIntent intent, Action completion); + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [Export ("resolveDestinationTypeForStartAudioCall:withCompletion:")] + void ResolveDestinationType (INStartAudioCallIntent intent, Action completion); + [Export ("resolveContactsForStartAudioCall:withCompletion:")] void ResolveContacts (INStartAudioCallIntent intent, Action completion); } @@ -4910,6 +5722,11 @@ interface INVocabulary { [Export ("setVocabularyStrings:ofType:")] void SetVocabularyStrings (NSOrderedSet vocabulary, INVocabularyStringType type); + [Advice ("This API is not allowed in extensions.")] + [iOS (11,0)] + [Export ("setVocabulary:ofType:")] + void SetVocabulary (NSOrderedSet vocabulary, INVocabularyStringType type); + [Advice ("This API is not allowed in extensions.")] [Export ("removeAllVocabularyStrings")] void RemoveAllVocabularyStrings (); @@ -4922,13 +5739,31 @@ interface INVocabulary { [BaseType (typeof (INIntentResolutionResult))] interface INWorkoutGoalUnitTypeResolutionResult { + [Watch (4,0), iOS (11,0)] + [Internal] + [Static] + [Export ("successWithResolvedWorkoutGoalUnitType:")] + INWorkoutGoalUnitTypeResolutionResult SuccessWithResolvedWorkoutGoalUnitType (INWorkoutGoalUnitType resolvedWorkoutGoalUnitType); + + [Internal] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("successWithResolvedValue:")] - INWorkoutGoalUnitTypeResolutionResult GetSuccess (INWorkoutGoalUnitType resolvedValue); + INWorkoutGoalUnitTypeResolutionResult SuccessWithResolvedValue (INWorkoutGoalUnitType resolvedValue); + [Watch (4,0), iOS (11,0)] + [Internal] + [Static] + [Export ("confirmationRequiredWithWorkoutGoalUnitTypeToConfirm:")] + INWorkoutGoalUnitTypeResolutionResult ConfirmationRequiredWithWorkoutGoalUnitTypeToConfirm (INWorkoutGoalUnitType workoutGoalUnitTypeToConfirm); + + [Internal] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INWorkoutGoalUnitTypeResolutionResult GetConfirmationRequired (INWorkoutGoalUnitType valueToConfirm); + INWorkoutGoalUnitTypeResolutionResult ConfirmationRequiredWithValueToConfirm (INWorkoutGoalUnitType valueToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -4956,13 +5791,31 @@ interface INWorkoutGoalUnitTypeResolutionResult { [BaseType (typeof (INIntentResolutionResult))] interface INWorkoutLocationTypeResolutionResult { + [Watch (4,0), iOS (11,0)] + [Internal] + [Static] + [Export ("successWithResolvedWorkoutLocationType:")] + INWorkoutLocationTypeResolutionResult SuccessWithResolvedWorkoutLocationType (INWorkoutLocationType resolvedWorkoutLocationType); + + [Internal] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("successWithResolvedValue:")] - INWorkoutLocationTypeResolutionResult GetSuccess (INWorkoutLocationType resolvedValue); + INWorkoutLocationTypeResolutionResult SuccessWithResolvedValue (INWorkoutLocationType resolvedValue); + [Watch (4,0), iOS (11,0)] + [Internal] + [Static] + [Export ("confirmationRequiredWithWorkoutLocationTypeToConfirm:")] + INWorkoutLocationTypeResolutionResult ConfirmationRequiredWithWorkoutLocationTypeToConfirm (INWorkoutLocationType workoutLocationTypeToConfirm); + + [Internal] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INWorkoutLocationTypeResolutionResult GetConfirmationRequired (INWorkoutLocationType valueToConfirm); + INWorkoutLocationTypeResolutionResult ConfirmationRequiredWithValueToConfirm (INWorkoutLocationType valueToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -5134,13 +5987,31 @@ interface INBillPayeeResolutionResult { [DisableDefaultCtor] interface INBillTypeResolutionResult { + [Deprecated (PlatformName.iOS, 11, 0)] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Internal] [Static] [Export ("successWithResolvedValue:")] - INBillTypeResolutionResult GetSuccess (INBillType resolvedValue); + INBillTypeResolutionResult SuccessWithResolvedValue (INBillType resolvedValue); + + [iOS (11,0), Watch (4,0)] + [Internal] + [Static] + [Export ("successWithResolvedBillType:")] + INBillTypeResolutionResult SuccessWithResolvedBillType (INBillType resolvedBillType); + [Deprecated (PlatformName.iOS, 11, 0)] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Internal] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INBillTypeResolutionResult GetConfirmationRequired (INBillType valueToConfirm); + INBillTypeResolutionResult ConfirmationRequiredWithValueToConfirm (INBillType valueToConfirm); + + [iOS (11,0), Watch (4,0)] + [Internal] + [Static] + [Export ("confirmationRequiredWithBillTypeToConfirm:")] + INBillTypeResolutionResult ConfirmationRequiredWithBillTypeToConfirm (INBillType billTypeToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -5168,13 +6039,31 @@ interface INBillTypeResolutionResult { [DisableDefaultCtor] interface INCarSignalOptionsResolutionResult { + [iOS (11,0), Watch (4,0)] + [Internal] + [Static] + [Export ("successWithResolvedCarSignalOptions:")] + INCarSignalOptionsResolutionResult SuccessWithResolvedCarSignalOptions (INCarSignalOptions resolvedCarSignalOptions); + + [Deprecated (PlatformName.iOS, 11, 0)] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Internal] [Static] [Export ("successWithResolvedValue:")] - INCarSignalOptionsResolutionResult GetSuccess (INCarSignalOptions resolvedValue); + INCarSignalOptionsResolutionResult SuccessWithResolvedValue (INCarSignalOptions resolvedValue); + [iOS (11,0), Watch (4,0)] + [Internal] + [Static] + [Export ("confirmationRequiredWithCarSignalOptionsToConfirm:")] + INCarSignalOptionsResolutionResult ConfirmationRequiredWithCarSignalOptionsToConfirm (INCarSignalOptions carSignalOptionsToConfirm); + + [Deprecated (PlatformName.iOS, 11, 0)] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Internal] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INCarSignalOptionsResolutionResult GetConfirmationRequired (INCarSignalOptions valueToConfirm); + INCarSignalOptionsResolutionResult ConfirmationRequiredWithValueToConfirm (INCarSignalOptions valueToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -5423,10 +6312,16 @@ interface INPayBillIntentResponse { [BaseType (typeof (NSObject))] interface INPaymentAccount : NSCopying, NSSecureCoding { - [DesignatedInitializer] + [Deprecated (PlatformName.WatchOS, 4, 0, message: "Please use '.ctor (INSpeakableString, string, INAccountType, INSpeakableString, INBalanceAmount, INBalanceAmount)' instead.")] + [Deprecated (PlatformName.iOS, 11, 0, message: "Please use '.ctor (INSpeakableString, string, INAccountType, INSpeakableString, INBalanceAmount, INBalanceAmount)' instead.")] [Export ("initWithNickname:number:accountType:organizationName:")] IntPtr Constructor (INSpeakableString nickname, [NullAllowed] string accountNumber, INAccountType accountType, [NullAllowed] INSpeakableString organizationName); + [Watch (4,0), iOS (11,0)] + [Export ("initWithNickname:number:accountType:organizationName:balance:secondaryBalance:")] + [DesignatedInitializer] + IntPtr Constructor (INSpeakableString nickname, [NullAllowed] string accountNumber, INAccountType accountType, [NullAllowed] INSpeakableString organizationName, [NullAllowed] INBalanceAmount balance, [NullAllowed] INBalanceAmount secondaryBalance); + [Export ("nickname", ArgumentSemantic.Copy), NullAllowed] INSpeakableString Nickname { get; } @@ -5438,6 +6333,14 @@ interface INPaymentAccount : NSCopying, NSSecureCoding { [Export ("organizationName", ArgumentSemantic.Copy), NullAllowed] INSpeakableString OrganizationName { get; } + + [Watch (4,0), iOS (11,0)] + [NullAllowed, Export ("balance", ArgumentSemantic.Copy)] + INBalanceAmount Balance { get; } + + [Watch (4,0), iOS (11,0)] + [NullAllowed, Export ("secondaryBalance", ArgumentSemantic.Copy)] + INBalanceAmount SecondaryBalance { get; } } [Introduced (PlatformName.iOS, 10, 3)] @@ -5541,13 +6444,31 @@ interface INPaymentAmountResolutionResult { [DisableDefaultCtor] interface INPaymentStatusResolutionResult { + [Watch (4,0), iOS (11,0)] + [Internal] + [Static] + [Export ("successWithResolvedPaymentStatus:")] + INPaymentStatusResolutionResult SuccessWithResolvedPaymentStatus (INPaymentStatus resolvedPaymentStatus); + + [Internal] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("successWithResolvedValue:")] - INPaymentStatusResolutionResult GetSuccess (INPaymentStatus resolvedValue); + INPaymentStatusResolutionResult SuccessWithResolvedValue (INPaymentStatus resolvedValue); + + [Watch (4,0), iOS (11,0)] + [Internal] + [Static] + [Export ("confirmationRequiredWithPaymentStatusToConfirm:")] + INPaymentStatusResolutionResult ConfirmationRequiredWithPaymentStatusToConfirm (INPaymentStatus paymentStatusToConfirm); + [Internal] + [Deprecated (PlatformName.WatchOS, 4, 0)] + [Deprecated (PlatformName.iOS, 11, 0)] [Static] [Export ("confirmationRequiredWithValueToConfirm:")] - INPaymentStatusResolutionResult GetConfirmationRequired (INPaymentStatus valueToConfirm); + INPaymentStatusResolutionResult ConfirmationRequiredWithValueToConfirm (INPaymentStatus valueToConfirm); // Fixes bug 43205. We need to return the inherited type not the base type // because users won't be able to downcast easily @@ -5719,5 +6640,1598 @@ interface INActivateCarSignalIntentResponse { [Export ("signals")] INCarSignalOptions Signals { get; set; } } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + [DisableDefaultCtor] + interface INAccountTypeResolutionResult { + + [Static] + [Export ("successWithResolvedAccountType:")] + INAccountTypeResolutionResult GetSuccess (INAccountType resolvedAccountType); + + [Static] + [Export ("confirmationRequiredWithAccountTypeToConfirm:")] + INAccountTypeResolutionResult GetConfirmationRequired (INAccountType accountTypeToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INAccountTypeResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INAccountTypeResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INAccountTypeResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntent))] + interface INAddTasksIntent { + + [Export ("initWithTargetTaskList:taskTitles:spatialEventTrigger:temporalEventTrigger:")] + [DesignatedInitializer] + IntPtr Constructor ([NullAllowed] INTaskList targetTaskList, [NullAllowed] INSpeakableString[] taskTitles, [NullAllowed] INSpatialEventTrigger spatialEventTrigger, [NullAllowed] INTemporalEventTrigger temporalEventTrigger); + + [NullAllowed, Export ("targetTaskList", ArgumentSemantic.Copy)] + INTaskList TargetTaskList { get; } + + [NullAllowed, Export ("taskTitles", ArgumentSemantic.Copy)] + INSpeakableString [] TaskTitles { get; } + + [NullAllowed, Export ("spatialEventTrigger", ArgumentSemantic.Copy)] + INSpatialEventTrigger SpatialEventTrigger { get; } + + [NullAllowed, Export ("temporalEventTrigger", ArgumentSemantic.Copy)] + INTemporalEventTrigger TemporalEventTrigger { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Protocol] + interface INAddTasksIntentHandling { + + [Abstract] + [Export ("handleAddTasks:completion:")] + void HandleAddTasks (INAddTasksIntent intent, Action completion); + + [Export ("confirmAddTasks:completion:")] + void ConfirmAddTasks (INAddTasksIntent intent, Action completion); + + [Export ("resolveTargetTaskListForAddTasks:withCompletion:")] + void ResolveTargetTaskList (INAddTasksIntent intent, Action completion); + + [Export ("resolveTaskTitlesForAddTasks:withCompletion:")] + void ResolveTaskTitles (INAddTasksIntent intent, Action completion); + + [Export ("resolveSpatialEventTriggerForAddTasks:withCompletion:")] + void ResolveSpatialEventTrigger (INAddTasksIntent intent, Action completion); + + [Export ("resolveTemporalEventTriggerForAddTasks:withCompletion:")] + void ResolveTemporalEventTrigger (INAddTasksIntent intent, Action completion); + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResponse))] + [DisableDefaultCtor] + interface INAddTasksIntentResponse { + + [Export ("initWithCode:userActivity:")] + [DesignatedInitializer] + IntPtr Constructor (INAddTasksIntentResponseCode code, [NullAllowed] NSUserActivity userActivity); + + [Export ("code")] + INAddTasksIntentResponseCode Code { get; } + + [NullAllowed, Export ("modifiedTaskList", ArgumentSemantic.Copy)] + INTaskList ModifiedTaskList { get; set; } + + [NullAllowed, Export ("addedTasks", ArgumentSemantic.Copy)] + INTask [] AddedTasks { get; set; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntent))] + interface INAppendToNoteIntent { + + [Export ("initWithTargetNote:content:")] + [DesignatedInitializer] + IntPtr Constructor ([NullAllowed] INNote targetNote, [NullAllowed] INNoteContent content); + + [NullAllowed, Export ("targetNote", ArgumentSemantic.Copy)] + INNote TargetNote { get; } + + [NullAllowed, Export ("content", ArgumentSemantic.Copy)] + INNoteContent Content { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Protocol] + interface INAppendToNoteIntentHandling { + + [Abstract] + [Export ("handleAppendToNote:completion:")] + void HandleAppendToNote (INAppendToNoteIntent intent, Action completion); + + [Export ("confirmAppendToNote:completion:")] + void ConfirmAppendToNote (INAppendToNoteIntent intent, Action completion); + + [Export ("resolveTargetNoteForAppendToNote:withCompletion:")] + void ResolveTargetNoteForAppend (INAppendToNoteIntent intent, Action completion); + + [Export ("resolveContentForAppendToNote:withCompletion:")] + void ResolveContentForAppend (INAppendToNoteIntent intent, Action completion); + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResponse))] + [DisableDefaultCtor] + interface INAppendToNoteIntentResponse { + + [Export ("initWithCode:userActivity:")] + [DesignatedInitializer] + IntPtr Constructor (INAppendToNoteIntentResponseCode code, [NullAllowed] NSUserActivity userActivity); + + [Export ("code")] + INAppendToNoteIntentResponseCode Code { get; } + + [NullAllowed, Export ("note", ArgumentSemantic.Copy)] + INNote Note { get; set; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface INBalanceAmount : NSCopying, NSSecureCoding { + + [Export ("initWithAmount:balanceType:")] + [DesignatedInitializer] + IntPtr Constructor (NSDecimalNumber amount, INBalanceType balanceType); + + [Export ("initWithAmount:currencyCode:")] + [DesignatedInitializer] + IntPtr Constructor (NSDecimalNumber amount, string currencyCode); + + [NullAllowed, Export ("amount", ArgumentSemantic.Copy)] + NSDecimalNumber Amount { get; } + + [Export ("balanceType", ArgumentSemantic.Assign)] + INBalanceType BalanceType { get; } + + [NullAllowed, Export ("currencyCode")] + string CurrencyCode { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + [DisableDefaultCtor] + interface INBalanceTypeResolutionResult { + + [Static] + [Export ("successWithResolvedBalanceType:")] + INBalanceTypeResolutionResult GetSuccess (INBalanceType resolvedBalanceType); + + [Static] + [Export ("confirmationRequiredWithBalanceTypeToConfirm:")] + INBalanceTypeResolutionResult GetConfirmationRequired (INBalanceType balanceTypeToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INBalanceTypeResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INBalanceTypeResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INBalanceTypeResolutionResult Unsupported { get; } + } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + [DisableDefaultCtor] + interface INCallDestinationTypeResolutionResult { + + [Static] + [Export ("successWithResolvedCallDestinationType:")] + INCallDestinationTypeResolutionResult GetSuccess (INCallDestinationType resolvedCallDestinationType); + + [Static] + [Export ("confirmationRequiredWithCallDestinationTypeToConfirm:")] + INCallDestinationTypeResolutionResult GetConfirmationRequired (INCallDestinationType callDestinationTypeToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INCallDestinationTypeResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INCallDestinationTypeResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INCallDestinationTypeResolutionResult Unsupported { get; } + } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface INCallRecord : NSCopying, NSSecureCoding { + + [Export ("initWithIdentifier:dateCreated:caller:callRecordType:callCapability:callDuration:unseen:")] + [DesignatedInitializer] + IntPtr Constructor (string identifier, [NullAllowed] NSDate dateCreated, [NullAllowed] INPerson caller, INCallRecordType callRecordType, INCallCapability callCapability, [NullAllowed] NSNumber callDuration, [NullAllowed] NSNumber unseen); + + [Export ("identifier")] + string Identifier { get; } + + [NullAllowed, Export ("dateCreated", ArgumentSemantic.Copy)] + NSDate DateCreated { get; } + + [NullAllowed, Export ("caller", ArgumentSemantic.Copy)] + INPerson Caller { get; } + + [Export ("callRecordType")] + INCallRecordType CallRecordType { get; } + + [Export ("callCapability")] + INCallCapability CallCapability { get; } + + [Protected] + [NullAllowed, Export ("callDuration", ArgumentSemantic.Copy)] + NSNumber WeakCallDuration { get; } + + [Protected] + [NullAllowed, Export ("unseen", ArgumentSemantic.Copy)] + NSNumber WeakUnseen { get; } + } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + [DisableDefaultCtor] + interface INCallRecordTypeOptionsResolutionResult { + + [Static] + [Export ("successWithResolvedCallRecordTypeOptions:")] + INCallRecordTypeOptionsResolutionResult GetSuccess (INCallRecordTypeOptions resolvedCallRecordTypeOptions); + + [Static] + [Export ("confirmationRequiredWithCallRecordTypeOptionsToConfirm:")] + INCallRecordTypeOptionsResolutionResult GetConfirmationRequired (INCallRecordTypeOptions callRecordTypeOptionsToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INCallRecordTypeOptionsResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INCallRecordTypeOptionsResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INCallRecordTypeOptionsResolutionResult Unsupported { get; } + } + + [NoWatch, NoMac, iOS (11,0)] + [BaseType (typeof (INIntent))] + [DisableDefaultCtor] + interface INCancelRideIntent { + + [Export ("initWithRideIdentifier:")] + [DesignatedInitializer] + IntPtr Constructor (string rideIdentifier); + + [Export ("rideIdentifier")] + string RideIdentifier { get; } + } + + [NoWatch, NoMac, iOS (11,0)] + [Protocol] + interface INCancelRideIntentHandling { + + [Abstract] + [Export ("handleCancelRide:completion:")] + void HandleCancelRide (INCancelRideIntent intent, Action completion); + + [Export ("confirmCancelRide:completion:")] + void ConfirmCancelRide (INCancelRideIntent intent, Action completion); + } + + [NoWatch, NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResponse))] + [DisableDefaultCtor] + interface INCancelRideIntentResponse { + + [Export ("initWithCode:userActivity:")] + [DesignatedInitializer] + IntPtr Constructor (INCancelRideIntentResponseCode code, [NullAllowed] NSUserActivity userActivity); + + [Export ("code")] + INCancelRideIntentResponseCode Code { get; } + + [NullAllowed, Export ("cancellationFee", ArgumentSemantic.Assign)] + INCurrencyAmount CancellationFee { get; set; } + + [NullAllowed, Export ("cancellationFeeThreshold", ArgumentSemantic.Assign)] + NSDateComponents CancellationFeeThreshold { get; set; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntent))] + [DisableDefaultCtor] + interface INCreateNoteIntent { + + [Export ("initWithTitle:content:groupName:")] + [DesignatedInitializer] + IntPtr Constructor ([NullAllowed] INSpeakableString title, [NullAllowed] INNoteContent content, [NullAllowed] INSpeakableString groupName); + + [NullAllowed, Export ("title", ArgumentSemantic.Copy)] + INSpeakableString Title { get; } + + [NullAllowed, Export ("content", ArgumentSemantic.Copy)] + INNoteContent Content { get; } + + [NullAllowed, Export ("groupName", ArgumentSemantic.Copy)] + INSpeakableString GroupName { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Protocol] + interface INCreateNoteIntentHandling { + + [Abstract] + [Export ("handleCreateNote:completion:")] + void HandleCreateNote (INCreateNoteIntent intent, Action completion); + + [Export ("confirmCreateNote:completion:")] + void ConfirmCreateNote (INCreateNoteIntent intent, Action completion); + + [Export ("resolveTitleForCreateNote:withCompletion:")] + void ResolveTitle (INCreateNoteIntent intent, Action completion); + + [Export ("resolveContentForCreateNote:withCompletion:")] + void ResolveContent (INCreateNoteIntent intent, Action completion); + + [Export ("resolveGroupNameForCreateNote:withCompletion:")] + void ResolveGroupName (INCreateNoteIntent intent, Action completion); + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResponse))] + [DisableDefaultCtor] + interface INCreateNoteIntentResponse { + + [Export ("initWithCode:userActivity:")] + [DesignatedInitializer] + IntPtr Constructor (INCreateNoteIntentResponseCode code, [NullAllowed] NSUserActivity userActivity); + + [Export ("code")] + INCreateNoteIntentResponseCode Code { get; } + + [NullAllowed, Export ("createdNote", ArgumentSemantic.Copy)] + INNote CreatedNote { get; set; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntent))] + [DisableDefaultCtor] + interface INCreateTaskListIntent { + + [Export ("initWithTitle:taskTitles:groupName:")] + [DesignatedInitializer] + IntPtr Constructor ([NullAllowed] INSpeakableString title, [NullAllowed] INSpeakableString [] taskTitles, [NullAllowed] INSpeakableString groupName); + + [NullAllowed, Export ("title", ArgumentSemantic.Copy)] + INSpeakableString Title { get; } + + [NullAllowed, Export ("taskTitles", ArgumentSemantic.Copy)] + INSpeakableString [] TaskTitles { get; } + + [NullAllowed, Export ("groupName", ArgumentSemantic.Copy)] + INSpeakableString GroupName { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Protocol] + interface INCreateTaskListIntentHandling { + + [Abstract] + [Export ("handleCreateTaskList:completion:")] + void HandleCreateTaskList (INCreateTaskListIntent intent, Action completion); + + [Export ("confirmCreateTaskList:completion:")] + void ConfirmCreateTaskList (INCreateTaskListIntent intent, Action completion); + + [Export ("resolveTitleForCreateTaskList:withCompletion:")] + void ResolveTitle (INCreateTaskListIntent intent, Action completion); + + [Export ("resolveTaskTitlesForCreateTaskList:withCompletion:")] + void ResolveTaskTitles (INCreateTaskListIntent intent, Action completion); + + [Export ("resolveGroupNameForCreateTaskList:withCompletion:")] + void ResolveGroupName (INCreateTaskListIntent intent, Action completion); + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResponse))] + [DisableDefaultCtor] + interface INCreateTaskListIntentResponse { + + [Export ("initWithCode:userActivity:")] + [DesignatedInitializer] + IntPtr Constructor (INCreateTaskListIntentResponseCode code, [NullAllowed] NSUserActivity userActivity); + + [Export ("code")] + INCreateTaskListIntentResponseCode Code { get; } + + [NullAllowed, Export ("createdTaskList", ArgumentSemantic.Copy)] + INTaskList CreatedTaskList { get; set; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + [DisableDefaultCtor] + interface INDateSearchTypeResolutionResult { + + [Static] + [Export ("successWithResolvedDateSearchType:")] + INDateSearchTypeResolutionResult GetSuccess (INDateSearchType resolvedDateSearchType); + + [Static] + [Export ("confirmationRequiredWithDateSearchTypeToConfirm:")] + INDateSearchTypeResolutionResult GetConfirmationRequired (INDateSearchType dateSearchTypeToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INDateSearchTypeResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INDateSearchTypeResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INDateSearchTypeResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntent))] + [DisableDefaultCtor] + interface INGetVisualCodeIntent { + + [Export ("initWithVisualCodeType:")] + [DesignatedInitializer] + IntPtr Constructor (INVisualCodeType visualCodeType); + + [Export ("visualCodeType", ArgumentSemantic.Assign)] + INVisualCodeType VisualCodeType { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Protocol] + interface INGetVisualCodeIntentHandling { + + [Abstract] + [Export ("handleGetVisualCode:completion:")] + void HandleGetVisualCode (INGetVisualCodeIntent intent, Action completion); + + [Export ("confirmGetVisualCode:completion:")] + void ConfirmGetVisualCode (INGetVisualCodeIntent intent, Action completion); + + [Export ("resolveVisualCodeTypeForGetVisualCode:withCompletion:")] + void ResolveVisualCodeType (INGetVisualCodeIntent intent, Action completion); + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResponse))] + [DisableDefaultCtor] + interface INGetVisualCodeIntentResponse { + + [Export ("initWithCode:userActivity:")] + [DesignatedInitializer] + IntPtr Constructor (INGetVisualCodeIntentResponseCode code, [NullAllowed] NSUserActivity userActivity); + + [Export ("code")] + INGetVisualCodeIntentResponseCode Code { get; } + + [NullAllowed, Export ("visualCodeImage", ArgumentSemantic.Copy)] + INImage VisualCodeImage { get; set; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INNoteContent))] + interface INImageNoteContent : NSSecureCoding, NSCopying { + + [Export ("initWithImage:")] + IntPtr Constructor (INImage image); + + [NullAllowed, Export ("image", ArgumentSemantic.Copy)] + INImage Image { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + [DisableDefaultCtor] + interface INLocationSearchTypeResolutionResult { + + [Static] + [Export ("successWithResolvedLocationSearchType:")] + INLocationSearchTypeResolutionResult GetSuccess (INLocationSearchType resolvedLocationSearchType); + + [Static] + [Export ("confirmationRequiredWithLocationSearchTypeToConfirm:")] + INLocationSearchTypeResolutionResult GetConfirmationRequired (INLocationSearchType locationSearchTypeToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INLocationSearchTypeResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INLocationSearchTypeResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INLocationSearchTypeResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (NSObject))] + interface INNote : NSCopying, NSSecureCoding { + + [Export ("initWithTitle:contents:groupName:createdDateComponents:modifiedDateComponents:identifier:")] + IntPtr Constructor (INSpeakableString title, INNoteContent [] contents, [NullAllowed] INSpeakableString groupName, [NullAllowed] NSDateComponents createdDateComponents, [NullAllowed] NSDateComponents modifiedDateComponents, [NullAllowed] string identifier); + + [Export ("title", ArgumentSemantic.Copy)] + INSpeakableString Title { get; } + + [Export ("contents", ArgumentSemantic.Copy)] + INNoteContent [] Contents { get; } + + [NullAllowed, Export ("groupName", ArgumentSemantic.Copy)] + INSpeakableString GroupName { get; } + + [NullAllowed, Export ("createdDateComponents", ArgumentSemantic.Copy)] + NSDateComponents CreatedDateComponents { get; } + + [NullAllowed, Export ("modifiedDateComponents", ArgumentSemantic.Copy)] + NSDateComponents ModifiedDateComponents { get; } + + [NullAllowed, Export ("identifier")] + string Identifier { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (NSObject))] + interface INNoteContent : NSSecureCoding, NSCopying { + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + [DisableDefaultCtor] + interface INNoteContentResolutionResult { + + [Static] + [Export ("successWithResolvedNoteContent:")] + INNoteContentResolutionResult GetSuccess (INNoteContent resolvedNoteContent); + + [Static] + [Export ("disambiguationWithNoteContentsToDisambiguate:")] + INNoteContentResolutionResult GetDisambiguation (INNoteContent [] noteContentsToDisambiguate); + + [Static] + [Export ("confirmationRequiredWithNoteContentToConfirm:")] + INNoteContentResolutionResult GetConfirmationRequired ([NullAllowed] INNoteContent noteContentToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INNoteContentResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INNoteContentResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INNoteContentResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + interface INNoteContentTypeResolutionResult { + + [Static] + [Export ("successWithResolvedNoteContentType:")] + INNoteContentTypeResolutionResult GetSuccess (INNoteContentType resolvedNoteContentType); + + [Static] + [Export ("confirmationRequiredWithNoteContentTypeToConfirm:")] + INNoteContentTypeResolutionResult GetConfirmationRequired (INNoteContentType noteContentTypeToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INNoteContentTypeResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INNoteContentTypeResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INNoteContentTypeResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + interface INNoteResolutionResult { + + [Static] + [Export ("successWithResolvedNote:")] + INNoteResolutionResult GetSuccess (INNote resolvedNote); + + [Static] + [Export ("disambiguationWithNotesToDisambiguate:")] + INNoteResolutionResult GetDisambiguation (INNote [] notesToDisambiguate); + + [Static] + [Export ("confirmationRequiredWithNoteToConfirm:")] + INNoteResolutionResult GetConfirmationRequired ([NullAllowed] INNote noteToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INNoteResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INNoteResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INNoteResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + interface INNotebookItemTypeResolutionResult { + + [Static] + [Export ("successWithResolvedNotebookItemType:")] + INNotebookItemTypeResolutionResult GetSuccess (INNotebookItemType resolvedNotebookItemType); + + [Static] + [Export ("disambiguationWithNotebookItemTypesToDisambiguate:")] + INNotebookItemTypeResolutionResult GetDisambiguation (NSNumber[] notebookItemTypesToDisambiguate); + + [Static] + [Export ("confirmationRequiredWithNotebookItemTypeToConfirm:")] + INNotebookItemTypeResolutionResult GetConfirmationRequired (INNotebookItemType notebookItemTypeToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INNotebookItemTypeResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INNotebookItemTypeResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INNotebookItemTypeResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface INParameter : NSSecureCoding { + + [Static] + [Export ("parameterForClass:keyPath:")] + INParameter GetParameter (Class aClass, string keyPath); + + [Static] + [Wrap ("GetParameter (new Class (type), keyPath)")] + INParameter GetParameter (Type type, string keyPath); + + [Export ("parameterClass")] + Class ParameterClass { get; } + + [Wrap ("Class.Lookup (ParameterClass)")] + Type ParameterType { get; } + + [Export ("parameterKeyPath")] + string ParameterKeyPath { get; } + + [Export ("isEqualToParameter:")] + bool IsEqualTo (INParameter parameter); + + [Export ("setIndex:forSubKeyPath:")] + void SetIndex (nuint index, string subKeyPath); + + [Export ("indexForSubKeyPath:")] + nuint GetIndex (string subKeyPath); + } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface INRecurrenceRule : NSCopying, NSSecureCoding { + + [Export ("initWithInterval:frequency:")] + IntPtr Constructor (nuint interval, INRecurrenceFrequency frequency); + + [Export ("interval")] + nuint Interval { get; } + + [Export ("frequency")] + INRecurrenceFrequency Frequency { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INCurrencyAmountResolutionResult))] + [DisableDefaultCtor] + interface INRequestPaymentCurrencyAmountResolutionResult { + + [Static] + [Export ("unsupportedForReason:")] + INRequestPaymentCurrencyAmountResolutionResult GetUnsupported (INRequestPaymentCurrencyAmountUnsupportedReason reason); + + [Export ("initWithCurrencyAmountResolutionResult:")] + IntPtr Constructor (INCurrencyAmountResolutionResult currencyAmountResolutionResult); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INRequestPaymentCurrencyAmountResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INRequestPaymentCurrencyAmountResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INRequestPaymentCurrencyAmountResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INPersonResolutionResult))] + [DisableDefaultCtor] + interface INRequestPaymentPayerResolutionResult { + + [Static] + [Export ("unsupportedForReason:")] + INRequestPaymentPayerResolutionResult GetUnsupported (INRequestPaymentPayerUnsupportedReason reason); + + [Export ("initWithPersonResolutionResult:")] + IntPtr Constructor (INPersonResolutionResult personResolutionResult); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INRequestPaymentPayerResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INRequestPaymentPayerResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INRequestPaymentPayerResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntent))] + interface INSearchForAccountsIntent { + + [Export ("initWithAccountNickname:accountType:organizationName:requestedBalanceType:")] + [DesignatedInitializer] + IntPtr Constructor ([NullAllowed] INSpeakableString accountNickname, INAccountType accountType, [NullAllowed] INSpeakableString organizationName, INBalanceType requestedBalanceType); + + [NullAllowed, Export ("accountNickname", ArgumentSemantic.Copy)] + INSpeakableString AccountNickname { get; } + + [Export ("accountType", ArgumentSemantic.Assign)] + INAccountType AccountType { get; } + + [NullAllowed, Export ("organizationName", ArgumentSemantic.Copy)] + INSpeakableString OrganizationName { get; } + + [Export ("requestedBalanceType", ArgumentSemantic.Assign)] + INBalanceType RequestedBalanceType { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Protocol] + interface INSearchForAccountsIntentHandling { + + [Abstract] + [Export ("handleSearchForAccounts:completion:")] + void HandleSearchForAccounts (INSearchForAccountsIntent intent, Action completion); + + [Export ("confirmSearchForAccounts:completion:")] + void ConfirmSearchForAccounts (INSearchForAccountsIntent intent, Action completion); + + [Export ("resolveAccountNicknameForSearchForAccounts:withCompletion:")] + void ResolveAccountNickname (INSearchForAccountsIntent intent, Action completion); + + [Export ("resolveAccountTypeForSearchForAccounts:withCompletion:")] + void ResolveAccountType (INSearchForAccountsIntent intent, Action completion); + + [Export ("resolveOrganizationNameForSearchForAccounts:withCompletion:")] + void ResolveOrganizationName (INSearchForAccountsIntent intent, Action completion); + + [Export ("resolveRequestedBalanceTypeForSearchForAccounts:withCompletion:")] + void ResolveRequestedBalanceType (INSearchForAccountsIntent intent, Action completion); + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResponse))] + [DisableDefaultCtor] + interface INSearchForAccountsIntentResponse { + + [Export ("initWithCode:userActivity:")] + [DesignatedInitializer] + IntPtr Constructor (INSearchForAccountsIntentResponseCode code, [NullAllowed] NSUserActivity userActivity); + + [Export ("code")] + INSearchForAccountsIntentResponseCode Code { get; } + + [NullAllowed, Export ("accounts", ArgumentSemantic.Copy)] + INPaymentAccount [] Accounts { get; set; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntent))] + interface INSearchForNotebookItemsIntent { + + [Export ("initWithTitle:content:itemType:status:location:locationSearchType:dateTime:dateSearchType:")] + [DesignatedInitializer] + IntPtr Constructor ([NullAllowed] INSpeakableString title, [NullAllowed] string content, INNotebookItemType itemType, INTaskStatus status, [NullAllowed] CLPlacemark location, INLocationSearchType locationSearchType, [NullAllowed] INDateComponentsRange dateTime, INDateSearchType dateSearchType); + + [NullAllowed, Export ("title", ArgumentSemantic.Copy)] + INSpeakableString Title { get; } + + [NullAllowed, Export ("content")] + string Content { get; } + + [Export ("itemType", ArgumentSemantic.Assign)] + INNotebookItemType ItemType { get; } + + [Export ("status", ArgumentSemantic.Assign)] + INTaskStatus Status { get; } + + [NullAllowed, Export ("location", ArgumentSemantic.Copy)] + CLPlacemark Location { get; } + + [Export ("locationSearchType", ArgumentSemantic.Assign)] + INLocationSearchType LocationSearchType { get; } + + [NullAllowed, Export ("dateTime", ArgumentSemantic.Copy)] + INDateComponentsRange DateTime { get; } + + [Export ("dateSearchType", ArgumentSemantic.Assign)] + INDateSearchType DateSearchType { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Protocol] + interface INSearchForNotebookItemsIntentHandling { + + [Abstract] + [Export ("handleSearchForNotebookItems:completion:")] + void HandleSearchForNotebookItems (INSearchForNotebookItemsIntent intent, Action completion); + + [Export ("confirmSearchForNotebookItems:completion:")] + void ConfirmSearchForNotebookItems (INSearchForNotebookItemsIntent intent, Action completion); + + [Export ("resolveTitleForSearchForNotebookItems:withCompletion:")] + void ResolveTitle (INSearchForNotebookItemsIntent intent, Action completion); + + [Export ("resolveContentForSearchForNotebookItems:withCompletion:")] + void ResolveContent (INSearchForNotebookItemsIntent intent, Action completion); + + [Export ("resolveItemTypeForSearchForNotebookItems:withCompletion:")] + void ResolveItemType (INSearchForNotebookItemsIntent intent, Action completion); + + [Export ("resolveStatusForSearchForNotebookItems:withCompletion:")] + void ResolveStatus (INSearchForNotebookItemsIntent intent, Action completion); + + [Export ("resolveLocationForSearchForNotebookItems:withCompletion:")] + void ResolveLocation (INSearchForNotebookItemsIntent intent, Action completion); + + [Export ("resolveLocationSearchTypeForSearchForNotebookItems:withCompletion:")] + void ResolveLocationSearchType (INSearchForNotebookItemsIntent intent, Action completion); + + [Export ("resolveDateTimeForSearchForNotebookItems:withCompletion:")] + void ResolveDateTime (INSearchForNotebookItemsIntent intent, Action completion); + + [Export ("resolveDateSearchTypeForSearchForNotebookItems:withCompletion:")] + void ResolveDateSearchType (INSearchForNotebookItemsIntent intent, Action completion); + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResponse))] + [DisableDefaultCtor] + interface INSearchForNotebookItemsIntentResponse { + + [Export ("initWithCode:userActivity:")] + [DesignatedInitializer] + IntPtr Constructor (INSearchForNotebookItemsIntentResponseCode code, [NullAllowed] NSUserActivity userActivity); + + [Export ("code")] + INSearchForNotebookItemsIntentResponseCode Code { get; } + + [NullAllowed, Export ("notes", ArgumentSemantic.Copy)] + INNote [] Notes { get; set; } + + [NullAllowed, Export ("taskLists", ArgumentSemantic.Copy)] + INTaskList [] TaskLists { get; set; } + + [NullAllowed, Export ("tasks", ArgumentSemantic.Copy)] + INTask [] Tasks { get; set; } + + [Export ("sortType", ArgumentSemantic.Assign)] + INSortType SortType { get; set; } + } + + [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] + [BaseType (typeof (INPersonResolutionResult))] + [DisableDefaultCtor] + interface INSendMessageRecipientResolutionResult { + + [Static] + [Export ("unsupportedForReason:")] + INSendMessageRecipientResolutionResult GetUnsupported (INSendMessageRecipientUnsupportedReason reason); + + [Export ("initWithPersonResolutionResult:")] + IntPtr Constructor (INPersonResolutionResult personResolutionResult); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INSendMessageRecipientResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INSendMessageRecipientResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INSendMessageRecipientResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INCurrencyAmountResolutionResult))] + [DisableDefaultCtor] + interface INSendPaymentCurrencyAmountResolutionResult { + + [Static] + [Export ("unsupportedForReason:")] + INSendPaymentCurrencyAmountResolutionResult GetUnsupported (INSendPaymentCurrencyAmountUnsupportedReason reason); + + [Export ("initWithCurrencyAmountResolutionResult:")] + IntPtr Constructor (INCurrencyAmountResolutionResult currencyAmountResolutionResult); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INSendPaymentCurrencyAmountResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INSendPaymentCurrencyAmountResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INSendPaymentCurrencyAmountResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INPersonResolutionResult))] + [DisableDefaultCtor] + interface INSendPaymentPayeeResolutionResult { + + [Static] + [Export ("unsupportedForReason:")] + INSendPaymentPayeeResolutionResult GetUnsupported (INSendPaymentPayeeUnsupportedReason reason); + + [Export ("initWithPersonResolutionResult:")] + IntPtr Constructor (INPersonResolutionResult personResolutionResult); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INSendPaymentPayeeResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INSendPaymentPayeeResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INSendPaymentPayeeResolutionResult Unsupported { get; } + } + + [NoWatch, NoMac, iOS (11,0)] + [BaseType (typeof (INIntent))] + [DisableDefaultCtor] + interface INSendRideFeedbackIntent { + + [Export ("initWithRideIdentifier:")] + [DesignatedInitializer] + IntPtr Constructor (string rideIdentifier); + + [Export ("rideIdentifier")] + string RideIdentifier { get; } + + [NullAllowed, Export ("rating", ArgumentSemantic.Copy)] + NSNumber Rating { get; set; } + + [NullAllowed, Export ("tip", ArgumentSemantic.Copy)] + INCurrencyAmount Tip { get; set; } + } + + [NoWatch, NoMac, iOS (11,0)] + [Protocol] + interface INSendRideFeedbackIntentHandling { + + [Abstract] + [Export ("handleSendRideFeedback:completion:")] + void HandleSendRideFeedback (INSendRideFeedbackIntent sendRideFeedbackintent, Action completion); + + [Export ("confirmSendRideFeedback:completion:")] + void ConfirmSendRideFeedback (INSendRideFeedbackIntent sendRideFeedbackIntent, Action completion); + } + + [NoWatch, NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResponse))] + [DisableDefaultCtor] + interface INSendRideFeedbackIntentResponse { + + [Export ("initWithCode:userActivity:")] + [DesignatedInitializer] + IntPtr Constructor (INSendRideFeedbackIntentResponseCode code, [NullAllowed] NSUserActivity userActivity); + + [Export ("code")] + INSendRideFeedbackIntentResponseCode Code { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntent))] + interface INSetTaskAttributeIntent { + + [Export ("initWithTargetTask:status:spatialEventTrigger:temporalEventTrigger:")] + [DesignatedInitializer] + IntPtr Constructor ([NullAllowed] INTask targetTask, INTaskStatus status, [NullAllowed] INSpatialEventTrigger spatialEventTrigger, [NullAllowed] INTemporalEventTrigger temporalEventTrigger); + + [NullAllowed, Export ("targetTask", ArgumentSemantic.Copy)] + INTask TargetTask { get; } + + [Export ("status", ArgumentSemantic.Assign)] + INTaskStatus Status { get; } + + [NullAllowed, Export ("spatialEventTrigger", ArgumentSemantic.Copy)] + INSpatialEventTrigger SpatialEventTrigger { get; } + + [NullAllowed, Export ("temporalEventTrigger", ArgumentSemantic.Copy)] + INTemporalEventTrigger TemporalEventTrigger { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Protocol] + interface INSetTaskAttributeIntentHandling { + + [Abstract] + [Export ("handleSetTaskAttribute:completion:")] + void HandleSetTaskAttribute (INSetTaskAttributeIntent intent, Action completion); + + [Export ("confirmSetTaskAttribute:completion:")] + void ConfirmSetTaskAttribute (INSetTaskAttributeIntent intent, Action completion); + + [Export ("resolveTargetTaskForSetTaskAttribute:withCompletion:")] + void ResolveTargetTask (INSetTaskAttributeIntent intent, Action completion); + + [Export ("resolveStatusForSetTaskAttribute:withCompletion:")] + void ResolveStatus (INSetTaskAttributeIntent intent, Action completion); + + [Export ("resolveSpatialEventTriggerForSetTaskAttribute:withCompletion:")] + void ResolveSpatialEventTrigger (INSetTaskAttributeIntent intent, Action completion); + + [Export ("resolveTemporalEventTriggerForSetTaskAttribute:withCompletion:")] + void ResolveTemporalEventTrigger (INSetTaskAttributeIntent intent, Action completion); + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResponse))] + [DisableDefaultCtor] + interface INSetTaskAttributeIntentResponse { + + [Export ("initWithCode:userActivity:")] + [DesignatedInitializer] + IntPtr Constructor (INSetTaskAttributeIntentResponseCode code, [NullAllowed] NSUserActivity userActivity); + + [Export ("code")] + INSetTaskAttributeIntentResponseCode Code { get; } + + [NullAllowed, Export ("modifiedTask", ArgumentSemantic.Copy)] + INTask ModifiedTask { get; set; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface INSpatialEventTrigger { + + [Export ("initWithPlacemark:event:")] + IntPtr Constructor (CLPlacemark placemark, INSpatialEvent @event); + + [Export ("placemark")] + CLPlacemark Placemark { get; } + + [Export ("event")] + INSpatialEvent Event { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + [DisableDefaultCtor] + interface INSpatialEventTriggerResolutionResult { + + [Static] + [Export ("successWithResolvedSpatialEventTrigger:")] + INSpatialEventTriggerResolutionResult GetSuccess (INSpatialEventTrigger resolvedSpatialEventTrigger); + + [Static] + [Export ("disambiguationWithSpatialEventTriggersToDisambiguate:")] + INSpatialEventTriggerResolutionResult GetDisambiguation (INSpatialEventTrigger [] spatialEventTriggersToDisambiguate); + + [Static] + [Export ("confirmationRequiredWithSpatialEventTriggerToConfirm:")] + INSpatialEventTriggerResolutionResult GetConfirmationRequired ([NullAllowed] INSpatialEventTrigger spatialEventTriggerToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INSpatialEventTriggerResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INSpatialEventTriggerResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INSpatialEventTriggerResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface INTask : NSCopying, NSSecureCoding { + + [Export ("initWithTitle:status:taskType:spatialEventTrigger:temporalEventTrigger:createdDateComponents:modifiedDateComponents:identifier:")] + IntPtr Constructor (INSpeakableString title, INTaskStatus status, INTaskType taskType, [NullAllowed] INSpatialEventTrigger spatialEventTrigger, [NullAllowed] INTemporalEventTrigger temporalEventTrigger, [NullAllowed] NSDateComponents createdDateComponents, [NullAllowed] NSDateComponents modifiedDateComponents, [NullAllowed] string identifier); + + [Export ("title", ArgumentSemantic.Copy)] + INSpeakableString Title { get; } + + [Export ("status")] + INTaskStatus Status { get; } + + [Export ("taskType")] + INTaskType TaskType { get; } + + [NullAllowed, Export ("spatialEventTrigger", ArgumentSemantic.Copy)] + INSpatialEventTrigger SpatialEventTrigger { get; } + + [NullAllowed, Export ("temporalEventTrigger", ArgumentSemantic.Copy)] + INTemporalEventTrigger TemporalEventTrigger { get; } + + [NullAllowed, Export ("createdDateComponents", ArgumentSemantic.Copy)] + NSDateComponents CreatedDateComponents { get; } + + [NullAllowed, Export ("modifiedDateComponents", ArgumentSemantic.Copy)] + NSDateComponents ModifiedDateComponents { get; } + + [NullAllowed, Export ("identifier")] + string Identifier { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface INTaskList : NSCopying, NSSecureCoding { + + [Export ("initWithTitle:tasks:groupName:createdDateComponents:modifiedDateComponents:identifier:")] + IntPtr Constructor (INSpeakableString title, INTask [] tasks, [NullAllowed] INSpeakableString groupName, [NullAllowed] NSDateComponents createdDateComponents, [NullAllowed] NSDateComponents modifiedDateComponents, [NullAllowed] string identifier); + + [Export ("title", ArgumentSemantic.Copy)] + INSpeakableString Title { get; } + + [Export ("tasks", ArgumentSemantic.Copy)] + INTask [] Tasks { get; } + + [NullAllowed, Export ("groupName", ArgumentSemantic.Copy)] + INSpeakableString GroupName { get; } + + [NullAllowed, Export ("createdDateComponents", ArgumentSemantic.Copy)] + NSDateComponents CreatedDateComponents { get; } + + [NullAllowed, Export ("modifiedDateComponents", ArgumentSemantic.Copy)] + NSDateComponents ModifiedDateComponents { get; } + + [NullAllowed, Export ("identifier")] + string Identifier { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + [DisableDefaultCtor] + interface INTaskListResolutionResult { + + [Static] + [Export ("successWithResolvedTaskList:")] + INTaskListResolutionResult GetSuccess (INTaskList resolvedTaskList); + + [Static] + [Export ("disambiguationWithTaskListsToDisambiguate:")] + INTaskListResolutionResult GetDisambiguation (INTaskList [] taskListsToDisambiguate); + + [Static] + [Export ("confirmationRequiredWithTaskListToConfirm:")] + INTaskListResolutionResult GetConfirmationRequired ([NullAllowed] INTaskList taskListToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INTaskListResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INTaskListResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INTaskListResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + [DisableDefaultCtor] + interface INTaskResolutionResult { + + [Static] + [Export ("successWithResolvedTask:")] + INTaskResolutionResult GetSuccess (INTask resolvedTask); + + [Static] + [Export ("disambiguationWithTasksToDisambiguate:")] + INTaskResolutionResult GetDisambiguation (INTask [] tasksToDisambiguate); + + [Static] + [Export ("confirmationRequiredWithTaskToConfirm:")] + INTaskResolutionResult GetConfirmationRequired ([NullAllowed] INTask taskToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INTaskResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INTaskResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INTaskResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + [DisableDefaultCtor] + interface INTaskStatusResolutionResult { + + [Static] + [Export ("successWithResolvedTaskStatus:")] + INTaskStatusResolutionResult GetSuccess (INTaskStatus resolvedTaskStatus); + + [Static] + [Export ("confirmationRequiredWithTaskStatusToConfirm:")] + INTaskStatusResolutionResult GetConfirmationRequired (INTaskStatus taskStatusToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INTaskStatusResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INTaskStatusResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INTaskStatusResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (NSObject))] + [DisableDefaultCtor] + interface INTemporalEventTrigger : NSCopying, NSSecureCoding { + + [Export ("initWithDateComponentsRange:")] + IntPtr Constructor (INDateComponentsRange dateComponentsRange); + + [Export ("dateComponentsRange")] + INDateComponentsRange DateComponentsRange { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + [DisableDefaultCtor] + interface INTemporalEventTriggerResolutionResult { + + [Static] + [Export ("successWithResolvedTemporalEventTrigger:")] + INTemporalEventTriggerResolutionResult GetSuccess (INTemporalEventTrigger resolvedTemporalEventTrigger); + + [Static] + [Export ("disambiguationWithTemporalEventTriggersToDisambiguate:")] + INTemporalEventTriggerResolutionResult GetDisambiguation (INTemporalEventTrigger [] temporalEventTriggersToDisambiguate); + + [Static] + [Export ("confirmationRequiredWithTemporalEventTriggerToConfirm:")] + INTemporalEventTriggerResolutionResult GetConfirmationRequired ([NullAllowed] INTemporalEventTrigger temporalEventTriggerToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INTemporalEventTriggerResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INTemporalEventTriggerResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INTemporalEventTriggerResolutionResult Unsupported { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INNoteContent))] + [DisableDefaultCtor] + interface INTextNoteContent : NSSecureCoding, NSCopying { + + [Export ("initWithText:")] + IntPtr Constructor (string text); + + [NullAllowed, Export ("text")] + string Text { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntent))] + [DisableDefaultCtor] + interface INTransferMoneyIntent { + + [Export ("initWithFromAccount:toAccount:transactionAmount:transactionScheduledDate:transactionNote:")] + [DesignatedInitializer] + IntPtr Constructor ([NullAllowed] INPaymentAccount fromAccount, [NullAllowed] INPaymentAccount toAccount, [NullAllowed] INPaymentAmount transactionAmount, [NullAllowed] INDateComponentsRange transactionScheduledDate, [NullAllowed] string transactionNote); + + [NullAllowed, Export ("fromAccount", ArgumentSemantic.Copy)] + INPaymentAccount FromAccount { get; } + + [NullAllowed, Export ("toAccount", ArgumentSemantic.Copy)] + INPaymentAccount ToAccount { get; } + + [NullAllowed, Export ("transactionAmount", ArgumentSemantic.Copy)] + INPaymentAmount TransactionAmount { get; } + + [NullAllowed, Export ("transactionScheduledDate", ArgumentSemantic.Copy)] + INDateComponentsRange TransactionScheduledDate { get; } + + [NullAllowed, Export ("transactionNote")] + string TransactionNote { get; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [Protocol] + interface INTransferMoneyIntentHandling { + + [Abstract] + [Export ("handleTransferMoney:completion:")] + void HandleTransferMoney (INTransferMoneyIntent intent, Action completion); + + [Export ("confirmTransferMoney:completion:")] + void ConfirmTransferMoney (INTransferMoneyIntent intent, Action completion); + + [Export ("resolveFromAccountForTransferMoney:withCompletion:")] + void ResolveFromAccount (INTransferMoneyIntent intent, Action completion); + + [Export ("resolveToAccountForTransferMoney:withCompletion:")] + void ResolveToAccount (INTransferMoneyIntent intent, Action completion); + + [Export ("resolveTransactionAmountForTransferMoney:withCompletion:")] + void ResolveTransactionAmount (INTransferMoneyIntent intent, Action completion); + + [Export ("resolveTransactionScheduledDateForTransferMoney:withCompletion:")] + void ResolveTransactionScheduledDate (INTransferMoneyIntent intent, Action completion); + + [Export ("resolveTransactionNoteForTransferMoney:withCompletion:")] + void ResolveTransactionNote (INTransferMoneyIntent intent, Action completion); + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResponse))] + [DisableDefaultCtor] + interface INTransferMoneyIntentResponse { + + [Export ("initWithCode:userActivity:")] + [DesignatedInitializer] + IntPtr Constructor (INTransferMoneyIntentResponseCode code, [NullAllowed] NSUserActivity userActivity); + + [Export ("code")] + INTransferMoneyIntentResponseCode Code { get; } + + [NullAllowed, Export ("fromAccount", ArgumentSemantic.Copy)] + INPaymentAccount FromAccount { get; set; } + + [NullAllowed, Export ("toAccount", ArgumentSemantic.Copy)] + INPaymentAccount ToAccount { get; set; } + + [NullAllowed, Export ("transactionAmount", ArgumentSemantic.Copy)] + INPaymentAmount TransactionAmount { get; set; } + + [NullAllowed, Export ("transactionScheduledDate", ArgumentSemantic.Copy)] + INDateComponentsRange TransactionScheduledDate { get; set; } + + [NullAllowed, Export ("transactionNote")] + string TransactionNote { get; set; } + + [NullAllowed, Export ("transferFee", ArgumentSemantic.Copy)] + INCurrencyAmount TransferFee { get; set; } + } + + [Watch (4,0), NoMac, iOS (11,0)] + [BaseType (typeof (INIntentResolutionResult))] + [DisableDefaultCtor] + interface INVisualCodeTypeResolutionResult { + + [Static] + [Export ("successWithResolvedVisualCodeType:")] + INVisualCodeTypeResolutionResult GetSuccess (INVisualCodeType resolvedVisualCodeType); + + [Static] + [Export ("confirmationRequiredWithVisualCodeTypeToConfirm:")] + INVisualCodeTypeResolutionResult GetConfirmationRequired (INVisualCodeType visualCodeTypeToConfirm); + + // Fixes bug 43205. We need to return the inherited type not the base type + // because users won't be able to downcast easily + + [New] + [Static] + [Export ("needsValue")] + INVisualCodeTypeResolutionResult NeedsValue { get; } + + [New] + [Static] + [Export ("notRequired")] + INVisualCodeTypeResolutionResult NotRequired { get; } + + [New] + [Static] + [Export ("unsupported")] + INVisualCodeTypeResolutionResult Unsupported { get; } + } + } #endif // XAMCORE_2_0 diff --git a/tests/introspection/ApiSelectorTest.cs b/tests/introspection/ApiSelectorTest.cs index cdabbfac65cc..1a112299e559 100644 --- a/tests/introspection/ApiSelectorTest.cs +++ b/tests/introspection/ApiSelectorTest.cs @@ -355,6 +355,13 @@ protected virtual bool Skip (Type type, string selectorName) return true; } break; + case "INSpeakableString": + switch (selectorName) { + case "initWithVocabularyIdentifier:spokenPhrase:pronunciationHint:": + case "initWithIdentifier:spokenPhrase:pronunciationHint:": + return true; + } + break; } // old binding mistake diff --git a/tests/xtro-sharpie/common.pending b/tests/xtro-sharpie/common.pending index db157b52579a..741b275f7882 100644 --- a/tests/xtro-sharpie/common.pending +++ b/tests/xtro-sharpie/common.pending @@ -646,6 +646,9 @@ !missing-selector! INPerson::initWithHandle:nameComponents:contactIdentifier: not bound !missing-selector! INPerson::initWithHandle:nameComponents:displayName:image:contactIdentifier: not bound +## Apple made this @optional in iOS 11 but this is a breaking change +!incorrect-protocol-member! INSpeakable::identifier is OPTIONAL and should NOT be abstract + # GameplayKit ## Fixed in XAMCORE_4_0 diff --git a/tests/xtro-sharpie/ios.pending b/tests/xtro-sharpie/ios.pending index 66591f0e5fe3..32a764f442b9 100644 --- a/tests/xtro-sharpie/ios.pending +++ b/tests/xtro-sharpie/ios.pending @@ -267,6 +267,8 @@ !incorrect-protocol-member! INPayBillIntentHandling::handlePayBill:completion: is REQUIRED and should be abstract !incorrect-protocol-member! INSearchForBillsIntentHandling::handleSearchForBills:completion: is REQUIRED and should be abstract +## Looks like this was removed by apple in Intents iOS 11.0 Beta 1 to Beta 2 - http://codeworkshop.net/objc-diff/sdkdiffs/ios/11.0b2/Intents.html +!extra-protocol-member! unexpected selector INSetProfileInCarIntentHandling::resolveDefaultProfileForSetProfileInCar:withCompletion: found # UIKit diff --git a/tests/xtro-sharpie/osx.pending b/tests/xtro-sharpie/osx.pending index 2f465e26edce..59825e936003 100644 --- a/tests/xtro-sharpie/osx.pending +++ b/tests/xtro-sharpie/osx.pending @@ -298,6 +298,9 @@ !unknown-native-enum! INRelativeSetting bound !unknown-type! INRelativeSettingResolutionResult bound +## The signature uses INBooleanResolutionResult which is not available on mac +!missing-protocol-member! INSearchCallHistoryIntentHandling::resolveUnseenForSearchCallHistory:withCompletion: not found + # Used in sandbox for NSOpen/Save panel but never should have been bound. #if !XAMCORE_3_0'ed !unknown-type! NSRemoteOpenPanel bound !unknown-type! NSRemoteSavePanel bound diff --git a/tests/xtro-sharpie/watchos.pending b/tests/xtro-sharpie/watchos.pending index 73885ae38efd..b86185cb650b 100644 --- a/tests/xtro-sharpie/watchos.pending +++ b/tests/xtro-sharpie/watchos.pending @@ -111,6 +111,18 @@ ## Waiting on a radar https://trello.com/c/h8xBlKTt !missing-selector! +INPreferences::requestSiriAuthorization: not bound +## Bound with no availability information, removing them is a breaking change +## but I am not sure if they should be in WatchOS since they are from last year +## and seems that intro did not complain, also there are others INCar* that are +## explicitly available in WatchOS +!unknown-type! INCarAirCirculationModeResolutionResult bound +!unknown-type! INCarAudioSourceResolutionResult bound +!unknown-type! INCarDefrosterResolutionResult bound +!unknown-type! INCarSeatResolutionResult bound +!unknown-type! INRadioTypeResolutionResult bound +!unknown-type! INRelativeReferenceResolutionResult bound +!unknown-type! INRelativeSettingResolutionResult bound + #PassKit ## No availability macro is provided for PKLabeledValue on watchOS / radar: https://trello.com/c/MvaHEZlc From c5ef2f456a16d3be45bf91c6b0ee6cf22ff1e2e8 Mon Sep 17 00:00:00 2001 From: Alex Soto Date: Tue, 15 Aug 2017 09:25:58 -0500 Subject: [PATCH 2/4] [Intents] Implement feedback --- src/intents.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/intents.cs b/src/intents.cs index a4c3e543907d..06c59d1b8f4c 100644 --- a/src/intents.cs +++ b/src/intents.cs @@ -2061,8 +2061,8 @@ interface INDateComponentsRange : NSCopying, NSSecureCoding { [Watch (4,0), Mac (10,13, onlyOn64:true), iOS (11,0)] [Export ("EKRecurrenceRule")] - [return: NullAllowed] - EKRecurrenceRule GetEKRecurrenceRule (); + [NullAllowed] + EKRecurrenceRule EKRecurrenceRule { get; } } [Introduced (PlatformName.iOS, 10, 0)] From 30378aae25762bd47b37ff3db2fb384dc3773241 Mon Sep 17 00:00:00 2001 From: Alex Soto Date: Tue, 15 Aug 2017 09:41:16 -0500 Subject: [PATCH 3/4] [Intents] Add a generic version for INInteraction.GetParameterValue --- src/Intents/INInteraction.cs | 24 ++++++++++++++++++++++++ src/frameworks.sources | 1 + src/intents.cs | 4 ++-- 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 src/Intents/INInteraction.cs diff --git a/src/Intents/INInteraction.cs b/src/Intents/INInteraction.cs new file mode 100644 index 000000000000..e5f43f008fac --- /dev/null +++ b/src/Intents/INInteraction.cs @@ -0,0 +1,24 @@ +// +// INInteraction.cs +// +// Authors: +// Alex Soto +// +// Copyright 2017 Xamarin Inc. All rights reserved. +// + +#if XAMCORE_2_0 +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Intents { + public partial class INInteraction { + + public T GetParameterValue (INParameter parameter) where T : NSObject + { + return Runtime.GetNSObject (_GetParameterValue (parameter)); + } + } +} +#endif diff --git a/src/frameworks.sources b/src/frameworks.sources index eb9150e3badf..e14c46b298f7 100644 --- a/src/frameworks.sources +++ b/src/frameworks.sources @@ -858,6 +858,7 @@ INTENTS_SOURCES = \ Intents/INGetCarLockStatusIntentResponse.cs \ Intents/INGetCarPowerLevelStatusIntentResponse.cs \ Intents/INIntentResolutionResult.cs \ + Intents/INInteraction.cs \ Intents/INMessageAttributeOptionsResolutionResult.cs \ Intents/INMessageAttributeResolutionResult.cs \ Intents/INPaymentStatusResolutionResult.cs \ diff --git a/src/intents.cs b/src/intents.cs index 06c59d1b8f4c..fb79b6df2e8e 100644 --- a/src/intents.cs +++ b/src/intents.cs @@ -2809,10 +2809,10 @@ interface INInteraction : NSSecureCoding, NSCopying { // From INParameter.h INInteraction () + [Internal] [iOS (11,0), Watch (4,0), NoMac] [Export ("parameterValueForParameter:")] - [return: NullAllowed] - NSObject GetParameterValue (INParameter parameter); + IntPtr _GetParameterValue (INParameter parameter); } [Introduced (PlatformName.iOS, 10, 0)] From f9e575d1f9104d2ef1b9810b1d32c037d3a8dbfe Mon Sep 17 00:00:00 2001 From: Alex Soto Date: Tue, 15 Aug 2017 10:02:51 -0500 Subject: [PATCH 4/4] [Intents] Missing check --- src/Intents/INInteraction.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Intents/INInteraction.cs b/src/Intents/INInteraction.cs index e5f43f008fac..5cbf62d41188 100644 --- a/src/Intents/INInteraction.cs +++ b/src/Intents/INInteraction.cs @@ -7,7 +7,7 @@ // Copyright 2017 Xamarin Inc. All rights reserved. // -#if XAMCORE_2_0 +#if XAMCORE_2_0 && !MONOMAC using System; using XamCore.Foundation; using XamCore.ObjCRuntime;