Skip to content

Commit

Permalink
Changes for v0.7.0 release.
Browse files Browse the repository at this point in the history
  • Loading branch information
syntax-tm committed Jul 24, 2024
1 parent 9498c71 commit d1521f3
Show file tree
Hide file tree
Showing 26 changed files with 995 additions and 1,081 deletions.
117 changes: 3 additions & 114 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,121 +1,10 @@
## 0.7.0-beta
## 0.7.0

#### General

- Added grid view to library
- Added ability to group apps in library
- Added automatic saving and loading of library settings

## 0.7.0-alpha

#### General

- Added ability to expand/collapse all groups
- **[BUG]** Fixed application crash caused by large libraries

## 0.6.0

#### General

- Consolidated **SAM** and **SAM.Manager** into a single project
- **[BUG]** Fixed crash caused by achievements missing a lock or unlocked image
- **[BUG]** Fixed main window not activating after startup
- **[BUG]** Fixed splash screen title bar crashing

#### SAM.Manager

- Removed **SAM.Manager**

### 0.6.0-beta

#### General

- Fixed publish settings
- The main executable files should now contain their framework and package references
- Fixed splash screen responsiveness

#### SAM

- Added main menu
- Added menu item to export library
- Added menu item for filtering favorite apps
- Added menu item for showing hidden apps
- Added menu item to reset all settings
- Added menu item to open log directory
- Moved the search box to be inline with the menu

#### SAM.Manager

- **[BUG]** Fixed window icon not showing in title bar

### 0.6.0-alpha

#### General

