Skip to content

Commit 73d875f

Browse files
committed
Migrate discover events to Event Horizon
1 parent 4d9af6a commit 73d875f

File tree

18 files changed

+361
-307
lines changed

18 files changed

+361
-307
lines changed

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ compose-webview = "io.github.kevinnzou:compose-webview:0.33.6"
281281
desugar-jdk = "com.android.tools:desugar_jdk_libs:2.1.5"
282282
device-names = "com.jaredrummler:android-device-names:2.1.1"
283283
encryptedlogging = "com.automattic:encryptedlogging:1.1.1"
284-
eventhorizon = "com.automattic:eventhorizon:pocket-casts-f49c55e1ffc250dc0719eecfeb9df09f3cb784aa"
284+
eventhorizon = "com.automattic:eventhorizon:pocket-casts-1ad1c1e10ce653841ecae96e6df1f9af7f7ea593"
285285
engage = "com.google.android.engage:engage-core:1.5.11"
286286
flexbox = "com.google.android.flexbox:flexbox:3.0.0"
287287
guava = "com.google.guava:guava:33.5.0-android" # Required to fix conflict between versions in exoplayer and workmanager

modules/features/discover/src/main/java/au/com/shiftyjelly/pocketcasts/discover/view/CarouselListRowAdapter.kt

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@ import android.view.LayoutInflater
44
import android.view.ViewGroup
55
import androidx.recyclerview.widget.DiffUtil
66
import androidx.recyclerview.widget.ListAdapter
7-
import au.com.shiftyjelly.pocketcasts.analytics.AnalyticsEvent
8-
import au.com.shiftyjelly.pocketcasts.analytics.AnalyticsTracker
97
import au.com.shiftyjelly.pocketcasts.discover.R
108
import au.com.shiftyjelly.pocketcasts.discover.extensions.updateSubscribeButtonIcon
119
import au.com.shiftyjelly.pocketcasts.servers.model.DiscoverPodcast
1210
import au.com.shiftyjelly.pocketcasts.ui.theme.Theme
11+
import com.automattic.eventhorizon.DiscoverFeaturedPodcastSubscribedEvent
12+
import com.automattic.eventhorizon.DiscoverFeaturedPodcastTappedEvent
13+
import com.automattic.eventhorizon.DiscoverListPodcastSubscribedEvent
14+
import com.automattic.eventhorizon.DiscoverListPodcastTappedEvent
15+
import com.automattic.eventhorizon.EventHorizon
1316
import au.com.shiftyjelly.pocketcasts.localization.R as LR
1417

