@@ -14,8 +14,9 @@ class AnalytixManager {
1414 bool _isCollectionEnabled = true ;
1515 String ? _screenName;
1616 String ? _userId;
17- Map <String , dynamic > _userProperties = {}; /// todo add device properties collection
18- List <AnalytixEvent > _allEvents = [];
17+ Map <String , dynamic > _userProperties = {};
18+ Map <String , dynamic > _deviceProperties = {};
19+ final List <AnalytixEvent > _allEvents = [];
1920
2021 factory AnalytixManager () {
2122 return _instance;
@@ -33,23 +34,58 @@ class AnalytixManager {
3334 print ('AnalytixManager init' );
3435 }
3536
36- void logEvent (String name, String subEventName, Map <String , dynamic > params) {
37+ void logScreenView (String screenName) {
38+ print ('AnalytixManager setScreenName: $screenName ' );
39+ _screenName = screenName;
40+ logEvent ('screen_view' , screenName);
41+ }
42+
43+ void logEvent (String name, String subEventName, {Map <String , dynamic > params = const {} }) {
3744 if (! _isCollectionEnabled) {
3845 print ('AnalytixManager logEvent: Collection is disabled' );
3946 return ;
4047 }
4148 print ('AnalytixManager logEvent: $name , $params ' );
49+ Map <String , dynamic > newParams = {};
50+ newParams.addAll (params);
4251
4352 for (BaseReporter reporter in reporters) {
44- params['screenName' ] = _screenName;
45- params['userId' ] = _userId;
46- params['userProperties' ] = _userProperties;
47- var newEvent = AnalytixEvent (name, subEventName: subEventName, parameters: params);
53+ newParams['screenName' ] = _screenName;
54+ newParams['userId' ] = _userId;
55+ newParams['userProperties' ] = _userProperties;
56+ newParams['deviceProperties' ] = _deviceProperties;
57+ newParams['eventTime' ] = DateTime .now ();
58+ var newEvent = AnalytixEvent (name, subEventName: subEventName, parameters: newParams);
4859 reporter.logEvent (newEvent);
4960 _allEvents.add (newEvent);
5061 }
5162 }
5263
64+ void addReporters (List <BaseReporter > reporters) {
65+ reporters.addAll (reporters);
66+ }
67+
68+ void addReporter (BaseReporter reporter) {
69+ reporters.add (reporter);
70+ }
71+
72+ void removeReporters (List <BaseReporter > reporters) {
73+ reporters.removeWhere ((element) => reporters.contains (element));
74+ }
75+
76+ void removeReporter (BaseReporter reporter) {
77+ reporters.remove (reporter);
78+ }
79+
80+ void clearReporters () {
81+ reporters.clear ();
82+ }
83+
84+ void setDeviceProperties (Map <String , dynamic > properties) {
85+ print ('AnalytixManager setDeviceProperties: $properties ' );
86+ _userProperties.addAll (properties);
87+ }
88+
5389 void setUserProperty (String name, dynamic value) {
5490 print ('AnalytixManager setUserProperty: $name , $value ' );
5591 _userProperties[name] = value;
@@ -60,11 +96,6 @@ class AnalytixManager {
6096 _userId = userId;
6197 }
6298
63- void setScreenName (String name) {
64- print ('AnalytixManager setScreenName: $name ' );
65- _screenName = name;
66- }
67-
6899 void setAnalyticsCollectionEnabled (bool enabled) {
69100 print ('AnalytixManager setAnalyticsCollectionEnabled: $enabled ' );
70101 _isCollectionEnabled = enabled;
@@ -75,6 +106,7 @@ class AnalytixManager {
75106 _userId = null ;
76107 _screenName = null ;
77108 _userProperties = {};
109+ _deviceProperties = {};
78110 _allEvents.clear ();
79111 }
80112}
0 commit comments