diff --git a/lib/analytics/analytics.dart b/lib/analytics/analytics.dart index d42099b5..77efd497 100644 --- a/lib/analytics/analytics.dart +++ b/lib/analytics/analytics.dart @@ -1,9 +1,9 @@ import 'package:fixnum/fixnum.dart'; +import 'package:function_types/function_types.dart'; import 'package:recase/recase.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:uuid/uuid.dart'; -import 'package:gitjournal/error_reporting.dart'; import 'package:gitjournal/logger/logger.dart'; import 'generated/analytics.pb.dart' as pb; @@ -62,13 +62,17 @@ enum Event { class Analytics { bool enabled = false; + final Func2, void> analyticsCallback; + + Analytics._(this.analyticsCallback); static Analytics? _global; static Analytics init({ required bool enable, required SharedPreferences pref, + required Func2, void> analyticsCallback, }) { - _global = Analytics(); + _global = Analytics._(analyticsCallback); _global!.enabled = enable; _global!._sessionId = DateTime.now().millisecondsSinceEpoch.toRadixString(16); @@ -100,7 +104,7 @@ class Analytics { print(event); // await firebase.logEvent(name: name, parameters: parameters); } - captureErrorBreadcrumb(name: name, parameters: parameters); + analyticsCallback(name, parameters); } Future setCurrentScreen({required String screenName}) async { diff --git a/lib/app.dart b/lib/app.dart index dfb6c859..a37463bf 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -21,6 +21,7 @@ import 'package:gitjournal/analytics/route_observer.dart'; import 'package:gitjournal/app_router.dart'; import 'package:gitjournal/core/notes_folder_config.dart'; import 'package:gitjournal/core/notes_folder_fs.dart'; +import 'package:gitjournal/error_reporting.dart'; import 'package:gitjournal/iap/iap.dart'; import 'package:gitjournal/logger/logger.dart'; import 'package:gitjournal/repository.dart'; @@ -128,7 +129,11 @@ class JournalApp extends StatefulWidget { bool enabled = !JournalApp.isInDebugMode && !inFireBaseTestLab; Log.d("Analytics Collection: $enabled"); - var analytics = Analytics.init(enable: enabled, pref: pref); + var analytics = Analytics.init( + enable: enabled, + pref: pref, + analyticsCallback: captureErrorBreadcrumb, + ); if (enabled) { analytics.setUserProperty( diff --git a/lib/error_reporting.dart b/lib/error_reporting.dart index 1bf0eac2..1939a546 100644 --- a/lib/error_reporting.dart +++ b/lib/error_reporting.dart @@ -118,10 +118,7 @@ Future logExceptionWarning(Object e, StackTrace stackTrace) async { List breadcrumbs = []; -void captureErrorBreadcrumb({ - required String name, - required Map parameters, -}) { +void captureErrorBreadcrumb(String name, Map parameters) { if (!reportCrashes) { return; }