@@ -9,6 +9,7 @@ import 'package:package_info_plus/package_info_plus.dart';
99import 'package:sentry_flutter/sentry_flutter.dart' ;
1010import 'package:sentry_logging/sentry_logging.dart' ;
1111import 'package:tail_app/Backend/utilities/hive.dart' ;
12+ import 'package:tail_app/Backend/utilities/settings.dart' ;
1213import 'package:universal_io/io.dart' ;
1314
1415import '../../constants.dart' ;
@@ -18,10 +19,13 @@ import '../logging_wrappers.dart';
1819Random _random = Random ();
1920
2021Future <String > getSentryEnvironment () async {
21- if ( ! kReleaseMode) {
22- return 'debug' ;
23- }
22+ final ISentrySpan ? span = Sentry . getSpan () ? . startChild (
23+ 'Sentry.getEnvironment' ,
24+ );
2425 try {
26+ if (! kReleaseMode) {
27+ return 'debug' ;
28+ }
2529 DeviceInfoPlugin deviceInfo = DeviceInfoPlugin ();
2630 PackageInfo packageInfo = await PackageInfo .fromPlatform ();
2731 String referral = packageInfo.installerStore ?? "" ;
@@ -47,6 +51,9 @@ Future<String> getSentryEnvironment() async {
4751 }
4852 } catch (e, s) {
4953 _logger.severe ("Failed to determine environment for sentry" , e, s);
54+ span? .status = SpanStatus .internalError ();
55+ } finally {
56+ span? .finish ();
5057 }
5158 return 'production' ;
5259}
@@ -56,13 +63,14 @@ FutureOr<SentryEvent?> beforeSend(SentryEvent event, Hint hint) async {
5663 if (isHiveReady) {
5764 DynamicConfigInfo dynamicConfigInfo = await getDynamicConfigInfo ();
5865 reportingEnabled =
59- HiveProxy .getOrDefault (
60- settings,
61- allowErrorReporting,
62- defaultValue: allowErrorReportingDefault,
63- ) &&
64- dynamicConfigInfo.featureFlags.enableErrorReporting &&
65- _random.nextDouble () <= dynamicConfigInfo.sentryConfig.sampleRate;
66+ disableSentryFiltering ||
67+ (HiveProxy .getOrDefault (
68+ settings,
69+ allowErrorReporting,
70+ defaultValue: allowErrorReportingDefault,
71+ ) &&
72+ dynamicConfigInfo.featureFlags.enableErrorReporting &&
73+ _random.nextDouble () <= dynamicConfigInfo.sentryConfig.sampleRate);
6674 }
6775 if (reportingEnabled) {
6876 return event;
@@ -77,8 +85,9 @@ FutureOr<SentryTransaction?> beforeSendTransaction(
7785) async {
7886 if (isHiveReady) {
7987 DynamicConfigInfo dynamicConfigInfo = await getDynamicConfigInfo ();
80- if (_random.nextDouble () <=
81- dynamicConfigInfo.sentryConfig.tracesSampleRate) {
88+ if (disableSentryFiltering ||
89+ _random.nextDouble () <=
90+ dynamicConfigInfo.sentryConfig.tracesSampleRate) {
8291 return transaction;
8392 } else {
8493 return null ;
0 commit comments