mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-07-01 12:23:44 +08:00
Analytics: Make all events into enums
No more random strings
This commit is contained in:
@ -33,6 +33,15 @@ enum Event {
|
|||||||
DrawerSettings,
|
DrawerSettings,
|
||||||
|
|
||||||
PurchaseScreenOpen,
|
PurchaseScreenOpen,
|
||||||
|
PurchaseScreenClose,
|
||||||
|
PurchaseScreenThankYou,
|
||||||
|
|
||||||
|
GitHostSetupError,
|
||||||
|
GitHostSetupComplete,
|
||||||
|
GitHostSetupGitCloneError,
|
||||||
|
GitHostSetupButtonClick,
|
||||||
|
|
||||||
|
Settings,
|
||||||
}
|
}
|
||||||
|
|
||||||
String _eventToString(Event e) {
|
String _eventToString(Event e) {
|
||||||
@ -80,6 +89,22 @@ String _eventToString(Event e) {
|
|||||||
|
|
||||||
case Event.PurchaseScreenOpen:
|
case Event.PurchaseScreenOpen:
|
||||||
return "purchase_screen_open";
|
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";
|
return "unknown_event";
|
||||||
@ -89,14 +114,6 @@ class Analytics {
|
|||||||
var firebase = FirebaseAnalytics();
|
var firebase = FirebaseAnalytics();
|
||||||
bool enabled = false;
|
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({
|
Future<void> log({
|
||||||
@required Event e,
|
@required Event e,
|
||||||
Map<String, String> parameters,
|
Map<String, String> parameters,
|
||||||
|
@ -138,10 +138,7 @@ class JournalApp extends StatefulWidget {
|
|||||||
JournalApp.analytics.setAnalyticsCollectionEnabled(enabled);
|
JournalApp.analytics.setAnalyticsCollectionEnabled(enabled);
|
||||||
|
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
JournalApp.analytics.logEvent(
|
logEvent(Event.Settings, parameters: settings.toLoggableMap());
|
||||||
name: "settings",
|
|
||||||
parameters: settings.toLoggableMap(),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,9 +60,7 @@ class PurchaseScreen extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> _onWillPop() async {
|
Future<bool> _onWillPop() async {
|
||||||
getAnalytics().logEvent(
|
logEvent(Event.PurchaseScreenClose);
|
||||||
name: "purchase_screen_close",
|
|
||||||
);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -87,8 +87,8 @@ class GitHostSetupAutoConfigureState extends State<GitHostSetupAutoConfigure> {
|
|||||||
Log.d("GitHostSetupAutoConfigure: " + e.toString());
|
Log.d("GitHostSetupAutoConfigure: " + e.toString());
|
||||||
setState(() {
|
setState(() {
|
||||||
errorMessage = widget.gitHostType.toString() + ": " + e.toString();
|
errorMessage = widget.gitHostType.toString() + ": " + e.toString();
|
||||||
getAnalytics().logEvent(
|
logEvent(
|
||||||
name: "githostsetup_error",
|
Event.GitHostSetupError,
|
||||||
parameters: <String, String>{
|
parameters: <String, String>{
|
||||||
'errorMessage': errorMessage,
|
'errorMessage': errorMessage,
|
||||||
},
|
},
|
||||||
|
@ -50,13 +50,10 @@ class GitHostSetupButton extends StatelessWidget {
|
|||||||
|
|
||||||
void _onPressedWithAnalytics() {
|
void _onPressedWithAnalytics() {
|
||||||
Log.d("githostsetup_button_click " + text);
|
Log.d("githostsetup_button_click " + text);
|
||||||
getAnalytics().logEvent(
|
logEvent(Event.GitHostSetupButtonClick, parameters: {
|
||||||
name: "githostsetup_button_click",
|
'text': text,
|
||||||
parameters: <String, String>{
|
'icon_url': iconUrl == null ? "" : iconUrl,
|
||||||
'text': text,
|
});
|
||||||
'icon_url': iconUrl == null ? "" : iconUrl,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
onPressed();
|
onPressed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -97,12 +97,9 @@ class GitHostSetupRepoSelectorState extends State<GitHostSetupRepoSelector> {
|
|||||||
Log.d("GitHostSetupAutoConfigure: " + e.toString());
|
Log.d("GitHostSetupAutoConfigure: " + e.toString());
|
||||||
setState(() {
|
setState(() {
|
||||||
errorMessage = e.toString();
|
errorMessage = e.toString();
|
||||||
getAnalytics().logEvent(
|
logEvent(Event.GitHostSetupError, parameters: {
|
||||||
name: "githostsetup_error",
|
'errorMessage': errorMessage,
|
||||||
parameters: <String, String>{
|
});
|
||||||
'errorMessage': errorMessage,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
logException(e, stacktrace);
|
logException(e, stacktrace);
|
||||||
});
|
});
|
||||||
|
@ -486,12 +486,9 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
|
|||||||
|
|
||||||
if (error != null && error.isNotEmpty) {
|
if (error != null && error.isNotEmpty) {
|
||||||
setState(() {
|
setState(() {
|
||||||
getAnalytics().logEvent(
|
logEvent(Event.GitHostSetupGitCloneError, parameters: {
|
||||||
name: "onboarding_gitClone_error",
|
'error': error,
|
||||||
parameters: <String, String>{
|
});
|
||||||
'error': error,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
gitCloneErrorMessage = error;
|
gitCloneErrorMessage = error;
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
@ -523,8 +520,8 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAnalytics().logEvent(
|
logEvent(
|
||||||
name: "onboarding_complete",
|
Event.GitHostSetupComplete,
|
||||||
parameters: _buildOnboardingAnalytics(),
|
parameters: _buildOnboardingAnalytics(),
|
||||||
);
|
);
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
@ -563,9 +560,9 @@ class GitHostSetupScreenState extends State<GitHostSetupScreen> {
|
|||||||
Log.d("GitHostSetupAutoConfigureComplete: " + e.toString());
|
Log.d("GitHostSetupAutoConfigureComplete: " + e.toString());
|
||||||
setState(() {
|
setState(() {
|
||||||
_autoConfigureErrorMessage = e.toString();
|
_autoConfigureErrorMessage = e.toString();
|
||||||
getAnalytics().logEvent(
|
logEvent(
|
||||||
name: "githostsetup_error",
|
Event.GitHostSetupError,
|
||||||
parameters: <String, String>{
|
parameters: {
|
||||||
'errorMessage': _autoConfigureErrorMessage,
|
'errorMessage': _autoConfigureErrorMessage,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
@ -178,10 +178,7 @@ class _PurchaseWidgetState extends State<PurchaseWidget> {
|
|||||||
settings.proExpirationDate = status.expiryDate.toIso8601String();
|
settings.proExpirationDate = status.expiryDate.toIso8601String();
|
||||||
settings.save();
|
settings.save();
|
||||||
|
|
||||||
getAnalytics().logEvent(
|
logEvent(Event.PurchaseScreenThankYou);
|
||||||
name: "purchase_screen_thank_you",
|
|
||||||
);
|
|
||||||
|
|
||||||
Navigator.of(context).popAndPushNamed('/purchase_thank_you');
|
Navigator.of(context).popAndPushNamed('/purchase_thank_you');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user