Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import com.theoplayer.android.api.event.EventListener
import com.theoplayer.android.api.event.ads.AdEvent
import com.theoplayer.android.api.event.player.*
import com.theoplayer.android.api.player.Player
import com.theoplayer.android.api.player.ReadyState
import com.theoplayer.android.connector.analytics.conviva.ads.AdReporter
import com.theoplayer.android.connector.analytics.conviva.theolive.THEOliveReporter
import com.theoplayer.android.connector.analytics.conviva.utils.ErrorReportBuilder
Expand Down Expand Up @@ -224,17 +225,28 @@ class ConvivaHandler(
// End current session if one had already started
maybeReportPlaybackEnded()

// Start new session
maybeReportPlaybackRequested()
// If play-out was paused, the new session will start once play-out resumes.
if (!player.isPaused) {
// Start new session
maybeReportPlaybackRequested()
}

// Pass new metadata
setContentInfo(metadata)

// Notify current playback state
if (player.isPaused) {
reportPause()
} else {
reportPlaying()
// Report current playback state
convivaVideoAnalytics.reportPlaybackMetric(
ConvivaSdkConstants.PLAYBACK.PLAYER_STATE,
getPlayerState()
)
}

private fun getPlayerState(): ConvivaSdkConstants.PlayerState {
return when {
player.isEnded -> ConvivaSdkConstants.PlayerState.STOPPED
player.isPaused -> ConvivaSdkConstants.PlayerState.PAUSED
player.readyState >= ReadyState.HAVE_FUTURE_DATA -> ConvivaSdkConstants.PlayerState.PLAYING
else -> ConvivaSdkConstants.PlayerState.BUFFERING
}
}

Expand Down
Loading