diff --git a/src/Foundation/NSUnit.cs b/src/Foundation/NSUnit.cs new file mode 100644 index 0000000000..3a6708a825 --- /dev/null +++ b/src/Foundation/NSUnit.cs @@ -0,0 +1,126 @@ +// +// NSUnit.cs +// +// Authors: +// Alex Soto (alexsoto@microsoft.com) +// +// Copyright 2017 Xamarin Inc. +// + +using System; +using XamCore.Foundation; +using XamCore.ObjCRuntime; + +namespace XamCore.Foundation { +#if !XAMCORE_4_0 + public partial class NSUnit { + [Obsolete ("Use .ctor(string)")] + public NSUnit () { } + } + + public partial class NSUnitAcceleration { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitAcceleration () { } + } + + public partial class NSUnitAngle { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitAngle () { } + } + + public partial class NSUnitArea { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitArea () { } + } + + public partial class NSUnitConcentrationMass { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitConcentrationMass () { } + } + + public partial class NSUnitDispersion { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitDispersion () { } + } + + public partial class NSUnitDuration { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitDuration () { } + } + + public partial class NSUnitElectricCharge { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitElectricCharge () { } + } + + public partial class NSUnitElectricCurrent { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitElectricCurrent () { } + } + + public partial class NSUnitElectricPotentialDifference { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitElectricPotentialDifference () { } + } + + public partial class NSUnitElectricResistance { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitElectricResistance () { } + } + + public partial class NSUnitEnergy { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitEnergy () { } + } + + public partial class NSUnitFrequency { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitFrequency () { } + } + + public partial class NSUnitFuelEfficiency { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitFuelEfficiency () { } + } + + public partial class NSUnitLength { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitLength () { } + } + + public partial class NSUnitIlluminance { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitIlluminance () { } + } + + public partial class NSUnitMass { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitMass () { } + } + + public partial class NSUnitPower { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitPower () { } + } + + public partial class NSUnitPressure { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitPressure () { } + } + + public partial class NSUnitSpeed { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitSpeed () { } + } + + public partial class NSUnitVolume { + [Obsolete ("Use .ctor(string, NSUnitConverter) or any of the static properties.")] + public NSUnitVolume () { } + } + + public partial class NSDimension { + [Obsolete ("Not intended to be directly instantiated, this is an abstract class.")] + public NSDimension () { } + } +#endif +} diff --git a/src/UIKit/Compat.cs b/src/UIKit/Compat.cs index 5d12fd35a8..d052e55526 100644 --- a/src/UIKit/Compat.cs +++ b/src/UIKit/Compat.cs @@ -90,4 +90,16 @@ namespace XamCore.UIKit { #endif #endif + +#if !XAMCORE_4_0 && !WATCH + public partial class UICollectionViewFocusUpdateContext { + [Obsolete ("This cannot be directly created")] + public UICollectionViewFocusUpdateContext () { } + } + + public partial class UIFocusUpdateContext { + [Obsolete ("This cannot be directly created")] + public UIFocusUpdateContext () { } + } +#endif } diff --git a/src/avfoundation.cs b/src/avfoundation.cs index 04c9e7b509..ccde7e8497 100644 --- a/src/avfoundation.cs +++ b/src/avfoundation.cs @@ -10370,9 +10370,10 @@ namespace XamCore.AVFoundation { [Export ("disableLooping")] void DisableLooping (); +#if !XAMCORE_4_0 // This API got introduced in Xcode 8.0 binding but is not currently present nor in Xcode 8.3 or Xcode 9.0 needs research [Export ("loopingEnabled")] bool LoopingEnabled { [Bind ("isLoopingEnabled")] get; } - +#endif [Export ("loopCount")] nint LoopCount { get; } diff --git a/src/cloudkit.cs b/src/cloudkit.cs index b89cf72d09..0972ccab10 100644 --- a/src/cloudkit.cs +++ b/src/cloudkit.cs @@ -622,7 +622,7 @@ namespace XamCore.CloudKit { [iOS (10,0), Watch (3,0), TV (10,0), Mac (10,12, onlyOn64 : true)] [BaseType (typeof(NSObject))] - interface CKFetchRecordZoneChangesOptions : NSSecureCoding + interface CKFetchRecordZoneChangesOptions : NSSecureCoding, NSCopying { [NullAllowed, Export ("previousServerChangeToken", ArgumentSemantic.Copy)] CKServerChangeToken PreviousServerChangeToken { get; set; } diff --git a/src/coreanimation.cs b/src/coreanimation.cs index ed234bc7ee..8ea9a6b49c 100644 --- a/src/coreanimation.cs +++ b/src/coreanimation.cs @@ -200,7 +200,7 @@ namespace XamCore.CoreAnimation { [BaseType (typeof (NSObject))] [Dispose ("OnDispose ();")] - interface CALayer : CAMediaTiming, NSCoding { + interface CALayer : CAMediaTiming, NSSecureCoding { [Export ("layer")][Static] CALayer Create (); @@ -910,7 +910,7 @@ namespace XamCore.CoreAnimation { } [BaseType (typeof (NSObject), Delegates=new string [] {"WeakDelegate"}, Events=new Type [] { typeof (CAAnimationDelegate)})] - interface CAAnimation : CAAction, CAMediaTiming, NSCoding, NSMutableCopying { + interface CAAnimation : CAAction, CAMediaTiming, NSSecureCoding, NSMutableCopying { [Export ("animation"), Static] CAAnimation CreateAnimation (); @@ -1307,7 +1307,7 @@ namespace XamCore.CoreAnimation { [BaseType (typeof (NSObject))] [DisableDefaultCtor] - interface CAMediaTimingFunction : NSCoding { + interface CAMediaTimingFunction : NSSecureCoding { [Export ("functionWithName:")][Static] CAMediaTimingFunction FromName (NSString name); @@ -1338,7 +1338,7 @@ namespace XamCore.CoreAnimation { } [BaseType (typeof (NSObject))] - interface CAValueFunction : NSCoding { + interface CAValueFunction : NSSecureCoding { [Export ("functionWithName:"), Static] CAValueFunction FromName (string name); @@ -1412,7 +1412,7 @@ namespace XamCore.CoreAnimation { [Since (5,0)] [BaseType (typeof (NSObject))] - interface CAEmitterCell : CAMediaTiming, NSCoding { + interface CAEmitterCell : CAMediaTiming, NSSecureCoding { [NullAllowed] // by default this property is null [Export ("name", ArgumentSemantic.Copy)] string Name { get; set; } @@ -1643,7 +1643,7 @@ namespace XamCore.CoreAnimation { [Since(7,0), Mavericks] [BaseType (typeof (NSObject))] - interface CAEmitterBehavior : NSCoding { + interface CAEmitterBehavior : NSSecureCoding { [Export ("initWithType:")] IntPtr Constructor (NSString type); diff --git a/src/coreimage.cs b/src/coreimage.cs index 8df5a23a47..c6359a2e64 100644 --- a/src/coreimage.cs +++ b/src/coreimage.cs @@ -2230,7 +2230,7 @@ namespace XamCore.CoreImage { [iOS (8,0)] [Mac (10,12)] [BaseType (typeof (CIFeature))] - partial interface CIQRCodeFeature { + partial interface CIQRCodeFeature : NSSecureCoding, NSCopying { [Export ("bounds", ArgumentSemantic.Assign)] CGRect Bounds { get; } @@ -4471,4 +4471,215 @@ namespace XamCore.CoreImage { [BaseType (typeof (CIFilter))] interface CIXRay { } + + [CoreImageFilter] + [iOS (11,0)] + [Mac (10,13)] + [TV (11,0)] + [BaseType (typeof (CIFilter))] + interface CIAreaMinMaxRed { + // TODO: Needs review + //[CoreImageProperty ("inputExtent")] + //CIVector Extent { get; set; } + } + + [CoreImageFilter] + [iOS (11,0)] + [Mac (10,13)] + [TV (11,0)] + [BaseType (typeof (CIFilter))] + interface CIAttributedTextImageGenerator { + // TODO: Needs review + //[CoreImageProperty ("inputText")] + //NSAttributedString Text { get; set; } + + //[CoreImageProperty ("inputScaleFactor")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float ScaleFactor { get; set; } + } + [CoreImageFilter] + [iOS (11,0)] + [Mac (10,13)] + [TV (11,0)] + [BaseType (typeof (CIFilter))] + interface CIBarcodeGenerator { + // TODO: Needs review + //[CoreImageProperty ("inputBarcodeDescriptor")] + //CIBarcodeDescriptor BarcodeDescriptor { get; set; } + } + + [CoreImageFilter] + [iOS (11,0)] + [Mac (10,13)] + [TV (11,0)] + [BaseType (typeof (CIFilter))] + interface CIBicubicScaleTransform { + // TODO: Needs review + //[CoreImageProperty ("inputB")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float B { get; set; } + //[CoreImageProperty ("inputScale")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float Scale { get; set; } + //[CoreImageProperty ("inputC")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float C { get; set; } + //[CoreImageProperty ("inputAspectRatio")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float AspectRatio { get; set; } + } + + [CoreImageFilter] + [iOS (11,0)] + [Mac (10,13)] + [TV (11,0)] + [BaseType (typeof (CIFilter))] + interface CIBokehBlur { + // TODO: Needs review + //[CoreImageProperty ("inputSoftness")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float Softness { get; set; } + //[CoreImageProperty ("inputRadius")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float Radius { get; set; } + //[CoreImageProperty ("inputRingSize")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float RingSize { get; set; } + //[CoreImageProperty ("inputRingAmount")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float RingAmount { get; set; } + } + [CoreImageFilter] + [iOS (11,0)] + [Mac (10,13)] + [TV (11,0)] + [BaseType (typeof (CIFilter))] + interface CIColorCubesMixedWithMask { + // TODO: Needs review + //[CoreImageProperty ("inputCubeDimension")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float CubeDimension { get; set; } + //[CoreImageProperty ("inputMaskImage")] + //CIImage MaskImage { get; set; } + //[CoreImageProperty ("inputCube0Data")] + //NSData Cube0Data { get; set; } + //[CoreImageProperty ("inputCube1Data")] + //NSData Cube1Data { get; set; } + //[CoreImageProperty ("inputColorSpace")] + //NSObject ColorSpace { get; set; } + } + + [CoreImageFilter] + [iOS (11,0)] + [Mac (10,13)] + [TV (11,0)] + [BaseType (typeof (CIFilter))] + interface CIColorCurves { + // TODO: Needs review + //[CoreImageProperty ("inputColorSpace")] + //NSObject ColorSpace { get; set; } + //[CoreImageProperty ("inputCurvesDomain")] + //CIVector CurvesDomain { get; set; } + //[CoreImageProperty ("inputCurvesData")] + //NSData CurvesData { get; set; } + } + + [CoreImageFilter] + [iOS (11,0)] + [Mac (10,13)] + [TV (11,0)] + [BaseType (typeof (CIFilter))] + interface CIDepthBlurEffect { + // TODO: Needs review + //[CoreImageProperty ("inputAperture")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float Aperture { get; set; } + //[CoreImageProperty ("inputCalibrationData")] + //AVCameraCalibrationData CalibrationData { get; set; } + //[CoreImageProperty ("inputTuningParameters")] + //NSDictionary TuningParameters { get; set; } + //[CoreImageProperty ("inputNosePositions")] + //CIVector NosePositions { get; set; } + //[CoreImageProperty ("inputLumaNoiseScale")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float LumaNoiseScale { get; set; } + //[CoreImageProperty ("inputChinPositions")] + //CIVector ChinPositions { get; set; } + //[CoreImageProperty ("inputDisparityImage")] + //CIImage DisparityImage { get; set; } + //[CoreImageProperty ("inputScaleFactor")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float ScaleFactor { get; set; } + //[CoreImageProperty ("inputRightEyePositions")] + //CIVector RightEyePositions { get; set; } + //[CoreImageProperty ("inputLeftEyePositions")] + //CIVector LeftEyePositions { get; set; } + //[CoreImageProperty ("inputFocusRect")] + //CIVector FocusRect { get; set; } + } + + [CoreImageFilter] + [iOS (11,0)] + [Mac (10,13)] + [TV (11,0)] + [BaseType (typeof (CIFilter))] + interface CIDepthToDisparity { + // TODO: Needs review + } + + [CoreImageFilter] + [iOS (11,0)] + [Mac (10,13)] + [TV (11,0)] + [BaseType (typeof (CIFilter))] + interface CIDisparityToDepth { + // TODO: Needs review + } + + [CoreImageFilter] + [iOS (11,0)] + [NoMac] + [TV (11,0)] + [BaseType (typeof (CIFilter))] + interface CIEdgePreserveUpsampleFilter { + // TODO: Needs review + //[CoreImageProperty ("inputLumaSigma")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float LumaSigma { get; set; } + //[CoreImageProperty ("inputSmallImage")] + //CIImage SmallImage { get; set; } + //[CoreImageProperty ("inputSpatialSigma")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float SpatialSigma { get; set; } + } + + [CoreImageFilter] + [iOS (11,0)] + [Mac (10,13)] + [TV (11,0)] + [BaseType (typeof (CIFilter))] + interface CILabDeltaE { + // TODO: Needs review + //[CoreImageProperty ("inputImage2")] + //CIImage Image2 { get; set; } + } + + [CoreImageFilter] + [iOS (11,0)] + [Mac (10,13)] + [TV (11,0)] + [BaseType (typeof (CIFilter))] + interface CITextImageGenerator { + // TODO: Needs review + //[CoreImageProperty ("inputText")] + //NSString Text { get; set; } + //[CoreImageProperty ("inputFontName")] + //NSString FontName { get; set; } + //[CoreImageProperty ("inputScaleFactor")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float ScaleFactor { get; set; } + //[CoreImageProperty ("inputFontSize")] + //// TODO: this was an NSNumber transformed to float, but maybe an int or bool is more appropriate + //float FontSize { get; set; } + } } diff --git a/src/foundation.cs b/src/foundation.cs index 7930656f1a..d9776e2f89 100644 --- a/src/foundation.cs +++ b/src/foundation.cs @@ -12140,6 +12140,7 @@ namespace XamCore.Foundation bool ContainsDate (NSDate date); } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSObject))] interface NSUnit : NSCopying, NSSecureCoding { @@ -13223,6 +13224,7 @@ namespace XamCore.Foundation nuint RedirectCount { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitAcceleration : NSSecureCoding { @@ -13245,6 +13247,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitAngle : NSSecureCoding { @@ -13283,6 +13286,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitArea : NSSecureCoding { @@ -13353,6 +13357,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitConcentrationMass : NSSecureCoding { @@ -13379,6 +13384,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitDispersion : NSSecureCoding { @@ -13397,6 +13403,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitDuration : NSSecureCoding { @@ -13423,6 +13430,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitElectricCharge : NSSecureCoding { @@ -13461,6 +13469,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitElectricCurrent : NSSecureCoding { @@ -13495,6 +13504,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitElectricPotentialDifference : NSSecureCoding { @@ -13529,6 +13539,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitElectricResistance : NSSecureCoding { @@ -13563,6 +13574,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitEnergy : NSSecureCoding { @@ -13597,6 +13609,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitFrequency : NSSecureCoding { @@ -13643,6 +13656,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitFuelEfficiency : NSSecureCoding { @@ -13669,6 +13683,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitLength : NSSecureCoding { @@ -13771,6 +13786,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitIlluminance : NSSecureCoding { @@ -13789,6 +13805,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitMass : NSSecureCoding { @@ -13867,6 +13884,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitPower : NSSecureCoding { @@ -13925,6 +13943,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitPressure : NSSecureCoding { @@ -13979,6 +13998,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitSpeed : NSSecureCoding { @@ -14009,6 +14029,7 @@ namespace XamCore.Foundation NSDimension BaseUnit { get; } } + [DisableDefaultCtor] // -init should never be called on NSUnit! [Watch (3,0)][TV (10,0)][Mac (10,12)][iOS (10,0)] [BaseType (typeof (NSDimension))] interface NSUnitVolume : NSSecureCoding { diff --git a/src/frameworks.sources b/src/frameworks.sources index 57e24c10f9..c2955be6da 100644 --- a/src/frameworks.sources +++ b/src/frameworks.sources @@ -710,6 +710,7 @@ FOUNDATION_SOURCES = \ Foundation/NSTimeZone.cs \ Foundation/NSUbiquitousKeyValueStore.cs \ Foundation/NSUndoManager.cs \ + Foundation/NSUnit.cs \ Foundation/NSUrl.cs \ Foundation/NSUrlComponents.cs \ Foundation/NSUrlConnection.cs \ diff --git a/src/homekit.cs b/src/homekit.cs index 2e4c8c508f..57980e95a0 100644 --- a/src/homekit.cs +++ b/src/homekit.cs @@ -1227,7 +1227,7 @@ namespace XamCore.HomeKit { [TV (10,0)] [BaseType (typeof (HMEvent))] [DisableDefaultCtor] - interface HMLocationEvent { + interface HMLocationEvent : NSMutableCopying { [NoTV] [NoWatch] [Export ("initWithRegion:")] diff --git a/src/metalperformanceshaders.cs b/src/metalperformanceshaders.cs index eda684e259..e6e28faf2f 100644 --- a/src/metalperformanceshaders.cs +++ b/src/metalperformanceshaders.cs @@ -510,7 +510,7 @@ namespace XamCore.MetalPerformanceShaders { [iOS (9,0)] [BaseType (typeof (NSObject))] [DisableDefaultCtor] - interface MPSKernel : NSCopying { + interface MPSKernel : NSCopying, NSSecureCoding { [Export ("options", ArgumentSemantic.Assign)] MPSKernelOptions Options { get; set; } @@ -657,7 +657,7 @@ namespace XamCore.MetalPerformanceShaders { [iOS (10,0)][TV (10,0)] [BaseType (typeof (NSObject), Name = "MPSCNNConvolutionDescriptor")] [DisableDefaultCtor] - interface MPSCnnConvolutionDescriptor : NSCopying { + interface MPSCnnConvolutionDescriptor : NSCopying, NSSecureCoding { [Export ("kernelWidth")] nuint KernelWidth { get; set; } diff --git a/src/uikit.cs b/src/uikit.cs index 565b167d37..f9ec8f02c8 100644 --- a/src/uikit.cs +++ b/src/uikit.cs @@ -7179,7 +7179,7 @@ namespace XamCore.UIKit { [Since (3,2)] [BaseType (typeof (NSObject))] [ThreadSafe] - interface UIBezierPath : NSCoding, NSCopying { + interface UIBezierPath : NSSecureCoding, NSCopying { // initWithFrame: --> unrecognized selector [Export ("bezierPath"), Static] @@ -15839,6 +15839,7 @@ namespace XamCore.UIKit { string GetDetailTextForGuidedAccessRestriction (string restrictionIdentifier); } + [DisableDefaultCtor] // [Assert] -init is not a useful initializer for this class. Use one of the designated initializers instead [NoWatch] [iOS (9,0)] // added in Xcode 7.1 / iOS 9.1 SDK [BaseType (typeof (UIFocusUpdateContext))] @@ -15908,6 +15909,7 @@ namespace XamCore.UIKit { bool CanBecomeFocused { get; } } + [DisableDefaultCtor] // [Assert] -init is not a useful initializer for this class. Use one of the designated initializers instead [NoWatch] [iOS (9,0)] [BaseType (typeof(NSObject))] diff --git a/tests/introspection/ApiCtorInitTest.cs b/tests/introspection/ApiCtorInitTest.cs index d0111c6823..f317f14f15 100644 --- a/tests/introspection/ApiCtorInitTest.cs +++ b/tests/introspection/ApiCtorInitTest.cs @@ -77,6 +77,28 @@ namespace Introspection { return true; case "NEPacketTunnelProvider": return true; + case "NSUnitDispersion": // -init should never be called on NSUnit! + case "NSUnitVolume": // -init should never be called on NSUnit! + case "NSUnitDuration": // -init should never be called on NSUnit! + case "NSUnitElectricCharge": // -init should never be called on NSUnit! + case "NSUnitElectricCurrent": // -init should never be called on NSUnit! + case "NSUnitElectricPotentialDifference": // -init should never be called on NSUnit! + case "NSUnitElectricResistance": // -init should never be called on NSUnit! + case "NSUnit": // -init should never be called on NSUnit! + case "NSUnitEnergy": // -init should never be called on NSUnit! + case "NSUnitAcceleration": // -init should never be called on NSUnit! + case "NSUnitFrequency": // -init should never be called on NSUnit! + case "NSUnitAngle": // -init should never be called on NSUnit! + case "NSUnitFuelEfficiency": // -init should never be called on NSUnit! + case "NSUnitArea": // -init should never be called on NSUnit! + case "NSUnitIlluminance": // -init should never be called on NSUnit! + case "NSUnitConcentrationMass": // -init should never be called on NSUnit! + case "NSUnitLength": // -init should never be called on NSUnit! + case "NSUnitMass": // -init should never be called on NSUnit! + case "NSUnitPower": // -init should never be called on NSUnit! + case "NSUnitPressure": // -init should never be called on NSUnit! + case "NSUnitSpeed": // -init should never be called on NSUnit! + return true; } return SkipDueToAttribute (type); diff --git a/tests/introspection/ApiProtocolTest.cs b/tests/introspection/ApiProtocolTest.cs index 9c9c55dfdc..5f8ae17a00 100644 --- a/tests/introspection/ApiProtocolTest.cs +++ b/tests/introspection/ApiProtocolTest.cs @@ -140,6 +140,9 @@ namespace Introspection { // iOS 10 : test throw because of generic usage case "NSMeasurement`1": return true; // skip + // xcode 9 + case "NSConstraintConflict": // Conformance not in headers + return true; } break; // conformance added in Xcode 8 (iOS 10 / macOS 10.12) diff --git a/tests/introspection/ApiSelectorTest.cs b/tests/introspection/ApiSelectorTest.cs index 8711feda9e..f81da6e866 100644 --- a/tests/introspection/ApiSelectorTest.cs +++ b/tests/introspection/ApiSelectorTest.cs @@ -149,6 +149,20 @@ namespace Introspection { return true; } break; + // Xcode 9 + case "CIQRCodeFeature": + switch (selectorName) { + case "copyWithZone:": + case "encodeWithCoder:": + return !TestRuntime.CheckXcodeVersion (9, 0); + } + break; + case "CKFetchRecordZoneChangesOptions": + switch (selectorName) { + case "copyWithZone:": + return !TestRuntime.CheckXcodeVersion (9, 0); + } + break; } #endif // This ctors needs to be manually bound @@ -329,6 +343,12 @@ namespace Introspection { return true; } break; + case "AVPlayerLooper": // This API got introduced in Xcode 8.0 binding but is not currently present nor in Xcode 8.3 or Xcode 9.0 needs research + switch (selectorName) { + case "isLoopingEnabled": + return true; + } + break; } // old binding mistake diff --git a/tests/introspection/iOS/iOSApiCtorInitTest.cs b/tests/introspection/iOS/iOSApiCtorInitTest.cs index 24baa1cb40..10ee552c00 100644 --- a/tests/introspection/iOS/iOSApiCtorInitTest.cs +++ b/tests/introspection/iOS/iOSApiCtorInitTest.cs @@ -196,6 +196,13 @@ namespace Introspection { case "INStartWorkoutIntent": return true; #endif + // iOS 11 Beta 1 + case "UICollectionViewFocusUpdateContext": // [Assert] -init is not a useful initializer for this class. Use one of the designated initializers instead + case "UIFocusUpdateContext": // [Assert] -init is not a useful initializer for this class. Use one of the designated initializers instead + case "EKCalendarItem": // Fails with NSInvalidArgumentException +[EKCalendarItem frozenClass]: unrecognized selector sent to class, will fill a radar + case "EKParticipant": // ctor disabled in XAMCORE_3_0 + case "UITableViewFocusUpdateContext": // Objective-C exception thrown. Name: NSInternalInconsistencyException Reason: Invalid parameter not satisfying: focusSystem, will fill a radar + return true; default: return base.Skip (type); } diff --git a/tests/introspection/iOS/iOSApiProtocolTest.cs b/tests/introspection/iOS/iOSApiProtocolTest.cs index 614c40e0a7..d10b84397b 100644 --- a/tests/introspection/iOS/iOSApiProtocolTest.cs +++ b/tests/introspection/iOS/iOSApiProtocolTest.cs @@ -183,6 +183,12 @@ namespace Introspection { case "MPMusicPlayerControllerMutableQueue": case "MPMusicPlayerControllerQueue": return true; + // iOS 11.0 + case "UICollectionViewUpdateItem": // Conformance not in headers + case "MKMapItem": // Conformance not in headers + case "NSConstraintConflict": // Conformance not in headers + case "NSQueryGenerationToken": // Conformance not in headers + return true; #if __WATCHOS__ case "CLKComplicationTemplate": case "CLKComplicationTemplateCircularSmallRingImage": @@ -285,6 +291,10 @@ namespace Introspection { case "MPMusicPlayerControllerMutableQueue": case "MPMusicPlayerControllerQueue": return true; + // iOS 11.0 + case "MKMapItem": // Conformance not in headers + case "NSQueryGenerationToken": // Conformance not in headers + return true; #if __WATCHOS__ case "CLKComplicationTemplate": case "CLKComplicationTemplateCircularSmallRingImage": @@ -363,6 +373,10 @@ namespace Introspection { // iOS 10.2 case "VSAccountProviderResponse": return true; + // iOS 11.0 + case "UICollectionViewUpdateItem": // Conformance not in headers + return true; + #if __WATCHOS__ case "CLKComplicationTimelineEntry": return true; diff --git a/tests/introspection/iOS/iOSApiSelectorTest.cs b/tests/introspection/iOS/iOSApiSelectorTest.cs index 28113dadbd..443bd8ed3a 100644 --- a/tests/introspection/iOS/iOSApiSelectorTest.cs +++ b/tests/introspection/iOS/iOSApiSelectorTest.cs @@ -578,6 +578,8 @@ namespace Introspection { return !TestRuntime.CheckXcodeVersion (7, 0); case "HKWorkoutEvent": return !TestRuntime.CheckXcodeVersion (8, 0); + case "HMLocationEvent": + return !TestRuntime.CheckXcodeVersion (9, 0); } break; @@ -633,6 +635,9 @@ namespace Introspection { case "HKBiologicalSexObject": case "HKBloodTypeObject": return !TestRuntime.CheckXcodeVersion (7, 0); + case "MPSKernel": + case "MPSCnnConvolutionDescriptor": + return !TestRuntime.CheckXcodeVersion (9, 0); #if __TVOS__ case "SKAttribute": case "SKAttributeValue": @@ -649,6 +654,12 @@ namespace Introspection { return true; break; #endif + case "mutableCopyWithZone:": + switch (declaredType.Name) { + case "HMLocationEvent": + return !TestRuntime.CheckXcodeVersion (9, 0); + } + break; } return base.CheckResponse (value, actualType, method, ref name); diff --git a/tests/introspection/iOS/introspection-ios.csproj b/tests/introspection/iOS/introspection-ios.csproj index 4f2c3006d8..0a653686fe 100644 --- a/tests/introspection/iOS/introspection-ios.csproj +++ b/tests/introspection/iOS/introspection-ios.csproj @@ -52,6 +52,7 @@ None ARMv7, ARM64 + true True @@ -66,6 +67,7 @@ None ARMv7 + true True @@ -80,6 +82,7 @@ None ARM64 + true none @@ -93,6 +96,7 @@ None ARMv7, ARM64 MONOTOUCH;$(DefineConstants) + true none @@ -106,6 +110,7 @@ None ARMv7 MONOTOUCH;$(DefineConstants) + true none @@ -119,6 +124,7 @@ None ARM64 MONOTOUCH;$(DefineConstants) + true none