diff --git a/src/photos.cs b/src/photos.cs index e9219230f46..5a2aed9b1a6 100644 --- a/src/photos.cs +++ b/src/photos.cs @@ -188,7 +188,7 @@ interface PHAsset { UTType ContentType { get; } [TV (26, 0), Mac (26, 0), iOS (26, 0), MacCatalyst (26, 0)] - [Export ("addedDate", ArgumentSemantic.Strong)] + [NullAllowed, Export ("addedDate", ArgumentSemantic.Strong)] NSDate AddedDate { get; } [TV (27, 0), Mac (27, 0), iOS (27, 0), MacCatalyst (27, 0)] @@ -347,9 +347,17 @@ interface PHAssetResource { [Export ("uniformTypeIdentifier")] string UniformTypeIdentifier { get; } + [Deprecated (PlatformName.iOS, 27, 0, message: "Use 'Filename' instead.")] + [Deprecated (PlatformName.MacOSX, 27, 0, message: "Use 'Filename' instead.")] + [Deprecated (PlatformName.TvOS, 27, 0, message: "Use 'Filename' instead.")] + [Deprecated (PlatformName.MacCatalyst, 27, 0, message: "Use 'Filename' instead.")] [Export ("originalFilename")] string OriginalFilename { get; } + [TV (27, 0), Mac (27, 0), iOS (27, 0), MacCatalyst (27, 0)] + [NullAllowed, Export ("filename", ArgumentSemantic.Copy)] + string Filename { get; } + [Static] [Export ("assetResourcesForAsset:")] PHAssetResource [] GetAssetResources (PHAsset forAsset); @@ -1532,9 +1540,28 @@ interface PHPhotoLibrary { [Export ("uploadJobExtensionEnabled")] bool UploadJobExtensionEnabled { [Bind ("isUploadJobExtensionEnabled")] get; } - [NoTV, Mac (27, 0), iOS (26, 1), MacCatalyst (27, 0)] + // iOS-only per PHPhotoLibrary.h. Xcode 27 beta 4 briefly declared macOS and Mac Catalyst availability; + // beta 5 reverted to the Xcode 26 shape, so do not add [Mac] or [MacCatalyst]. + [NoTV, NoMacCatalyst, NoMac, iOS (26, 1)] + [Deprecated (PlatformName.iOS, 27, 0, message: "Use 'EnableUploadJobExtension' and 'DisableUploadJobExtension' instead.")] [Export ("setUploadJobExtensionEnabled:error:")] bool SetUploadJobExtensionEnabled (bool enable, [NullAllowed] out NSError error); + + [NoTV, Mac (27, 0), iOS (27, 0), MacCatalyst (27, 0)] + [Export ("enableUploadJobExtensionWithOptions:error:")] + bool EnableUploadJobExtension ([NullAllowed] PHAssetResourceUploadJobOptions options, [NullAllowed] out NSError error); + + [NoTV, Mac (27, 0), iOS (27, 0), MacCatalyst (27, 0)] + [Export ("disableUploadJobExtensionWithError:")] + bool DisableUploadJobExtension ([NullAllowed] out NSError error); + + [NoTV, Mac (27, 0), iOS (27, 0), MacCatalyst (27, 0)] + [NullAllowed, Export ("uploadJobExtensionOptions")] + PHAssetResourceUploadJobOptions UploadJobExtensionOptions { get; } + + [NoTV, Mac (27, 0), iOS (27, 0), MacCatalyst (27, 0)] + [Export ("setUploadJobExtensionOptions:error:")] + bool SetUploadJobExtensionOptions (PHAssetResourceUploadJobOptions options, [NullAllowed] out NSError error); } [TV (15, 0), iOS (15, 0), MacCatalyst (15, 0)] @@ -2036,6 +2063,13 @@ interface PHAssetExtendedMetadata { string [] Keywords { get; } } + [NoTV, Mac (27, 0), iOS (27, 0), MacCatalyst (27, 0)] + [BaseType (typeof (NSObject))] + interface PHAssetResourceUploadJobOptions : NSCopying { + [Export ("preventsExpensiveNetworkAccess")] + bool PreventsExpensiveNetworkAccess { get; set; } + } + [NoTV, Mac (27, 0), iOS (26, 1), MacCatalyst (27, 0)] [BaseType (typeof (PHObject))] [DisableDefaultCtor] diff --git a/tests/cecil-tests/Documentation.KnownFailures.txt b/tests/cecil-tests/Documentation.KnownFailures.txt index db301a7f838..09e4774ccf6 100644 --- a/tests/cecil-tests/Documentation.KnownFailures.txt +++ b/tests/cecil-tests/Documentation.KnownFailures.txt @@ -23887,6 +23887,8 @@ M:Photos.PHPersistentChangeFetchResult.EnumerateChanges(Photos.PHPersistentChang M:Photos.PHPhotoLibrary_CloudIdentifiers.GetCloudIdentifierMappings(Photos.PHPhotoLibrary,System.String[]) M:Photos.PHPhotoLibrary_CloudIdentifiers.GetLocalIdentifierMappings(Photos.PHPhotoLibrary,Photos.PHCloudIdentifier[]) M:Photos.PHPhotoLibrary_CloudIdentifiers.GetLocalIdentifierMappingsForSyncedCloudIdentifiers(Photos.PHPhotoLibrary,Photos.PHCloudIdentifier[]) +M:Photos.PHPhotoLibrary.DisableUploadJobExtension(Foundation.NSError@) +M:Photos.PHPhotoLibrary.EnableUploadJobExtension(Photos.PHAssetResourceUploadJobOptions,Foundation.NSError@) M:Photos.PHPhotoLibrary.FetchPersistentChanges(Photos.PHPersistentChangeToken,Foundation.NSError@) M:Photos.PHPhotoLibrary.GetAuthorizationStatus(Photos.PHAccessLevel) M:Photos.PHPhotoLibrary.PerformChanges(System.Action,System.Action{System.Boolean,Foundation.NSError}) @@ -23898,6 +23900,7 @@ M:Photos.PHPhotoLibrary.RequestAuthorization(Photos.PHAccessLevel,System.Action{ M:Photos.PHPhotoLibrary.RequestAuthorization(System.Action{Photos.PHAuthorizationStatus}) M:Photos.PHPhotoLibrary.RequestAuthorizationAsync(Photos.PHAccessLevel) M:Photos.PHPhotoLibrary.SetUploadJobExtensionEnabled(System.Boolean,Foundation.NSError@) +M:Photos.PHPhotoLibrary.SetUploadJobExtensionOptions(Photos.PHAssetResourceUploadJobOptions,Foundation.NSError@) M:Photos.PHPhotoLibrary.Unregister(Photos.IPHPhotoLibraryAvailabilityObserver) M:Photos.PHPhotoLibrary.UnregisterChangeObserver(Photos.IPHPhotoLibraryChangeObserver) M:Photos.PHPhotoLibrary.UnregisterPersistentChangesObserver(Photos.IPHPhotoLibraryPersistentChangesObserver) @@ -46809,6 +46812,7 @@ P:Photos.PHAssetExtendedMetadata.OriginalFilename P:Photos.PHAssetResource.AssetLocalIdentifier P:Photos.PHAssetResource.ContentType P:Photos.PHAssetResource.DataSize +P:Photos.PHAssetResource.Filename P:Photos.PHAssetResource.OriginalFilename P:Photos.PHAssetResource.PixelHeight P:Photos.PHAssetResource.PixelWidth @@ -46826,6 +46830,7 @@ P:Photos.PHAssetResourceUploadJob.JobLimit P:Photos.PHAssetResourceUploadJob.Resource P:Photos.PHAssetResourceUploadJob.State P:Photos.PHAssetResourceUploadJob.Type +P:Photos.PHAssetResourceUploadJobOptions.PreventsExpensiveNetworkAccess P:Photos.PHCachingImageManager.AllowsCachingHighQualityImages P:Photos.PHCloudIdentifier.ArchivalStringValue P:Photos.PHCloudIdentifier.NotFoundIdentifier @@ -46922,6 +46927,7 @@ P:Photos.PHPhotoLibrary.CurrentChangeToken P:Photos.PHPhotoLibrary.SharedPhotoLibrary P:Photos.PHPhotoLibrary.UnavailabilityReason P:Photos.PHPhotoLibrary.UploadJobExtensionEnabled +P:Photos.PHPhotoLibrary.UploadJobExtensionOptions P:Photos.PHProject.HasProjectPreview P:Photos.PHProject.ProjectExtensionData P:Photos.PHProjectChangeRequest.ProjectExtensionData @@ -59287,6 +59293,7 @@ T:Photos.PHAssetRating T:Photos.PHAssetResourceUploadJob T:Photos.PHAssetResourceUploadJobAction T:Photos.PHAssetResourceUploadJobChangeRequest +T:Photos.PHAssetResourceUploadJobOptions T:Photos.PHAssetResourceUploadJobState T:Photos.PHChangeRequest T:Photos.PHCloudIdentifier diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Photos.todo b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Photos.todo deleted file mode 100644 index 2c24ad29c66..00000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-Photos.todo +++ /dev/null @@ -1,10 +0,0 @@ -!deprecated-attribute-missing! PHAssetResource::originalFilename missing a [Deprecated] attribute -!missing-null-allowed! 'Foundation.NSDate Photos.PHAsset::get_AddedDate()' is missing an [NullAllowed] on return type -!missing-selector! PHAssetResource::filename not bound -!missing-selector! PHAssetResourceUploadJobOptions::preventsExpensiveNetworkAccess not bound -!missing-selector! PHAssetResourceUploadJobOptions::setPreventsExpensiveNetworkAccess: not bound -!missing-selector! PHPhotoLibrary::disableUploadJobExtensionWithError: not bound -!missing-selector! PHPhotoLibrary::enableUploadJobExtensionWithOptions:error: not bound -!missing-selector! PHPhotoLibrary::setUploadJobExtensionOptions:error: not bound -!missing-selector! PHPhotoLibrary::uploadJobExtensionOptions not bound -!missing-type! PHAssetResourceUploadJobOptions not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Photos.todo b/tests/xtro-sharpie/api-annotations-dotnet/iOS-Photos.todo deleted file mode 100644 index 0360c125693..00000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Photos.todo +++ /dev/null @@ -1,11 +0,0 @@ -!deprecated-attribute-missing! PHAssetResource::originalFilename missing a [Deprecated] attribute -!deprecated-attribute-missing! PHPhotoLibrary::setUploadJobExtensionEnabled:error: missing a [Deprecated] attribute -!missing-null-allowed! 'Foundation.NSDate Photos.PHAsset::get_AddedDate()' is missing an [NullAllowed] on return type -!missing-selector! PHAssetResource::filename not bound -!missing-selector! PHAssetResourceUploadJobOptions::preventsExpensiveNetworkAccess not bound -!missing-selector! PHAssetResourceUploadJobOptions::setPreventsExpensiveNetworkAccess: not bound -!missing-selector! PHPhotoLibrary::disableUploadJobExtensionWithError: not bound -!missing-selector! PHPhotoLibrary::enableUploadJobExtensionWithOptions:error: not bound -!missing-selector! PHPhotoLibrary::setUploadJobExtensionOptions:error: not bound -!missing-selector! PHPhotoLibrary::uploadJobExtensionOptions not bound -!missing-type! PHAssetResourceUploadJobOptions not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Photos.todo b/tests/xtro-sharpie/api-annotations-dotnet/macOS-Photos.todo deleted file mode 100644 index 2c24ad29c66..00000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-Photos.todo +++ /dev/null @@ -1,10 +0,0 @@ -!deprecated-attribute-missing! PHAssetResource::originalFilename missing a [Deprecated] attribute -!missing-null-allowed! 'Foundation.NSDate Photos.PHAsset::get_AddedDate()' is missing an [NullAllowed] on return type -!missing-selector! PHAssetResource::filename not bound -!missing-selector! PHAssetResourceUploadJobOptions::preventsExpensiveNetworkAccess not bound -!missing-selector! PHAssetResourceUploadJobOptions::setPreventsExpensiveNetworkAccess: not bound -!missing-selector! PHPhotoLibrary::disableUploadJobExtensionWithError: not bound -!missing-selector! PHPhotoLibrary::enableUploadJobExtensionWithOptions:error: not bound -!missing-selector! PHPhotoLibrary::setUploadJobExtensionOptions:error: not bound -!missing-selector! PHPhotoLibrary::uploadJobExtensionOptions not bound -!missing-type! PHAssetResourceUploadJobOptions not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Photos.todo b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Photos.todo deleted file mode 100644 index 81820e6a74e..00000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-Photos.todo +++ /dev/null @@ -1,3 +0,0 @@ -!deprecated-attribute-missing! PHAssetResource::originalFilename missing a [Deprecated] attribute -!missing-null-allowed! 'Foundation.NSDate Photos.PHAsset::get_AddedDate()' is missing an [NullAllowed] on return type -!missing-selector! PHAssetResource::filename not bound