mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-24 15:53:45 +08:00
Analytics: decouple from error reporting
This commit is contained in:
@ -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<String, Map<String, String>, void> analyticsCallback;
|
||||
|
||||
Analytics._(this.analyticsCallback);
|
||||
|
||||
static Analytics? _global;
|
||||
static Analytics init({
|
||||
required bool enable,
|
||||
required SharedPreferences pref,
|
||||
required Func2<String, Map<String, String>, 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<void> setCurrentScreen({required String screenName}) async {
|
||||
|
@ -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(
|
||||
|
@ -118,10 +118,7 @@ Future<void> logExceptionWarning(Object e, StackTrace stackTrace) async {
|
||||
|
||||
List<Breadcrumb> breadcrumbs = [];
|
||||
|
||||
void captureErrorBreadcrumb({
|
||||
required String name,
|
||||
required Map<String, String> parameters,
|
||||
}) {
|
||||
void captureErrorBreadcrumb(String name, Map<String, String> parameters) {
|
||||
if (!reportCrashes) {
|
||||
return;
|
||||
}
|
||||
|
Reference in New Issue
Block a user