Skip to content

Commit 5c1d305

Browse files
committed
Enable generic user feedback + adjust feedback API
1 parent d47fada commit 5c1d305

File tree

4 files changed

+30
-11
lines changed

4 files changed

+30
-11
lines changed

CollapseLauncher/XAMLs/MainApp/Pages/Dialogs/SimpleDialogs.cs

-4
Original file line numberDiff line numberDiff line change
@@ -1309,10 +1309,6 @@ private static async void SubmitFeedbackButton_Click(object sender, RoutedEventA
13091309
Message = exceptionContent
13101310
};
13111311
UserFeedbackResult? feedbackResult = await feedbackDialog.ShowAsync();
1312-
// TODO: (Optional) Implement generic user feedback pathway (preferably when SentryErrorId is null
1313-
// Using https://paste.mozilla.org/
1314-
// API Documentation: https://docs.dpaste.org/api/
1315-
// Though im not sure since user will still need to paste the link to us 🤷
13161312

13171313
if (feedbackResult is null)
13181314
{

CollapseLauncher/XAMLs/MainApp/Pages/SettingsPage.xaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2393,7 +2393,7 @@
23932393
HorizontalContentAlignment="Stretch"
23942394
Click="ShareYourFeedbackClick"
23952395
CornerRadius="{x:Bind ext:UIElementExtensions.AttachRoundedKindCornerRadius(ShareYourFeedbackButton)}"
2396-
IsEnabled="False"
2396+
IsEnabled="True"
23972397
Style="{ThemeResource AccentButtonStyle}">
23982398
<Grid Margin="0,-2,0,0"
23992399
HorizontalAlignment="Stretch">

CollapseLauncher/XAMLs/MainApp/Pages/SettingsPage.xaml.cs

+22-2
Original file line numberDiff line numberDiff line change
@@ -439,9 +439,29 @@ private async void ShareYourFeedbackClick(object sender, RoutedEventArgs e)
439439

440440
if (userFeedbackResult == null)
441441
{
442-
LogWriteLine("User feedback dialog cancelled!", LogType.Debug);
442+
LogWriteLine("User feedback dialog cancelled!");
443+
return;
443444
}
444-
#endif
445+
446+
// Parse username and email
447+
var msg = userFeedbackResult.Message.Split(['\r', '\n'], StringSplitOptions.RemoveEmptyEntries);
448+
if (msg.Length <= 4) return; // Do not send feedback if format is not correct
449+
var user = msg[0].Replace(userTemplate, "", StringComparison.InvariantCulture).Trim();
450+
var email = msg[1].Replace(userTemplate, "", StringComparison.InvariantCulture).Trim();
451+
var feedback = msg.Length > 4 ? string.Join("\n", msg.Skip(4)).Trim() : null;
452+
453+
if (string.IsNullOrEmpty(user)) user = "none";
454+
455+
// Validate email
456+
var addr = System.Net.Mail.MailAddress.TryCreate(email, out var address);
457+
email = addr ? address!.Address : "[email protected]";
458+
459+
if (string.IsNullOrEmpty(feedback)) return;
460+
461+
var feedbackContent = $"{feedback}\n\nRating: {userFeedbackResult.Rating}/5";
462+
463+
SentryHelper.SendGenericFeedback(feedbackContent, email, user);
464+
#endif
445465
}
446466

447467
private void ClickTextLinkFromTag(object sender, PointerRoutedEventArgs e)

Hi3Helper.Core/Classes/SentryHelper/SentryHelper.cs

+7-4
Original file line numberDiff line numberDiff line change
@@ -548,10 +548,13 @@ public static void SendExceptionFeedback(Guid sentryId, string userEmail, string
548548
true);
549549
}
550550

551-
var sId = new SentryId(sentryId);
552-
var userFeedback = new UserFeedback(sId, user, userEmail, feedback);
553-
554-
SentrySdk.CaptureUserFeedback(userFeedback);
551+
var sId = new SentryId(sentryId);
552+
SentrySdk.CaptureFeedback(feedback, userEmail, user, null, null, sId);
553+
}
554+
555+
public static void SendGenericFeedback(string feedback, string userEmail, string user)
556+
{
557+
SentrySdk.CaptureFeedback(feedback, userEmail, user);
555558
}
556559

557560
[GeneratedRegex(@"(?<=\bat\s)(CollapseLauncher|Hi3Helper)\.[^\s(]+", RegexOptions.Compiled)]

0 commit comments

Comments
 (0)