From 1cddeaec00442faf58a3b2b10913bd86cca16964 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Mon, 14 Jan 2019 14:01:11 +0100 Subject: [PATCH] OnBoarding: Add all relevant analytics --- lib/app.dart | 6 +----- lib/screens/onboarding_screens.dart | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/lib/app.dart b/lib/app.dart index 6bb109cd..d2c09cc7 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -16,13 +16,9 @@ class JournalApp extends StatelessWidget { final stateContainer = StateContainer.of(context); var onBoardingDone = stateContainer.appState.onBoardingCompleted; - var markOnBoardingCompleted = () { - stateContainer.completeOnBoarding(); - analytics.logEvent(name: "onboarding_complete"); - }; var home = onBoardingDone ? new HomeScreen() - : new OnBoardingScreen(markOnBoardingCompleted); + : new OnBoardingScreen(stateContainer.completeOnBoarding); return new MaterialApp( title: 'GitJournal', diff --git a/lib/screens/onboarding_screens.dart b/lib/screens/onboarding_screens.dart index 94745c3b..6b78435f 100644 --- a/lib/screens/onboarding_screens.dart +++ b/lib/screens/onboarding_screens.dart @@ -55,6 +55,11 @@ class OnBoardingScreenState extends State { pref.setString("sshCloneUrl", sshUrl); this._generateSshKey(); }); + + getAnalytics().logEvent( + name: "onboarding_git_url_enterred", + parameters: {}, + ); }); } if (pos == 1) { @@ -65,6 +70,11 @@ class OnBoardingScreenState extends State { duration: Duration(milliseconds: 200), curve: Curves.easeIn, ); + + getAnalytics().logEvent( + name: "onboarding_public_key_copied", + parameters: {}, + ); }, publicKey: publicKey, ); @@ -72,7 +82,13 @@ class OnBoardingScreenState extends State { if (pos == 2) { return OnBoardingGitClone( - doneFunction: this.widget.onBoardingCompletedFunction, + doneFunction: () { + getAnalytics().logEvent( + name: "onboarding_complete", + parameters: {}, + ); + this.widget.onBoardingCompletedFunction(); + }, ); } }, @@ -308,6 +324,12 @@ class OnBoardingGitCloneState extends State { String error = await gitClone(sshCloneUrl, "journal"); if (error != null && error.isNotEmpty) { setState(() { + getAnalytics().logEvent( + name: "onboarding_gitClone_error", + parameters: { + 'error': error, + }, + ); errorMessage = error; }); } else {