import 'package:aitrainer_app/main.dart'; import 'package:aitrainer_app/model/cache.dart'; import 'package:aitrainer_app/service/logging.dart'; import 'package:aitrainer_app/service/tracking_service.dart'; import 'package:aitrainer_app/util/enums.dart'; import 'package:aitrainer_app/model/tracking.dart' as model; import 'package:firebase_analytics/firebase_analytics.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; //import 'package:flurry_data/flurry_data.dart'; //import 'package:flutter_uxcam/flutter_uxcam.dart'; //import 'package:flutter_smartlook/flutter_smartlook.dart'; import 'package:matomo_tracker/matomo_tracker.dart'; class Track with Logging { static final Track _singleton = Track._internal(); static FirebaseAnalytics analytics = FirebaseAnalytics.instance; factory Track() { return _singleton; } Track._internal(); void track(TrackingEvent event, {String eventValue = ""}) { if (!isInDebugMode) { //FlurryData.logEvent(event.enumToString()); //Smartlook.setGlobalEventProperty(event.toString(), eventValue, false); //FlutterUxcam.logEventWithProperties(event.enumToString(), {"value": eventValue}); model.Tracking tracking = model.Tracking(); tracking.customerId = Cache().userLoggedIn == null ? 0 : Cache().userLoggedIn!.customerId!; tracking.event = event.enumToString(); if (eventValue.isNotEmpty) { tracking.eventValue = eventValue; } tracking.dateAdd = DateTime.now(); TrackingApi().saveTracking(tracking); FirebaseMessaging.instance.subscribeToTopic(event.enumToString()); analytics.logEvent(name: event.enumToString(), parameters: {"value": eventValue}); MatomoTracker.instance.trackEvent(eventName: event.enumToString(), eventCategory: "", action: eventValue, eventValue: tracking.customerId); } } }