@@ -15,6 +15,7 @@ import android.content.Context
1515
1616import com.snowplowanalytics.snowplow.Snowplow;
1717import com.snowplowanalytics.snowplow.configuration.Configuration;
18+ import com.snowplowanalytics.snowplow.event.Event
1819import com.snowplowanalytics.snowplow_tracker.readers.configurations.DefaultTrackerConfiguration
1920import com.snowplowanalytics.snowplow_tracker.readers.messages.*
2021
@@ -51,59 +52,43 @@ object SnowplowTrackerController {
5152 }
5253
5354 fun trackStructured (eventReader : EventMessageReader ) {
54- val trackerController = Snowplow .getTracker(eventReader.tracker)
5555 val structured = eventReader.toStructuredWithContexts()
56-
57- trackerController?.track(structured)
56+ trackEvent(structured, eventReader)
5857 }
5958
6059 fun trackSelfDescribing (eventReader : EventMessageReader ) {
61- val trackerController = Snowplow .getTracker(eventReader.tracker)
6260 val selfDescribing = eventReader.toSelfDescribingWithContexts()
63-
64- trackerController?.track(selfDescribing)
61+ trackEvent(selfDescribing, eventReader)
6562 }
6663
6764 fun trackScreenView (eventReader : EventMessageReader ) {
68- val trackerController = Snowplow .getTracker(eventReader.tracker)
6965 val screenView = eventReader.toScreenViewWithContexts()
70-
71- trackerController?.track(screenView)
66+ trackEvent(screenView, eventReader)
7267 }
7368
7469 fun trackScrollChanged (eventReader : EventMessageReader ) {
75- val trackerController = Snowplow .getTracker(eventReader.tracker)
7670 val scroll = eventReader.toScrollChangedWithContexts()
77-
78- trackerController?.track(scroll)
71+ trackEvent(scroll, eventReader)
7972 }
8073
8174 fun trackListItemView (eventReader : EventMessageReader ) {
82- val trackerController = Snowplow .getTracker(eventReader.tracker)
8375 val listItem = eventReader.toListItemViewWithContexts()
84-
85- trackerController?.track(listItem)
76+ trackEvent(listItem, eventReader)
8677 }
8778
8879 fun trackTiming (eventReader : EventMessageReader ) {
89- val trackerController = Snowplow .getTracker(eventReader.tracker)
9080 val timing = eventReader.toTimingWithContexts()
91-
92- trackerController?.track(timing)
81+ trackEvent(timing, eventReader)
9382 }
9483
9584 fun trackConsentGranted (eventReader : EventMessageReader ) {
96- val trackerController = Snowplow .getTracker(eventReader.tracker)
9785 val consentGranted = eventReader.toConsentGrantedWithContexts()
98-
99- trackerController?.track(consentGranted)
86+ trackEvent(consentGranted, eventReader)
10087 }
10188
10289 fun trackConsentWithdrawn (eventReader : EventMessageReader ) {
103- val trackerController = Snowplow .getTracker(eventReader.tracker)
10490 val consentWithdrawn = eventReader.toConsentWithdrawnWithContexts()
105-
106- trackerController?.track(consentWithdrawn)
91+ trackEvent(consentWithdrawn, eventReader)
10792 }
10893
10994 fun setUserId (messageReader : SetUserIdMessageReader ) {
@@ -130,4 +115,167 @@ object SnowplowTrackerController {
130115 return trackerController?.session?.sessionIndex
131116 }
132117
118+ fun startMediaTracking (messageReader : StartMediaTrackingMessageReader ) {
119+ val trackerController = Snowplow .getTracker(messageReader.tracker)
120+ trackerController?.media?.startMediaTracking(
121+ messageReader.configuration.toConfiguration()
122+ )
123+ }
124+
125+ fun endMediaTracking (messageReader : EndMediaTrackingMessageReader ) {
126+ val trackerController = Snowplow .getTracker(messageReader.tracker)
127+ trackerController?.media?.endMediaTracking(messageReader.mediaTrackingId)
128+ }
129+
130+ fun updateMediaTracking (messageReader : UpdateMediaTrackingMessageReader ) {
131+ val trackerController = Snowplow .getTracker(messageReader.tracker)
132+ val mediaTracking = trackerController?.media?.getMediaTracking(messageReader.mediaTrackingId)
133+ mediaTracking?.update(
134+ player = messageReader.player?.toMediaPlayerEntity(),
135+ ad = messageReader.ad?.toMediaAdEntity(),
136+ adBreak = messageReader.adBreak?.toMediaAdBreakEntity()
137+ )
138+ }
139+
140+ fun trackMediaAdBreakEndEvent (messageReader : EventMessageReader ) {
141+ val event = messageReader.toMediaAdBreakEndEvent()
142+ trackEvent(event, messageReader)
143+ }
144+
145+ fun trackMediaAdBreakStartEvent (messageReader : EventMessageReader ) {
146+ val event = messageReader.toMediaAdBreakStartEvent()
147+ trackEvent(event, messageReader)
148+ }
149+
150+ fun trackMediaAdClickEvent (messageReader : EventMessageReader ) {
151+ val event = messageReader.toMediaAdClickEvent()
152+ trackEvent(event, messageReader)
153+ }
154+
155+ fun trackMediaAdCompleteEvent (messageReader : EventMessageReader ) {
156+ val event = messageReader.toMediaAdCompleteEvent()
157+ trackEvent(event, messageReader)
158+ }
159+
160+ fun trackMediaAdFirstQuartileEvent (messageReader : EventMessageReader ) {
161+ val event = messageReader.toMediaAdFirstQuartileEvent()
162+ trackEvent(event, messageReader)
163+ }
164+
165+ fun trackMediaAdMidpointEvent (messageReader : EventMessageReader ) {
166+ val event = messageReader.toMediaAdMidpointEvent()
167+ trackEvent(event, messageReader)
168+ }
169+
170+ fun trackMediaAdPauseEvent (messageReader : EventMessageReader ) {
171+ val event = messageReader.toMediaAdPauseEvent()
172+ trackEvent(event, messageReader)
173+ }
174+
175+ fun trackMediaAdResumeEvent (messageReader : EventMessageReader ) {
176+ val event = messageReader.toMediaAdResumeEvent()
177+ trackEvent(event, messageReader)
178+ }
179+
180+ fun trackMediaAdSkipEvent (messageReader : EventMessageReader ) {
181+ val event = messageReader.toMediaAdSkipEvent()
182+ trackEvent(event, messageReader)
183+ }
184+
185+ fun trackMediaAdStartEvent (messageReader : EventMessageReader ) {
186+ val event = messageReader.toMediaAdStartEvent()
187+ trackEvent(event, messageReader)
188+ }
189+
190+ fun trackMediaAdThirdQuartileEvent (messageReader : EventMessageReader ) {
191+ val event = messageReader.toMediaAdThirdQuartileEvent()
192+ trackEvent(event, messageReader)
193+ }
194+
195+ fun trackMediaBufferEndEvent (messageReader : EventMessageReader ) {
196+ val event = messageReader.toMediaBufferEndEvent()
197+ trackEvent(event, messageReader)
198+ }
199+
200+ fun trackMediaBufferStartEvent (messageReader : EventMessageReader ) {
201+ val event = messageReader.toMediaBufferStartEvent()
202+ trackEvent(event, messageReader)
203+ }
204+
205+ fun trackMediaEndEvent (messageReader : EventMessageReader ) {
206+ val event = messageReader.toMediaEndEvent()
207+ trackEvent(event, messageReader)
208+ }
209+
210+ fun trackMediaErrorEvent (messageReader : EventMessageReader ) {
211+ val event = messageReader.toMediaErrorEvent()
212+ trackEvent(event, messageReader)
213+ }
214+
215+ fun trackMediaFullscreenChangeEvent (messageReader : EventMessageReader ) {
216+ val event = messageReader.toMediaFullscreenChangeEvent()
217+ trackEvent(event, messageReader)
218+ }
219+
220+ fun trackMediaPauseEvent (messageReader : EventMessageReader ) {
221+ val event = messageReader.toMediaPauseEvent()
222+ trackEvent(event, messageReader)
223+ }
224+
225+ fun trackMediaPictureInPictureChangeEvent (messageReader : EventMessageReader ) {
226+ val event = messageReader.toMediaPictureInPictureChangeEvent()
227+ trackEvent(event, messageReader)
228+ }
229+
230+ fun trackMediaPlayEvent (messageReader : EventMessageReader ) {
231+ val event = messageReader.toMediaPlayEvent()
232+ trackEvent(event, messageReader)
233+ }
234+
235+ fun trackMediaPlaybackRateChangeEvent (messageReader : EventMessageReader ) {
236+ val event = messageReader.toMediaPlaybackRateChangeEvent()
237+ trackEvent(event, messageReader)
238+ }
239+
240+ fun trackMediaQualityChangeEvent (messageReader : EventMessageReader ) {
241+ val event = messageReader.toMediaQualityChangeEvent()
242+ trackEvent(event, messageReader)
243+ }
244+
245+ fun trackMediaReadyEvent (messageReader : EventMessageReader ) {
246+ val event = messageReader.toMediaReadyEvent()
247+ trackEvent(event, messageReader)
248+ }
249+
250+ fun trackMediaSeekEndEvent (messageReader : EventMessageReader ) {
251+ val event = messageReader.toMediaSeekEndEvent()
252+ trackEvent(event, messageReader)
253+ }
254+
255+ fun trackMediaSeekStartEvent (messageReader : EventMessageReader ) {
256+ val event = messageReader.toMediaSeekStartEvent()
257+ trackEvent(event, messageReader)
258+ }
259+
260+ fun trackMediaVolumeChangeEvent (messageReader : EventMessageReader ) {
261+ val event = messageReader.toMediaVolumeChangeEvent()
262+ trackEvent(event, messageReader)
263+ }
264+
265+ private fun trackEvent (event : Event , messageReader : EventMessageReader ) {
266+ val trackerController = Snowplow .getTracker(messageReader.tracker)
267+ val mediaTrackingId = messageReader.mediaTrackingId
268+ if (mediaTrackingId == null ) {
269+ trackerController?.track(event)
270+ } else {
271+ val mediaTracking = trackerController?.media?.getMediaTracking(mediaTrackingId)
272+ mediaTracking?.track(
273+ event = event,
274+ player = messageReader.player?.toMediaPlayerEntity(),
275+ ad = messageReader.ad?.toMediaAdEntity(),
276+ adBreak = messageReader.adBreak?.toMediaAdBreakEntity()
277+ )
278+ }
279+ }
280+
133281}
0 commit comments