1518
private val differ: DiffUtil.ItemCallback<Any> = object : DiffUtil.ItemCallback<Any>() {
@@ -37,7 +40,7 @@ internal class CarouselListRowAdapter(
3740
val theme: Theme,
3841
val onPodcastClicked: ((DiscoverPodcast, String?, String?, Boolean) -> Unit),
3942
val onPodcastSubscribe: ((DiscoverPodcast, String?) -> Unit),
40-
private val analyticsTracker: AnalyticsTracker,
43+
private val eventHorizon: EventHorizon,
4144
) : ListAdapter<Any, CarouselItemViewHolder>(differ) {
4245
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CarouselItemViewHolder {
4346
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_carousel, parent, false)
@@ -60,17 +63,19 @@ internal class CarouselListRowAdapter(
6063
val isFeatured = podcast.isSponsored || podcast.listId == null
6164
onPodcastClicked(podcast, podcast.listId, null, isFeatured)
6265

63-
if (podcast.listId != null) {
64-
val listId = podcast.listId as String
65-
analyticsTracker.track(
66-
AnalyticsEvent.DISCOVER_LIST_PODCAST_TAPPED,
67-
AnalyticsProp.sponsoredPodcastTapped(listId, podcast.uuid),
66+
podcast.listId?.let { listId ->
67+
eventHorizon.track(
68+
DiscoverListPodcastTappedEvent(
69+
listId = listId,
70+
podcastUuid = podcast.uuid,
71+
),
6872
)
6973
}
7074
if (isFeatured) {
71-
analyticsTracker.track(
72-
AnalyticsEvent.DISCOVER_FEATURED_PODCAST_TAPPED,
73-
AnalyticsProp.featuredPodcastTapped(podcast.uuid),
75+
eventHorizon.track(
76+
DiscoverFeaturedPodcastTappedEvent(
77+
podcastUuid = podcast.uuid,
78+
),
7479
)
7580
}
7681
}
@@ -79,31 +84,24 @@ internal class CarouselListRowAdapter(
7984
holder.btnSubscribe.updateSubscribeButtonIcon(subscribed = true)
8085
onPodcastSubscribe(podcast, null)
8186

82-
if (podcast.listId != null) {
83-
val listId = podcast.listId as String
84-
analyticsTracker.track(
85-
AnalyticsEvent.DISCOVER_LIST_PODCAST_SUBSCRIBED,
86-
AnalyticsProp.sponsoredPodcastSubscribed(listId, podcast.uuid),
87+
podcast.listId?.let { listId ->
88+
eventHorizon.track(
89+
DiscoverListPodcastSubscribedEvent(
90+
listId = listId,
91+
podcastUuid = podcast.uuid,
92+
),
8793
)
8894
}
8995
if (isFeatured) {
90-
analyticsTracker.track(AnalyticsEvent.DISCOVER_FEATURED_PODCAST_SUBSCRIBED, AnalyticsProp.featuredPodcastSubscribed(podcast.uuid))
96+
eventHorizon.track(
97+
DiscoverFeaturedPodcastSubscribedEvent(
98+
podcastUuid = podcast.uuid,
99+
),
100+
)
91101
}
92102
}
93103
} else {
94104
holder.setPodcast(podcast = null)
95105
}
96106
}
97-
98-
companion object {
99-
private object AnalyticsProp {
100-
const val LIST_ID_KEY = "list_id"
101-
private const val PODCAST_UUID_KEY = "podcast_uuid"
102-
103-
fun sponsoredPodcastTapped(listId: String, uuid: String) = mapOf(LIST_ID_KEY to listId, PODCAST_UUID_KEY to uuid)
104-
fun sponsoredPodcastSubscribed(listId: String, uuid: String) = mapOf(LIST_ID_KEY to listId, PODCAST_UUID_KEY to uuid)
105-
fun featuredPodcastTapped(uuid: String) = mapOf(PODCAST_UUID_KEY to uuid)
106-
fun featuredPodcastSubscribed(uuid: String) = mapOf(PODCAST_UUID_KEY to uuid)
107-
}
108-
}
109107
}

modules/features/discover/src/main/java/au/com/shiftyjelly/pocketcasts/discover/view/CategoriesBottomSheet.kt

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,16 @@ import android.view.ViewGroup
88
import androidx.core.os.bundleOf
99
import androidx.recyclerview.widget.LinearLayoutManager
1010
import androidx.recyclerview.widget.RecyclerView
11-
import au.com.shiftyjelly.pocketcasts.analytics.AnalyticsEvent
12-
import au.com.shiftyjelly.pocketcasts.analytics.AnalyticsTracker
1311
import au.com.shiftyjelly.pocketcasts.discover.R
1412
import au.com.shiftyjelly.pocketcasts.localization.helper.tryToLocalise
1513
import au.com.shiftyjelly.pocketcasts.repositories.categories.CategoriesManager
1614
import au.com.shiftyjelly.pocketcasts.servers.model.DiscoverCategory
1715
import au.com.shiftyjelly.pocketcasts.views.extensions.setSystemWindowInsetToPadding
1816
import au.com.shiftyjelly.pocketcasts.views.fragments.BaseDialogFragment
17+
import com.automattic.eventhorizon.DiscoverCategoriesPickerClosedEvent
18+
import com.automattic.eventhorizon.DiscoverCategoriesPickerPickEvent
19+
import com.automattic.eventhorizon.DiscoverCategoriesPickerShownEvent
20+
import com.automattic.eventhorizon.EventHorizon
1921
import com.google.android.material.bottomsheet.BottomSheetBehavior
2022
import dagger.hilt.android.AndroidEntryPoint
2123
import javax.inject.Inject
@@ -24,7 +26,7 @@ import javax.inject.Inject
2426
class CategoriesBottomSheet : BaseDialogFragment() {
2527
@Inject lateinit var categoriesManager: CategoriesManager
2628

27-
@Inject lateinit var analyticsTracker: AnalyticsTracker
29+
@Inject lateinit var eventHorizon: EventHorizon
2830

2931
private val region get() = requireArguments().getString(REGION_KEY, "")
3032

@@ -70,29 +72,30 @@ class CategoriesBottomSheet : BaseDialogFragment() {
7072
}
7173

7274
private fun trackCategorySelected(category: DiscoverCategory) {
73-
analyticsTracker.track(
74-
AnalyticsEvent.DISCOVER_CATEGORIES_PICKER_PICK,
75-
mapOf(
76-
"name" to category.name,
77-
"id" to category.id,
78-
"region" to region,
79-
"visits" to category.totalVisits,
80-
"sponsored" to (category.isSponsored == true),
75+
eventHorizon.track(
76+
DiscoverCategoriesPickerPickEvent(
77+
name = category.name,
78+
region = region,
79+
id = category.id.toLong(),
80+
visits = category.totalVisits.toLong(),
81+
sponsored = category.isSponsored == true,
8182
),
8283
)
8384
}
8485

8586
private fun trackShown() {
86-
analyticsTracker.track(
87-
AnalyticsEvent.DISCOVER_CATEGORIES_PICKER_SHOWN,
88-
mapOf("region" to region),
87+
eventHorizon.track(
88+
DiscoverCategoriesPickerShownEvent(
89+
region = region,
90+
),
8991
)
9092
}
9193

9294
private fun trackDismissed() {
93-
analyticsTracker.track(
94-
AnalyticsEvent.DISCOVER_CATEGORIES_PICKER_CLOSED,
95-
mapOf("region" to region),
95+
eventHorizon.track(
96+
DiscoverCategoriesPickerClosedEvent(
97+
region = region,
98+
),
9699
)
97100
}
98101

modules/features/discover/src/main/java/au/com/shiftyjelly/pocketcasts/discover/view/CollectionListRowAdapter.kt

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,19 @@ import androidx.core.view.isVisible
66
import androidx.recyclerview.widget.DiffUtil
77
import androidx.recyclerview.widget.ListAdapter
88
import androidx.recyclerview.widget.RecyclerView
9-
import au.com.shiftyjelly.pocketcasts.analytics.AnalyticsEvent
10-
import au.com.shiftyjelly.pocketcasts.analytics.AnalyticsTracker
119
import au.com.shiftyjelly.pocketcasts.discover.databinding.CollectionHeaderBinding
1210
import au.com.shiftyjelly.pocketcasts.discover.databinding.ItemCollectionListBinding
1311
import au.com.shiftyjelly.pocketcasts.discover.view.CollectionListRowAdapter.CollectionItem
1412
import au.com.shiftyjelly.pocketcasts.discover.view.CollectionListRowAdapter.CollectionItem.CollectionHeader
1513
import au.com.shiftyjelly.pocketcasts.discover.view.CollectionListRowAdapter.CollectionItem.CollectionPodcast
1614
import au.com.shiftyjelly.pocketcasts.discover.view.CollectionListRowAdapter.PodcastsViewHolder.Companion.NUMBER_OF_ROWS_PER_PAGE
17-
import au.com.shiftyjelly.pocketcasts.discover.view.DiscoverFragment.Companion.LIST_ID_KEY
18-
import au.com.shiftyjelly.pocketcasts.discover.view.DiscoverFragment.Companion.PODCAST_UUID_KEY
1915
import au.com.shiftyjelly.pocketcasts.repositories.images.PocketCastsImageRequestFactory
2016
import au.com.shiftyjelly.pocketcasts.repositories.images.PocketCastsImageRequestFactory.PlaceholderType
2117
import au.com.shiftyjelly.pocketcasts.repositories.images.loadInto
2218
import au.com.shiftyjelly.pocketcasts.servers.model.DiscoverPodcast
2319
import au.com.shiftyjelly.pocketcasts.ui.extensions.themed
20+
import com.automattic.eventhorizon.DiscoverListPodcastTappedEvent
21+
import com.automattic.eventhorizon.EventHorizon
2422
import au.com.shiftyjelly.pocketcasts.localization.R as LR
2523

2624
private val differ = object : DiffUtil.ItemCallback<List<CollectionItem>>() {
@@ -48,7 +46,7 @@ class CollectionListRowAdapter(
4846
val onPodcastClicked: ((DiscoverPodcast, String?) -> Unit),
4947
val onPodcastSubscribe: (DiscoverPodcast, String?) -> Unit,
5048
val onHeaderClicked: () -> Unit,
51-
val analyticsTracker: AnalyticsTracker,
49+
val eventHorizon: EventHorizon,
5250
) : ListAdapter<List<CollectionItem>, RecyclerView.ViewHolder>(differ) {
5351

5452
private var fromListId: String? = null
@@ -141,12 +139,11 @@ class CollectionListRowAdapter(
141139

142140
if (podcast == null) return@PodcastsViewHolder
143141

144-
fromListId?.let {
145-
analyticsTracker.track(
146-
AnalyticsEvent.DISCOVER_LIST_PODCAST_TAPPED,
147-
mapOf(
148-
LIST_ID_KEY to it,
149-
PODCAST_UUID_KEY to podcast.uuid,
142+
fromListId?.let { listId ->
143+
eventHorizon.track(
144+
DiscoverListPodcastTappedEvent(
145+
listId = listId,
146+
podcastUuid = podcast.uuid,
150147
),
151148
)
152149
}

0 commit comments

Comments
 (0)