-
Notifications
You must be signed in to change notification settings - Fork 337
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introducing Windows Customization #2383
Conversation
tools/Customization/DevHome.Customization/DevHome.Customization.csproj
Outdated
Show resolved
Hide resolved
tools/Customization/DevHome.Customization/Views/DeveloperFileExplorerPage.xaml.cs
Outdated
Show resolved
Hide resolved
tools/Customization/DevHome.Customization/ViewModels/MainPageViewModel.cs
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
tools/Customization/DevHome.Customization/TelemetryEvents/SettingChangedEvent.cs
Show resolved
Hide resolved
tools/Customization/DevHome.Customization/ViewModels/MainPageViewModel.cs
Outdated
Show resolved
Hide resolved
tools/Customization/DevHome.Customization/Views/DeveloperFileExplorerPage.xaml
Show resolved
Hide resolved
tools/Customization/DevHome.Customization/Views/DeveloperFileExplorerPage.xaml.cs
Outdated
Show resolved
Hide resolved
tools/Customization/DevHome.Customization/Views/DeveloperFileExplorerPage.xaml.cs
Outdated
Show resolved
Hide resolved
tools/Customization/DevHome.Customization/Views/DeveloperFileExplorerView.xaml.cs
Show resolved
Hide resolved
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.
tools/Customization/DevHome.Customization/TelemetryEvents/SettingChangedEvent.cs
Outdated
Show resolved
Hide resolved
- 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.)
tools/Customization/DevHome.Customization/DevHome.Customization.csproj
Outdated
Show resolved
Hide resolved
|
||
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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