diff --git a/src/fileprovider.cs b/src/fileprovider.cs index 1ca0195c3be1..2eaf889d0bad 100644 --- a/src/fileprovider.cs +++ b/src/fileprovider.cs @@ -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; } @@ -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 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 { } @@ -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); + } } diff --git a/tests/cecil-tests/Documentation.KnownFailures.txt b/tests/cecil-tests/Documentation.KnownFailures.txt index af9bc49c35a3..ae966bee1ff2 100644 --- a/tests/cecil-tests/Documentation.KnownFailures.txt +++ b/tests/cecil-tests/Documentation.KnownFailures.txt @@ -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 @@ -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 @@ -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}) @@ -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) @@ -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}) @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-FileProvider.todo b/tests/xtro-sharpie/api-annotations-dotnet/iOS-FileProvider.todo index c42e56926a41..f93b23c66048 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-FileProvider.todo +++ b/tests/xtro-sharpie/api-annotations-dotnet/iOS-FileProvider.todo @@ -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 diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-FileProvider.todo b/tests/xtro-sharpie/api-annotations-dotnet/macOS-FileProvider.todo index 432e7f33d2b1..f57d7ccf3223 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-FileProvider.todo +++ b/tests/xtro-sharpie/api-annotations-dotnet/macOS-FileProvider.todo @@ -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 diff --git a/tests/xtro-sharpie/iOS-FileProvider.todo b/tests/xtro-sharpie/iOS-FileProvider.todo index c42e56926a41..f93b23c66048 100644 --- a/tests/xtro-sharpie/iOS-FileProvider.todo +++ b/tests/xtro-sharpie/iOS-FileProvider.todo @@ -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 diff --git a/tests/xtro-sharpie/macOS-FileProvider.todo b/tests/xtro-sharpie/macOS-FileProvider.todo index 432e7f33d2b1..f57d7ccf3223 100644 --- a/tests/xtro-sharpie/macOS-FileProvider.todo +++ b/tests/xtro-sharpie/macOS-FileProvider.todo @@ -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