Introducing Windows Customization - #2383
Conversation
This commit includes the initial placeholder L1 page for 'Windows customization' which will host various settings and utilities to customize Windows to a developer's preferences. The MainPage acts as a root which eventually will host a ContentPresenter for displaying the active view (for example, when search is added the ContentPresent will switch the root view temporarily to the 'All settings' search view, and once we get better support to integrate into the navigation service, sub-pages could be consolidated into that content presenter as well. To provide an example of how options can be incorporated, the Developer File Explorer page was introduced. The pattern we’re going for here is to provide logical settings groups in the form of a UserControl, which is then wrapped by a Page. This helps in the future when implementing search because we want to host all settings controls in the same root view and filter visibility based on the search filter. Having each group as a separate control view can easily enable hosting that UI in any form we need to down the line. The sub-pages themselves are probably temporarily placeholders for a better integration with the navigation service down the line. See tools\Customization\DevHome.Customization\Customization.md for details.
- Update to incorporate #2356 for PageService sub-page registration - Update nuget package based on conflicts with newly added C++ projects that require packages.config - Remove breadcrumb until we figure out if there's going to be a common way to do this without duplicating so much code. The impact here is minimal since Customization doesn't have a ton of sub-pages (yet) - Mark SettingsChanged telemetry event to be a measure, I'm guessing this doesn't need to be Critical?
b15bf52 to
0eff82c
Compare
There was a problem hiding this comment.
Approving but strongly suggest making the ProjectReference change. (It's top of mind since I just removed a bunch of project references and created the diagram here. Actually, would be cool if you could update the mermaid diagram to include DevHome.Customization.)
|
|
||
| public static void Log(string settingName, string value) | ||
| { | ||
| TelemetryFactory.Get<ITelemetry>().Log("Customization_SettingChanged_Event", LogLevel.Measure, new SettingChangedEvent(settingName, value)); |
There was a problem hiding this comment.
At this time I'm not sure any of these will come through, we've gotten approvals to use LogLevel.Critical around dev home. You do have to get approvals for each event, though.
There was a problem hiding this comment.
What is the recommended approach here? We will want to set up measures for these at some point but I'm not sure it's critical to do that until we have a good telemetry story for Windows customization. I could just change this to be Info for now.
Summary of the pull request
This commit includes the initial placeholder L1 page for 'Windows customization' which will host various settings and utilities to customize Windows to a developer's preferences.
References and relevant issues
Starts the work related to the "Advanced Settings" feature exploration #1983
Detailed description of the pull request / Additional comments
The MainPage acts as a root which eventually will host a ContentPresenter for displaying the active view (for example, when search is added the ContentPresent will switch the root view temporarily to the 'All settings' search view, and once we get better support to integrate into the navigation service, sub-pages could be consolidated into that content presenter as well.
To provide an example of how options can be incorporated, the Developer File Explorer page was introduced.
The pattern we’re going for here is to provide logical settings groups in the form of a UserControl, which is then wrapped by a Page. This helps in the future when implementing search because we want to host all settings controls in the same root view and filter visibility based on the search filter. Having each group as a separate control view can easily enable hosting that UI in any form we need to down the line. The sub-pages themselves are probably temporarily placeholders for a better integration with the navigation service down the line.
See tools\Customization\DevHome.Customization\Customization.md for details.
Validation steps performed
PR checklist