From ea1cff9e298695843da7ecfb906dd2352baf1d09 Mon Sep 17 00:00:00 2001 From: Oskar Zajac Date: Mon, 10 Aug 2026 13:34:41 +0200 Subject: [PATCH 1/2] Send one $screen event per navigation The observer sent its own screen view for the `LeanAnalyticsRoute` id and then delegated to `PosthogObserver`, which sent a second one named after `RouteSettings.name`. Suppressing the inherited screen view with a null `nameExtractor` keeps the superclass bookkeeping intact. --- packages/leancode_analytics_posthog/CHANGELOG.md | 4 ++++ .../lib/src/posthog_analytics_observer.dart | 5 +++++ packages/leancode_analytics_posthog/pubspec.yaml | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/leancode_analytics_posthog/CHANGELOG.md b/packages/leancode_analytics_posthog/CHANGELOG.md index ba72910aa..c3b35834c 100644 --- a/packages/leancode_analytics_posthog/CHANGELOG.md +++ b/packages/leancode_analytics_posthog/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.1 + +- Fix `LeanAnalyticsPostHogObserver` sending two `$screen` events per navigation + ## 0.1.0 - Initial release with PostHog Analytics implementation diff --git a/packages/leancode_analytics_posthog/lib/src/posthog_analytics_observer.dart b/packages/leancode_analytics_posthog/lib/src/posthog_analytics_observer.dart index 24c2e65c7..4502f2219 100644 --- a/packages/leancode_analytics_posthog/lib/src/posthog_analytics_observer.dart +++ b/packages/leancode_analytics_posthog/lib/src/posthog_analytics_observer.dart @@ -5,6 +5,11 @@ import 'package:posthog_flutter/posthog_flutter.dart'; /// PostHog observer that tracks screen views for routes implementing /// [LeanAnalyticsRoute]. class LeanAnalyticsPostHogObserver extends PosthogObserver { + /// Screen views come from [_sendLeanAnalyticsScreen]. Suppressing the + /// inherited ones keeps [PosthogObserver]'s bookkeeping while stopping it from + /// sending a second `$screen` named after `RouteSettings.name`. + LeanAnalyticsPostHogObserver() : super(nameExtractor: (_) => null); + @override void didPush(Route route, Route? previousRoute) { if (route is LeanAnalyticsRoute) { diff --git a/packages/leancode_analytics_posthog/pubspec.yaml b/packages/leancode_analytics_posthog/pubspec.yaml index e6a53db92..09946d423 100644 --- a/packages/leancode_analytics_posthog/pubspec.yaml +++ b/packages/leancode_analytics_posthog/pubspec.yaml @@ -1,6 +1,6 @@ name: leancode_analytics_posthog description: PostHog Analytics implementation for LeanCode analytics. -version: 0.1.0+1 +version: 0.1.1 homepage: https://github.com/leancodepl/flutter_corelibrary/tree/master/packages/leancode_analytics_posthog repository: https://github.com/leancodepl/flutter_corelibrary From cb9b944b0b2d6689b4b0ea7a342389a82c03c697 Mon Sep 17 00:00:00 2001 From: Oskar Zajac Date: Mon, 10 Aug 2026 13:38:44 +0200 Subject: [PATCH 2/2] Shorten the constructor doc to one line --- .../lib/src/posthog_analytics_observer.dart | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/leancode_analytics_posthog/lib/src/posthog_analytics_observer.dart b/packages/leancode_analytics_posthog/lib/src/posthog_analytics_observer.dart index 4502f2219..199d190fa 100644 --- a/packages/leancode_analytics_posthog/lib/src/posthog_analytics_observer.dart +++ b/packages/leancode_analytics_posthog/lib/src/posthog_analytics_observer.dart @@ -5,9 +5,7 @@ import 'package:posthog_flutter/posthog_flutter.dart'; /// PostHog observer that tracks screen views for routes implementing /// [LeanAnalyticsRoute]. class LeanAnalyticsPostHogObserver extends PosthogObserver { - /// Screen views come from [_sendLeanAnalyticsScreen]. Suppressing the - /// inherited ones keeps [PosthogObserver]'s bookkeeping while stopping it from - /// sending a second `$screen` named after `RouteSettings.name`. + /// Creates an observer that sends screen views for [LeanAnalyticsRoute]s only. LeanAnalyticsPostHogObserver() : super(nameExtractor: (_) => null); @override