public async Task <IReadOnlyList <IStorageFolder> > OpenFolderPickerAsync(FolderPickerOpenOptions options) { try { var startIn = (options.SuggestedStartLocation as JSStorageItem)?.FileHandle; var item = await InvokeAsync <IJSInProcessObjectReference>("StorageProvider.selectFolderDialog", startIn); return(item is not null ? new[] { new JSStorageFolder(item) } : Array.Empty <IStorageFolder>()); } catch (JSException ex) when(ex.Message.Contains(PickerCancelMessage, StringComparison.Ordinal)) { return(Array.Empty <IStorageFolder>()); } }
public async Task <IReadOnlyList <IStorageFolder> > OpenFolderPickerAsync(FolderPickerOpenOptions options) { using var documentPicker = OperatingSystem.IsIOSVersionAtLeast(14) ? new UIDocumentPickerViewController(new[] { UTTypes.Folder }, false) : new UIDocumentPickerViewController(new string[] { UTTypeLegacy.Folder }, UIDocumentPickerMode.Open); if (OperatingSystem.IsIOSVersionAtLeast(13)) { documentPicker.DirectoryUrl = GetUrlFromFolder(options.SuggestedStartLocation); } if (OperatingSystem.IsIOSVersionAtLeast(11)) { documentPicker.AllowsMultipleSelection = options.AllowMultiple; } var urls = await ShowPicker(documentPicker); return(urls.Select(u => new IOSStorageFolder(u)).ToArray()); }
public override async Task <IReadOnlyList <IStorageFolder> > OpenFolderPickerAsync(FolderPickerOpenOptions options) { var files = await ShowFilePicker( true, true, options.AllowMultiple, false, options.Title, null, options.SuggestedStartLocation, null, null); return(files.Select(f => new BclStorageFolder(new DirectoryInfo(f))).ToArray()); }
public override Task <IReadOnlyList <IStorageFolder> > OpenFolderPickerAsync(FolderPickerOpenOptions options) { return(Task.FromResult <IReadOnlyList <IStorageFolder> >(Array.Empty <IStorageFolder>())); }
public abstract Task <IReadOnlyList <IStorageFolder> > OpenFolderPickerAsync(FolderPickerOpenOptions options);
public async Task <IReadOnlyList <IStorageFolder> > OpenFolderPickerAsync(FolderPickerOpenOptions options) { var provider = await EnsureStorageProvider().ConfigureAwait(false); return(await provider.OpenFolderPickerAsync(options).ConfigureAwait(false)); }
public override async Task <IReadOnlyList <IStorageFolder> > OpenFolderPickerAsync(FolderPickerOpenOptions options) { return(await await RunOnGlibThread(async() => { var res = await ShowDialog(options.Title, _window, GtkFileChooserAction.SelectFolder, options.AllowMultiple, options.SuggestedStartLocation, null, null, null, false).ConfigureAwait(false); return res?.Select(f => new BclStorageFolder(new DirectoryInfo(f))).ToArray() ?? Array.Empty <IStorageFolder>(); })); }
public override async Task <IReadOnlyList <IStorageFolder> > OpenFolderPickerAsync(FolderPickerOpenOptions options) { var model = new ManagedFileChooserViewModel(options, _managedOptions); var results = await Show(model, _parent); return(results.Select(f => new BclStorageFolder(new DirectoryInfo(f))).ToArray()); }
public override async Task <IReadOnlyList <IStorageFolder> > OpenFolderPickerAsync(FolderPickerOpenOptions options) { using var events = new SystemDialogEvents(); var suggestedDirectory = options.SuggestedStartLocation?.TryGetUri(out var suggestedDirectoryTmp) == true ? suggestedDirectoryTmp.LocalPath : string.Empty; _native.SelectFolderDialog((IAvnWindow)_window.Native, events, options.AllowMultiple.AsComBool(), options.Title ?? "", suggestedDirectory); var result = await events.Task.ConfigureAwait(false); return(result?.Select(f => new BclStorageFolder(new DirectoryInfo(f))).ToArray() ?? Array.Empty <IStorageFolder>()); }