- Upgraded to .NET 8
- Updated [WPF-UI](https://github.com/lepoco/wpfui) to version 3.0.4
- Updated logging

#### SAM

- Added status bar item for favorites
- Added ability to show hidden apps
- Added ability to unhide all apps
- Added ability to show only favorited apps
- Added autocomplete to search
- Added overlay for favorited apps
- Added overlay for hidden apps
- Added overlay menu for quickly adding/removing favorites and hiding/showing apps
- Added `View on SteamGridDB` menu option
- Added support for displaying [Steam Grid](https://www.steamgriddb.com/) assets
- **Note:** Animated images are not currently supported
- Added support for loading Steam's `librarycache` images
- Implemented app refresh queue
- This should help users with larger Steam libraries from having issues with the Steamworks Web API
- **[BUG]** Fixed error in debug output when launching a web page
- **[BUG]** Fixed hidden apps status bar item count not updating
- **[BUG]** Fixed library search textbox alignment
- **[BUG]** Removed library caching

#### SAM.Manager

- **[BUG]** Ability to filter achievements using the drop down has been temporarily removed

#### Known Issues

- An `OutOfMemoryException` will be thrown when attempting to load an animated Grid image
- This should only be visible in the output when debugging and can be ignored
- Startup SlpashScreen's TitleBar was removed
- During startup, you will not be able to move the SplashScreen or close it using the Window buttons

## 0.5.0

- **[BUG]** Fixed issue with increment only stats allowing invalid values
- **[BUG]** Fixed issue with increment only stats not displaying properly

## 0.4.0

- [BUG] Fixed console window showing when running app

## 0.3.0

- Added search functionality to library view
- Improved application startup time

### 0.3.0-beta

- Added search functionality to library view

### 0.3.0-alpha

- Improved application startup time

## 0.2.0

- Added new release workflow
- Added ability to Refresh Steam library
- Switched ViewModels to source generators
- **[BUG]** Fixed issue with the "Show Hidden" button not working for Achievements

## 0.1.0

- Initial release
- **[BUG]** Fixed library sorting incorrectly after enabling/disabling grouping
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,4 @@ A special thank you to [JetBrains](https://www.jetbrains.com/) for their continu
<a href="https://github.com/DevExpress/DevExpress.Mvvm.Free">DevExpress</a> • <a href="https://github.com/RudeySH/SteamCountries">SteamCountries</a> • <a href="https://github.com/lepoco/wpfui">WPF UI</a>
</p>

---

[^1]: For non-commercial development
40 changes: 9 additions & 31 deletions src/.editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ dotnet_naming_rule.instance_fields_rule.symbols = instance_fields_group
dotnet_naming_rule.instance_fields_rule.style = instance_field_style

dotnet_naming_symbols.instance_fields_group.applicable_kinds = field
dotnet_naming_symbols.instance_fields_group.applicable_accessibilities = private, protected

dotnet_naming_style.instance_field_style.capitalization = camel_case
dotnet_naming_style.instance_field_style.required_prefix = _
Expand All @@ -47,39 +48,16 @@ dotnet_naming_symbols.locals_and_parameters_group.applicable_kinds = parameter,

dotnet_naming_style.locals_and_parameters_style.capitalization = camel_case

# Non-private constants are PascalCase
dotnet_naming_rule.constants_rule.severity = suggestion
dotnet_naming_rule.constants_rule.symbols = constants_group
dotnet_naming_rule.constants_rule.style = non_private_readonly_field_style
# Consts are ALL_UPPER
dotnet_naming_rule.consts_rule.severity = suggestion
dotnet_naming_rule.consts_rule.symbols = consts_group
dotnet_naming_rule.consts_rule.style = consts_style

dotnet_naming_symbols.constants_group.applicable_kinds = field
dotnet_naming_symbols.constants_group.applicable_accessibilities = public, protected, internal, protected_internal, private_protected
dotnet_naming_symbols.constants_group.required_modifiers = const
dotnet_naming_symbols.consts_group.applicable_kinds = field, local
dotnet_naming_symbols.consts_group.required_modifiers = const

dotnet_naming_style.constants_style.capitalization = pascal_case

# Local consts are ALL_UPPER
dotnet_naming_rule.local_consts_rule.severity = suggestion
dotnet_naming_rule.local_consts_rule.symbols = local_consts_group
dotnet_naming_rule.local_consts_rule.style = local_consts_style

dotnet_naming_symbols.local_consts_group.applicable_kinds = local
dotnet_naming_symbols.local_consts_group.required_modifiers = const

dotnet_naming_style.local_consts_style.capitalization = all_upper
dotnet_naming_style.local_consts_style.word_separator = _

# Private constants are ALL_UPPER
dotnet_naming_rule.private_constants_rule.severity = suggestion
dotnet_naming_rule.private_constants_rule.symbols = private_constants_group
dotnet_naming_rule.private_constants_rule.style = local_consts_style

dotnet_naming_symbols.private_constants_group.applicable_kinds = field, local
dotnet_naming_symbols.private_constants_group.applicable_accessibilities = private
dotnet_naming_symbols.private_constants_group.required_modifiers = const

dotnet_naming_style.private_constant_style.capitalization = all_upper
dotnet_naming_style.private_constant_style.word_separator = _
dotnet_naming_style.consts_style.capitalization = all_upper
dotnet_naming_style.consts_style.word_separator = _

# Interfaces are PascalCase and start with I
dotnet_naming_rule.interfaces_rule.severity = warning
Expand Down
22 changes: 21 additions & 1 deletion src/SAM.Core/API/Steam/SteamUserManager.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using Microsoft.Win32;
using System.Linq;
using log4net;
using Microsoft.Win32;

namespace SAM.Core;

Expand All @@ -10,9 +12,13 @@ public static class SteamUserManager
private const string STEAM_REG_PATH = @"Software\Valve\Steam";
private const string STEAM_USERNAME_ENTRY_NAME = @"LastGameNameUsed";

private const string STEAM_USERS_REG_PATH = @"SOFTWARE\Valve\Steam\Users";

private static int? _activeUser;
private static string _activeUserName;

private static readonly ILog log = LogManager.GetLogger(typeof(SteamUserManager));

public static int GetActiveUser()
{
if (_activeUser.HasValue) return _activeUser.Value;
Expand All @@ -29,6 +35,20 @@ public static int GetActiveUser()
throw new SAMException(message);
}

// this means that Steam is offline
if ((int) value == 0)
{
// check the number of accounts on this device, if there's only one, then use that steam ID
using var usersKey = baseKey.OpenSubKey(STEAM_USERS_REG_PATH);

if (usersKey is { SubKeyCount: 1 })
{
value = int.Parse(usersKey.GetSubKeyNames().First());

log.Warn($"Steam appears to be offline and no active user could be obtained. Using the only previous local user's Steam ID '{value}'.");
}
}

_activeUser = (int) value;

return _activeUser.Value;
Expand Down
Loading

0 comments on commit d1521f3

Please sign in to comment.