Aidra Driver 1.3.5+68
Aidra Driver - Your path to green energy
Loading...
Searching...
No Matches
custom_posthog_observer.dart
Go to the documentation of this file.
1import 'package:flutter/material.dart';
2import 'package:go_router/go_router.dart';
3import 'package:posthog_flutter/posthog_flutter.dart';
4
5class CustomPosthogObserver extends NavigatorObserver {
6 @override
7 void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) {
8 super.didPush(route, previousRoute);
9
10 final routeName = _getRouteName(route);
11
12 if (routeName != null) {
13 Posthog().screen(
14 screenName: routeName,
15 properties: {
16 'previous_screen': _getRouteName(previousRoute) ?? 'unknown',
17 },
18 );
19 }
20 }
21
22 @override
23 void didReplace({Route<dynamic>? newRoute, Route<dynamic>? oldRoute}) {
24 super.didReplace(newRoute: newRoute, oldRoute: oldRoute);
25
26 final routeName = _getRouteName(newRoute);
27 if (routeName != null) {
28 Posthog().screen(
29 screenName: routeName,
30 properties: {
31 'previous_screen': _getRouteName(oldRoute) ?? 'unknown',
32 'navigation_type': 'replace',
33 },
34 );
35 }
36 }
37
38 @override
39 void didPop(Route<dynamic> route, Route<dynamic>? previousRoute) {
40 super.didPop(route, previousRoute);
41
42 final routeName = _getRouteName(previousRoute);
43 if (routeName != null) {
44 Posthog().screen(
45 screenName: routeName,
46 properties: {
47 'previous_screen': _getRouteName(route) ?? 'unknown',
48 'navigation_type': 'pop',
49 },
50 );
51 }
52 }
53
54 String? _getRouteName(Route<dynamic>? route) {
55 if (route == null) return null;
56
57 if (route.settings is GoRouteData) {
58 return route.settings.name;
59 }
60
61 return route.settings.name;
62 }
63}
override void didPop(Route< dynamic > route, Route< dynamic >? previousRoute)
String _getRouteName(Route< dynamic >? route)
override void didPush(Route< dynamic > route, Route< dynamic >? previousRoute)
override void didReplace({Route< dynamic >? newRoute, Route< dynamic >? oldRoute})
class Partner String