Replace FirebaseAnalyticsObserver with our own

This way we have the screen names in the debug log and diagnosing issues
becomes easier. Also, this brings me closer to being able to drop
Firebase Analytics.
This commit is contained in:
Vishesh Handa
2020-09-04 08:28:49 +02:00
parent 4c55c0882d
commit 01a436d182
2 changed files with 10 additions and 8 deletions

View File

@ -151,10 +151,17 @@ void logEvent(Event event, {Map<String, String> parameters}) {
Log.d("Event $event");
}
class CustomRouteObserver extends RouteObserver<PageRoute<dynamic>> {
void _sendScreenView(PageRoute<dynamic> route) {
class AnalyticsRouteObserver extends RouteObserver<PageRoute<dynamic>> {
void _sendScreenView(PageRoute<dynamic> route) async {
final String screenName = route.settings.name;
assert(screenName != null, "Screen name is null $route");
Log.i("Screen: $screenName");
try {
await getAnalytics().firebase.setCurrentScreen(screenName: screenName);
} catch (e, stackTrace) {
Log.e("AnalyticsRouteObserver", ex: e, stacktrace: stackTrace);
}
}
@override

View File

@ -9,7 +9,6 @@ import 'package:device_info/device_info.dart';
import 'package:dynamic_theme/dynamic_theme.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:easy_localization_loader/easy_localization_loader.dart';
import 'package:firebase_analytics/observer.dart';
import 'package:flutter_sentry/flutter_sentry.dart';
import 'package:path/path.dart' as p;
import 'package:path_provider/path_provider.dart';
@ -144,9 +143,6 @@ class JournalApp extends StatefulWidget {
}
static final analytics = Analytics();
static FirebaseAnalyticsObserver observer =
FirebaseAnalyticsObserver(analytics: analytics.firebase);
static bool isInDebugMode = false;
JournalApp(this.appState);
@ -305,8 +301,7 @@ class _JournalAppState extends State<JournalApp> {
theme: themeData,
navigatorObservers: <NavigatorObserver>[
JournalApp.observer,
CustomRouteObserver(),
AnalyticsRouteObserver(),
],
initialRoute: initialRoute,
debugShowCheckedModeBanner: false,