Analytics: Send an event for page changes

This is not perfect as we do not get an event for the first page.

https://github.com/flutter/flutter/issues/19249
This commit is contained in:
Vishesh Handa
2019-01-14 13:54:54 +01:00
parent 1df6829aea
commit 94006c3d7d
3 changed files with 33 additions and 1 deletions

7
lib/analytics.dart Normal file
View File

@ -0,0 +1,7 @@
import 'package:journal/app.dart';
import 'package:firebase_analytics/firebase_analytics.dart';
FirebaseAnalytics getAnalytics() {
return JournalApp.analytics;
}

View File

@ -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()

View File

@ -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(