Skip to content

Commit

Permalink
perf: Improve resources lookup using merged ResourceDictionary for …
Browse files Browse the repository at this point in the history
…styles
  • Loading branch information
jeromelaban committed Dec 16, 2021
1 parent 2704a09 commit 4650de4
Show file tree
Hide file tree
Showing 64 changed files with 9,322 additions and 429 deletions.
4 changes: 2 additions & 2 deletions Uno.Themes.sln
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29709.97
# Visual Studio Version 17
VisualStudioVersion = 17.1.31903.286
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Material", "src\library\Uno.Material\Uno.Material.csproj", "{B5279EE5-E662-45B0-8929-D90D0BDE16AB}"
EndProject
Expand Down
5 changes: 5 additions & 0 deletions build/stage-build.yml
@@ -1,23 +1,27 @@
steps:
- task: gitversion/setup@0
retryCountOnTaskFailure: 3
inputs:
versionSpec: '5.0.0'
displayName: 'Install GitVersion'

- task: gitversion/execute@0
retryCountOnTaskFailure: 3
inputs:
useConfigFile: true
configFilePath: 'build/gitversion.yml'
displayName: 'Calculate SemVer'

- task: UseDotNet@2
condition: eq(variables['IsCanaryBranch'], true)
retryCountOnTaskFailure: 3
inputs:
packageType: runtime
version: 2.2.x

- task: nventiveCanaryUpdater@5
condition: eq(variables['IsCanaryBranch'], true)
retryCountOnTaskFailure: 3
inputs:
solution: Uno.Themes.sln
useNuGetOrg: true
Expand All @@ -29,6 +33,7 @@

- task: MSBuild@1
displayName: 'Build solution in Release | $(ApplicationPlatform)'
retryCountOnTaskFailure: 3
inputs:
solution: Uno.Themes.sln
configuration: Release
Expand Down
61 changes: 38 additions & 23 deletions src/library/Uno.Cupertino/CupertinoResources.cs
Expand Up @@ -27,35 +27,50 @@ public CupertinoResources()
private IEnumerable<(string Source, string[] ImplicitStyles)> GetResourceInfos()
{
var resources = new List<(string Path, string[] ImplicitStyles)>();
// Add all ResourceDictionaries for Variables here in alphabetical order
Add("ms-appx:///Uno.Cupertino/Styles/Application/AnimationConstants.xaml");
Add("ms-appx:///Uno.Cupertino/Styles/Application/Colors.xaml");
Add("ms-appx:///Uno.Cupertino/Styles/Application/Converters.xaml");
Add("ms-appx:///Uno.Cupertino/Styles/Application/StateConstants.xaml");

// Add all ResourceDictionaries for Controls here in alphabetical order
Add("ms-appx:///Uno.Cupertino/Styles/Controls/Button.xaml", "CupertinoButtonStyle");
Add("ms-appx:///Uno.Cupertino/Styles/Controls/CalendarDatePicker.xaml", "CupertinoCalendarDatePickerStyle");
Add("ms-appx:///Uno.Cupertino/Styles/Controls/CalendarView.xaml", "CupertinoCalendarViewStyle");
Add("ms-appx:///Uno.Cupertino/Styles/Controls/CheckBox.xaml", "CupertinoCheckBoxStyle");
Add("ms-appx:///Uno.Cupertino/Styles/Controls/ComboBox.xaml", "CupertinoComboBoxStyle");
Add("ms-appx:///Uno.Cupertino/Styles/Controls/DatePicker.xaml", "CupertinoDatePickerStyle");
Add("ms-appx:///Uno.Cupertino/Styles/Controls/HyperlinkButton.xaml", "CupertinoHyperlinkButtonStyle");
Add("ms-appx:///Uno.Cupertino/Styles/Controls/NumberBox.xaml", "CupertinoNumberBoxStyle");
Add("ms-appx:///Uno.Cupertino/Styles/Controls/PasswordBox.xaml", "CupertinoPasswordBoxStyle");
Add("ms-appx:///Uno.Cupertino/Styles/Controls/ProgressBar.xaml", "CupertinoProgressBarStyle");
var implicitStyles = new[] {
// Add all ResourceDictionaries for Controls here in alphabetical order
// "ms-appx:///Uno.Cupertino/Styles/Controls/Button.xaml",
"CupertinoButtonStyle",
// "ms-appx:///Uno.Cupertino/Styles/Controls/CalendarDatePicker.xaml",
"CupertinoCalendarDatePickerStyle",
// "ms-appx:///Uno.Cupertino/Styles/Controls/CalendarView.xaml",
"CupertinoCalendarViewStyle",
// "ms-appx:///Uno.Cupertino/Styles/Controls/CheckBox.xaml",
"CupertinoCheckBoxStyle",
// "ms-appx:///Uno.Cupertino/Styles/Controls/ComboBox.xaml",
"CupertinoComboBoxStyle",
// "ms-appx:///Uno.Cupertino/Styles/Controls/DatePicker.xaml",
"CupertinoDatePickerStyle",
// "ms-appx:///Uno.Cupertino/Styles/Controls/HyperlinkButton.xaml",
"CupertinoHyperlinkButtonStyle",
// "ms-appx:///Uno.Cupertino/Styles/Controls/NumberBox.xaml",
"CupertinoNumberBoxStyle",
// "ms-appx:///Uno.Cupertino/Styles/Controls/PasswordBox.xaml",
"CupertinoPasswordBoxStyle",
// "ms-appx:///Uno.Cupertino/Styles/Controls/ProgressBar.xaml",
"CupertinoProgressBarStyle",
#if !WinUI_Desktop
Add("ms-appx:///Uno.Cupertino/Styles/Controls/ProgressRing.xaml", "CupertinoProgressRingStyle");
// "ms-appx:///Uno.Cupertino/Styles/Controls/ProgressRing.xaml",
"CupertinoProgressRingStyle",
#endif
Add("ms-appx:///Uno.Cupertino/Styles/Controls/RadioButton.xaml", "CupertinoRadioButtonStyle");
Add("ms-appx:///Uno.Cupertino/Styles/Controls/Slider.xaml", "CupertinoSliderStyle");
Add("ms-appx:///Uno.Cupertino/Styles/Controls/TextBlock.xaml", "CupertinoBody");
Add("ms-appx:///Uno.Cupertino/Styles/Controls/TextBox.xaml", "CupertinoTextBoxStyle");
Add("ms-appx:///Uno.Cupertino/Styles/Controls/ToggleSwitch.xaml", "CupertinoToggleSwitchStyle");
// "ms-appx:///Uno.Cupertino/Styles/Controls/RadioButton.xaml",
"CupertinoRadioButtonStyle",
// "ms-appx:///Uno.Cupertino/Styles/Controls/Slider.xaml",
"CupertinoSliderStyle",
// "ms-appx:///Uno.Cupertino/Styles/Controls/TextBlock.xaml",
"CupertinoBody",
// "ms-appx:///Uno.Cupertino/Styles/Controls/TextBox.xaml",
"CupertinoTextBoxStyle",
// "ms-appx:///Uno.Cupertino/Styles/Controls/ToggleSwitch.xaml",
"CupertinoToggleSwitchStyle",
};

Add("ms-appx:///Uno.Cupertino/Generated/mergedpages.xaml", implicitStyles);

return resources;

void Add(string source, params string[] implicitStyles) => resources.Add((source, implicitStyles));
void Add(string source, params string[] styles) => resources.Add((source, styles));
}

private void ImportResourceDictionaries()
Expand Down

0 comments on commit 4650de4

Please sign in to comment.