diff --git a/src/fileprovider.cs b/src/fileprovider.cs index dcaaeb19e0bf..f22b9e6050d9 100644 --- a/src/fileprovider.cs +++ b/src/fileprovider.cs @@ -812,10 +812,26 @@ interface NSFileProviderManager { [NoTV, NoMacCatalyst, NoiOS, Mac (13, 0)] [Export ("requestDownloadForItemWithIdentifier:requestedRange:completionHandler:")] void RequestDownload (string itemIdentifier, NSRange rangeToMaterialize, Action completionHandler); + + // From NSFileProviderManager (ExternalDomain) Category + [NoTV, NoiOS, NoMacCatalyst, Mac (15, 0)] + [Export ("checkDomainsCanBeStored:onVolumeAtURL:unsupportedReason:error:")] + [Static] + bool CheckDomainsCanBeStored (out bool eligible, NSUrl volumeAtUrl, out NSFileProviderVolumeUnsupportedReason unsupportedReason, [NullAllowed] out NSError error); } interface INSFileProviderPendingSetEnumerator { } + [Category] + [BaseType (typeof (NSFileProviderManager))] + [NoTV, NoMacCatalyst, NoiOS, Mac (15, 4)] + interface NSFileProviderManager_Diagnostics { + [Export ("requestDiagnosticCollectionForItemWithIdentifier:errorReason:completionHandler:")] + void RequestDiagnosticCollection (string itemIdentifier, NSError errorReason, NSFileProviderManagerRequestDiagnosticCollectionCallback completionHandler); + } + + delegate void NSFileProviderManagerRequestDiagnosticCollectionCallback ([NullAllowed] NSError error); + [NoMacCatalyst] [NoTV, iOS (16, 0)] [Protocol] @@ -1474,11 +1490,24 @@ public enum NSFileProviderVolumeUnsupportedReason : ulong { Quarantined = 1 << 5, } +#if !XAMCORE_5_0 [NoTV, NoiOS, NoMacCatalyst, Mac (15, 0)] [Category] [BaseType (typeof (NSFileProviderManager))] interface NSFileProviderManager_ExternalDomain { + [Obsolete ("Call 'NSFileProviderManager.CheckDomainsCanBeStored' instead.")] [Export ("checkDomainsCanBeStored:onVolumeAtURL:unsupportedReason:error:")] unsafe bool CheckDomainsCanBeStored (out bool eligible, NSUrl volumeAtUrl, NSFileProviderVolumeUnsupportedReason* unsupportedReason, [NullAllowed] out NSError error); } +#endif + + [NoTV, NoMacCatalyst, NoiOS, Mac (15, 0)] + [Protocol (BackwardsCompatibleCodeGeneration = false)] + interface NSFileProviderExternalVolumeHandling { + [Abstract] + [Export ("shouldConnectExternalDomainWithCompletionHandler:")] + void ShouldConnectExternalDomain (NSFileProviderExternalVolumeHandlingShouldConnectExternalDomainCallback completionHandler); + } + + delegate void NSFileProviderExternalVolumeHandlingShouldConnectExternalDomainCallback ([NullAllowed] NSError connectionError); } diff --git a/tests/cecil-tests/Documentation.KnownFailures.txt b/tests/cecil-tests/Documentation.KnownFailures.txt index 8c2df80fd53d..7d8eb9c55a34 100644 --- a/tests/cecil-tests/Documentation.KnownFailures.txt +++ b/tests/cecil-tests/Documentation.KnownFailures.txt @@ -28808,6 +28808,7 @@ M:FileProvider.INSFileProviderEnumerator.CurrentSyncAnchor(System.Action{Foundat M:FileProvider.INSFileProviderEnumerator.EnumerateChanges(FileProvider.INSFileProviderChangeObserver,Foundation.NSData) M:FileProvider.INSFileProviderEnumerator.EnumerateItems(FileProvider.INSFileProviderEnumerationObserver,Foundation.NSData) M:FileProvider.INSFileProviderEnumerator.Invalidate +M:FileProvider.INSFileProviderExternalVolumeHandling.ShouldConnectExternalDomain(FileProvider.NSFileProviderExternalVolumeHandlingShouldConnectExternalDomainCallback) M:FileProvider.INSFileProviderIncrementalContentFetching.FetchContents(System.String,FileProvider.NSFileProviderItemVersion,Foundation.NSUrl,FileProvider.NSFileProviderItemVersion,FileProvider.NSFileProviderRequest,FileProvider.NSFileProviderFetchContentsCompletionHandler) M:FileProvider.INSFileProviderItem.GetCapabilities M:FileProvider.INSFileProviderItem.GetChildItemCount @@ -28935,12 +28936,13 @@ M:FileProvider.NSFileProviderItem_Extensions.IsUploading(FileProvider.INSFilePro 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_Diagnostics.RequestDiagnosticCollection(FileProvider.NSFileProviderManager,System.String,Foundation.NSError,FileProvider.NSFileProviderManagerRequestDiagnosticCollectionCallback) 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.CheckDomainsCanBeStored(System.Boolean@,Foundation.NSUrl,FileProvider.NSFileProviderVolumeUnsupportedReason@,Foundation.NSError@) M:FileProvider.NSFileProviderManager.Disconnect(System.String,FileProvider.NSFileProviderManagerDisconnectionOptions,System.Action{Foundation.NSError}) M:FileProvider.NSFileProviderManager.DisconnectAsync(System.String,FileProvider.NSFileProviderManagerDisconnectionOptions) M:FileProvider.NSFileProviderManager.EvictItem(Foundation.NSString,System.Action{Foundation.NSError}) @@ -66904,6 +66906,7 @@ T:FileProvider.INSFileProviderCustomAction T:FileProvider.INSFileProviderDomainState T:FileProvider.INSFileProviderEnumerating T:FileProvider.INSFileProviderEnumerationObserver +T:FileProvider.INSFileProviderExternalVolumeHandling T:FileProvider.INSFileProviderIncrementalContentFetching T:FileProvider.INSFileProviderItem T:FileProvider.INSFileProviderKnownFolderSupporting @@ -66929,6 +66932,7 @@ T:FileProvider.NSFileProviderDeleteItemOptions T:FileProvider.NSFileProviderDomainRemovalMode T:FileProvider.NSFileProviderDomainTestingModes T:FileProvider.NSFileProviderDomainVersion +T:FileProvider.NSFileProviderExternalVolumeHandlingShouldConnectExternalDomainCallback T:FileProvider.NSFileProviderFavoriteRank T:FileProvider.NSFileProviderFetchContentsCompletionHandler T:FileProvider.NSFileProviderFetchContentsOptions @@ -66941,11 +66945,13 @@ T:FileProvider.NSFileProviderKnownFolderLocation T:FileProvider.NSFileProviderKnownFolderLocationCallback T:FileProvider.NSFileProviderKnownFolderLocations T:FileProvider.NSFileProviderKnownFolders +T:FileProvider.NSFileProviderManager_Diagnostics T:FileProvider.NSFileProviderManager_ExternalDomain T:FileProvider.NSFileProviderManager_KnownFolders T:FileProvider.NSFileProviderManager_StateDirectory T:FileProvider.NSFileProviderManagerDisconnectionOptions T:FileProvider.NSFileProviderManagerKnownFoldersCallback +T:FileProvider.NSFileProviderManagerRequestDiagnosticCollectionCallback T:FileProvider.NSFileProviderMaterializationFlags T:FileProvider.NSFileProviderModifyItemOptions T:FileProvider.NSFileProviderPartialContentFetchingCompletionHandler diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-FileProvider.ignore b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-FileProvider.ignore index 50003e4d2f7b..48e77adae063 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-FileProvider.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-FileProvider.ignore @@ -1,3 +1,5 @@ # Documentation as of Xcode 13 as macOS only !missing-enum! NSFileProviderFileSystemFlags not bound !missing-enum! NSFileProviderDomainTestingModes not bound +# Header clearly says this enum is not available on Mac Catalyst, not sure why xtro thinks it is. +!missing-enum! NSFileProviderContentPolicy not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-FileProvider.todo b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-FileProvider.todo deleted file mode 100644 index 60f9bcae5366..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-FileProvider.todo +++ /dev/null @@ -1 +0,0 @@ -!missing-enum! NSFileProviderContentPolicy not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-FileProvider.todo b/tests/xtro-sharpie/api-annotations-dotnet/macOS-FileProvider.todo deleted file mode 100644 index 32feeca7d6dc..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-FileProvider.todo +++ /dev/null @@ -1,3 +0,0 @@ -!missing-protocol! NSFileProviderExternalVolumeHandling not bound -!missing-selector! +NSFileProviderManager::checkDomainsCanBeStored:onVolumeAtURL:unsupportedReason:error: not bound -!missing-selector! NSFileProviderManager::requestDiagnosticCollectionForItemWithIdentifier:errorReason:completionHandler: not bound