mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-30 03:19:11 +08:00
Analytics: Make all events into enums
No more random strings
This commit is contained in:
@ -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,
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -60,9 +60,7 @@ class PurchaseScreen extends StatelessWidget {
|
||||
}
|
||||
|
||||
Future<bool> _onWillPop() async {
|
||||
getAnalytics().logEvent(
|
||||
name: "purchase_screen_close",
|
||||
);
|
||||
logEvent(Event.PurchaseScreenClose);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -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,
|
||||
},
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
});
|
||||
|
@ -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,
|
||||
},
|
||||
);
|
||||
|
@ -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');
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user