Projectreunion: New File/Folder picker for Reunion

Created on 22 Jun 2020  路  10Comments  路  Source: microsoft/ProjectReunion

Proposal: New File/Folder picker for Reunion

Summary

This proposal introduces an attempt to design a new UWP File/Folder picker for Reunion that overcomes the limitations of the UWP File/Folder picker currently available in the SDK

Rationale


Listed below are the limitations of the current File/Folder picker

  • Unable to pick files and folders in a single instance of the picker dialog
  • Unable to pick multiple folders

This proposal attempts to address the above issues for down-level OS'es (RS1 and higher).

Scope


| Capability | Priority |
| :---------- | :------- |
| This proposal will allow developers to pick files and folders in a single instance of the picker dialog | Must |
| This proposal will allow developers to pick multiple folders | Must |
| This proposal will allow developers to specify paths that are outside the application install path (with permissions) | Must |
| This proposal will allow applications to pick Files/Folders on behalf of a user | Could |
| This proposal will allow applications to customize the File/Folder dialog (within limitations) | Should |

Important Notes

Open Questions

  • Will applications need special permissions to use the file/folder picker other than storage permissions.
area-Shell UX feature proposal

Most helpful comment

Also FilePicker doesn't allow apps to add custom options like it can be done with open and save as dialog boxes in case of win32 apps:

WINWORD_ZEjbI5QRXd

notepad_hoTBxpTwTD

Being able to add custom options like in can be done with print dialog will also be helpful.

All 10 comments

It would also be helpful to enable developers to freely set the picker's start location. Currently, these pickers have a SuggestedStartLocation API which only lets the developer pick from a small set of (common) file system locations (such as the user's desktop or download folder). This API could be changed to accept any file/folder path the developer wants to specify, for example like this:

public string SuggestedStartLocation { get; set; }

to be used like:

var filePicker = new FileOpenPicker()
{
    SuggestedStartLocation = "MyCustomFolderFilePath"
}

Developers would still be able to easily set the start location to the folders they currently can pick for the SuggestedStartLocation like this:

var filePicker = new FileOpenPicker()
{
    SuggestedStartLocation = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)
};

This would also help mitigate the UX issue being called out in issue #45.

Also FilePicker doesn't allow apps to add custom options like it can be done with open and save as dialog boxes in case of win32 apps:

WINWORD_ZEjbI5QRXd

notepad_hoTBxpTwTD

Being able to add custom options like in can be done with print dialog will also be helpful.

Also consider defining proper AutomationIds, currently two properties (ComboBox and TextBox in ComboBox) have automation id of 1148, in the OS file picker. This makes UI testing tricky.

Not sure if this gets implemented in the OS, as a Reunion UI/framework - or if it comes with the forthcoming Windows 10X Files app - but these old UI surfaces, should be replaced with Xaml UIs - for apps compiled using Reunion APIs

Please do not forget other applications able to provide "file" as the "Camera" app in Windows 10

WinRT apps support picking files from other app, and on Windows 10, it is implemented like a hack, with XAML UI showing in a cutout of the Old Explorer based file picker.

One protential usage would be like calling Camera app to take selfees when uploading profile pictures.

This feature is currently not available in Win32 Apps.

The new file picker should be fully WinUI based, and add support for this in Win32 Apps. It could be done with a path to a temp file, and automatically deleted after the file is closed by the app.

Just linking to this WinUI topic, where we are discussing building a new Reunion WinUI File Picker Dialog for this API proposal
https://github.com/microsoft/microsoft-ui-xaml/issues/2854

dialog mockup
_Mockup Dialog components_

mockup of file providers
_Mockup Dialog "file providers"_

I would love a folder picker where as a developer I can suggest a OneDrive folder. Right now I can provide a suggestion that the folder picker start in the My Documents folder, but I can't then recommend that it start in an actual useful sub-folder like 'My Documents\Roaming_Bookmarks'

Here's my scenario: I want people to be able to pick a folder that will be used to synchronize some bookmark data. Each computer they run on, they have to pick the same folder (this assumes that they want their bookmarks to roam; if they don't, the default is to just store them locally). But users are terrible at picking a folder!

  1. By default, I can point them to the My Documents folders, but this clutters up the Documents folder.
  2. I can pop up a dialog and suggest to users that they pick a folder on OneDrive, but I can't set what that folder is
  3. When they do the same thing on a new computer, they have to remember which folder they picked before, and that's hard

TL/DR: save folder picker should let me as a developer specify a currently non-existing OneDrive folder by name that will be created if the user agree

@ZenBird Any updates on this based on the feedback thus far?

Can we get some indication where this proposal stands?

Is it being actively considered or worked on?

What version of Reunion is this likely to land in?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mevey picture mevey  路  4Comments

Felix-Dev picture Felix-Dev  路  4Comments

pjmlp picture pjmlp  路  5Comments

jonwis picture jonwis  路  4Comments

tesar-tech picture tesar-tech  路  4Comments