diff --git a/lib/analytics.dart b/lib/analytics.dart new file mode 100644 index 00000000..f877852e --- /dev/null +++ b/lib/analytics.dart @@ -0,0 +1,7 @@ +import 'package:journal/app.dart'; + +import 'package:firebase_analytics/firebase_analytics.dart'; + +FirebaseAnalytics getAnalytics() { + return JournalApp.analytics; +} diff --git a/lib/app.dart b/lib/app.dart index 7866dc59..6bb109cd 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -18,7 +18,7 @@ class JournalApp extends StatelessWidget { var onBoardingDone = stateContainer.appState.onBoardingCompleted; var markOnBoardingCompleted = () { stateContainer.completeOnBoarding(); - analytics.logEvent(name: "on_boarding_complete"); + analytics.logEvent(name: "onboarding_complete"); }; var home = onBoardingDone ? new HomeScreen() diff --git a/lib/screens/onboarding_screens.dart b/lib/screens/onboarding_screens.dart index 8c49a281..94745c3b 100644 --- a/lib/screens/onboarding_screens.dart +++ b/lib/screens/onboarding_screens.dart @@ -6,6 +6,7 @@ import 'package:shared_preferences/shared_preferences.dart'; import 'package:path/path.dart' as p; +import 'package:journal/analytics.dart'; import 'package:journal/state_container.dart'; import 'package:journal/storage/git.dart'; @@ -76,6 +77,30 @@ class OnBoardingScreenState extends State<OnBoardingScreen> { } }, itemCount: pageCount, + onPageChanged: (int pageNum) { + print("PageView onPageChanged: " + pageNum.toString()); + String pageName = ""; + switch (pageNum) { + case 0: + pageName = "OnBoardingGitUrl"; + break; + + case 1: + pageName = "OnBoardingSshKey"; + break; + + case 2: + pageName = "OnBoardingGitClone"; + break; + } + getAnalytics().logEvent( + name: "onboarding_page_changed", + parameters: <String, dynamic>{ + 'page_num': pageNum, + 'page_name': pageName, + }, + ); + }, ); return new Scaffold(