Skip to content

Commit 465c83a

Browse files
committed
Base for 0.8.0-alpha. Added new support for the revised library cache structure, updated to .NET 9.0, and more.
1 parent aa0fd22 commit 465c83a

File tree

13 files changed

+115
-39
lines changed

13 files changed

+115
-39
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
id: setup-dotnet
5858
uses: actions/setup-dotnet@v4
5959
with:
60-
dotnet-version: 8.0.x
60+
dotnet-version: 9.0.x
6161
- name: Cache Restore
6262
id: cache-restore
6363
uses: actions/cache/restore@v4

CHANGELOG.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
## 0.7.0
1+
2+
## 0.8.0-alpha
23

34
#### General
45

5-
- Added grid view to library
6-
- Added ability to group apps in library
7-
- Added automatic saving and loading of library settings
8-
- Added ability to expand/collapse all groups
9-
- **[BUG]** Fixed application crash caused by large libraries
10-
- **[BUG]** Fixed library sorting incorrectly after enabling/disabling grouping
6+
- Added support for new Steam library cache layout
7+
- Updated to .NET 9.0
8+
- Updated third party packages
9+
- **[BUG]** Fixed occasional crash on splashscreen startup when managing apps

src/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project>
22
<PropertyGroup>
3-
<FrameworkVersion>net8.0</FrameworkVersion>
3+
<FrameworkVersion>net9.0</FrameworkVersion>
44
<TargetFramework>$(FrameworkVersion)-windows</TargetFramework>
55
<LangVersion>preview</LangVersion>
66
<Platforms>x86</Platforms>

src/Directory.Build.targets

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,18 @@
2626
</ItemGroup>
2727

2828
<ItemGroup>
29-
<PackageReference Include="JetBrains.Annotations" Version="2023.3.0" />
30-
<PackageReference Include="log4net" Version="2.0.17" />
29+
<PackageReference Include="JetBrains.Annotations" Version="2024.3.0" />
30+
<PackageReference Include="log4net" Version="3.0.4" />
3131
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
32-
<PackageReference Include="System.Drawing.Common" Version="8.0.4" />
32+
<PackageReference Include="System.Drawing.Common" Version="9.0.2" />
3333
</ItemGroup>
3434

3535
<ItemGroup Condition="'$(UseWPF)'=='true'">
3636
<PackageReference Include="DevExpress.Mvvm.CodeGenerators" Version="22.1.1" />
37-
<PackageReference Include="DevExpressMvvm" Version="23.2.3" />
38-
<PackageReference Include="SharpVectors.Wpf" Version="1.8.4" />
37+
<PackageReference Include="DevExpressMvvm" Version="24.1.6" />
38+
<PackageReference Include="SharpVectors.Wpf" Version="1.8.4.2" />
3939
<PackageReference Include="TextCopy" Version="6.2.1" />
40-
<PackageReference Include="WPF-UI" Version="3.0.4" />
40+
<PackageReference Include="WPF-UI" Version="4.0.2" />
4141
</ItemGroup>
4242

4343
</Project>

src/SAM.API/SAM.API.csproj

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,12 @@
2323
</ItemGroup>
2424

2525
<ItemGroup>
26-
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.106">
26+
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.183">
2727
<PrivateAssets>all</PrivateAssets>
2828
<!--<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>-->
2929
</PackageReference>
30-
<PackageReference Include="ValveKeyValue" Version="0.8.2.162" />
30+
<PackageReference Include="Microsoft.Windows.SDK.Win32Metadata" Version="63.0.31-preview" />
31+
<PackageReference Include="ValveKeyValue" Version="0.12.0.391" />
3132
</ItemGroup>
3233

3334
<ItemGroup>
@@ -37,4 +38,16 @@
3738
</None>
3839
</ItemGroup>
3940

41+
<ItemGroup>
42+
<PackageReference Update="log4net" Version="3.0.4" />
43+
</ItemGroup>
44+
45+
<ItemGroup>
46+
<PackageReference Update="System.Drawing.Common" Version="9.0.2" />
47+
</ItemGroup>
48+
49+
<ItemGroup>
50+
<PackageReference Update="JetBrains.Annotations" Version="2024.3.0" />
51+
</ItemGroup>
52+
4053
</Project>

