From 1e52189851282a9e3072d21ae5f01cce9ee35ef0 Mon Sep 17 00:00:00 2001 From: Alex Soto Date: Mon, 23 Mar 2026 18:05:41 -0400 Subject: [PATCH] [Photos] Update bindings to Xcode 26.4 Release Candidate --- src/photos.cs | 53 +++++++++++++++++++ .../api-annotations-dotnet/iOS-Photos.todo | 9 ---- 2 files changed, 53 insertions(+), 9 deletions(-) delete mode 100644 tests/xtro-sharpie/api-annotations-dotnet/iOS-Photos.todo diff --git a/src/photos.cs b/src/photos.cs index 5219e4feaeab..7458f0393ad4 100644 --- a/src/photos.cs +++ b/src/photos.cs @@ -1912,6 +1912,21 @@ interface PHAssetResourceUploadJob { [Export ("state")] PHAssetResourceUploadJobState State { get; } + [iOS (26, 4)] + [Export ("type")] + PHAssetResourceUploadJobType Type { get; } + + [iOS (26, 4)] + [Export ("error")] + [NullAllowed] + NSError Error { get; } + + /// Gets the response header fields returned from the upload destination. + [iOS (26, 4)] + [Export ("responseHeaderFields", ArgumentSemantic.Copy)] + [NullAllowed] + NSDictionary ResponseHeaderFields { get; } + [Static] [Export ("fetchJobsWithAction:options:")] PHFetchResult FetchJobs (PHAssetResourceUploadJobAction action, [NullAllowed] PHFetchOptions options); @@ -1935,6 +1950,32 @@ interface PHAssetResourceUploadJobChangeRequest { [Export ("retryWithDestination:")] void Retry ([NullAllowed] NSUrlRequest destination); + + /// Creates a change request for an upload job with the specified destination and asset resource. + /// The URL request that specifies the upload destination. + /// The asset resource to upload. + /// A new change request for the upload job. + [iOS (26, 4)] + [Static] + [Export ("creationRequestForJobWithDestination:resource:")] + PHAssetResourceUploadJobChangeRequest CreateJobRequest (NSUrlRequest destination, PHAssetResource resource); + + /// Creates a change request for a download-only job for the specified asset resource. + /// The asset resource to download. + /// A new change request for the download-only job. + [iOS (26, 4)] + [Static] + [Export ("creationRequestForDownloadJobWithResource:")] + PHAssetResourceUploadJobChangeRequest CreateDownloadJobRequest (PHAssetResource resource); + + /// Gets a placeholder object for the upload job that will be created by this change request. + [NullAllowed] + [Export ("placeholderForCreatedAssetResourceUploadJob", ArgumentSemantic.Strong)] + PHObjectPlaceholder PlaceholderForCreatedAssetResourceUploadJob { get; } + + [iOS (26, 4)] + [Export ("cancel")] + void Cancel (); } [NoTV, NoMacCatalyst, NoMac, iOS (26, 1)] @@ -1944,6 +1985,9 @@ public enum PHAssetResourceUploadJobState : long { Pending = 2, Failed = 3, Succeeded = 4, + /// The upload job has been cancelled. + [iOS (26, 4)] + Cancelled = 5, } [NoTV, NoMacCatalyst, NoMac, iOS (26, 1)] @@ -1952,4 +1996,13 @@ public enum PHAssetResourceUploadJobAction : long { Acknowledge = 1, Retry = 2, } + + /// Enumerates the types of . + [NoTV, NoMacCatalyst, NoMac, iOS (26, 4)] + public enum PHAssetResourceUploadJobType : short { + /// A standard upload job that uploads an asset resource to a destination. + Upload = 0, + /// A download-only job that downloads an asset resource without uploading. + DownloadOnly = 1, + } } 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 8345f689424a..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-Photos.todo +++ /dev/null @@ -1,9 +0,0 @@ -!missing-enum-value! PHAssetResourceUploadJobState native value PHAssetResourceUploadJobStateCancelled = 5 not bound -!missing-enum! PHAssetResourceUploadJobType not bound -!missing-selector! +PHAssetResourceUploadJobChangeRequest::creationRequestForDownloadJobWithResource: not bound -!missing-selector! +PHAssetResourceUploadJobChangeRequest::creationRequestForJobWithDestination:resource: not bound -!missing-selector! PHAssetResourceUploadJob::error not bound -!missing-selector! PHAssetResourceUploadJob::responseHeaderFields not bound -!missing-selector! PHAssetResourceUploadJob::type not bound -!missing-selector! PHAssetResourceUploadJobChangeRequest::cancel not bound -!missing-selector! PHAssetResourceUploadJobChangeRequest::placeholderForCreatedAssetResourceUploadJob not bound