Skip to content

Commit a1bfea3

Browse files
authored
Fixed a crash when using the high contrast theme (#1011)
1 parent 2e1943a commit a1bfea3

File tree

2 files changed

+29
-5
lines changed

2 files changed

+29
-5
lines changed

Files/App.xaml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,18 @@
3535
<SolidColorBrush x:Key="SystemControlPageBackgroundMediumAltMediumBrush" Color="#99000000" />
3636
</ResourceDictionary>
3737
<ResourceDictionary x:Key="HighContrast">
38-
<!-- This empty dictionary ensures that the default high contrast resources are used when the user turns on high contrast mode. -->
38+
<SolidColorBrush x:Key="ApplicationPageBackgroundThemeBrush" Color="#191919" />
39+
<SolidColorBrush x:Key="UnmodifiedSystemPageColor" Color="Black" />
40+
<StaticResource x:Key="YourHomeCardBackgroundColor" ResourceKey="TextControlBackground" />
41+
<SolidColorBrush x:Key="YourHomeCardBorderColor" Color="White" />
42+
<SolidColorBrush x:Key="TabViewBackground" Color="Black" />
43+
<SolidColorBrush x:Key="TabViewItemHeaderBackgroundSelected" Color="#191919" />
44+
<SolidColorBrush x:Key="TabViewItemHeaderBackgroundPointerOver" Color="#80191919" />
45+
<SolidColorBrush x:Key="TabViewItemHeaderBackgroundPressed" Color="#191919" />
46+
<SolidColorBrush x:Key="CustomInputFieldBorderBrush" Color="#FF363636" />
47+
<SolidColorBrush x:Key="RibbonBackgroundColor" Color="#131313" />
48+
<StaticResource x:Key="NavigationViewTopPaneBackground" ResourceKey="RibbonBackgroundColor" />
49+
<SolidColorBrush x:Key="SystemControlPageBackgroundMediumAltMediumBrush" Color="#99000000" />
3950
</ResourceDictionary>
4051
</ResourceDictionary.ThemeDictionaries>
4152
</ResourceDictionary>

Files/Views/Pages/Properties.xaml.cs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@
33
using Files.Interacts;
44
using GalaSoft.MvvmLight;
55
using System;
6+
using System.Linq;
7+
using System.Threading.Tasks;
68
using Windows.Foundation.Metadata;
79
using Windows.Security.Cryptography.Core;
810
using Windows.Storage;
11+
using Windows.Storage.Search;
912
using Windows.UI;
1013
using Windows.UI.WindowManagement;
1114
using Windows.UI.Xaml;
@@ -58,16 +61,19 @@ private async void Properties_Loaded(object sender, RoutedEventArgs e)
5861
if (selectedItem.PrimaryItemAttribute == StorageItemTypes.File)
5962
{
6063
selectedStorageItem = await StorageFile.GetFileFromPathAsync(selectedItem.ItemPath);
64+
ItemProperties.ItemSize = selectedItem.FileSize;
6165
}
6266
else if (selectedItem.PrimaryItemAttribute == StorageItemTypes.Folder)
6367
{
64-
selectedStorageItem = await StorageFolder.GetFolderFromPathAsync(selectedItem.ItemPath);
68+
var storageFolder = await StorageFolder.GetFolderFromPathAsync(selectedItem.ItemPath);
69+
selectedStorageItem = storageFolder;
70+
GetFolderSize(storageFolder);
6571
}
6672

6773
ItemProperties.ItemName = selectedItem.ItemName;
6874
ItemProperties.ItemType = selectedItem.ItemType;
6975
ItemProperties.ItemPath = selectedItem.ItemPath;
70-
ItemProperties.ItemSize = selectedItem.FileSize;
76+
7177
ItemProperties.LoadFileIcon = selectedItem.LoadFileIcon;
7278
ItemProperties.LoadFolderGlyph = selectedItem.LoadFolderGlyph;
7379
ItemProperties.LoadUnknownTypeGlyph = selectedItem.LoadUnknownTypeGlyph;
@@ -105,6 +111,7 @@ private async void Properties_Loaded(object sender, RoutedEventArgs e)
105111
// GetFolderFromPathAsync cannot access recyclebin folder
106112
// Currently a fake timestamp is used
107113
ItemProperties.ItemCreatedTimestamp = ListedItem.GetFriendlyDate(parentDirectory.ItemDateModifiedReal);
114+
ItemProperties.ItemSize = parentDirectory.FileSize;
108115
}
109116
else
110117
{
@@ -114,7 +121,6 @@ private async void Properties_Loaded(object sender, RoutedEventArgs e)
114121
ItemProperties.ItemName = parentDirectory.ItemName;
115122
ItemProperties.ItemType = parentDirectory.ItemType;
116123
ItemProperties.ItemPath = parentDirectory.ItemPath;
117-
ItemProperties.ItemSize = parentDirectory.FileSize;
118124
ItemProperties.LoadFileIcon = false;
119125
ItemProperties.LoadFolderGlyph = true;
120126
ItemProperties.LoadUnknownTypeGlyph = false;
@@ -123,7 +129,14 @@ private async void Properties_Loaded(object sender, RoutedEventArgs e)
123129
ItemProperties.ItemMD5HashProgressVisibility = Visibility.Collapsed;
124130
}
125131
}
126-
132+
private async void GetFolderSize(StorageFolder storageFolder)
133+
{
134+
var folders = storageFolder.CreateFileQuery(CommonFileQuery.OrderByName);
135+
var fileSizeTasks = (await folders.GetFilesAsync()).Select(async file => (await file.GetBasicPropertiesAsync()).Size);
136+
var sizes = await Task.WhenAll(fileSizeTasks);
137+
var folderSize = sizes.Sum(singleSize => (long)singleSize);
138+
ItemProperties.ItemSize = ByteSizeLib.ByteSize.FromBytes(folderSize).ToString();
139+
}
127140
private void AppSettings_ThemeModeChanged(object sender, EventArgs e)
128141
{
129142
RequestedTheme = ThemeHelper.RootTheme;

0 commit comments

Comments
 (0)