src/SAM.Core/Common/Enums/SteamImageType.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,23 @@ public enum SteamImageType
3232
/// </summary>
3333
Logo,
3434
/// <summary>
35-
/// header.jpg
35+
/// library_header.jpg
3636
/// </summary>
3737
Header,
3838
/// <summary>
39-
/// {APPID}_library_600x900.jpg
39+
/// library_600x900.jpg
4040
/// </summary>
4141
Library,
4242
/// <summary>
43-
/// {APPID}_library_hero.jpg
43+
/// library_hero.jpg
4444
/// </summary>
4545
LibraryHero,
4646
/// <summary>
4747
/// library_header.jpg
4848
/// </summary>
4949
LibraryHeader,
5050
/// <summary>
51-
/// {APPID}_library_hero_blur.jpg
51+
/// library_hero_blur.jpg
5252
/// </summary>
5353
LibraryHeroBlur,
5454
/// <summary>

src/SAM.Core/SAM.Core.csproj

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@
77

88
<ItemGroup>
99
<PackageReference Include="JsonSubTypes" Version="2.0.1" />
10-
<PackageReference Include="Microsoft.Windows.Compatibility" Version="8.0.4" />
11-
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.106">
10+
<PackageReference Include="Microsoft.Windows.Compatibility" Version="9.0.2" />
11+
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.183">
1212
<PrivateAssets>all</PrivateAssets>
1313
<!--<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>-->
1414
</PackageReference>
15-
<PackageReference Include="Microsoft.Windows.SDK.Win32Metadata" Version="60.0.34-preview" />
15+
<PackageReference Include="Microsoft.Windows.SDK.Win32Metadata" Version="63.0.31-preview" />
1616
<PackageReference Include="System.ObjectModel" Version="4.3.0" />
1717
<PackageReference Include="TextCopy" Version="6.2.1" />
18+
<PackageReference Include="ValveKeyValue" Version="0.12.0.391" />
1819
</ItemGroup>
1920

2021
<ItemGroup>
@@ -36,4 +37,16 @@
3637
</None>
3738
</ItemGroup>
3839

40+
<ItemGroup>
41+
<PackageReference Update="log4net" Version="3.0.4" />
42+
</ItemGroup>
43+
44+
<ItemGroup>
45+
<PackageReference Update="System.Drawing.Common" Version="9.0.2" />
46+
</ItemGroup>
47+
48+
<ItemGroup>
49+
<PackageReference Update="JetBrains.Annotations" Version="2024.3.0" />
50+
</ItemGroup>
51+
3952
</Project>

src/SAM/Common/SplashScreen/SplashScreenHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public static void Show(string status = null)
5858

