Skip to content

Commit 65122ca

Browse files
antonisclaude
andcommitted
feat(feedback): add manifest meta-data support for useShakeGesture
Allow enabling shake gesture via AndroidManifest.xml: <meta-data android:name="io.sentry.feedback.use-shake-gesture" android:value="true" /> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 60b8a66 commit 65122ca

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
### Features
66

77
- Show feedback form on device shake ([#5150](https://github.com/getsentry/sentry-java/pull/5150))
8-
- Enable via `options.getFeedbackOptions().setUseShakeGesture(true)`
8+
- Enable via `options.getFeedbackOptions().setUseShakeGesture(true)` or manifest meta-data `io.sentry.feedback.use-shake-gesture`
99
- Uses the device's accelerometer — no special permissions required
1010

1111
## 8.34.1

sentry-android-core/src/main/java/io/sentry/android/core/ManifestMetadataReader.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ final class ManifestMetadataReader {
167167

168168
static final String FEEDBACK_SHOW_BRANDING = "io.sentry.feedback.show-branding";
169169

170+
static final String FEEDBACK_USE_SHAKE_GESTURE = "io.sentry.feedback.use-shake-gesture";
171+
170172
static final String SPOTLIGHT_ENABLE = "io.sentry.spotlight.enable";
171173

172174
static final String SPOTLIGHT_CONNECTION_URL = "io.sentry.spotlight.url";
@@ -661,6 +663,12 @@ static void applyMetadata(
661663
metadata, logger, FEEDBACK_USE_SENTRY_USER, feedbackOptions.isUseSentryUser()));
662664
feedbackOptions.setShowBranding(
663665
readBool(metadata, logger, FEEDBACK_SHOW_BRANDING, feedbackOptions.isShowBranding()));
666+
feedbackOptions.setUseShakeGesture(
667+
readBool(
668+
metadata,
669+
logger,
670+
FEEDBACK_USE_SHAKE_GESTURE,
671+
feedbackOptions.isUseShakeGesture()));
664672

665673
options.setEnableSpotlight(
666674
readBool(metadata, logger, SPOTLIGHT_ENABLE, options.isEnableSpotlight()));

sentry-android-core/src/test/java/io/sentry/android/core/ManifestMetadataReaderTest.kt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1950,6 +1950,31 @@ class ManifestMetadataReaderTest {
19501950
assertFalse(fixture.options.feedbackOptions.isShowBranding)
19511951
}
19521952

1953+
@Test
1954+
fun `applyMetadata reads feedback use shake gesture and keep default value if not found`() {
1955+
// Arrange
1956+
val context = fixture.getContext()
1957+
1958+
// Act
1959+
ManifestMetadataReader.applyMetadata(context, fixture.options, fixture.buildInfoProvider)
1960+
1961+
// Assert
1962+
assertFalse(fixture.options.feedbackOptions.isUseShakeGesture)
1963+
}
1964+
1965+
@Test
1966+
fun `applyMetadata reads feedback use shake gesture to options`() {
1967+
// Arrange
1968+
val bundle = bundleOf(ManifestMetadataReader.FEEDBACK_USE_SHAKE_GESTURE to true)
1969+
val context = fixture.getContext(metaData = bundle)
1970+
1971+
// Act
1972+
ManifestMetadataReader.applyMetadata(context, fixture.options, fixture.buildInfoProvider)
1973+
1974+
// Assert
1975+
assertTrue(fixture.options.feedbackOptions.isUseShakeGesture)
1976+
}
1977+
19531978
@Test
19541979
fun `applyMetadata reads screenshot strategy canvas to options`() {
19551980
// Arrange

0 commit comments

Comments
 (0)