mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-07-15 07:56:11 +08:00
Analytics: decouple from error reporting
This commit is contained in:
lib
@ -1,9 +1,9 @@
|
|||||||
import 'package:fixnum/fixnum.dart';
|
import 'package:fixnum/fixnum.dart';
|
||||||
|
import 'package:function_types/function_types.dart';
|
||||||
import 'package:recase/recase.dart';
|
import 'package:recase/recase.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
import 'package:uuid/uuid.dart';
|
import 'package:uuid/uuid.dart';
|
||||||
|
|
||||||
import 'package:gitjournal/error_reporting.dart';
|
|
||||||
import 'package:gitjournal/logger/logger.dart';
|
import 'package:gitjournal/logger/logger.dart';
|
||||||
import 'generated/analytics.pb.dart' as pb;
|
import 'generated/analytics.pb.dart' as pb;
|
||||||
|
|
||||||
@ -62,13 +62,17 @@ enum Event {
|
|||||||
|
|
||||||
class Analytics {
|
class Analytics {
|
||||||
bool enabled = false;
|
bool enabled = false;
|
||||||
|
final Func2<String, Map<String, String>, void> analyticsCallback;
|
||||||
|
|
||||||
|
Analytics._(this.analyticsCallback);
|
||||||
|
|
||||||
static Analytics? _global;
|
static Analytics? _global;
|
||||||
static Analytics init({
|
static Analytics init({
|
||||||
required bool enable,
|
required bool enable,
|
||||||
required SharedPreferences pref,
|
required SharedPreferences pref,
|
||||||
|
required Func2<String, Map<String, String>, void> analyticsCallback,
|
||||||
}) {
|
}) {
|
||||||
_global = Analytics();
|
_global = Analytics._(analyticsCallback);
|
||||||
_global!.enabled = enable;
|
_global!.enabled = enable;
|
||||||
_global!._sessionId =
|
_global!._sessionId =
|
||||||
DateTime.now().millisecondsSinceEpoch.toRadixString(16);
|
DateTime.now().millisecondsSinceEpoch.toRadixString(16);
|
||||||
@ -100,7 +104,7 @@ class Analytics {
|
|||||||
print(event);
|
print(event);
|
||||||
// await firebase.logEvent(name: name, parameters: parameters);
|
// await firebase.logEvent(name: name, parameters: parameters);
|
||||||
}
|
}
|
||||||
captureErrorBreadcrumb(name: name, parameters: parameters);
|
analyticsCallback(name, parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> setCurrentScreen({required String screenName}) async {
|
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/app_router.dart';
|
||||||
import 'package:gitjournal/core/notes_folder_config.dart';
|
import 'package:gitjournal/core/notes_folder_config.dart';
|
||||||
import 'package:gitjournal/core/notes_folder_fs.dart';
|
import 'package:gitjournal/core/notes_folder_fs.dart';
|
||||||
|
import 'package:gitjournal/error_reporting.dart';
|
||||||
import 'package:gitjournal/iap/iap.dart';
|
import 'package:gitjournal/iap/iap.dart';
|
||||||
import 'package:gitjournal/logger/logger.dart';
|
import 'package:gitjournal/logger/logger.dart';
|
||||||
import 'package:gitjournal/repository.dart';
|
import 'package:gitjournal/repository.dart';
|
||||||
@ -128,7 +129,11 @@ class JournalApp extends StatefulWidget {
|
|||||||
bool enabled = !JournalApp.isInDebugMode && !inFireBaseTestLab;
|
bool enabled = !JournalApp.isInDebugMode && !inFireBaseTestLab;
|
||||||
|
|
||||||
Log.d("Analytics Collection: $enabled");
|
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) {
|
if (enabled) {
|
||||||
analytics.setUserProperty(
|
analytics.setUserProperty(
|
||||||
|
@ -118,10 +118,7 @@ Future<void> logExceptionWarning(Object e, StackTrace stackTrace) async {
|
|||||||
|
|
||||||
List<Breadcrumb> breadcrumbs = [];
|
List<Breadcrumb> breadcrumbs = [];
|
||||||
|
|
||||||
void captureErrorBreadcrumb({
|
void captureErrorBreadcrumb(String name, Map<String, String> parameters) {
|
||||||
required String name,
|
|
||||||
required Map<String, String> parameters,
|
|
||||||
}) {
|
|
||||||
if (!reportCrashes) {
|
if (!reportCrashes) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user