From 01a436d1826b2fe72ebdb24b9c556d5981220eb6 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Fri, 4 Sep 2020 08:28:49 +0200 Subject: [PATCH] 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. --- lib/analytics.dart | 11 +++++++++-- lib/app.dart | 7 +------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/analytics.dart b/lib/analytics.dart index 2dbb55e2..0caf16a2 100644 --- a/lib/analytics.dart +++ b/lib/analytics.dart @@ -151,10 +151,17 @@ void logEvent(Event event, {Map parameters}) { Log.d("Event $event"); } -class CustomRouteObserver extends RouteObserver> { - void _sendScreenView(PageRoute route) { +class AnalyticsRouteObserver extends RouteObserver> { + void _sendScreenView(PageRoute 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 diff --git a/lib/app.dart b/lib/app.dart index 89f4c562..5b80831f 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -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 { theme: themeData, navigatorObservers: [ - JournalApp.observer, - CustomRouteObserver(), + AnalyticsRouteObserver(), ], initialRoute: initialRoute, debugShowCheckedModeBanner: false,