Migrate misc events to Event Horizon#5108
Open
MiSikora wants to merge 3 commits intomehow/task/event-horizon-searchfrom
Open
Migrate misc events to Event Horizon#5108MiSikora wants to merge 3 commits intomehow/task/event-horizon-searchfrom
MiSikora wants to merge 3 commits intomehow/task/event-horizon-searchfrom
Conversation
Collaborator
Generated by 🚫 Danger |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR migrates a set of “misc” analytics events (Chromecast, ratings, widgets, What’s New, and app review flows) from the legacy AnalyticsTracker/AnalyticsEvent pipeline to EventHorizon event objects.
Changes:
- Replaced
AnalyticsTracker.track(...)calls witheventHorizon.track(...)across multiple features. - Updated widget analytics to use
WidgetTypeand migrated widget install/uninstall events to EventHorizon. - Updated app review and ratings flows to emit EventHorizon events, and adjusted supporting model/test code accordingly.
Reviewed changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| modules/services/views/.../InAppReviewHelper.kt | Switch in-app review requested tracking to EventHorizon. |
| app/src/androidTest/.../InAppReviewHelperTest.kt | Update test wiring to use EventHorizon(TestEventSink()). |
| modules/services/repositories/.../chromecast/ChromeCastAnalytics.kt | Migrate Chromecast “view shown” event to EventHorizon with structured payload. |
| modules/services/repositories/.../chromecast/CastManagerImpl.kt | Migrate Chromecast started/stopped casting events to EventHorizon. |
| modules/services/repositories/.../appreview/AppReviewManagerImpl.kt | Migrate “survey not shown” tracking to EventHorizon with policy field. |
| modules/services/repositories/.../appreview/AppReviewManagerTest.kt | Update unit test to inject EventHorizon(TestEventSink()). |
| modules/services/model/.../MembershipFeature.kt | Add Membership.eventHorizonValue mapping to EventHorizon UserType. |
| modules/features/widgets/.../di/WidgetEntryPoint.kt | Replace AnalyticsTracker entry point with EventHorizon. |
| modules/features/widgets/.../PlayerWidgetReceiver.kt | Track widget install/uninstall via WidgetInstalledEvent/WidgetUninstalledEvent. |
| modules/features/widgets/.../SmallPlayerWidgetReceiver.kt | Use WidgetType.PlayerSmall. |
| modules/features/widgets/.../MediumPlayerWidgetReceiver.kt | Use WidgetType.PlayerMedium. |
| modules/features/widgets/.../LargePlayerWidgetReceiver.kt | Use WidgetType.PlayerLarge. |
| modules/features/widgets/.../core/ui/widget/PodcastWidget.kt | Use legacy widget mapping WidgetType.PlayerOld. |
| modules/features/settings/.../whatsnew/WhatsNewFragment.kt | Migrate Whats New shown/dismissed/confirm events to EventHorizon (includes version). |
| modules/features/settings/.../stats/StatsViewModel.kt | Update in-app review dialog launch call for new helper signature. |
| modules/features/settings/.../about/AboutFragment.kt | Migrate Rate Us tapped tracking to EventHorizon with source. |
| modules/features/profile/.../PocketCastsChampionBottomSheetDialog.kt | Migrate champion dialog shown/rate button tapped events to EventHorizon. |
| modules/features/podcasts/.../PodcastRatingsViewModel.kt | Migrate rating stars tapped event to EventHorizon and simplify click plumbing. |
| modules/features/podcasts/.../GiveRatingViewModel.kt | Migrate rating screen shown/dismissed/submit/not-allowed events to EventHorizon; refactor Stars. |
| modules/features/podcasts/.../view/podcast/PodcastHeader.kt | Remove RatingTappedSource from rating click callbacks. |
| modules/features/podcasts/.../PodcastFragment.kt | Update rating click invocation to match new callback signature. |
| modules/features/podcasts/.../PodcastAdapter.kt | Update adapter callbacks for simplified rating click signature. |
| modules/features/podcasts/.../StarRatingView.kt | Update rating click signature to no longer pass a source. |
| modules/features/podcasts/.../GiveRatingScreen.kt | Use Stars.value instead of starsToRating(...) for initial rate. |
| modules/features/podcasts/.../GiveRatingFragment.kt | Update dismiss tracking to call new ViewModel helpers. |
| modules/features/appreview/.../AppReviewViewModel.kt | Migrate app review requested + survey events to EventHorizon including trigger/userType. |
app/src/androidTest/java/au/com/shiftyjelly/pocketcasts/views/review/InAppReviewHelperTest.kt
Outdated
Show resolved
Hide resolved
...ervices/views/src/main/java/au/com/shiftyjelly/pocketcasts/views/review/InAppReviewHelper.kt
Show resolved
Hide resolved
...eatures/widgets/src/main/kotlin/au/com/shiftyjelly/pocketcasts/widget/di/WidgetEntryPoint.kt
Show resolved
Hide resolved
...tures/settings/src/main/java/au/com/shiftyjelly/pocketcasts/settings/stats/StatsViewModel.kt
Show resolved
Hide resolved
83ede04 to
adff8b4
Compare
6e31ca3 to
1e4e92c
Compare
...atures/widgets/src/main/kotlin/au/com/shiftyjelly/pocketcasts/widget/PlayerWidgetReceiver.kt
Show resolved
Hide resolved
...ervices/views/src/main/java/au/com/shiftyjelly/pocketcasts/views/review/InAppReviewHelper.kt
Show resolved
Hide resolved
...s/src/main/java/au/com/shiftyjelly/pocketcasts/podcasts/viewmodel/PodcastRatingsViewModel.kt
Show resolved
Hide resolved
...services/model/src/main/java/au/com/shiftyjelly/pocketcasts/models/type/MembershipFeature.kt
Show resolved
Hide resolved
MiSikora
commented
Mar 11, 2026
...services/model/src/main/java/au/com/shiftyjelly/pocketcasts/models/type/MembershipFeature.kt
Outdated
Show resolved
Hide resolved
...casts/src/main/java/au/com/shiftyjelly/pocketcasts/podcasts/viewmodel/GiveRatingViewModel.kt
Show resolved
Hide resolved
...atures/widgets/src/main/kotlin/au/com/shiftyjelly/pocketcasts/widget/PlayerWidgetReceiver.kt
Show resolved
Hide resolved
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This migrates miscellaneous events to Event Horizon.
Relates to PCDROID-419
Testing Instructions
I would mostly focus on the code review and smoke test some of these events as the migration process is rather a mechanical one.
chromecast_view_shownchromecast_started_castingchromecast_stopped_castingrating_stars_tappedrating_screen_shownrating_screen_dismissednot_allowed_to_rate_screen_shownnot_allowed_to_rate_screen_dismissedrating_screen_submit_tappedwhatsnew_shownwhatsnew_dismissedwhatsnew_confirm_button_tappedapp_store_review_requestedrate_us_tappedwidget_installedwidget_uninstalledpocket_casts_champion_dialog_shownpocket_casts_champion_dialog_rate_button_tappeduser_satisfaction_survey_shownuser_satisfaction_survey_not_shownuser_satisfaction_survey_dismisseduser_satisfaction_survey_yes_responseuser_satisfaction_survey_no_responseScreenshots or Screencast
N/A
Checklist
./gradlew spotlessApplyto automatically apply formatting/linting)modules/services/localization/src/main/res/values/strings.xmlI have tested any UI changes...