5959
public static void Close()
6060
{
61-
_splashWindow.Dispatcher.BeginInvoke(() =>
61+
_splashWindow?.Dispatcher.BeginInvoke(() =>
6262
{
6363
_splashWindow.Close();
6464

src/SAM/Managers/SteamImageManager.cs

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -279,9 +279,15 @@ private static string GetCachedAppImagePath(uint appId, SteamImageType type)
279279
return result;
280280
}
281281

282-
var imagePath = Path.Join(SteamLibraryCachePath, fileName);
282+
var appCachePath = Path.Join(SteamLibraryCachePath, $"{appId}");
283283

284-
return imagePath;
284+
var exists = Directory.Exists(appCachePath);
285+
var searchTarget = exists ? appCachePath : SteamLibraryCachePath;
286+
var searchName = GetAppImageSearchName(appId, type);
287+
288+
var imageResults = Directory.GetFiles(searchTarget, searchName, SearchOption.AllDirectories);
289+
290+
return imageResults.FirstOrDefault();
285291
}
286292

287293
private static bool IsAnimated(string imagePath)
@@ -359,12 +365,31 @@ private static string GetAppImageName(uint appId, SteamImageType type)
359365
SteamImageType.GridPortrait => $"{appId}p",
360366
SteamImageType.GridIcon => $"{appId}_icon",
361367
SteamImageType.GridHero => $"{appId}_hero",
362-
SteamImageType.Header => $"{appId}_header.jpg",
368+
SteamImageType.Header => @"header.jpg",
369+
SteamImageType.Icon => $"{appId}_icon.jpg",
370+
SteamImageType.Logo => $"logo.png",
371+
SteamImageType.LibraryHero => @"library_hero.jpg",
372+
SteamImageType.LibraryHeroBlur => @"library_hero_blur.jpg",
373+
SteamImageType.Library => @"library_600x900.jpg",
374+
_ => throw new NotSupportedException($"{type} is not available in the local cache. Use {nameof(GetImageUri)} instead.")
375+
};
376+
}
377+
378+
private static string GetAppImageSearchName(uint appId, SteamImageType type)
379+
{
380+
// NOTE: this method is for local images (i.e. Steam's library cache, Grid, etc.)
381+
return type switch
382+
{
383+
SteamImageType.GridLandscape => $"{appId}",
384+
SteamImageType.GridPortrait => $"{appId}p",
385+
SteamImageType.GridIcon => $"{appId}_icon",
386+
SteamImageType.GridHero => $"{appId}_hero",
387+
SteamImageType.Header => @"*header.jpg",
363388
SteamImageType.Icon => $"{appId}_icon.jpg",
364-
SteamImageType.Logo => $"{appId}_logo.jpg",
365-
SteamImageType.LibraryHero => $"{appId}_library_hero.jpg",
366-
SteamImageType.LibraryHeroBlur => $"{appId}_library_hero_blur.jpg",
367-
SteamImageType.Library => $"{appId}_library_600x900.jpg",
389+
SteamImageType.Logo => $"logo.png",
390+
SteamImageType.LibraryHero => @"library_hero.jpg",
391+
SteamImageType.LibraryHeroBlur => @"library_hero_blur.jpg",
392+
SteamImageType.Library => @"library_600x900.jpg",
368393
_ => throw new NotSupportedException($"{type} is not available in the local cache. Use {nameof(GetImageUri)} instead.")
369394
};
370395
}

src/SAM/SAM.csproj

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010

1111
<ItemGroup>
1212
<PackageReference Include="CommandLineParser" Version="2.9.1" />
13-
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.106">
13+
<PackageReference Include="Microsoft.Windows.Compatibility" Version="9.0.2" />
14+
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.183">
1415
<PrivateAssets>all</PrivateAssets>
1516
<!--<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>-->
1617
</PackageReference>
17-
<PackageReference Include="Microsoft.Windows.SDK.Win32Metadata" Version="60.0.34-preview" />
18+
<PackageReference Include="Microsoft.Windows.SDK.Win32Metadata" Version="63.0.31-preview" />
19+
<PackageReference Include="ValveKeyValue" Version="0.12.0.391" />
1820
</ItemGroup>
1921

2022
<ItemGroup>
@@ -39,4 +41,28 @@
3941
</None>
4042
</ItemGroup>
4143

44+
<ItemGroup>
45+
<PackageReference Update="DevExpressMvvm" Version="24.1.6" />
46+
</ItemGroup>
47+
48+
<ItemGroup>
49+
<PackageReference Update="log4net" Version="3.0.4" />
50+
</ItemGroup>
51+
52+
<ItemGroup>
53+
<PackageReference Update="System.Drawing.Common" Version="9.0.2" />
54+
</ItemGroup>
55+
56+
<ItemGroup>
57+
<PackageReference Update="WPF-UI" Version="4.0.2" />
58+
</ItemGroup>
59+
60+
<ItemGroup>
61+
<PackageReference Update="JetBrains.Annotations" Version="2024.3.0" />
62+
</ItemGroup>
63+
64+
<ItemGroup>
65+
<PackageReference Update="SharpVectors.Wpf" Version="1.8.4.2" />
66+
</ItemGroup>
67+
4268
</Project>

0 commit comments

Comments
 (0)