Analytics: Make all events into enums

No more random strings
This commit is contained in:
Vishesh Handa
2020-08-17 15:29:38 +02:00
parent d94a1e1630
commit 7936cc70b8
8 changed files with 45 additions and 45 deletions

View File

@ -33,6 +33,15 @@ enum Event {
DrawerSettings,
PurchaseScreenOpen,
PurchaseScreenClose,
PurchaseScreenThankYou,
GitHostSetupError,
GitHostSetupComplete,
GitHostSetupGitCloneError,
GitHostSetupButtonClick,
Settings,
}
String _eventToString(Event e) {
@ -80,6 +89,22 @@ String _eventToString(Event e) {
case Event.PurchaseScreenOpen:
return "purchase_screen_open";
case Event.PurchaseScreenClose:
return "purchase_screen_close";
case Event.PurchaseScreenThankYou:
return "purchase_screen_thank_you";
case Event.GitHostSetupError:
return "githostsetup_error";
case Event.GitHostSetupComplete:
return "onboarding_complete";
case Event.GitHostSetupGitCloneError:
return "onboarding_gitClone_error";
case Event.GitHostSetupButtonClick:
return "githostsetup_button_click";
case Event.Settings:
return "settings";
}
return "unknown_event";
@ -89,14 +114,6 @@ class Analytics {
var firebase = FirebaseAnalytics();
bool enabled = false;
Future<void> logEvent({
@required String name,
Map<String, String> parameters,
}) async {
await firebase.logEvent(name: name, parameters: parameters);
captureErrorBreadcrumb(name: name, parameters: parameters);
}
Future<void> log({
@required Event e,
Map<String, String> parameters,

View File

@ -138,10 +138,7 @@ class JournalApp extends StatefulWidget {
JournalApp.analytics.setAnalyticsCollectionEnabled(enabled);
if (enabled) {
JournalApp.analytics.logEvent(
name: "settings",
parameters: settings.toLoggableMap(),
);
logEvent(Event.Settings, parameters: settings.toLoggableMap());
}
}

View File

@ -60,9 +60,7 @@ class PurchaseScreen extends StatelessWidget {
}
Future<bool> _onWillPop() async {
getAnalytics().logEvent(
name: "purchase_screen_close",
);
logEvent(Event.PurchaseScreenClose);
return true;
}
}

View File

@ -87,8 +87,8 @@ class GitHostSetupAutoConfigureState extends State<GitHostSetupAutoConfigure> {
Log.d("GitHostSetupAutoConfigure: " + e.toString());
setState(() {
errorMessage = widget.gitHostType.toString() + ": " + e.toString();
getAnalytics().logEvent(
name: "githostsetup_error",
logEvent(
Event.GitHostSetupError,
parameters: <String, String>{
'errorMessage': errorMessage,
},

View File

@ -50,13 +50,10 @@ class GitHostSetupButton extends StatelessWidget {
void _onPressedWithAnalytics() {
Log.d("githostsetup_button_click " + text);
getAnalytics().logEvent(
name: "githostsetup_button_click",
parameters: <String, String>{
logEvent(Event.GitHostSetupButtonClick, parameters: {
'text': text,
'icon_url': iconUrl == null ? "" : iconUrl,
},
);
});
onPressed();
}
}

View File

@ -97,12 +97,9 @@ class GitHostSetupRepoSelectorState extends State<GitHostSetupRepoSelector> {
Log.d("GitHostSetupAutoConfigure: " + e.toString());
setState(() {
errorMessage = e.toString();
getAnalytics().logEvent(
name: "githostsetup_error",
parameters: <String, String>{
logEvent(Event.GitHostSetupError, parameters: {
'errorMessage': errorMessage,
},
);
});
logException(e, stacktrace);
});

View File

@ -486,12 +486,9 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
if (error != null && error.isNotEmpty) {
setState(() {
getAnalytics().logEvent(
name: "onboarding_gitClone_error",
parameters: <String, String>{
logEvent(Event.GitHostSetupGitCloneError, parameters: {
'error': error,
},
);
});
gitCloneErrorMessage = error;
});
return;
@ -523,8 +520,8 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
);
}
getAnalytics().logEvent(
name: "onboarding_complete",
logEvent(
Event.GitHostSetupComplete,
parameters: _buildOnboardingAnalytics(),
);
Navigator.pop(context);
@ -563,9 +560,9 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
Log.d("GitHostSetupAutoConfigureComplete: " + e.toString());
setState(() {
_autoConfigureErrorMessage = e.toString();
getAnalytics().logEvent(
name: "githostsetup_error",
parameters: <String, String>{
logEvent(
Event.GitHostSetupError,
parameters: {
'errorMessage': _autoConfigureErrorMessage,
},
);

View File

@ -178,10 +178,7 @@ class _PurchaseWidgetState extends State<PurchaseWidget> {
settings.proExpirationDate = status.expiryDate.toIso8601String();
settings.save();
getAnalytics().logEvent(
name: "purchase_screen_thank_you",
);
logEvent(Event.PurchaseScreenThankYou);
Navigator.of(context).popAndPushNamed('/purchase_thank_you');
}