From 5bd5eee8e5f0ddd0719d0db2318782b0fe79eb20 Mon Sep 17 00:00:00 2001 From: Krystof Woldrich Date: Tue, 26 Sep 2023 12:55:54 +0200 Subject: [PATCH 1/4] feat(android): Add `enableNdk` to rn options --- CHANGELOG.md | 1 + .../src/main/java/io/sentry/react/RNSentryModuleImpl.java | 3 +++ src/js/options.ts | 6 ++++++ src/js/sdk.tsx | 1 + 4 files changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c369ef789e..ac4cbaffd5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Add Hermes Debug Info flag to React Native Context ([#3290](https://github.com/getsentry/sentry-react-native/pull/3290)) - This flag equals `true` when Hermes Bundle contains Debug Info (Hermes Source Map was not emitted) +- Add `enableNdk` property to ReactNativeOptions for Android. ([#3304](https://github.com/getsentry/sentry-react-native/pull/3304)) ## 5.9.2 diff --git a/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java b/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java index 158847b0ca..1da6d09511 100644 --- a/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java +++ b/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java @@ -185,6 +185,9 @@ public void initNativeSdk(final ReadableMap rnOptions, Promise promise) { if (rnOptions.hasKey("maxQueueSize")) { options.setMaxQueueSize(rnOptions.getInt("maxQueueSize")); } + if (rnOptions.hasKey("enableNdk")) { + options.setEnableNdk(rnOptions.getBoolean("enableNdk")); + } options.setBeforeSend((event, hint) -> { // React native internally throws a JavascriptException diff --git a/src/js/options.ts b/src/js/options.ts index 37bfb8276a..c07d2b794c 100644 --- a/src/js/options.ts +++ b/src/js/options.ts @@ -44,6 +44,12 @@ export interface BaseReactNativeOptions { /** Enable scope sync from Java to NDK on Android */ enableNdkScopeSync?: boolean; + /** Enable NDK on Android + * + * @default true + */ + enableNdk?: boolean; + /** When enabled, all the threads are automatically attached to all logged events on Android */ attachThreads?: boolean; diff --git a/src/js/sdk.tsx b/src/js/sdk.tsx index 4cc6571c49..82915707d7 100644 --- a/src/js/sdk.tsx +++ b/src/js/sdk.tsx @@ -55,6 +55,7 @@ const DEFAULT_OPTIONS: ReactNativeOptions = { maxQueueSize: DEFAULT_BUFFER_SIZE, attachStacktrace: true, enableCaptureFailedRequests: false, + enableNdk: true, }; /** From 578136352c00c9146903805df45eeb9aa256c548 Mon Sep 17 00:00:00 2001 From: Krystof Woldrich Date: Tue, 26 Sep 2023 14:55:00 +0200 Subject: [PATCH 2/4] fix lint --- src/js/options.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/options.ts b/src/js/options.ts index c07d2b794c..d06140d4a8 100644 --- a/src/js/options.ts +++ b/src/js/options.ts @@ -47,7 +47,7 @@ export interface BaseReactNativeOptions { /** Enable NDK on Android * * @default true - */ + */ enableNdk?: boolean; /** When enabled, all the threads are automatically attached to all logged events on Android */ From f3e55ed618821bf11bf1f91774262373fe5fa684 Mon Sep 17 00:00:00 2001 From: Krystof Woldrich Date: Wed, 27 Sep 2023 11:35:08 +0200 Subject: [PATCH 3/4] Update options order --- src/js/options.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/js/options.ts b/src/js/options.ts index d06140d4a8..328c4a1bb6 100644 --- a/src/js/options.ts +++ b/src/js/options.ts @@ -41,15 +41,17 @@ export interface BaseReactNativeOptions { /** The interval to end a session if the App goes to the background. */ sessionTrackingIntervalMillis?: number; - /** Enable scope sync from Java to NDK on Android */ - enableNdkScopeSync?: boolean; - /** Enable NDK on Android * * @default true */ enableNdk?: boolean; + /** Enable scope sync from Java to NDK on Android + * Only has an effect if `enableNdk` is `true`. + */ + enableNdkScopeSync?: boolean; + /** When enabled, all the threads are automatically attached to all logged events on Android */ attachThreads?: boolean; From c9d17a104029e8c4f7756f54d1ba5d357e04d0d8 Mon Sep 17 00:00:00 2001 From: Krystof Woldrich Date: Wed, 27 Sep 2023 11:37:09 +0200 Subject: [PATCH 4/4] fix lint --- src/js/options.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/options.ts b/src/js/options.ts index 328c4a1bb6..dacd4610cf 100644 --- a/src/js/options.ts +++ b/src/js/options.ts @@ -49,7 +49,7 @@ export interface BaseReactNativeOptions { /** Enable scope sync from Java to NDK on Android * Only has an effect if `enableNdk` is `true`. - */ + */ enableNdkScopeSync?: boolean; /** When enabled, all the threads are automatically attached to all logged events on Android */