Skip to content

Commit c420382

Browse files
hishitetsuyaira2
authored andcommitted
Fix: Fixed ArgumentException when wrong color was specified (#14751)
1 parent 5ef7b3a commit c420382

File tree

2 files changed

+50
-8
lines changed

2 files changed

+50
-8
lines changed

src/Files.App/Helpers/UI/AppThemeResourcesHelper.cs

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,62 @@ public static class AppThemeResourcesHelper
1616
public static void LoadAppResources(this IResourcesService service, IAppearanceSettingsService appearance)
1717
{
1818
var useCompactStyles = appearance.UseCompactStyles;
19-
var appThemeBackgroundColor = ColorHelper.ToColor(appearance.AppThemeBackgroundColor);
19+
var appThemeBackgroundColor = appearance.AppThemeBackgroundColor;
2020
var appThemeAddressBarBackgroundColor = appearance.AppThemeAddressBarBackgroundColor;
2121
var appThemeSidebarBackgroundColor = appearance.AppThemeSidebarBackgroundColor;
2222
var appThemeFileAreaBackgroundColor = appearance.AppThemeFileAreaBackgroundColor;
2323
var appThemeFontFamily = appearance.AppThemeFontFamily;
2424

2525
service.SetCompactSpacing(useCompactStyles);
26-
service.SetAppThemeBackgroundColor(appThemeBackgroundColor.FromWindowsColor());
26+
try
27+
{
28+
service.SetAppThemeBackgroundColor(ColorHelper.ToColor(appThemeBackgroundColor).FromWindowsColor());
29+
}
30+
catch
31+
{
32+
appearance.AppThemeBackgroundColor = "#00000000"; //migrate to new default
33+
service.SetAppThemeBackgroundColor(ColorHelper.ToColor("#00000000").FromWindowsColor());
34+
}
2735

2836
if (!string.IsNullOrWhiteSpace(appThemeAddressBarBackgroundColor) && appThemeAddressBarBackgroundColor != "#00000000")
29-
service.SetAppThemeAddressBarBackgroundColor(ColorHelper.ToColor(appThemeAddressBarBackgroundColor).FromWindowsColor());
37+
{
38+
try
39+
{
40+
service.SetAppThemeAddressBarBackgroundColor(ColorHelper.ToColor(appThemeAddressBarBackgroundColor).FromWindowsColor());
41+
}
42+
catch
43+
{
44+
appearance.AppThemeAddressBarBackgroundColor = ""; //migrate to new default
45+
}
46+
}
3047
else
3148
appearance.AppThemeAddressBarBackgroundColor = ""; //migrate to new default
3249

33-
if (!string.IsNullOrWhiteSpace(appThemeSidebarBackgroundColor) && appThemeAddressBarBackgroundColor != "#00000000")
34-
service.SetAppThemeSidebarBackgroundColor(ColorHelper.ToColor(appThemeSidebarBackgroundColor).FromWindowsColor());
50+
if (!string.IsNullOrWhiteSpace(appThemeSidebarBackgroundColor) && appThemeSidebarBackgroundColor != "#00000000")
51+
{
52+
try
53+
{
54+
service.SetAppThemeSidebarBackgroundColor(ColorHelper.ToColor(appThemeSidebarBackgroundColor).FromWindowsColor());
55+
}
56+
catch
57+
{
58+
appearance.AppThemeSidebarBackgroundColor = ""; //migrate to new default
59+
}
60+
}
3561
else
3662
appearance.AppThemeSidebarBackgroundColor = ""; //migrate to new default
3763

38-
if (!string.IsNullOrWhiteSpace(appThemeFileAreaBackgroundColor) && appThemeAddressBarBackgroundColor != "#00000000")
39-
service.SetAppThemeFileAreaBackgroundColor(ColorHelper.ToColor(appThemeFileAreaBackgroundColor).FromWindowsColor());
64+
if (!string.IsNullOrWhiteSpace(appThemeFileAreaBackgroundColor) && appThemeFileAreaBackgroundColor != "#00000000")
65+
{
66+
try
67+
{
68+
service.SetAppThemeFileAreaBackgroundColor(ColorHelper.ToColor(appThemeFileAreaBackgroundColor).FromWindowsColor());
69+
}
70+
catch
71+
{
72+
appearance.AppThemeFileAreaBackgroundColor = ""; //migrate to new default
73+
}
74+
}
4075
else
4176
appearance.AppThemeFileAreaBackgroundColor = ""; //migrate to new default
4277

src/Files.App/ViewModels/Settings/AppearanceViewModel.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,14 @@ public string AppThemeBackgroundColor
134134
UserSettingsService.AppearanceSettingsService.AppThemeBackgroundColor = value;
135135

136136
// Apply the updated background resource
137-
ResourcesService.SetAppThemeBackgroundColor(ColorHelper.ToColor(value).FromWindowsColor());
137+
try
138+
{
139+
ResourcesService.SetAppThemeBackgroundColor(ColorHelper.ToColor(value).FromWindowsColor());
140+
}
141+
catch
142+
{
143+
ResourcesService.SetAppThemeBackgroundColor(ColorHelper.ToColor("#00000000").FromWindowsColor());
144+
}
138145
ResourcesService.ApplyResources();
139146

140147
OnPropertyChanged();

0 commit comments

Comments
 (0)