Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FileProvider] Implement Xcode 16.0 beta 1, beta 2 and beta 3 changes. #20890

Merged
merged 1 commit into from
Jul 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 103 additions & 1 deletion src/fileprovider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,10 @@ interface NSFileProviderDomain {
[Export ("initWithIdentifier:displayName:")]
NativeHandle Constructor (string identifier, string displayName);

[Mac (15, 0), NoiOS]
[Export ("initWithDisplayName:userInfo:volumeURL:")]
NativeHandle Constructor (string displayName, NSDictionary userInfo, [NullAllowed] NSUrl volumeUrl);

[Export ("identifier")]
string Identifier { get; }

Expand Down Expand Up @@ -385,13 +389,25 @@ interface NSFileProviderDomain {
[Export ("replicated")]
bool Replicated { [Bind ("isReplicated")] get; }

[NoWatch, NoTV, NoMacCatalyst, NoiOS, Mac (13, 0)]
[NoWatch, NoTV, NoMacCatalyst, iOS (18, 0), Mac (13, 0)]
[Export ("supportsSyncingTrash")]
bool SupportsSyncingTrash { get; set; }

[NoWatch, NoTV, NoMacCatalyst, Mac (13, 3), iOS (16, 4)]
[NullAllowed, Export ("volumeUUID")]
NSUuid VolumeUuid { get; }

[Mac (15, 0), NoiOS]
[Export ("userInfo", ArgumentSemantic.Copy), NullAllowed]
NSDictionary<NSString, NSObject> UserInfo { get; set; }

[Mac (15, 0), NoiOS]
[Export ("replicatedKnownFolders", ArgumentSemantic.Assign)]
NSFileProviderKnownFolders ReplicatedKnownFolders { get; }

[Mac (15, 0), NoiOS]
[Export ("supportedKnownFolders", ArgumentSemantic.Assign)]
NSFileProviderKnownFolders SupportedKnownFolders { get; set; }
}

interface INSFileProviderEnumerationObserver { }
Expand Down Expand Up @@ -1402,4 +1418,90 @@ interface NSFileProviderPartialContentFetching {
[Export ("fetchPartialContentsForItemWithIdentifier:version:request:minimalRange:aligningTo:options:completionHandler:")]
NSProgress FetchPartialContents (string itemIdentifier, NSFileProviderItemVersion requestedVersion, NSFileProviderRequest request, NSRange requestedRange, nuint alignment, NSFileProviderFetchContentsOptions options, NSFileProviderPartialContentFetchingCompletionHandler completionHandler);
}

[NoTV, NoWatch, iOS (18, 0), MacCatalyst (18, 0), Mac (15, 0)]
[Native]
public enum NSFileProviderKnownFolders : ulong {
Desktop = 1 << 0,
Documents = 1 << 1,
}

[NoTV, NoWatch, NoiOS, NoMacCatalyst, Mac (15, 0)]
[BaseType (typeof (NSObject))]
interface NSFileProviderKnownFolderLocation {
[Export ("initWithParentItemIdentifier:filename:")]
NativeHandle Constructor (string parentItemIdentifier, string filename);

[Export ("initWithExistingItemIdentifier:")]
NativeHandle Constructor (string existing);
}

[NoTV, NoWatch, NoiOS, NoMacCatalyst, Mac (15, 0)]
[BaseType (typeof (NSObject))]
interface NSFileProviderKnownFolderLocations {
[Export ("shouldCreateBinaryCompatibilitySymlink", ArgumentSemantic.Assign)]
bool ShouldCreateBinaryCompatibilitySymlink { get; set; }

[Export ("desktopLocation", ArgumentSemantic.Strong), NullAllowed]
NSFileProviderKnownFolderLocation DesktopLocation { get; set; }

[Export ("documentsLocation", ArgumentSemantic.Strong), NullAllowed]
NSFileProviderKnownFolderLocation DocumentsLocation { get; set; }
}

[NoTV, NoWatch, NoiOS, NoMacCatalyst, Mac (15, 0)]
delegate void NSFileProviderManagerKnownFoldersCallback ([NullAllowed] NSError error);

[NoTV, NoWatch, NoiOS, NoMacCatalyst, Mac (15, 0)]
[Category]
[BaseType (typeof (NSFileProviderManager))]
interface NSFileProviderManager_KnownFolders {
[Export ("claimKnownFolders:localizedReason:completionHandler:")]
void ClaimKnownFolders (NSFileProviderKnownFolderLocations knownFolders, string localizedReason, NSFileProviderManagerKnownFoldersCallback completionHandler);

[Export ("releaseKnownFolders:localizedReason:completionHandler:")]
void ReleaseKnownFolders (NSFileProviderKnownFolderLocations knownFolders, string localizedReason, NSFileProviderManagerKnownFoldersCallback completionHandler);
}

[NoTV, NoWatch, NoiOS, NoMacCatalyst, Mac (15, 0)]
delegate void NSFileProviderKnownFolderLocationCallback (INSFileProviderKnownFolderSupporting result, [NullAllowed] NSError error);

[NoTV, NoWatch, NoiOS, NoMacCatalyst, Mac (15, 0)]
[Protocol (BackwardsCompatibleCodeGeneration = false)]
interface NSFileProviderKnownFolderSupporting {
[Abstract]
[Export ("getKnownFolderLocations:completionHandler:")]
void GetKnownFolderLocations (NSFileProviderKnownFolders knownFolders, NSFileProviderKnownFolderLocationCallback completionHandler);
}

interface INSFileProviderKnownFolderSupporting { }

[NoTV, NoWatch, NoiOS, NoMacCatalyst, Mac (15, 0)]
[Category]
[BaseType (typeof (NSFileProviderManager))]
interface NSFileProviderManager_StateDirectory {
[Export ("stateDirectoryURLWithError:")]
[return: NullAllowed]
NSUrl GetStateDirectoryUrl (out NSError error);
}

[NoTV, NoWatch, NoiOS, NoMacCatalyst, Mac (15, 0)]
[Native]
public enum NSFileProviderVolumeUnsupportedReason : ulong {
None = 0,
Unknown = 1 << 0,
NonAPFS = 1 << 1,
NonEncrypted = 1 << 2,
ReadOnly = 1 << 3,
Network = 1 << 4,
Quarantined = 1 << 5,
}

[NoTV, NoWatch, NoiOS, NoMacCatalyst, Mac (15, 0)]
[Category]
[BaseType (typeof (NSFileProviderManager))]
interface NSFileProviderManager_ExternalDomain {
[Export ("checkDomainsCanBeStored:onVolumeAtURL:unsupportedReason:error:")]
unsafe bool CheckDomainsCanBeStored (out bool eligible, NSUrl volumeAtUrl, NSFileProviderVolumeUnsupportedReason* unsupportedReason, [NullAllowed] out NSError error);
}
}
33 changes: 33 additions & 0 deletions tests/cecil-tests/Documentation.KnownFailures.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9002,6 +9002,8 @@ F:FileProvider.NSFileProviderItemFields.LastUsedDate
F:FileProvider.NSFileProviderItemFields.ParentItemIdentifier
F:FileProvider.NSFileProviderItemFields.TagData
F:FileProvider.NSFileProviderItemFields.TypeAndCreator
F:FileProvider.NSFileProviderKnownFolders.Desktop
F:FileProvider.NSFileProviderKnownFolders.Documents
F:FileProvider.NSFileProviderManagerDisconnectionOptions.None
F:FileProvider.NSFileProviderManagerDisconnectionOptions.Temporary
F:FileProvider.NSFileProviderMaterializationFlags.KnownSparseRanges
Expand All @@ -9019,6 +9021,13 @@ F:FileProvider.NSFileProviderTestingOperationType.Lookup
F:FileProvider.NSFileProviderTestingOperationType.Modification
F:FileProvider.NSFileProviderTypeAndCreator.Creator
F:FileProvider.NSFileProviderTypeAndCreator.Type
F:FileProvider.NSFileProviderVolumeUnsupportedReason.Network
F:FileProvider.NSFileProviderVolumeUnsupportedReason.NonAPFS
F:FileProvider.NSFileProviderVolumeUnsupportedReason.None
F:FileProvider.NSFileProviderVolumeUnsupportedReason.NonEncrypted
F:FileProvider.NSFileProviderVolumeUnsupportedReason.Quarantined
F:FileProvider.NSFileProviderVolumeUnsupportedReason.ReadOnly
F:FileProvider.NSFileProviderVolumeUnsupportedReason.Unknown
F:FileProviderUI.FPUIExtensionErrorCode.Failed
F:FileProviderUI.FPUIExtensionErrorCode.UserCancelled
F:FinderSync.FIMenuKind.ContextualMenuForContainer
Expand Down Expand Up @@ -33432,6 +33441,7 @@ M:FileProvider.INSFileProviderItem.IsSharedByCurrentUser
M:FileProvider.INSFileProviderItem.IsTrashed
M:FileProvider.INSFileProviderItem.IsUploaded
M:FileProvider.INSFileProviderItem.IsUploading
M:FileProvider.INSFileProviderKnownFolderSupporting.GetKnownFolderLocations(FileProvider.NSFileProviderKnownFolders,FileProvider.NSFileProviderKnownFolderLocationCallback)
M:FileProvider.INSFileProviderPartialContentFetching.FetchPartialContents(System.String,FileProvider.NSFileProviderItemVersion,FileProvider.NSFileProviderRequest,Foundation.NSRange,System.UIntPtr,FileProvider.NSFileProviderFetchContentsOptions,FileProvider.NSFileProviderPartialContentFetchingCompletionHandler)
M:FileProvider.INSFileProviderReplicatedExtension.CreateItem(FileProvider.INSFileProviderItem,FileProvider.NSFileProviderItemFields,Foundation.NSUrl,FileProvider.NSFileProviderCreateItemOptions,FileProvider.NSFileProviderRequest,FileProvider.NSFileProviderCreateOrModifyItemCompletionHandler)
M:FileProvider.INSFileProviderReplicatedExtension.DeleteItem(System.String,FileProvider.NSFileProviderItemVersion,FileProvider.NSFileProviderDeleteItemOptions,FileProvider.NSFileProviderRequest,System.Action{Foundation.NSError})
Expand All @@ -33456,6 +33466,7 @@ M:FileProvider.INSFileProviderThumbnailing.FetchThumbnails(System.String[],CoreG
M:FileProvider.INSFileProviderUserInteractionSuppressing.IsInteractionSuppressed(System.String)
M:FileProvider.INSFileProviderUserInteractionSuppressing.SetInteractionSuppressed(System.Boolean,System.String)
M:FileProvider.NSFileProviderChangeObserver_Extensions.GetSuggestedBatchSize(FileProvider.INSFileProviderChangeObserver)
M:FileProvider.NSFileProviderDomain.#ctor(System.String,Foundation.NSDictionary,Foundation.NSUrl)
M:FileProvider.NSFileProviderDomain.#ctor(System.String,System.String,System.String)
M:FileProvider.NSFileProviderDomain.#ctor(System.String,System.String)
M:FileProvider.NSFileProviderDomainVersion.Compare(FileProvider.NSFileProviderDomainVersion)
Expand Down Expand Up @@ -33531,6 +33542,12 @@ M:FileProvider.NSFileProviderItem_Extensions.IsTrashed(FileProvider.INSFileProvi
M:FileProvider.NSFileProviderItem_Extensions.IsUploaded(FileProvider.INSFileProviderItem)
M:FileProvider.NSFileProviderItem_Extensions.IsUploading(FileProvider.INSFileProviderItem)
M:FileProvider.NSFileProviderItemVersion.#ctor(Foundation.NSData,Foundation.NSData)
M:FileProvider.NSFileProviderKnownFolderLocation.#ctor(System.String,System.String)
M:FileProvider.NSFileProviderKnownFolderLocation.#ctor(System.String)
M:FileProvider.NSFileProviderManager_ExternalDomain.CheckDomainsCanBeStored(FileProvider.NSFileProviderManager,System.Boolean@,Foundation.NSUrl,FileProvider.NSFileProviderVolumeUnsupportedReason*,Foundation.NSError@)
M:FileProvider.NSFileProviderManager_KnownFolders.ClaimKnownFolders(FileProvider.NSFileProviderManager,FileProvider.NSFileProviderKnownFolderLocations,System.String,FileProvider.NSFileProviderManagerKnownFoldersCallback)
M:FileProvider.NSFileProviderManager_KnownFolders.ReleaseKnownFolders(FileProvider.NSFileProviderManager,FileProvider.NSFileProviderKnownFolderLocations,System.String,FileProvider.NSFileProviderManagerKnownFoldersCallback)
M:FileProvider.NSFileProviderManager_StateDirectory.GetStateDirectoryUrl(FileProvider.NSFileProviderManager,Foundation.NSError@)
M:FileProvider.NSFileProviderManager.AddDomain(FileProvider.NSFileProviderDomain,System.Action{Foundation.NSError})
M:FileProvider.NSFileProviderManager.AddDomainAsync(FileProvider.NSFileProviderDomain)
M:FileProvider.NSFileProviderManager.Disconnect(System.String,FileProvider.NSFileProviderManagerDisconnectionOptions,System.Action{Foundation.NSError})
Expand Down Expand Up @@ -63789,9 +63806,12 @@ P:FileProvider.NSFileProviderDomain.Hidden
P:FileProvider.NSFileProviderDomain.Identifier
P:FileProvider.NSFileProviderDomain.PathRelativeToDocumentStorage
P:FileProvider.NSFileProviderDomain.Replicated
P:FileProvider.NSFileProviderDomain.ReplicatedKnownFolders
P:FileProvider.NSFileProviderDomain.SupportedKnownFolders
P:FileProvider.NSFileProviderDomain.SupportsSyncingTrash
P:FileProvider.NSFileProviderDomain.TestingModes
P:FileProvider.NSFileProviderDomain.UserEnabled
P:FileProvider.NSFileProviderDomain.UserInfo
P:FileProvider.NSFileProviderDomain.VolumeUuid
P:FileProvider.NSFileProviderDomainVersion.Next
P:FileProvider.NSFileProviderErrorKeys.CollidingItemKey
Expand All @@ -63809,6 +63829,9 @@ P:FileProvider.NSFileProviderItemIdentifier.WorkingSetContainer
P:FileProvider.NSFileProviderItemVersion.BeforeFirstSyncComponent
P:FileProvider.NSFileProviderItemVersion.ContentVersion
P:FileProvider.NSFileProviderItemVersion.MetadataVersion
P:FileProvider.NSFileProviderKnownFolderLocations.DesktopLocation
P:FileProvider.NSFileProviderKnownFolderLocations.DocumentsLocation
P:FileProvider.NSFileProviderKnownFolderLocations.ShouldCreateBinaryCompatibilitySymlink
P:FileProvider.NSFileProviderManager.DefaultManager
P:FileProvider.NSFileProviderManager.DocumentStorageUrl
P:FileProvider.NSFileProviderManager.MaterializedSetDidChange
Expand Down Expand Up @@ -79104,6 +79127,7 @@ T:FileProvider.INSFileProviderEnumerating
T:FileProvider.INSFileProviderEnumerationObserver
T:FileProvider.INSFileProviderIncrementalContentFetching
T:FileProvider.INSFileProviderItem
T:FileProvider.INSFileProviderKnownFolderSupporting
T:FileProvider.INSFileProviderPartialContentFetching
T:FileProvider.INSFileProviderPendingSetEnumerator
T:FileProvider.INSFileProviderReplicatedExtension
Expand Down Expand Up @@ -79134,7 +79158,15 @@ T:FileProvider.NSFileProviderGetIdentifierHandler
T:FileProvider.NSFileProviderGetIdentifierResult
T:FileProvider.NSFileProviderItemFields
T:FileProvider.NSFileProviderItemVersion
T:FileProvider.NSFileProviderKnownFolderLocation
T:FileProvider.NSFileProviderKnownFolderLocationCallback
T:FileProvider.NSFileProviderKnownFolderLocations
T:FileProvider.NSFileProviderKnownFolders
T:FileProvider.NSFileProviderManager_ExternalDomain
T:FileProvider.NSFileProviderManager_KnownFolders
T:FileProvider.NSFileProviderManager_StateDirectory
T:FileProvider.NSFileProviderManagerDisconnectionOptions
T:FileProvider.NSFileProviderManagerKnownFoldersCallback
T:FileProvider.NSFileProviderMaterializationFlags
T:FileProvider.NSFileProviderModifyItemOptions
T:FileProvider.NSFileProviderPartialContentFetchingCompletionHandler
Expand All @@ -79144,6 +79176,7 @@ T:FileProvider.NSFileProviderRequest
T:FileProvider.NSFileProviderTestingOperationSide
T:FileProvider.NSFileProviderTestingOperationType
T:FileProvider.NSFileProviderTypeAndCreator
T:FileProvider.NSFileProviderVolumeUnsupportedReason
T:FinderSync.FIFinderSync
T:FinderSync.FIFinderSyncController
T:FinderSync.FIMenuKind
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
!missing-enum! NSFileProviderKnownFolders not bound
!missing-enum-value! NSFileProviderError native value NSFileProviderErrorApplicationExtensionNotFound = -2014 not bound
!missing-enum-value! NSFileProviderError native value NSFileProviderErrorProviderDomainNotFound = -2013 not bound
!missing-enum-value! NSFileProviderError native value NSFileProviderErrorProviderDomainTemporarilyUnavailable = -2012 not bound
!missing-selector! NSFileProviderDomain::setSupportsSyncingTrash: not bound
!missing-selector! NSFileProviderDomain::supportsSyncingTrash not bound
23 changes: 0 additions & 23 deletions tests/xtro-sharpie/api-annotations-dotnet/macOS-FileProvider.todo
Original file line number Diff line number Diff line change
@@ -1,28 +1,5 @@
!missing-enum! NSFileProviderKnownFolders not bound
!missing-enum! NSFileProviderVolumeUnsupportedReason not bound
!missing-enum-value! NSFileProviderError native value NSFileProviderErrorApplicationExtensionNotFound = -2014 not bound
!missing-enum-value! NSFileProviderError native value NSFileProviderErrorProviderDomainNotFound = -2013 not bound
!missing-enum-value! NSFileProviderError native value NSFileProviderErrorProviderDomainTemporarilyUnavailable = -2012 not bound
!missing-protocol! NSFileProviderExternalVolumeHandling not bound
!missing-protocol! NSFileProviderKnownFolderSupporting not bound
!missing-selector! +NSFileProviderManager::checkDomainsCanBeStored:onVolumeAtURL:unsupportedReason:error: not bound
!missing-selector! NSFileProviderDomain::initWithDisplayName:userInfo:volumeURL: not bound
!missing-selector! NSFileProviderDomain::replicatedKnownFolders not bound
!missing-selector! NSFileProviderDomain::setSupportedKnownFolders: not bound
!missing-selector! NSFileProviderDomain::setUserInfo: not bound
!missing-selector! NSFileProviderDomain::supportedKnownFolders not bound
!missing-selector! NSFileProviderDomain::userInfo not bound
!missing-selector! NSFileProviderKnownFolderLocation::initWithExistingItemIdentifier: not bound
!missing-selector! NSFileProviderKnownFolderLocation::initWithParentItemIdentifier:filename: not bound
!missing-selector! NSFileProviderKnownFolderLocations::desktopLocation not bound
!missing-selector! NSFileProviderKnownFolderLocations::documentsLocation not bound
!missing-selector! NSFileProviderKnownFolderLocations::init not bound
!missing-selector! NSFileProviderKnownFolderLocations::setDesktopLocation: not bound
!missing-selector! NSFileProviderKnownFolderLocations::setDocumentsLocation: not bound
!missing-selector! NSFileProviderKnownFolderLocations::setShouldCreateBinaryCompatibilitySymlink: not bound
!missing-selector! NSFileProviderKnownFolderLocations::shouldCreateBinaryCompatibilitySymlink not bound
!missing-selector! NSFileProviderManager::claimNSFileProviderManager:localizedReason:completionHandler: not bound
!missing-selector! NSFileProviderManager::releaseNSFileProviderManager:localizedReason:completionHandler: not bound
!missing-selector! NSFileProviderManager::stateDirectoryURLWithError: not bound
!missing-type! NSFileProviderKnownFolderLocation not bound
!missing-type! NSFileProviderKnownFolderLocations not bound
3 changes: 0 additions & 3 deletions tests/xtro-sharpie/iOS-FileProvider.todo
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
!missing-enum! NSFileProviderKnownFolders not bound
!missing-enum-value! NSFileProviderError native value NSFileProviderErrorApplicationExtensionNotFound = -2014 not bound
!missing-enum-value! NSFileProviderError native value NSFileProviderErrorProviderDomainNotFound = -2013 not bound
!missing-enum-value! NSFileProviderError native value NSFileProviderErrorProviderDomainTemporarilyUnavailable = -2012 not bound
!missing-selector! NSFileProviderDomain::setSupportsSyncingTrash: not bound
!missing-selector! NSFileProviderDomain::supportsSyncingTrash not bound
23 changes: 0 additions & 23 deletions tests/xtro-sharpie/macOS-FileProvider.todo
Original file line number Diff line number Diff line change
@@ -1,28 +1,5 @@
!missing-enum! NSFileProviderKnownFolders not bound
!missing-enum! NSFileProviderVolumeUnsupportedReason not bound
!missing-enum-value! NSFileProviderError native value NSFileProviderErrorApplicationExtensionNotFound = -2014 not bound
!missing-enum-value! NSFileProviderError native value NSFileProviderErrorProviderDomainNotFound = -2013 not bound
!missing-enum-value! NSFileProviderError native value NSFileProviderErrorProviderDomainTemporarilyUnavailable = -2012 not bound
!missing-protocol! NSFileProviderExternalVolumeHandling not bound
!missing-protocol! NSFileProviderKnownFolderSupporting not bound
!missing-selector! +NSFileProviderManager::checkDomainsCanBeStored:onVolumeAtURL:unsupportedReason:error: not bound
!missing-selector! NSFileProviderDomain::initWithDisplayName:userInfo:volumeURL: not bound
!missing-selector! NSFileProviderDomain::replicatedKnownFolders not bound
!missing-selector! NSFileProviderDomain::setSupportedKnownFolders: not bound
!missing-selector! NSFileProviderDomain::setUserInfo: not bound
!missing-selector! NSFileProviderDomain::supportedKnownFolders not bound
!missing-selector! NSFileProviderDomain::userInfo not bound
!missing-selector! NSFileProviderKnownFolderLocation::initWithExistingItemIdentifier: not bound
!missing-selector! NSFileProviderKnownFolderLocation::initWithParentItemIdentifier:filename: not bound
!missing-selector! NSFileProviderKnownFolderLocations::desktopLocation not bound
!missing-selector! NSFileProviderKnownFolderLocations::documentsLocation not bound
!missing-selector! NSFileProviderKnownFolderLocations::init not bound
!missing-selector! NSFileProviderKnownFolderLocations::setDesktopLocation: not bound
!missing-selector! NSFileProviderKnownFolderLocations::setDocumentsLocation: not bound
!missing-selector! NSFileProviderKnownFolderLocations::setShouldCreateBinaryCompatibilitySymlink: not bound
!missing-selector! NSFileProviderKnownFolderLocations::shouldCreateBinaryCompatibilitySymlink not bound
!missing-selector! NSFileProviderManager::claimNSFileProviderManager:localizedReason:completionHandler: not bound
!missing-selector! NSFileProviderManager::releaseNSFileProviderManager:localizedReason:completionHandler: not bound
!missing-selector! NSFileProviderManager::stateDirectoryURLWithError: not bound
!missing-type! NSFileProviderKnownFolderLocation not bound
!missing-type! NSFileProviderKnownFolderLocations not bound