diff --git a/CHANGELOG.md b/CHANGELOG.md index 43b148d0d0..e12a11bca0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Unreleased 9.0.0 - Increase minimum SDK version requirements to Dart v3.5.0 and Flutter v3.24.0 ([#2643](https://github.com/getsentry/sentry-dart/pull/2643)) +- Remove deprecated `beforeScreenshot` ([#2662](https://github.com/getsentry/sentry-dart/pull/2662)) ### Dependencies @@ -10,7 +11,6 @@ - [changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#810) - [diff](https://github.com/getsentry/sentry-java/compare/7.20.1...8.1.0) -## Unreleased ## 8.13.0 ### Breaking changes diff --git a/flutter/lib/src/event_processor/screenshot_event_processor.dart b/flutter/lib/src/event_processor/screenshot_event_processor.dart index 23ee438948..6d90b9674f 100644 --- a/flutter/lib/src/event_processor/screenshot_event_processor.dart +++ b/flutter/lib/src/event_processor/screenshot_event_processor.dart @@ -52,18 +52,13 @@ class ScreenshotEventProcessor implements EventProcessor { // skip capturing in case of debouncing (=too many frequent capture requests) // the BeforeCaptureCallback may overrule the debouncing decision final shouldDebounce = _debouncer.shouldDebounce(); - - // ignore: deprecated_member_use_from_same_package - final beforeScreenshot = _options.beforeScreenshot; - final beforeCapture = _options.beforeCaptureScreenshot; + final beforeCaptureScreenshot = _options.beforeCaptureScreenshot; try { FutureOr? result; - if (beforeCapture != null) { - result = beforeCapture(event, hint, shouldDebounce); - } else if (beforeScreenshot != null) { - result = beforeScreenshot(event, hint: hint); + if (beforeCaptureScreenshot != null) { + result = beforeCaptureScreenshot(event, hint, shouldDebounce); } bool takeScreenshot = true; diff --git a/flutter/lib/src/sentry_flutter_options.dart b/flutter/lib/src/sentry_flutter_options.dart index d19cd75b6f..7a48f37201 100644 --- a/flutter/lib/src/sentry_flutter_options.dart +++ b/flutter/lib/src/sentry_flutter_options.dart @@ -196,10 +196,6 @@ class SentryFlutterOptions extends SentryOptions { /// See https://docs.sentry.io/platforms/flutter/troubleshooting/#screenshot-integration-background-crash bool attachScreenshotOnlyWhenResumed = false; - @Deprecated( - 'Will be removed in a future version. Use [beforeCaptureScreenshot] instead') - BeforeScreenshotCallback? beforeScreenshot; - /// Sets a callback which is executed before capturing screenshots. Only /// relevant if `attachScreenshot` is set to true. When false is returned /// from the function, no screenshot will be attached. @@ -434,11 +430,6 @@ class _SentryFlutterExperimentalOptions { _privacy ?? SentryPrivacyOptions(); } -@Deprecated( - 'Will be removed in a future version. Use [BeforeCaptureCallback] instead') -typedef BeforeScreenshotCallback = FutureOr Function(SentryEvent event, - {Hint? hint}); - /// A callback which can be used to suppress capturing of screenshots. /// It's called in [ScreenshotEventProcessor] if screenshots are enabled. /// This gives more fine-grained control over when capturing should be performed, diff --git a/flutter/test/event_processor/screenshot_event_processor_test.dart b/flutter/test/event_processor/screenshot_event_processor_test.dart index f74a3fe708..515def4fe2 100644 --- a/flutter/test/event_processor/screenshot_event_processor_test.dart +++ b/flutter/test/event_processor/screenshot_event_processor_test.dart @@ -134,96 +134,6 @@ void main() { }); }); - group('beforeScreenshot', () { - testWidgets('does add screenshot if beforeScreenshot returns true', - (tester) async { - // ignore: deprecated_member_use_from_same_package - fixture.options.beforeScreenshot = (SentryEvent event, {Hint? hint}) { - return true; - }; - await _addScreenshotAttachment(tester, FlutterRenderer.canvasKit, - added: true, isWeb: false); - }); - - testWidgets('does add screenshot if async beforeScreenshot returns true', - (tester) async { - // ignore: deprecated_member_use_from_same_package - fixture.options.beforeScreenshot = - (SentryEvent event, {Hint? hint}) async { - await Future.delayed(Duration(milliseconds: 1)); - return true; - }; - await _addScreenshotAttachment(tester, FlutterRenderer.canvasKit, - added: true, isWeb: false); - }); - - testWidgets('does not add screenshot if beforeScreenshot returns false', - (tester) async { - // ignore: deprecated_member_use_from_same_package - fixture.options.beforeScreenshot = (SentryEvent event, {Hint? hint}) { - return false; - }; - await _addScreenshotAttachment(tester, FlutterRenderer.canvasKit, - added: false, isWeb: false); - }); - - testWidgets( - 'does not add screenshot if async beforeScreenshot returns false', - (tester) async { - // ignore: deprecated_member_use_from_same_package - fixture.options.beforeScreenshot = - (SentryEvent event, {Hint? hint}) async { - await Future.delayed(Duration(milliseconds: 1)); - return false; - }; - await _addScreenshotAttachment(tester, FlutterRenderer.canvasKit, - added: false, isWeb: false); - }); - - testWidgets('does add screenshot if beforeScreenshot throws', - (tester) async { - fixture.options.automatedTestMode = false; - // ignore: deprecated_member_use_from_same_package - fixture.options.beforeScreenshot = (SentryEvent event, {Hint? hint}) { - throw Error(); - }; - await _addScreenshotAttachment(tester, FlutterRenderer.canvasKit, - added: true, isWeb: false); - }); - - testWidgets('does add screenshot if async beforeScreenshot throws', - (tester) async { - fixture.options.automatedTestMode = false; - // ignore: deprecated_member_use_from_same_package - fixture.options.beforeScreenshot = - (SentryEvent event, {Hint? hint}) async { - await Future.delayed(Duration(milliseconds: 1)); - throw Error(); - }; - await _addScreenshotAttachment(tester, FlutterRenderer.canvasKit, - added: true, isWeb: false); - }); - - testWidgets('passes event & hint to beforeScreenshot callback', - (tester) async { - SentryEvent? beforeScreenshotEvent; - Hint? beforeScreenshotHint; - - // ignore: deprecated_member_use_from_same_package - fixture.options.beforeScreenshot = (SentryEvent event, {Hint? hint}) { - beforeScreenshotEvent = event; - beforeScreenshotHint = hint; - return true; - }; - - await _addScreenshotAttachment(tester, FlutterRenderer.canvasKit, - added: true, isWeb: false); - - expect(beforeScreenshotEvent, event); - expect(beforeScreenshotHint, hint); - }); - }); - group('beforeCaptureScreenshot', () { testWidgets('does add screenshot if beforeCapture returns true', (tester) async { diff --git a/metrics/prepare.sh b/metrics/prepare.sh index d492280af0..b9d04fff77 100755 --- a/metrics/prepare.sh +++ b/metrics/prepare.sh @@ -19,9 +19,9 @@ flutterCreate() { flutterCreate 'perf-test-app-plain' flutterCreate 'perf-test-app-with-sentry' -# bump minSdkVersion to 19 +# bump minSdkVersion to 21 gradleFile="$targetDir/perf-test-app-with-sentry/android/app/build.gradle" -sed "s/flutter.minSdkVersion/19/g" "$gradleFile" > "$gradleFile.new" && mv "$gradleFile.new" "$gradleFile" +sed "s/flutter.minSdkVersion/21/g" "$gradleFile" > "$gradleFile.new" && mv "$gradleFile.new" "$gradleFile" echo '::group::Patch perf-test-app-with-sentry' pubspec="$targetDir/perf-test-app-with-sentry/pubspec_overrides.yaml"