Skip to content

Commit ad5435e

Browse files
authored
Fix calling UserFeedback dialog crashes app due to nulled game property (#842)
closes #839 # Main Goal Put the only thing GameProperty used (game header) inside a trycatch so it can fail when GameProperty is somehow broken. Also general codeqa fixes ## PR Status : - Overall Status : Done - Commits : Done - Synced to base (Collapse:main) : Yes - Build status : OK - Crashing : No - Bug found caused by PR : 0 ### Templates <details> <summary>Changelog Prefixes</summary> ``` **[New]** **[Imp]** **[Fix]** **[Loc]** **[Doc]** ``` </details>
2 parents 54ccdb7 + 8293240 commit ad5435e

File tree

3 files changed

+39
-28
lines changed

3 files changed

+39
-28
lines changed

CollapseLauncher/XAMLs/Theme/CustomControls/UserFeedbackDialog/UserFeedbackDialog.cs

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using CollapseLauncher.Statics;
66
using CommunityToolkit.WinUI;
77
using Hi3Helper;
8+
using Hi3Helper.SentryHelper;
89
using Hi3Helper.Shared.Region;
910
using Microsoft.UI.Input;
1011
using Microsoft.UI.Text;
@@ -92,15 +93,25 @@ protected override void OnApplyTemplate()
9293
_layoutCloseButton?.EnableImplicitAnimation();
9394

9495
// Assign dialog title image background
95-
GamePresetProperty currentGameProperty = GamePropertyVault.GetCurrentGameProperty();
96-
GameNameType gameNameType = currentGameProperty.GamePreset.GameType;
97-
string relFilePath = gameNameType switch
96+
var relFilePath = @"Assets\\Images\\GamePoster\\headerposter_genshin.png";
97+
try
9898
{
99-
GameNameType.Zenless => @"Assets\\Images\\GamePoster\\headerposter_zzz.png",
100-
GameNameType.Honkai => @"Assets\\Images\\GamePoster\\headerposter_honkai.png",
101-
GameNameType.StarRail => @"Assets\\Images\\GamePoster\\headerposter_starrail.png",
102-
_ => @"Assets\\Images\\GamePoster\\headerposter_genshin.png"
103-
};
99+
var currentGameProperty = GamePropertyVault.GetCurrentGameProperty();
100+
var gameNameType = currentGameProperty.GamePreset.GameType;
101+
relFilePath = gameNameType switch
102+
{
103+
GameNameType.Zenless => @"Assets\\Images\\GamePoster\\headerposter_zzz.png",
104+
GameNameType.Honkai => @"Assets\\Images\\GamePoster\\headerposter_honkai.png",
105+
GameNameType.StarRail => @"Assets\\Images\\GamePoster\\headerposter_starrail.png",
106+
_ => @"Assets\\Images\\GamePoster\\headerposter_genshin.png"
107+
};
108+
}
109+
catch (Exception ex)
110+
{
111+
SentryHelper.ExceptionHandler(ex);
112+
Logger.LogWriteLine($"[UserFeedbackDialog::OnApplyTemplate] Failed to grab game type! Returning default game header..." +
113+
$"\r\n{ex}", LogType.Error, true);
114+
}
104115
// Get the title image background and load it.
105116
FileInfo filePathInfo = new(Path.Combine(LauncherConfig.AppExecutableDir, relFilePath));
106117
if (filePathInfo.Exists)
@@ -155,8 +166,8 @@ protected override void OnApplyTemplate()
155166
// Find an overlay grid where the UI element will be spawn to
156167
_parentOverlayGrid = XamlRoot.FindOverlayGrid(_isAlwaysOnTop);
157168
// Get the count of the Rows and Column so it can be spanned across the grid.
158-
int parentGridRowCount = _parentOverlayGrid?.RowDefinitions.Count ?? 1;
159-
int parentGridColumnCount = _parentOverlayGrid?.ColumnDefinitions.Count ?? 1;
169+
var parentGridRowCount = _parentOverlayGrid?.RowDefinitions.Count ?? 1;
170+
var parentGridColumnCount = _parentOverlayGrid?.ColumnDefinitions.Count ?? 1;
160171
// Add the UI element to the grid
161172
_parentOverlayGrid?.AddElementToGridRowColumn(this,
162173
0,
@@ -200,14 +211,14 @@ protected override void OnApplyTemplate()
200211
private void AssignLocalization()
201212
{
202213
// Assign locale for Text header, button, placeholders and stuffs...
203-
_layoutTitleGridText?.BindProperty(TextBlock.TextProperty, Locale.Lang._Dialogs, nameof(Locale.Lang._Dialogs.UserFeedback_DialogTitle));
204-
_layoutFeedbackTitleInput?.BindProperty(TextBox.PlaceholderTextProperty, Locale.Lang._Dialogs, nameof(Locale.Lang._Dialogs.UserFeedback_TextFieldTitlePlaceholder));
205-
_layoutFeedbackMessageInput?.BindProperty(TextBox.PlaceholderTextProperty, Locale.Lang._Dialogs, nameof(Locale.Lang._Dialogs.UserFeedback_TextFieldMessagePlaceholder));
206-
SetTextBoxPropertyHeaderLocale(_layoutFeedbackTitleInput, Locale.Lang._Dialogs.UserFeedback_TextFieldTitleHeader, Locale.Lang._Dialogs.UserFeedback_TextFieldRequired);
207-
SetTextBoxPropertyHeaderLocale(_layoutFeedbackMessageInput, Locale.Lang._Dialogs.UserFeedback_TextFieldMessageHeader, Locale.Lang._Dialogs.UserFeedback_TextFieldRequired);
208-
_layoutFeedbackRatingText?.BindProperty(TextBlock.TextProperty, Locale.Lang._Dialogs, nameof(Locale.Lang._Dialogs.UserFeedback_RatingText));
209-
SetButtonPropertyTextLocale(_layoutPrimaryButton, Locale.Lang._Dialogs, nameof(Locale.Lang._Dialogs.UserFeedback_SubmitBtn));
210-
SetButtonPropertyTextLocale(_layoutCloseButton, Locale.Lang._Dialogs, nameof(Locale.Lang._Dialogs.UserFeedback_CancelBtn));
214+
_layoutTitleGridText?.BindProperty(TextBlock.TextProperty, Lang._Dialogs, nameof(Lang._Dialogs.UserFeedback_DialogTitle));
215+
_layoutFeedbackTitleInput?.BindProperty(TextBox.PlaceholderTextProperty, Lang._Dialogs, nameof(Lang._Dialogs.UserFeedback_TextFieldTitlePlaceholder));
216+
_layoutFeedbackMessageInput?.BindProperty(TextBox.PlaceholderTextProperty, Lang._Dialogs, nameof(Lang._Dialogs.UserFeedback_TextFieldMessagePlaceholder));
217+
SetTextBoxPropertyHeaderLocale(_layoutFeedbackTitleInput, Lang._Dialogs.UserFeedback_TextFieldTitleHeader, Lang._Dialogs.UserFeedback_TextFieldRequired);
218+
SetTextBoxPropertyHeaderLocale(_layoutFeedbackMessageInput, Lang._Dialogs.UserFeedback_TextFieldMessageHeader, Lang._Dialogs.UserFeedback_TextFieldRequired);
219+
_layoutFeedbackRatingText?.BindProperty(TextBlock.TextProperty, Lang._Dialogs, nameof(Lang._Dialogs.UserFeedback_RatingText));
220+
SetButtonPropertyTextLocale(_layoutPrimaryButton, Lang._Dialogs, nameof(Lang._Dialogs.UserFeedback_SubmitBtn));
221+
SetButtonPropertyTextLocale(_layoutCloseButton, Lang._Dialogs, nameof(Lang._Dialogs.UserFeedback_CancelBtn));
211222
}
212223

213224
private static void SetButtonPropertyTextLocale(Button? button, object localeObject, string nameOfLocale)

Hi3Helper.Core/Hi3Helper.Core.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343

4444
<ItemGroup>
4545
<PackageReference Include="Microsoft.Windows.CsWinRT" Version="2.3.0-prerelease.250720.1" />
46-
<PackageReference Include="Sentry" Version="5.16.2" />
46+
<PackageReference Include="Sentry" Version="6.0.0" />
4747
</ItemGroup>
4848

4949
<ItemGroup>

Hi3Helper.Core/packages.lock.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
},
1717
"Sentry": {
1818
"type": "Direct",
19-
"requested": "[5.16.2, )",
20-
"resolved": "5.16.2",
21-
"contentHash": "JZiKizATWdBe4dSdvMhp3d/TiMUug3VvWjiu9ZH5UfTbrwGWYUexZ4ZGdyrIB2GuWlLBUWs3Vi1GFv3pNhRKFg=="
19+
"requested": "[6.0.0, )",
20+
"resolved": "6.0.0",
21+
"contentHash": "KomDnmKInN30NIaf52UsRYCK/QS8cBe1jV+JslxBzys30wPH0Wv0U20YQ2oJ65P0+XLv0JqNHmgAjN1zDy/fzQ=="
2222
},
2323
"Google.Protobuf": {
2424
"type": "Transitive",
25-
"resolved": "3.33.1",
26-
"contentHash": "RztiFmX9aOWDwfhxFzx/nS4fjs4DX7ZC7/XBEBl56k15lPGBftvbSwZkeo1mMCJHrNp1kK5iQYrFXB4MqCmBCA=="
25+
"resolved": "3.33.2",
26+
"contentHash": "vZXVbrZgBqUkP5iWQi0CS6pucIS2MQdEYPS1duWCo8fGrrt4th6HTiHfLFX2RmAWAQl1oUnzGgyDBsfq7fHQJA=="
2727
},
2828
"Microsoft.Extensions.DependencyInjection.Abstractions": {
2929
"type": "Transitive",
@@ -40,16 +40,16 @@
4040
},
4141
"System.IO.Hashing": {
4242
"type": "Transitive",
43-
"resolved": "10.0.0",
44-
"contentHash": "MqSp5IfX9RdWVwTED0WSRL1kZDNB7GlFj64O/NAJs4uO1beBHWEAFLlC7j8Fw/PkI+SUzooLVNvAe4aEkSwsRg=="
43+
"resolved": "10.0.1",
44+
"contentHash": "Dy6ULPb2S0GmNndjKrEIpfibNsc8+FTOoZnqygtFDuyun8vWboQbfMpQtKUXpgTxokR5E4zFHETpNnGfeWY6NA=="
4545
},
4646
"hi3helper.enctool": {
4747
"type": "Project",
4848
"dependencies": {
49-
"Google.Protobuf": "[3.33.1, )",
49+
"Google.Protobuf": "[3.33.2, )",
5050
"Hi3Helper.Http": "[2.0.0, )",
5151
"Hi3Helper.Win32": "[1.0.0, )",
52-
"System.IO.Hashing": "[10.0.0, )"
52+
"System.IO.Hashing": "[10.0.1, )"
5353
}
5454
},
5555
"hi3helper.http": {

0 commit comments

Comments
 (0)