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:smartlook/smartlook.dart'; class Track with Logging { static final Track _singleton = Track._internal(); static FirebaseAnalytics analytics = FirebaseAnalytics(); 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}); } } }