diff --git a/src/PassKit/PKEnums.cs b/src/PassKit/PKEnums.cs index 3763b3c6b03c..1678bb20f253 100644 --- a/src/PassKit/PKEnums.cs +++ b/src/PassKit/PKEnums.cs @@ -124,7 +124,9 @@ public enum PKMerchantCapability : ulong { ThreeDS = 1 << 0, EMV = 1 << 1, Credit = 1 << 2, - Debit = 1 << 3 + Debit = 1 << 3, + [iOS (17, 0), Mac (14, 0), Watch (10, 0), NoTV, MacCatalyst (17, 0)] + InstantFundsOut = 1 << 7, } [NoMac] @@ -386,4 +388,37 @@ public enum PKVehicleConnectionSessionConnectionState : long { Connecting, FailedToConnect, } + + [iOS (17, 0), Mac (14, 0), Watch (10, 0), TV (17, 0), MacCatalyst (17, 0)] + [Native] + public enum PKApplePayLaterAvailability : long { + Available, + UnavailableItemIneligible, + UnavailableRecurringTransaction, + } + + [NoWatch, NoTV, NoMac, iOS (17, 0), MacCatalyst (17, 0)] + [Native] + [ErrorDomain ("PKDisbursementErrorDomain")] + public enum PKDisbursementErrorCode : long { + UnknownError = -1, + UnsupportedCardError = 1, + RecipientContactInvalidError, + } + + [NoWatch, NoTV, NoMac, iOS (17, 0), NoMacCatalyst] + [Native] + public enum PKPayLaterAction : long { + LearnMore = 0, + Calculator, + } + + [NoWatch, NoTV, NoMac, iOS (17, 0), NoMacCatalyst] + [Native] + public enum PKPayLaterDisplayStyle : long { + Standard = 0, + Badge, + Checkout, + Price, + } } diff --git a/src/PassKit/PKPayLaterView.cs b/src/PassKit/PKPayLaterView.cs new file mode 100644 index 000000000000..49c26d19733e --- /dev/null +++ b/src/PassKit/PKPayLaterView.cs @@ -0,0 +1,72 @@ +// Can be uncommented when this issue is resolved: # https://github.com/xamarin/xamarin-macios/issues/19271 + +// #nullable enable + +// #if IOS && !__MACCATALYST__ + +// using System; +// using System.Runtime.InteropServices; +// using System.Runtime.CompilerServices; +// using ObjCRuntime; +// using Foundation; +// using PassKit; + +// #if !NET +// using NativeHandle = System.IntPtr; +// #endif + +// namespace PassKit { + +// public partial class PKPayLaterView { + +// #if !NET +// delegate void PKPayLaterValidateAmountCompletionHandler (IntPtr block, byte eligible); +// static PKPayLaterValidateAmountCompletionHandler static_ValidateAmount = TrampolineValidateAmount; + +// [MonoPInvokeCallback (typeof (PKPayLaterValidateAmountCompletionHandler))] +// #else +// [UnmanagedCallersOnly] +// #endif +// static void TrampolineValidateAmount (IntPtr block, byte eligible) +// { +// var del = BlockLiteral.GetTarget> (block); +// if (del is not null) { +// del (eligible != 0); +// } +// } + +// #if NET +// [SupportedOSPlatform ("ios17.0")] +// [UnsupportedOSPlatform ("maccatalyst")] +// [UnsupportedOSPlatform ("macos")] +// [UnsupportedOSPlatform ("tvos")] +// #endif +// [BindingImpl (BindingImplOptions.Optimizable)] +// public static void ValidateAmount (NSDecimalNumber amount, string currencyCode, Action callback) +// { +// if (callback is null) +// ObjCRuntime.ThrowHelper.ThrowArgumentNullException (nameof (callback)); + +// unsafe { +// #if NET +// delegate* unmanaged trampoline = &TrampolineValidateAmount; +// using var block = new BlockLiteral (trampoline, callback, typeof (PKPayLaterView), nameof (TrampolineValidateAmount)); +// #else +// using var block = new BlockLiteral (); +// block.SetupBlockUnsafe (static_ValidateAmount, callback); +// #endif +// var nsCurrencyCodePtr = NSString.CreateNative (currencyCode); +// try { +// PKPayLaterValidateAmount (amount.Handle, nsCurrencyCodePtr, &block); +// } finally { +// NSString.ReleaseNative (nsCurrencyCodePtr); +// } +// } +// } + +// [DllImport (Constants.PassKitLibrary)] +// unsafe static extern void PKPayLaterValidateAmount (IntPtr /* NSDecimalNumber */ amount, IntPtr /* NSString */ currencyCode, BlockLiteral* callback); +// } +// } + +// #endif diff --git a/src/frameworks.sources b/src/frameworks.sources index 0356baedf0b2..637967b37864 100644 --- a/src/frameworks.sources +++ b/src/frameworks.sources @@ -1443,6 +1443,7 @@ PASSKIT_API_SOURCES = \ PASSKIT_SOURCES = \ PassKit/PKCompat.cs \ + PassKit/PKPayLaterView.cs \ PassKit/PKPaymentRequest.cs \ PassKit/PKShareablePassMetadata.cs \ diff --git a/src/passkit.cs b/src/passkit.cs index 45593b71c01f..c383638d824f 100644 --- a/src/passkit.cs +++ b/src/passkit.cs @@ -22,6 +22,7 @@ using UIViewController = AppKit.NSViewController; using UIWindow = AppKit.NSWindow; using UIControl = AppKit.NSControl; +using UIView = AppKit.NSView; #else using UIKit; #if IOS @@ -406,6 +407,10 @@ interface PKPaymentAuthorizationViewController { [Export ("initWithPaymentRequest:")] NativeHandle Constructor (PKPaymentRequest request); + [NoWatch, NoTV, NoMac, iOS (17, 0), MacCatalyst (17, 0)] + [Export ("initWithDisbursementRequest:")] + NativeHandle Constructor (PKDisbursementRequest request); + [Export ("delegate", ArgumentSemantic.UnsafeUnretained)] [NullAllowed] NSObject WeakDelegate { get; set; } @@ -425,6 +430,21 @@ interface PKPaymentAuthorizationViewController { [Static] [Export ("canMakePaymentsUsingNetworks:capabilities:")] bool CanMakePaymentsUsingNetworks (string [] supportedNetworks, PKMerchantCapability capabilties); + + [NoWatch, NoTV, NoMac, iOS (17, 0), MacCatalyst (17, 0)] + [Static] + [Export ("supportsDisbursements")] + bool SupportsDisbursements (); + + [NoWatch, NoTV, NoMac, iOS (17, 0), MacCatalyst (17, 0)] + [Static] + [Export ("supportsDisbursementsUsingNetworks:")] + bool SupportsDisbursements (string [] supportedNetworks); + + [NoWatch, NoTV, NoMac, iOS (17, 0), MacCatalyst (17, 0)] + [Static] + [Export ("supportsDisbursementsUsingNetworks:capabilities:")] + bool SupportsDisbursements (string [] supportedNetworks, PKMerchantCapability capabilities); } #endif @@ -646,6 +666,10 @@ interface PKPaymentRequest { [NoWatch, Mac (13, 3), iOS (16, 4), MacCatalyst (16, 4), NoTV] [Export ("deferredPaymentRequest", ArgumentSemantic.Strong)] PKDeferredPaymentRequest DeferredPaymentRequest { get; set; } + + [iOS (17, 0), Mac (14, 0), Watch (10, 0), NoTV, MacCatalyst (17, 0)] + [Export ("applePayLaterAvailability", ArgumentSemantic.Assign)] + PKApplePayLaterAvailability ApplePayLaterAvailability { get; set; } } [Mac (11, 0)] @@ -1141,6 +1165,14 @@ interface PKPaymentNetwork { [iOS (16, 0), Mac (13, 0), Watch (9, 0), NoTV, MacCatalyst (16, 0)] [Field ("PKPaymentNetworkBancontact")] NSString Bancontact { get; } + + [iOS (17, 0), Mac (14, 0), Watch (10, 0), NoTV, MacCatalyst (17, 0)] + [Field ("PKPaymentNetworkPagoBancomat")] + NSString PagoBancomat { get; } + + [iOS (17, 0), Mac (14, 0), Watch (10, 0), NoTV, MacCatalyst (17, 0)] + [Field ("PKPaymentNetworkTmoney")] + NSString Tmoney { get; } } #if !WATCH @@ -1229,6 +1261,25 @@ interface PKPaymentAuthorizationController { [Async] [Export ("dismissWithCompletion:")] void Dismiss ([NullAllowed] Action completion); + + [NoWatch, NoTV, NoMac, iOS (17, 0), MacCatalyst (17, 0)] + [Static] + [Export ("supportsDisbursements")] + bool SupportsDisbursements (); + + [NoWatch, NoTV, NoMac, iOS (17, 0), MacCatalyst (17, 0)] + [Static] + [Export ("supportsDisbursementsUsingNetworks:")] + bool SupportsDisbursements (string [] supportedNetworks); + + [NoWatch, NoTV, NoMac, iOS (17, 0), MacCatalyst (17, 0)] + [Static] + [Export ("supportsDisbursementsUsingNetworks:capabilities:")] + bool SupportsDisbursements (string [] supportedNetworks, PKMerchantCapability capabilities); + + [NoWatch, NoTV, NoMac, iOS (17, 0), MacCatalyst (17, 0)] + [Export ("initWithDisbursementRequest:")] + NativeHandle Constructor (PKDisbursementRequest request); } interface IPKPaymentAuthorizationControllerDelegate { } @@ -1554,15 +1605,19 @@ interface PKPaymentErrorKeys { interface IPKDisbursementAuthorizationControllerDelegate { } +#if !XAMCORE_5_0 [NoMac] // only used in non-macOS API [NoWatch] [iOS (12, 2)] [MacCatalyst (13, 1)] + [Obsoleted (PlatformName.iOS, 17, 0, message: "No longer used.")] + [Obsoleted (PlatformName.MacCatalyst, 17, 0, message: "No longer used.")] [Native] public enum PKDisbursementRequestSchedule : long { OneTime, Future, } +#endif [NoWatch] [iOS (12, 2)] @@ -1571,11 +1626,57 @@ public enum PKDisbursementRequestSchedule : long { [BaseType (typeof (NSObject))] interface PKDisbursementRequest { - [NullAllowed, Export ("currencyCode")] + [Export ("currencyCode")] string CurrencyCode { get; set; } - [NullAllowed, Export ("summaryItems", ArgumentSemantic.Copy)] + [Export ("summaryItems", ArgumentSemantic.Copy)] PKPaymentSummaryItem [] SummaryItems { get; set; } + + [iOS (17, 0), NoMac, NoWatch, NoTV, NoMacCatalyst] + [Export ("merchantIdentifier")] + string MerchantIdentifier { get; set; } + + [iOS (17, 0), NoMac, NoWatch, NoTV, NoMacCatalyst] + [Export ("regionCode")] + string RegionCode { get; set; } + + [iOS (17, 0), NoMac, NoWatch, NoTV, NoMacCatalyst] + [Export ("supportedNetworks", ArgumentSemantic.Copy)] + string [] SupportedNetworks { get; set; } + + [iOS (17, 0), NoMac, NoWatch, NoTV, NoMacCatalyst] + [Export ("merchantCapabilities", ArgumentSemantic.Assign)] + PKMerchantCapability MerchantCapabilities { get; set; } + + [iOS (17, 0), NoMac, NoWatch, NoTV, NoMacCatalyst] + [Export ("requiredRecipientContactFields", ArgumentSemantic.Strong)] + string [] RequiredRecipientContactFields { get; set; } + + [iOS (17, 0), NoMac, NoWatch, NoTV, NoMacCatalyst] + [NullAllowed, Export ("recipientContact", ArgumentSemantic.Strong)] + PKContact RecipientContact { get; set; } + + [iOS (17, 0), NoMac, NoWatch, NoTV, NoMacCatalyst] + [NullAllowed, Export ("supportedRegions", ArgumentSemantic.Copy)] + string [] SupportedRegions { get; set; } + + [iOS (17, 0), NoMac, NoWatch, NoTV, NoMacCatalyst] + [NullAllowed, Export ("applicationData", ArgumentSemantic.Copy)] + NSData ApplicationData { get; set; } + + [iOS (17, 0), NoMac, NoWatch, NoTV, NoMacCatalyst] + [Export ("initWithMerchantIdentifier:currencyCode:regionCode:supportedNetworks:merchantCapabilities:summaryItems:")] + NativeHandle Constructor (string merchantIdentifier, string currencyCode, string regionCode, string [] supportedNetworks, PKMerchantCapability merchantCapabilities, PKPaymentSummaryItem [] summaryItems); + + [iOS (17, 0), NoMac, NoWatch, NoTV, NoMacCatalyst] + [Static] + [Export ("disbursementContactInvalidErrorWithContactField:localizedDescription:")] + NSError GetDisbursementContactInvalidError (string field, [NullAllowed] string localizedDescription); + + [iOS (17, 0), NoMac, NoWatch, NoTV, NoMacCatalyst] + [Static] + [Export ("disbursementCardUnsupportedError")] + NSError DisbursementCardUnsupportedError { get; } } [Mac (11, 0)] @@ -1671,12 +1772,12 @@ interface PKAddCarKeyPassConfiguration { PKRadioTechnology SupportedRadioTechnologies { get; set; } // headers say [Watch (9,0)] but PKAddSecureElementPassConfiguration is not supported for watch - [iOS (16, 0), Mac (13, 0), NoMacCatalyst, NoTV, NoWatch] + [iOS (16, 0), Mac (13, 0), MacCatalyst (16, 0), NoTV, NoWatch] [Export ("manufacturerIdentifier")] string ManufacturerIdentifier { get; set; } // headers say [Watch (9,0)] but PKAddSecureElementPassConfiguration is not supported for watch - [iOS (16, 0), Mac (13, 0), NoMacCatalyst, NoTV, NoWatch] + [iOS (16, 0), Mac (13, 0), MacCatalyst (16, 0), NoTV, NoWatch] [NullAllowed, Export ("provisioningTemplateIdentifier", ArgumentSemantic.Strong)] string ProvisioningTemplateIdentifier { get; set; } } @@ -2645,4 +2746,65 @@ interface PKDeferredPaymentRequest { [DesignatedInitializer] NativeHandle Constructor (string paymentDescription, PKDeferredPaymentSummaryItem deferredBilling, NSUrl managementUrl); } + + [NoWatch, NoTV, NoMac, iOS (17, 0), NoMacCatalyst] + [BaseType (typeof (UIView))] + [DisableDefaultCtor] + interface PKPayLaterView { + + [Export ("initWithAmount:currencyCode:")] + NativeHandle Constructor (NSDecimalNumber amount, string currencyCode); + + [NullAllowed, Wrap ("WeakDelegate")] + IPKPayLaterViewDelegate Delegate { get; set; } + + [NullAllowed, Export ("delegate", ArgumentSemantic.Assign)] + NSObject WeakDelegate { get; set; } + + [Export ("amount", ArgumentSemantic.Copy)] + NSDecimalNumber Amount { get; set; } + + [Export ("currencyCode")] + string CurrencyCode { get; set; } + + [Export ("displayStyle", ArgumentSemantic.Assign)] + PKPayLaterDisplayStyle DisplayStyle { get; set; } + + [Export ("action", ArgumentSemantic.Assign)] + PKPayLaterAction Action { get; set; } + } + + interface IPKPayLaterViewDelegate { } + + [NoWatch, NoTV, NoMac, iOS (17, 0), NoMacCatalyst] +#if NET + [Protocol, Model] +#else + [Protocol, Model (AutoGeneratedName = true)] +#endif + [BaseType (typeof (NSObject))] + interface PKPayLaterViewDelegate { + [Abstract] + [Export ("payLaterViewDidUpdateHeight:")] + void PayLaterViewDidUpdateHeight (PKPayLaterView view); + } + + [NoWatch, NoTV, NoMac, iOS (17, 0), MacCatalyst (17, 0)] + [Static] + interface PKDirbursementError { + [Field ("PKDisbursementErrorContactFieldUserInfoKey")] + NSString ContactFieldUserInfoKey { get; } + } + + [NoWatch, NoTV, NoMac, iOS (17, 0), MacCatalyst (17, 0)] + [BaseType (typeof (PKPaymentSummaryItem))] + [DisableDefaultCtor] + interface PKInstantFundsOutFeeSummaryItem : NSCoding, NSCopying, NSSecureCoding { + } + + [NoWatch, NoTV, NoMac, iOS (17, 0), MacCatalyst (17, 0)] + [BaseType (typeof (PKPaymentSummaryItem))] + [DisableDefaultCtor] + interface PKDisbursementSummaryItem : NSCoding, NSCopying, NSSecureCoding { + } } diff --git a/tests/introspection/ApiCtorInitTest.cs b/tests/introspection/ApiCtorInitTest.cs index 756d723da6ee..970cd6e11422 100644 --- a/tests/introspection/ApiCtorInitTest.cs +++ b/tests/introspection/ApiCtorInitTest.cs @@ -511,6 +511,11 @@ protected virtual bool Match (ConstructorInfo ctor, Type type) if (cstr == "Void .ctor(System.String, Foundation.NSBundle)") return true; break; + case "PKPayLaterView": + // headers have: (instancetype)initWithFrame:(CGRect)frame NS_UNAVAILABLE; + if (cstr == "Void .ctor(CoreGraphics.CGRect)") + return true; + break; case "VNDetectedPoint": // This class is not meant to be instantiated if (cstr == "Void .ctor(Double, Double)") diff --git a/tests/monotouch-test/PassKit/PKPayLaterViewTest.cs b/tests/monotouch-test/PassKit/PKPayLaterViewTest.cs new file mode 100644 index 000000000000..54ab17be2f74 --- /dev/null +++ b/tests/monotouch-test/PassKit/PKPayLaterViewTest.cs @@ -0,0 +1,31 @@ +// Can be uncommented when this issue is resolved: # https://github.com/xamarin/xamarin-macios/issues/19271 + +// #if __IOS__ && !__MACCATALYST__ + +// using System; +// using Foundation; +// using UIKit; +// using PassKit; +// using NUnit.Framework; + +// namespace MonoTouchFixtures.PassKit { + +// [TestFixture] +// [Preserve (AllMembers = true)] +// public class PKPayLaterViewTest { + +// [Test] +// public void ValidateAmountTest () +// { +// TestRuntime.AssertXcodeVersion (15, 0); + +// for (int i = 0; i < 1000; i++){ +// PKPayLaterView.ValidateAmount (new NSDecimalNumber (i), "USD", (eligible) => { +// Assert.False (eligible); +// }); +// } +// } +// } +// } + +// #endif diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-PassKit.ignore b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-PassKit.ignore index 13e1f4882a5f..9398d90fdd01 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-PassKit.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-PassKit.ignore @@ -7,3 +7,8 @@ !missing-selector! PKIssuerProvisioningExtensionHandler::remotePassEntriesWithCompletion: not bound !missing-selector! PKIssuerProvisioningExtensionHandler::statusWithCompletion: not bound !missing-type! PKIssuerProvisioningExtensionHandler not bound + +# Breaking change, but added in XAMCORE_5_0 +!incorrect-protocol-member! PKAddSecureElementPassViewControllerDelegate::addSecureElementPassViewController:didFinishAddingSecureElementPass:error: is OPTIONAL and should NOT be abstract +!extra-null-allowed! 'System.Void PassKit.PKDisbursementRequest::set_CurrencyCode(System.String)' has a extraneous [NullAllowed] on parameter #0 +!extra-null-allowed! 'System.Void PassKit.PKDisbursementRequest::set_SummaryItems(PassKit.PKPaymentSummaryItem[])' has a extraneous [NullAllowed] on parameter #0 diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-PassKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-PassKit.todo deleted file mode 100644 index 2a2bfa4bd314..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-PassKit.todo +++ /dev/null @@ -1,152 +0,0 @@ -!incorrect-protocol-member! PKAddSecureElementPassViewControllerDelegate::addSecureElementPassViewController:didFinishAddingSecureElementPass:error: is OPTIONAL and should NOT be abstract -!missing-enum! PKIdentityButtonLabel not bound -!missing-enum! PKIdentityButtonStyle not bound -!missing-enum! PKIdentityError not bound -!missing-enum! PKShareSecureElementPassErrorCode not bound -!missing-enum! PKShareSecureElementPassResult not bound -!missing-enum! PKVehicleConnectionErrorCode not bound -!missing-enum! PKVehicleConnectionSessionConnectionState not bound -!missing-enum-value! PKAddSecureElementPassErrorCode native value PKAddSecureElementPassOSVersionNotSupportedError = 6 not bound -!missing-field! PKIdentityErrorDomain not bound -!missing-field! PKShareSecureElementPassErrorDomain not bound -!missing-protocol! PKIdentityDocumentDescriptor not bound -!missing-protocol! PKShareSecureElementPassViewControllerDelegate not bound -!missing-protocol! PKVehicleConnectionDelegate not bound -!missing-selector! +PKAddShareablePassConfiguration::configurationForPassMetadata:primaryAction:completion: not bound -!missing-selector! +PKIdentityButton::buttonWithLabel:style: not bound -!missing-selector! +PKIdentityElement::addressElement not bound -!missing-selector! +PKIdentityElement::ageElement not bound -!missing-selector! +PKIdentityElement::ageThresholdElementWithAge: not bound -!missing-selector! +PKIdentityElement::dateOfBirthElement not bound -!missing-selector! +PKIdentityElement::documentExpirationDateElement not bound -!missing-selector! +PKIdentityElement::documentNumberElement not bound -!missing-selector! +PKIdentityElement::drivingPrivilegesElement not bound -!missing-selector! +PKIdentityElement::familyNameElement not bound -!missing-selector! +PKIdentityElement::givenNameElement not bound -!missing-selector! +PKIdentityElement::issuingAuthorityElement not bound -!missing-selector! +PKIdentityElement::portraitElement not bound -!missing-selector! +PKIdentityIntentToStore::mayStoreIntent not bound -!missing-selector! +PKIdentityIntentToStore::mayStoreIntentForDays: not bound -!missing-selector! +PKIdentityIntentToStore::willNotStoreIntent not bound -!missing-selector! +PKShareablePassMetadataPreview::previewWithPassThumbnail:localizedDescription: not bound -!missing-selector! +PKShareablePassMetadataPreview::previewWithTemplateIdentifier: not bound -!missing-selector! +PKVehicleConnectionSession::sessionForPass:delegate:completion: not bound -!missing-selector! PKAddCarKeyPassConfiguration::manufacturerIdentifier not bound -!missing-selector! PKAddCarKeyPassConfiguration::provisioningTemplateIdentifier not bound -!missing-selector! PKAddCarKeyPassConfiguration::setManufacturerIdentifier: not bound -!missing-selector! PKAddCarKeyPassConfiguration::setProvisioningTemplateIdentifier: not bound -!missing-selector! PKAutomaticReloadPaymentRequest::automaticReloadBilling not bound -!missing-selector! PKAutomaticReloadPaymentRequest::billingAgreement not bound -!missing-selector! PKAutomaticReloadPaymentRequest::initWithPaymentDescription:automaticReloadBilling:managementURL: not bound -!missing-selector! PKAutomaticReloadPaymentRequest::managementURL not bound -!missing-selector! PKAutomaticReloadPaymentRequest::paymentDescription not bound -!missing-selector! PKAutomaticReloadPaymentRequest::setAutomaticReloadBilling: not bound -!missing-selector! PKAutomaticReloadPaymentRequest::setBillingAgreement: not bound -!missing-selector! PKAutomaticReloadPaymentRequest::setManagementURL: not bound -!missing-selector! PKAutomaticReloadPaymentRequest::setPaymentDescription: not bound -!missing-selector! PKAutomaticReloadPaymentRequest::setTokenNotificationURL: not bound -!missing-selector! PKAutomaticReloadPaymentRequest::tokenNotificationURL not bound -!missing-selector! PKAutomaticReloadPaymentSummaryItem::setThresholdAmount: not bound -!missing-selector! PKAutomaticReloadPaymentSummaryItem::thresholdAmount not bound -!missing-selector! PKIdentityAuthorizationController::cancelRequest not bound -!missing-selector! PKIdentityAuthorizationController::checkCanRequestDocument:completion: not bound -!missing-selector! PKIdentityAuthorizationController::init not bound -!missing-selector! PKIdentityAuthorizationController::requestDocument:completion: not bound -!missing-selector! PKIdentityButton::cornerRadius not bound -!missing-selector! PKIdentityButton::initWithLabel:style: not bound -!missing-selector! PKIdentityButton::setCornerRadius: not bound -!missing-selector! PKIdentityDocument::encryptedData not bound -!missing-selector! PKIdentityRequest::descriptor not bound -!missing-selector! PKIdentityRequest::merchantIdentifier not bound -!missing-selector! PKIdentityRequest::nonce not bound -!missing-selector! PKIdentityRequest::setDescriptor: not bound -!missing-selector! PKIdentityRequest::setMerchantIdentifier: not bound -!missing-selector! PKIdentityRequest::setNonce: not bound -!missing-selector! PKPassLibrary::encryptedServiceProviderDataForSecureElementPass:completion: not bound -!missing-selector! PKPaymentAuthorizationResult::orderDetails not bound -!missing-selector! PKPaymentAuthorizationResult::setOrderDetails: not bound -!missing-selector! PKPaymentOrderDetails::authenticationToken not bound -!missing-selector! PKPaymentOrderDetails::initWithOrderTypeIdentifier:orderIdentifier:webServiceURL:authenticationToken: not bound -!missing-selector! PKPaymentOrderDetails::orderIdentifier not bound -!missing-selector! PKPaymentOrderDetails::orderTypeIdentifier not bound -!missing-selector! PKPaymentOrderDetails::setAuthenticationToken: not bound -!missing-selector! PKPaymentOrderDetails::setOrderIdentifier: not bound -!missing-selector! PKPaymentOrderDetails::setOrderTypeIdentifier: not bound -!missing-selector! PKPaymentOrderDetails::setWebServiceURL: not bound -!missing-selector! PKPaymentOrderDetails::webServiceURL not bound -!missing-selector! PKPaymentRequest::automaticReloadPaymentRequest not bound -!missing-selector! PKPaymentRequest::multiTokenContexts not bound -!missing-selector! PKPaymentRequest::recurringPaymentRequest not bound -!missing-selector! PKPaymentRequest::setAutomaticReloadPaymentRequest: not bound -!missing-selector! PKPaymentRequest::setMultiTokenContexts: not bound -!missing-selector! PKPaymentRequest::setRecurringPaymentRequest: not bound -!missing-selector! PKPaymentRequestUpdate::automaticReloadPaymentRequest not bound -!missing-selector! PKPaymentRequestUpdate::multiTokenContexts not bound -!missing-selector! PKPaymentRequestUpdate::recurringPaymentRequest not bound -!missing-selector! PKPaymentRequestUpdate::setAutomaticReloadPaymentRequest: not bound -!missing-selector! PKPaymentRequestUpdate::setMultiTokenContexts: not bound -!missing-selector! PKPaymentRequestUpdate::setRecurringPaymentRequest: not bound -!missing-selector! PKPaymentTokenContext::amount not bound -!missing-selector! PKPaymentTokenContext::externalIdentifier not bound -!missing-selector! PKPaymentTokenContext::initWithMerchantIdentifier:externalIdentifier:merchantName:merchantDomain:amount: not bound -!missing-selector! PKPaymentTokenContext::merchantDomain not bound -!missing-selector! PKPaymentTokenContext::merchantIdentifier not bound -!missing-selector! PKPaymentTokenContext::merchantName not bound -!missing-selector! PKPaymentTokenContext::setAmount: not bound -!missing-selector! PKPaymentTokenContext::setExternalIdentifier: not bound -!missing-selector! PKPaymentTokenContext::setMerchantDomain: not bound -!missing-selector! PKPaymentTokenContext::setMerchantIdentifier: not bound -!missing-selector! PKPaymentTokenContext::setMerchantName: not bound -!missing-selector! PKRecurringPaymentRequest::billingAgreement not bound -!missing-selector! PKRecurringPaymentRequest::initWithPaymentDescription:regularBilling:managementURL: not bound -!missing-selector! PKRecurringPaymentRequest::managementURL not bound -!missing-selector! PKRecurringPaymentRequest::paymentDescription not bound -!missing-selector! PKRecurringPaymentRequest::regularBilling not bound -!missing-selector! PKRecurringPaymentRequest::setBillingAgreement: not bound -!missing-selector! PKRecurringPaymentRequest::setManagementURL: not bound -!missing-selector! PKRecurringPaymentRequest::setPaymentDescription: not bound -!missing-selector! PKRecurringPaymentRequest::setRegularBilling: not bound -!missing-selector! PKRecurringPaymentRequest::setTokenNotificationURL: not bound -!missing-selector! PKRecurringPaymentRequest::setTrialBilling: not bound -!missing-selector! PKRecurringPaymentRequest::tokenNotificationURL not bound -!missing-selector! PKRecurringPaymentRequest::trialBilling not bound -!missing-selector! PKShareablePassMetadata::cardTemplateIdentifier not bound -!missing-selector! PKShareablePassMetadata::initWithProvisioningCredentialIdentifier:sharingInstanceIdentifier:cardConfigurationIdentifier:preview: not bound -!missing-selector! PKShareablePassMetadata::initWithProvisioningCredentialIdentifier:sharingInstanceIdentifier:cardTemplateIdentifier:preview: not bound -!missing-selector! PKShareablePassMetadata::preview not bound -!missing-selector! PKShareablePassMetadata::serverEnvironmentIdentifier not bound -!missing-selector! PKShareablePassMetadata::setAccountHash: not bound -!missing-selector! PKShareablePassMetadata::setRelyingPartyIdentifier: not bound -!missing-selector! PKShareablePassMetadata::setRequiresUnifiedAccessCapableDevice: not bound -!missing-selector! PKShareablePassMetadata::setServerEnvironmentIdentifier: not bound -!missing-selector! PKShareablePassMetadataPreview::initWithPassThumbnail:localizedDescription: not bound -!missing-selector! PKShareablePassMetadataPreview::initWithTemplateIdentifier: not bound -!missing-selector! PKShareablePassMetadataPreview::localizedDescription not bound -!missing-selector! PKShareablePassMetadataPreview::ownerDisplayName not bound -!missing-selector! PKShareablePassMetadataPreview::passThumbnailImage not bound -!missing-selector! PKShareablePassMetadataPreview::provisioningTemplateIdentifier not bound -!missing-selector! PKShareablePassMetadataPreview::setOwnerDisplayName: not bound -!missing-selector! PKShareSecureElementPassViewController::delegate not bound -!missing-selector! PKShareSecureElementPassViewController::initWithSecureElementPass:delegate: not bound -!missing-selector! PKShareSecureElementPassViewController::promptToShareURL not bound -!missing-selector! PKShareSecureElementPassViewController::setDelegate: not bound -!missing-selector! PKShareSecureElementPassViewController::setPromptToShareURL: not bound -!missing-selector! PKVehicleConnectionSession::connectionStatus not bound -!missing-selector! PKVehicleConnectionSession::delegate not bound -!missing-selector! PKVehicleConnectionSession::invalidate not bound -!missing-selector! PKVehicleConnectionSession::sendData:error: not bound -!missing-type! PKAutomaticReloadPaymentRequest not bound -!missing-type! PKAutomaticReloadPaymentSummaryItem not bound -!missing-type! PKIdentityAuthorizationController not bound -!missing-type! PKIdentityButton not bound -!missing-type! PKIdentityDocument not bound -!missing-type! PKIdentityDriversLicenseDescriptor not bound -!missing-type! PKIdentityElement not bound -!missing-type! PKIdentityIntentToStore not bound -!missing-type! PKIdentityRequest not bound -!missing-type! PKPaymentOrderDetails not bound -!missing-type! PKPaymentTokenContext not bound -!missing-type! PKRecurringPaymentRequest not bound -!missing-type! PKShareablePassMetadataPreview not bound -!missing-type! PKShareSecureElementPassViewController not bound -!missing-type! PKVehicleConnectionSession not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-PassKit.ignore b/tests/xtro-sharpie/api-annotations-dotnet/iOS-PassKit.ignore index fc4194824e61..a4d141ea5e35 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-PassKit.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/iOS-PassKit.ignore @@ -1,2 +1,11 @@ # Breaking change, but added in XAMCORE_5_0 !incorrect-protocol-member! PKAddSecureElementPassViewControllerDelegate::addSecureElementPassViewController:didFinishAddingSecureElementPass:error: is OPTIONAL and should NOT be abstract + +# No longer used enum, will be removed in XAMCORE_5_0 +!unknown-native-enum! PKDisbursementRequestSchedule bound + +# needed to allow our WeakDelegate wrap +!extra-null-allowed! 'System.Void PassKit.PKPayLaterView::set_WeakDelegate(Foundation.NSObject)' has a extraneous [NullAllowed] on parameter #0 + +# https://github.com/xamarin/xamarin-macios/issues/19271 +!missing-pinvoke! PKPayLaterValidateAmount is not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-PassKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/iOS-PassKit.todo deleted file mode 100644 index cbd032f43616..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-PassKit.todo +++ /dev/null @@ -1,57 +0,0 @@ -!extra-null-allowed! 'System.Void PassKit.PKDisbursementRequest::set_CurrencyCode(System.String)' has a extraneous [NullAllowed] on parameter #0 -!extra-null-allowed! 'System.Void PassKit.PKDisbursementRequest::set_SummaryItems(PassKit.PKPaymentSummaryItem[])' has a extraneous [NullAllowed] on parameter #0 -!missing-enum! PKApplePayLaterAvailability not bound -!missing-enum! PKDisbursementErrorCode not bound -!missing-enum! PKPayLaterAction not bound -!missing-enum! PKPayLaterDisplayStyle not bound -!missing-enum-value! PKMerchantCapability native value PKMerchantCapabilityInstantFundsOut = 128 not bound -!missing-field! PKDisbursementErrorContactFieldUserInfoKey not bound -!missing-field! PKDisbursementErrorDomain not bound -!missing-field! PKPaymentNetworkTmoney not bound -!missing-pinvoke! PKPayLaterValidateAmount is not bound -!missing-protocol! PKPayLaterViewDelegate not bound -!missing-selector! +PKDisbursementRequest::disbursementCardUnsupportedError not bound -!missing-selector! +PKDisbursementRequest::disbursementContactInvalidErrorWithContactField:localizedDescription: not bound -!missing-selector! +PKPaymentAuthorizationController::supportsDisbursements not bound -!missing-selector! +PKPaymentAuthorizationController::supportsDisbursementsUsingNetworks: not bound -!missing-selector! +PKPaymentAuthorizationController::supportsDisbursementsUsingNetworks:capabilities: not bound -!missing-selector! +PKPaymentAuthorizationViewController::supportsDisbursements not bound -!missing-selector! +PKPaymentAuthorizationViewController::supportsDisbursementsUsingNetworks: not bound -!missing-selector! +PKPaymentAuthorizationViewController::supportsDisbursementsUsingNetworks:capabilities: not bound -!missing-selector! PKDisbursementRequest::applicationData not bound -!missing-selector! PKDisbursementRequest::initWithMerchantIdentifier:currencyCode:regionCode:supportedNetworks:merchantCapabilities:summaryItems: not bound -!missing-selector! PKDisbursementRequest::merchantCapabilities not bound -!missing-selector! PKDisbursementRequest::merchantIdentifier not bound -!missing-selector! PKDisbursementRequest::recipientContact not bound -!missing-selector! PKDisbursementRequest::regionCode not bound -!missing-selector! PKDisbursementRequest::requiredRecipientContactFields not bound -!missing-selector! PKDisbursementRequest::setApplicationData: not bound -!missing-selector! PKDisbursementRequest::setMerchantCapabilities: not bound -!missing-selector! PKDisbursementRequest::setMerchantIdentifier: not bound -!missing-selector! PKDisbursementRequest::setRecipientContact: not bound -!missing-selector! PKDisbursementRequest::setRegionCode: not bound -!missing-selector! PKDisbursementRequest::setRequiredRecipientContactFields: not bound -!missing-selector! PKDisbursementRequest::setSupportedNetworks: not bound -!missing-selector! PKDisbursementRequest::setSupportedRegions: not bound -!missing-selector! PKDisbursementRequest::supportedNetworks not bound -!missing-selector! PKDisbursementRequest::supportedRegions not bound -!missing-selector! PKPayLaterView::action not bound -!missing-selector! PKPayLaterView::amount not bound -!missing-selector! PKPayLaterView::currencyCode not bound -!missing-selector! PKPayLaterView::delegate not bound -!missing-selector! PKPayLaterView::displayStyle not bound -!missing-selector! PKPayLaterView::initWithAmount:currencyCode: not bound -!missing-selector! PKPayLaterView::setAction: not bound -!missing-selector! PKPayLaterView::setAmount: not bound -!missing-selector! PKPayLaterView::setCurrencyCode: not bound -!missing-selector! PKPayLaterView::setDelegate: not bound -!missing-selector! PKPayLaterView::setDisplayStyle: not bound -!missing-selector! PKPaymentAuthorizationController::initWithDisbursementRequest: not bound -!missing-selector! PKPaymentAuthorizationViewController::initWithDisbursementRequest: not bound -!missing-selector! PKPaymentRequest::applePayLaterAvailability not bound -!missing-selector! PKPaymentRequest::setApplePayLaterAvailability: not bound -!missing-type! PKDisbursementSummaryItem not bound -!missing-type! PKInstantFundsOutFeeSummaryItem not bound -!missing-type! PKPayLaterView not bound -!unknown-native-enum! PKDisbursementRequestSchedule bound -!missing-field! PKPaymentNetworkPagoBancomat not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-PassKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/macOS-PassKit.todo deleted file mode 100644 index 2a669a069d93..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-PassKit.todo +++ /dev/null @@ -1,6 +0,0 @@ -!missing-enum! PKApplePayLaterAvailability not bound -!missing-enum-value! PKMerchantCapability native value PKMerchantCapabilityInstantFundsOut = 128 not bound -!missing-field! PKPaymentNetworkTmoney not bound -!missing-selector! PKPaymentRequest::applePayLaterAvailability not bound -!missing-selector! PKPaymentRequest::setApplePayLaterAvailability: not bound -!missing-field! PKPaymentNetworkPagoBancomat not bound diff --git a/tests/xtro-sharpie/iOS-PassKit.ignore b/tests/xtro-sharpie/iOS-PassKit.ignore index 6f12e0a54ad9..301c89682af9 100644 --- a/tests/xtro-sharpie/iOS-PassKit.ignore +++ b/tests/xtro-sharpie/iOS-PassKit.ignore @@ -4,3 +4,9 @@ # Breaking change, but added in XAMCORE_5_0 !incorrect-protocol-member! PKAddSecureElementPassViewControllerDelegate::addSecureElementPassViewController:didFinishAddingSecureElementPass:error: is OPTIONAL and should NOT be abstract + +# needed to allow our WeakDelegate wrap +!extra-null-allowed! 'System.Void PassKit.PKPayLaterView::set_WeakDelegate(Foundation.NSObject)' has a extraneous [NullAllowed] on parameter #0 + +# https://github.com/xamarin/xamarin-macios/issues/19271 +!missing-pinvoke! PKPayLaterValidateAmount is not bound diff --git a/tests/xtro-sharpie/iOS-PassKit.todo b/tests/xtro-sharpie/iOS-PassKit.todo deleted file mode 100644 index cbd032f43616..000000000000 --- a/tests/xtro-sharpie/iOS-PassKit.todo +++ /dev/null @@ -1,57 +0,0 @@ -!extra-null-allowed! 'System.Void PassKit.PKDisbursementRequest::set_CurrencyCode(System.String)' has a extraneous [NullAllowed] on parameter #0 -!extra-null-allowed! 'System.Void PassKit.PKDisbursementRequest::set_SummaryItems(PassKit.PKPaymentSummaryItem[])' has a extraneous [NullAllowed] on parameter #0 -!missing-enum! PKApplePayLaterAvailability not bound -!missing-enum! PKDisbursementErrorCode not bound -!missing-enum! PKPayLaterAction not bound -!missing-enum! PKPayLaterDisplayStyle not bound -!missing-enum-value! PKMerchantCapability native value PKMerchantCapabilityInstantFundsOut = 128 not bound -!missing-field! PKDisbursementErrorContactFieldUserInfoKey not bound -!missing-field! PKDisbursementErrorDomain not bound -!missing-field! PKPaymentNetworkTmoney not bound -!missing-pinvoke! PKPayLaterValidateAmount is not bound -!missing-protocol! PKPayLaterViewDelegate not bound -!missing-selector! +PKDisbursementRequest::disbursementCardUnsupportedError not bound -!missing-selector! +PKDisbursementRequest::disbursementContactInvalidErrorWithContactField:localizedDescription: not bound -!missing-selector! +PKPaymentAuthorizationController::supportsDisbursements not bound -!missing-selector! +PKPaymentAuthorizationController::supportsDisbursementsUsingNetworks: not bound -!missing-selector! +PKPaymentAuthorizationController::supportsDisbursementsUsingNetworks:capabilities: not bound -!missing-selector! +PKPaymentAuthorizationViewController::supportsDisbursements not bound -!missing-selector! +PKPaymentAuthorizationViewController::supportsDisbursementsUsingNetworks: not bound -!missing-selector! +PKPaymentAuthorizationViewController::supportsDisbursementsUsingNetworks:capabilities: not bound -!missing-selector! PKDisbursementRequest::applicationData not bound -!missing-selector! PKDisbursementRequest::initWithMerchantIdentifier:currencyCode:regionCode:supportedNetworks:merchantCapabilities:summaryItems: not bound -!missing-selector! PKDisbursementRequest::merchantCapabilities not bound -!missing-selector! PKDisbursementRequest::merchantIdentifier not bound -!missing-selector! PKDisbursementRequest::recipientContact not bound -!missing-selector! PKDisbursementRequest::regionCode not bound -!missing-selector! PKDisbursementRequest::requiredRecipientContactFields not bound -!missing-selector! PKDisbursementRequest::setApplicationData: not bound -!missing-selector! PKDisbursementRequest::setMerchantCapabilities: not bound -!missing-selector! PKDisbursementRequest::setMerchantIdentifier: not bound -!missing-selector! PKDisbursementRequest::setRecipientContact: not bound -!missing-selector! PKDisbursementRequest::setRegionCode: not bound -!missing-selector! PKDisbursementRequest::setRequiredRecipientContactFields: not bound -!missing-selector! PKDisbursementRequest::setSupportedNetworks: not bound -!missing-selector! PKDisbursementRequest::setSupportedRegions: not bound -!missing-selector! PKDisbursementRequest::supportedNetworks not bound -!missing-selector! PKDisbursementRequest::supportedRegions not bound -!missing-selector! PKPayLaterView::action not bound -!missing-selector! PKPayLaterView::amount not bound -!missing-selector! PKPayLaterView::currencyCode not bound -!missing-selector! PKPayLaterView::delegate not bound -!missing-selector! PKPayLaterView::displayStyle not bound -!missing-selector! PKPayLaterView::initWithAmount:currencyCode: not bound -!missing-selector! PKPayLaterView::setAction: not bound -!missing-selector! PKPayLaterView::setAmount: not bound -!missing-selector! PKPayLaterView::setCurrencyCode: not bound -!missing-selector! PKPayLaterView::setDelegate: not bound -!missing-selector! PKPayLaterView::setDisplayStyle: not bound -!missing-selector! PKPaymentAuthorizationController::initWithDisbursementRequest: not bound -!missing-selector! PKPaymentAuthorizationViewController::initWithDisbursementRequest: not bound -!missing-selector! PKPaymentRequest::applePayLaterAvailability not bound -!missing-selector! PKPaymentRequest::setApplePayLaterAvailability: not bound -!missing-type! PKDisbursementSummaryItem not bound -!missing-type! PKInstantFundsOutFeeSummaryItem not bound -!missing-type! PKPayLaterView not bound -!unknown-native-enum! PKDisbursementRequestSchedule bound -!missing-field! PKPaymentNetworkPagoBancomat not bound diff --git a/tests/xtro-sharpie/macOS-PassKit.todo b/tests/xtro-sharpie/macOS-PassKit.todo deleted file mode 100644 index 2a669a069d93..000000000000 --- a/tests/xtro-sharpie/macOS-PassKit.todo +++ /dev/null @@ -1,6 +0,0 @@ -!missing-enum! PKApplePayLaterAvailability not bound -!missing-enum-value! PKMerchantCapability native value PKMerchantCapabilityInstantFundsOut = 128 not bound -!missing-field! PKPaymentNetworkTmoney not bound -!missing-selector! PKPaymentRequest::applePayLaterAvailability not bound -!missing-selector! PKPaymentRequest::setApplePayLaterAvailability: not bound -!missing-field! PKPaymentNetworkPagoBancomat not bound diff --git a/tests/xtro-sharpie/watchOS-PassKit.todo b/tests/xtro-sharpie/watchOS-PassKit.todo deleted file mode 100644 index 2a669a069d93..000000000000 --- a/tests/xtro-sharpie/watchOS-PassKit.todo +++ /dev/null @@ -1,6 +0,0 @@ -!missing-enum! PKApplePayLaterAvailability not bound -!missing-enum-value! PKMerchantCapability native value PKMerchantCapabilityInstantFundsOut = 128 not bound -!missing-field! PKPaymentNetworkTmoney not bound -!missing-selector! PKPaymentRequest::applePayLaterAvailability not bound -!missing-selector! PKPaymentRequest::setApplePayLaterAvailability: not bound -!missing-field! PKPaymentNetworkPagoBancomat not bound