From 1764acfa8177c054a756afbb030a1ad55a9fec4b Mon Sep 17 00:00:00 2001 From: Philipp Hofmann Date: Wed, 28 Oct 2020 16:56:36 +0100 Subject: [PATCH 1/5] feat: Manually capturing User Feedback The SDK now provides a method captureUserFeedback to associate user feedback to an event. --- CHANGELOG.md | 1 + .../java/io/sentry/sample/MainActivity.java | 12 + .../src/main/res/layout/activity_main.xml | 8 +- .../src/main/res/values/strings.xml | 1 + .../main/java/io/sentry/GsonSerializer.java | 29 +++ sentry/src/main/java/io/sentry/Hub.java | 22 ++ .../src/main/java/io/sentry/HubAdapter.java | 5 + sentry/src/main/java/io/sentry/IHub.java | 7 + .../main/java/io/sentry/ISentryClient.java | 7 + .../src/main/java/io/sentry/ISerializer.java | 4 + sentry/src/main/java/io/sentry/NoOpHub.java | 3 + .../main/java/io/sentry/NoOpSentryClient.java | 3 + .../main/java/io/sentry/NoOpSerializer.java | 8 + sentry/src/main/java/io/sentry/Sentry.java | 9 + .../src/main/java/io/sentry/SentryClient.java | 26 +++ .../java/io/sentry/SentryEnvelopeItem.java | 22 ++ .../main/java/io/sentry/SentryItemType.java | 1 + .../src/main/java/io/sentry/UserFeedback.java | 99 +++++++++ .../test/java/io/sentry/GsonSerializerTest.kt | 54 ++++- sentry/src/test/java/io/sentry/HubTest.kt | 209 +++++++----------- .../test/java/io/sentry/SentryClientTest.kt | 69 +++++- .../java/io/sentry/SentryEnvelopeItemTest.kt | 1 + sentry/src/test/java/io/sentry/SentryTest.kt | 33 ++- 23 files changed, 489 insertions(+), 144 deletions(-) create mode 100644 sentry/src/main/java/io/sentry/UserFeedback.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 43d0b933413..954443542d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # 3.1.2 +* feat: Manually capturing User Feedback * Enhancement: Set environment to "production" by default. # 3.1.1 diff --git a/sentry-samples/sentry-samples-android/src/main/java/io/sentry/sample/MainActivity.java b/sentry-samples/sentry-samples-android/src/main/java/io/sentry/sample/MainActivity.java index a6e424df7f0..eb7980ed739 100644 --- a/sentry-samples/sentry-samples-android/src/main/java/io/sentry/sample/MainActivity.java +++ b/sentry-samples/sentry-samples-android/src/main/java/io/sentry/sample/MainActivity.java @@ -3,6 +3,8 @@ import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import io.sentry.Sentry; +import io.sentry.UserFeedback; +import io.sentry.protocol.SentryId; import io.sentry.protocol.User; import io.sentry.sample.databinding.ActivityMainBinding; import java.util.Collections; @@ -22,6 +24,16 @@ protected void onCreate(Bundle savedInstanceState) { binding.sendMessage.setOnClickListener(view -> Sentry.captureMessage("Some message.")); + binding.sendUserFeedback.setOnClickListener(view -> { + SentryId sentryId = Sentry.captureException(new Exception("I have feedback")); + + UserFeedback userFeedback = new UserFeedback(sentryId); + userFeedback.setComments("It broke on Android. I don't know why, but this happens."); + userFeedback.setEmail("john@me.com"); + userFeedback.setName("John Me"); + Sentry.captureUserFeedback(userFeedback); + }); + binding.captureException.setOnClickListener( view -> Sentry.captureException( diff --git a/sentry-samples/sentry-samples-android/src/main/res/layout/activity_main.xml b/sentry-samples/sentry-samples-android/src/main/res/layout/activity_main.xml index 54cac756107..b1d82bbb0d7 100644 --- a/sentry-samples/sentry-samples-android/src/main/res/layout/activity_main.xml +++ b/sentry-samples/sentry-samples-android/src/main/res/layout/activity_main.xml @@ -16,7 +16,13 @@ android:id="@+id/send_message" android:text="@string/send_message"/> -