From 5ec90f1ece9f09e4a6de74cb3866b890b286c549 Mon Sep 17 00:00:00 2001 From: Alexander Pantiukhov Date: Thu, 12 Mar 2026 13:42:47 +0100 Subject: [PATCH 1/2] Pass `screenshotStrategy` option from `mobileReplayIntegration` to the Android native SDK --- CHANGELOG.md | 4 ++++ .../src/main/java/io/sentry/react/RNSentryStart.java | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 330bc2f495..e15e234425 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ ## Unreleased +### Fixes + +- Pass `screenshotStrategy` option from `mobileReplayIntegration` to the Android native SDK ([#XXXX](https://github.com/getsentry/sentry-react-native/pull/XXXX)) + ### 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()); From e9eee362be0ae78f5a0058b5c376c395efee9ddb Mon Sep 17 00:00:00 2001 From: Alexander Pantiukhov Date: Thu, 12 Mar 2026 13:44:58 +0100 Subject: [PATCH 2/2] Changelog entry --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e15e234425..97f48a4167 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ ### Fixes -- Pass `screenshotStrategy` option from `mobileReplayIntegration` to the Android native SDK ([#XXXX](https://github.com/getsentry/sentry-react-native/pull/XXXX)) +- Pass `screenshotStrategy` option from `mobileReplayIntegration` to the Android native SDK ([#5808](https://github.com/getsentry/sentry-react-native/pull/5808)) ### Features