diff --git a/CHANGELOG.md b/CHANGELOG.md index 330bc2f495..97f48a4167 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ ## Unreleased +### Fixes + +- Pass `screenshotStrategy` option from `mobileReplayIntegration` to the Android native SDK ([#5808](https://github.com/getsentry/sentry-react-native/pull/5808)) + ### Features - Add `wrapExpoImage` and `wrapExpoAsset` for Expo performance monitoring ([#5427](https://github.com/getsentry/sentry-react-native/issues/5427)) diff --git a/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java b/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java index 72e7eac0e1..b00a393a9e 100644 --- a/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java +++ b/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java @@ -11,6 +11,7 @@ import io.sentry.SentryEvent; import io.sentry.SentryLevel; import io.sentry.SentryOptions.BeforeSendCallback; +import io.sentry.ScreenshotStrategyType; import io.sentry.SentryReplayOptions; import io.sentry.UncaughtExceptionHandlerIntegration; import io.sentry.android.core.AnrIntegration; @@ -375,6 +376,15 @@ private static SentryReplayOptions getReplayOptions(@NotNull ReadableMap rnOptio androidReplayOptions.addMaskViewClass("com.horcrux.svg.SvgView"); // react-native-svg } + if (rnMobileReplayOptions.hasKey("screenshotStrategy")) { + final String strategy = rnMobileReplayOptions.getString("screenshotStrategy"); + if ("canvas".equals(strategy)) { + androidReplayOptions.setScreenshotStrategy(ScreenshotStrategyType.CANVAS); + } else { + androidReplayOptions.setScreenshotStrategy(ScreenshotStrategyType.PIXEL_COPY); + } + } + androidReplayOptions.setMaskViewContainerClass(RNSentryReplayMask.class.getName()); androidReplayOptions.setUnmaskViewContainerClass(RNSentryReplayUnmask.class.getName());