From bd8fc62b35e222f57a075617b09cfdd734b33729 Mon Sep 17 00:00:00 2001 From: Emily Dixon Date: Thu, 27 Jun 2024 15:50:04 -0700 Subject: [PATCH] Releases/v3.5.1 (#374) * fix: rename all methods * Really rename --- .../sdk/muxstats/AnalyticsListenerMetrics.kt | 4 ++-- .../stats/sdk/muxstats/SessionDataBindings.kt | 8 +++---- .../sdk/muxstats/AnalyticsListenerMetrics.kt | 4 ++-- .../stats/sdk/muxstats/SessionDataBindings.kt | 8 +++---- .../muxstats/internal/ExoAnalyticsListener.kt | 6 +++--- .../muxstats/internal/ExoAnalyticsListener.kt | 6 +++--- .../muxstats/internal/ExoAnalyticsListener.kt | 6 +++--- .../muxstats/internal/ExoAnalyticsListener.kt | 6 +++--- .../muxstats/internal/ExoAnalyticsListener.kt | 6 +++--- .../sdk/muxstats/AnalyticsListenerMetrics.kt | 4 ++-- .../stats/sdk/muxstats/SessionDataBindings.kt | 8 +++---- ...llector.kt => MuxStateCollectorExoImpl.kt} | 5 ++--- .../sdk/muxstats/ExoErrorMetrics215ToNow.kt | 8 +++---- .../sdk/muxstats/ExoErrorMetricsUpTo214.kt | 8 +++---- .../sdk/muxstats/BasicExoMetrics14toNow.kt | 8 +++---- .../muxstats/PlayerStateMetrics216ToNow.kt | 4 ++-- .../sdk/muxstats/PlayerStateMetricsUpTo215.kt | 4 ++-- .../MuxStateCollectorBase.kt | 9 ++++---- .../exoplayeradapter/MuxPlayerAdapter.kt | 12 +++++------ .../internal/BandwidthMetric.kt | 10 ++++----- .../internal/BasicExoPlayerBindings.kt | 6 +++--- .../exoplayeradapter/internal/Util.kt | 21 +++++++++---------- .../exoplayeradapter/PlayerAdapterTests.kt | 4 ++-- .../exoplayeradapter/StateCollectorTests.kt | 12 +++++------ .../double/FakePlayerBinding.kt | 6 +++--- .../stats/sdk/muxstats/AdsImaSDKListener.kt | 4 ++-- .../stats/sdk/muxstats/MuxStatsExoPlayer.kt | 4 ++-- 27 files changed, 94 insertions(+), 97 deletions(-) rename ExoPlayerAdapter/src/exo-collector-2_10-now/java/com/mux/stats/sdk/muxstats/{MuxStateCollector.kt => MuxStateCollectorExoImpl.kt} (90%) rename ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/{exoplayeradapter => }/MuxStateCollectorBase.kt (98%) diff --git a/ExoPlayerAdapter/src/exo-analytics-2_19-now/java/com/mux/stats/sdk/muxstats/AnalyticsListenerMetrics.kt b/ExoPlayerAdapter/src/exo-analytics-2_19-now/java/com/mux/stats/sdk/muxstats/AnalyticsListenerMetrics.kt index 7130a83e..1ef2eade 100644 --- a/ExoPlayerAdapter/src/exo-analytics-2_19-now/java/com/mux/stats/sdk/muxstats/AnalyticsListenerMetrics.kt +++ b/ExoPlayerAdapter/src/exo-analytics-2_19-now/java/com/mux/stats/sdk/muxstats/AnalyticsListenerMetrics.kt @@ -19,14 +19,14 @@ private class AnalyticsListenerBinding216ToNow : MuxPlayerAdapter.PlayerBinding< MuxLogger.d(logTag(), "created"); } - override fun bindPlayer(player: ExoPlayer, collector: MuxStateCollector) { + override fun bindPlayer(player: ExoPlayer, collector: MuxStateCollectorBase) { listener = exoAnalyticsListener(player, collector).also { player.addAnalyticsListener(it) player.watchContentPosition(collector) } } - override fun unbindPlayer(player: ExoPlayer, collector: MuxStateCollector) { + override fun unbindPlayer(player: ExoPlayer, collector: MuxStateCollectorBase) { listener?.let { player.removeAnalyticsListener(it) } collector.positionWatcher?.stop("unbound") } diff --git a/ExoPlayerAdapter/src/exo-analytics-2_19-now/java/com/mux/stats/sdk/muxstats/SessionDataBindings.kt b/ExoPlayerAdapter/src/exo-analytics-2_19-now/java/com/mux/stats/sdk/muxstats/SessionDataBindings.kt index 4ec7244c..8b49eb1a 100644 --- a/ExoPlayerAdapter/src/exo-analytics-2_19-now/java/com/mux/stats/sdk/muxstats/SessionDataBindings.kt +++ b/ExoPlayerAdapter/src/exo-analytics-2_19-now/java/com/mux/stats/sdk/muxstats/SessionDataBindings.kt @@ -15,13 +15,13 @@ private class SessionDataPlayerBinding : MuxPlayerAdapter.PlayerBinding = +fun MuxStateCollectorBase.createExoSessionDataBinding(): MuxPlayerAdapter.PlayerBinding = SessionDataPlayerBinding() diff --git a/ExoPlayerAdapter/src/exo-analytics-just2_16/java/com/mux/stats/sdk/muxstats/AnalyticsListenerMetrics.kt b/ExoPlayerAdapter/src/exo-analytics-just2_16/java/com/mux/stats/sdk/muxstats/AnalyticsListenerMetrics.kt index 7130a83e..1ef2eade 100644 --- a/ExoPlayerAdapter/src/exo-analytics-just2_16/java/com/mux/stats/sdk/muxstats/AnalyticsListenerMetrics.kt +++ b/ExoPlayerAdapter/src/exo-analytics-just2_16/java/com/mux/stats/sdk/muxstats/AnalyticsListenerMetrics.kt @@ -19,14 +19,14 @@ private class AnalyticsListenerBinding216ToNow : MuxPlayerAdapter.PlayerBinding< MuxLogger.d(logTag(), "created"); } - override fun bindPlayer(player: ExoPlayer, collector: MuxStateCollector) { + override fun bindPlayer(player: ExoPlayer, collector: MuxStateCollectorBase) { listener = exoAnalyticsListener(player, collector).also { player.addAnalyticsListener(it) player.watchContentPosition(collector) } } - override fun unbindPlayer(player: ExoPlayer, collector: MuxStateCollector) { + override fun unbindPlayer(player: ExoPlayer, collector: MuxStateCollectorBase) { listener?.let { player.removeAnalyticsListener(it) } collector.positionWatcher?.stop("unbound") } diff --git a/ExoPlayerAdapter/src/exo-analytics-just2_16/java/com/mux/stats/sdk/muxstats/SessionDataBindings.kt b/ExoPlayerAdapter/src/exo-analytics-just2_16/java/com/mux/stats/sdk/muxstats/SessionDataBindings.kt index 1b36af11..c3ac5aad 100644 --- a/ExoPlayerAdapter/src/exo-analytics-just2_16/java/com/mux/stats/sdk/muxstats/SessionDataBindings.kt +++ b/ExoPlayerAdapter/src/exo-analytics-just2_16/java/com/mux/stats/sdk/muxstats/SessionDataBindings.kt @@ -15,13 +15,13 @@ private class SessionDataPlayerBinding : MuxPlayerAdapter.PlayerBinding = +fun MuxStateCollectorBase.createExoSessionDataBinding(): MuxPlayerAdapter.PlayerBinding = SessionDataPlayerBinding() diff --git a/ExoPlayerAdapter/src/exo-analytics-listener-2_11-2_13/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt b/ExoPlayerAdapter/src/exo-analytics-listener-2_11-2_13/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt index d2e26ba4..1172b8f3 100644 --- a/ExoPlayerAdapter/src/exo-analytics-listener-2_11-2_13/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt +++ b/ExoPlayerAdapter/src/exo-analytics-listener-2_11-2_13/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt @@ -11,14 +11,14 @@ import com.google.android.exoplayer2.source.LoadEventInfo import com.google.android.exoplayer2.source.MediaLoadData import com.google.android.exoplayer2.source.TrackGroupArray import com.google.android.exoplayer2.trackselection.TrackSelectionArray -import com.mux.stats.sdk.muxstats.MuxStateCollector +import com.mux.stats.sdk.muxstats.MuxStateCollectorBase import java.io.IOException /** * There's only one required AnalyticsListener implementation (as of Exo 2.17) so it's here in the * common code. */ -private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCollector) : +private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCollectorBase) : AnalyticsListener { private val player: ExoPlayer? by weak(player) @@ -203,6 +203,6 @@ private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCol } @JvmSynthetic -internal fun

exoAnalyticsListener(player: P, collector: MuxStateCollector) +internal fun

exoAnalyticsListener(player: P, collector: MuxStateCollectorBase) : AnalyticsListener = ExoAnalyticsListener(player, collector) diff --git a/ExoPlayerAdapter/src/exo-analytics-listener-2_13-2_16/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt b/ExoPlayerAdapter/src/exo-analytics-listener-2_13-2_16/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt index 9261513e..e3dbddda 100644 --- a/ExoPlayerAdapter/src/exo-analytics-listener-2_13-2_16/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt +++ b/ExoPlayerAdapter/src/exo-analytics-listener-2_13-2_16/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt @@ -10,7 +10,7 @@ import com.google.android.exoplayer2.source.LoadEventInfo import com.google.android.exoplayer2.source.MediaLoadData import com.google.android.exoplayer2.source.TrackGroupArray import com.google.android.exoplayer2.trackselection.TrackSelectionArray -import com.mux.stats.sdk.muxstats.MuxStateCollector +import com.mux.stats.sdk.muxstats.MuxStateCollectorBase import com.mux.stats.sdk.muxstats.exoplayeradapter.internal.BandwidthMetricDispatcher import com.mux.stats.sdk.muxstats.exoplayeradapter.internal.MuxMediaHasVideoTrack import com.mux.stats.sdk.muxstats.exoplayeradapter.internal.handleExoPlaybackState @@ -22,7 +22,7 @@ import java.io.IOException * There's only one required AnalyticsListener implementation (as of Exo 2.17) so it's here in the * common code. */ -private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCollector) : +private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCollectorBase) : AnalyticsListener { private val player: ExoPlayer? by weak(player) @@ -205,6 +205,6 @@ private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCol } @JvmSynthetic -internal fun

exoAnalyticsListener(player: P, collector: MuxStateCollector) +internal fun

exoAnalyticsListener(player: P, collector: MuxStateCollectorBase) : AnalyticsListener = ExoAnalyticsListener(player, collector) diff --git a/ExoPlayerAdapter/src/exo-analytics-listener-2_18-now/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt b/ExoPlayerAdapter/src/exo-analytics-listener-2_18-now/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt index 6f47f722..81bf0659 100644 --- a/ExoPlayerAdapter/src/exo-analytics-listener-2_18-now/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt +++ b/ExoPlayerAdapter/src/exo-analytics-listener-2_18-now/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt @@ -7,7 +7,7 @@ import com.google.android.exoplayer2.source.LoadEventInfo import com.google.android.exoplayer2.source.MediaLoadData import com.google.android.exoplayer2.source.TrackGroupArray import com.google.android.exoplayer2.video.VideoSize -import com.mux.stats.sdk.muxstats.MuxStateCollector +import com.mux.stats.sdk.muxstats.MuxStateCollectorBase import com.mux.stats.sdk.muxstats.exoplayeradapter.MuxPlayerState import com.mux.stats.sdk.muxstats.exoplayeradapter.internal.BandwidthMetricDispatcher import com.mux.stats.sdk.muxstats.exoplayeradapter.internal.MuxMediaHasVideoTrack @@ -20,7 +20,7 @@ import java.io.IOException * There's only one required AnalyticsListener implementation (as of Exo 2.17) so it's here in the * common code. */ -private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCollector) : +private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCollectorBase) : AnalyticsListener { private val player: ExoPlayer? by weak(player) @@ -196,6 +196,6 @@ private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCol } @JvmSynthetic -internal fun

exoAnalyticsListener(player: P, collector: MuxStateCollector) +internal fun

exoAnalyticsListener(player: P, collector: MuxStateCollectorBase) : AnalyticsListener = ExoAnalyticsListener(player, collector) diff --git a/ExoPlayerAdapter/src/exo-analytics-listener-just-2_17/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt b/ExoPlayerAdapter/src/exo-analytics-listener-just-2_17/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt index 8273a8cd..9ec5d233 100644 --- a/ExoPlayerAdapter/src/exo-analytics-listener-just-2_17/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt +++ b/ExoPlayerAdapter/src/exo-analytics-listener-just-2_17/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt @@ -10,7 +10,7 @@ import com.google.android.exoplayer2.source.LoadEventInfo import com.google.android.exoplayer2.source.MediaLoadData import com.google.android.exoplayer2.source.TrackGroupArray import com.google.android.exoplayer2.trackselection.TrackSelectionArray -import com.mux.stats.sdk.muxstats.MuxStateCollector +import com.mux.stats.sdk.muxstats.MuxStateCollectorBase import com.mux.stats.sdk.muxstats.exoplayeradapter.internal.BandwidthMetricDispatcher import com.mux.stats.sdk.muxstats.exoplayeradapter.internal.MuxMediaHasVideoTrack import com.mux.stats.sdk.muxstats.exoplayeradapter.internal.handleExoPlaybackState @@ -22,7 +22,7 @@ import java.io.IOException * There's only one required AnalyticsListener implementation (as of Exo 2.17) so it's here in the * common code. */ -private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCollector) : +private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCollectorBase) : AnalyticsListener { private val player: ExoPlayer? by weak(player) @@ -201,6 +201,6 @@ private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCol } @JvmSynthetic -internal fun

exoAnalyticsListener(player: P, collector: MuxStateCollector) +internal fun

exoAnalyticsListener(player: P, collector: MuxStateCollectorBase) : AnalyticsListener = ExoAnalyticsListener(player, collector) diff --git a/ExoPlayerAdapter/src/exo-analytics-listener-upto-2_11/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt b/ExoPlayerAdapter/src/exo-analytics-listener-upto-2_11/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt index 172d9e92..187d33ef 100644 --- a/ExoPlayerAdapter/src/exo-analytics-listener-upto-2_11/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt +++ b/ExoPlayerAdapter/src/exo-analytics-listener-upto-2_11/java/com/mux/stats/sdk/muxstats/internal/ExoAnalyticsListener.kt @@ -9,14 +9,14 @@ import com.google.android.exoplayer2.source.MediaSourceEventListener.MediaLoadDa import com.google.android.exoplayer2.source.TrackGroupArray import com.google.android.exoplayer2.trackselection.TrackSelectionArray import com.mux.stats.sdk.core.util.MuxLogger -import com.mux.stats.sdk.muxstats.MuxStateCollector +import com.mux.stats.sdk.muxstats.MuxStateCollectorBase import java.io.IOException /** * There's only one required AnalyticsListener implementation (as of Exo 2.17) so it's here in the * common code. */ -private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCollector) : +private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCollectorBase) : AnalyticsListener { private val player: ExoPlayer? by weak(player) @@ -154,6 +154,6 @@ private class ExoAnalyticsListener(player: ExoPlayer, val collector: MuxStateCol } @JvmSynthetic -internal fun

exoAnalyticsListener(player: P, collector: MuxStateCollector) +internal fun

exoAnalyticsListener(player: P, collector: MuxStateCollectorBase) : AnalyticsListener = ExoAnalyticsListener(player, collector) diff --git a/ExoPlayerAdapter/src/exo-analytics-upto-2_16/java/com/mux/stats/sdk/muxstats/AnalyticsListenerMetrics.kt b/ExoPlayerAdapter/src/exo-analytics-upto-2_16/java/com/mux/stats/sdk/muxstats/AnalyticsListenerMetrics.kt index f6b747b9..a517919d 100644 --- a/ExoPlayerAdapter/src/exo-analytics-upto-2_16/java/com/mux/stats/sdk/muxstats/AnalyticsListenerMetrics.kt +++ b/ExoPlayerAdapter/src/exo-analytics-upto-2_16/java/com/mux/stats/sdk/muxstats/AnalyticsListenerMetrics.kt @@ -17,14 +17,14 @@ private class AnalyticsListenerBindingUpTo16 : MuxPlayerAdapter.PlayerBinding = +fun MuxStateCollectorBase.createExoSessionDataBinding(): MuxPlayerAdapter.PlayerBinding = SessionDataPlayerBinding() diff --git a/ExoPlayerAdapter/src/exo-collector-2_10-now/java/com/mux/stats/sdk/muxstats/MuxStateCollector.kt b/ExoPlayerAdapter/src/exo-collector-2_10-now/java/com/mux/stats/sdk/muxstats/MuxStateCollectorExoImpl.kt similarity index 90% rename from ExoPlayerAdapter/src/exo-collector-2_10-now/java/com/mux/stats/sdk/muxstats/MuxStateCollector.kt rename to ExoPlayerAdapter/src/exo-collector-2_10-now/java/com/mux/stats/sdk/muxstats/MuxStateCollectorExoImpl.kt index c7ebb3fd..31e6f480 100644 --- a/ExoPlayerAdapter/src/exo-collector-2_10-now/java/com/mux/stats/sdk/muxstats/MuxStateCollector.kt +++ b/ExoPlayerAdapter/src/exo-collector-2_10-now/java/com/mux/stats/sdk/muxstats/MuxStateCollectorExoImpl.kt @@ -2,13 +2,12 @@ package com.mux.stats.sdk.muxstats import com.google.android.exoplayer2.source.hls.HlsManifest import com.mux.stats.sdk.core.events.IEventDispatcher -import com.mux.stats.sdk.muxstats.exoplayeradapter.MuxStateCollectorBase -open class MuxStateCollector( +open class MuxStateCollectorExoImpl( private val _muxStats: () -> MuxStats, private val _dispatcher: IEventDispatcher, private val _trackFirstFrameRendered: Boolean = true, -): MuxStateCollectorBase(_muxStats, _dispatcher, _trackFirstFrameRendered) { +): MuxStateCollectorBase(_muxStats, _dispatcher, _trackFirstFrameRendered) { override fun isLivePlayback(): Boolean { return currentTimelineWindow.isLive } diff --git a/ExoPlayerAdapter/src/exo-error-2_15-now/java/com/mux/stats/sdk/muxstats/ExoErrorMetrics215ToNow.kt b/ExoPlayerAdapter/src/exo-error-2_15-now/java/com/mux/stats/sdk/muxstats/ExoErrorMetrics215ToNow.kt index 6f621a6d..5dc68f7d 100644 --- a/ExoPlayerAdapter/src/exo-error-2_15-now/java/com/mux/stats/sdk/muxstats/ExoErrorMetrics215ToNow.kt +++ b/ExoPlayerAdapter/src/exo-error-2_15-now/java/com/mux/stats/sdk/muxstats/ExoErrorMetrics215ToNow.kt @@ -21,20 +21,20 @@ private class ExoErrorMetricsByListener215ToNow : MuxPlayerAdapter.PlayerBinding MuxLogger.d(logTag(), "created"); } - override fun bindPlayer(player: ExoPlayer, collector: MuxStateCollector) { + override fun bindPlayer(player: ExoPlayer, collector: MuxStateCollectorBase) { playerListener = newListener(collector).also { player.addListener(it) } } - override fun unbindPlayer(player: ExoPlayer, collector: MuxStateCollector) { + override fun unbindPlayer(player: ExoPlayer, collector: MuxStateCollectorBase) { collector.positionWatcher?.stop("player unbound") collector.positionWatcher = null playerListener?.let { player.removeListener(it) } } - private fun newListener(collector: MuxStateCollector) = ErrorPlayerListenerUpTo214(collector) + private fun newListener(collector: MuxStateCollectorBase) = ErrorPlayerListenerUpTo214(collector) } // class ErrorPlayerBuListenerUpTo214 -private class ErrorPlayerListenerUpTo214(val collector: MuxStateCollector) : Player.Listener { +private class ErrorPlayerListenerUpTo214(val collector: MuxStateCollectorBase) : Player.Listener { override fun onPlayerError(error: PlaybackException) { if (error is ExoPlaybackException) { collector.handleExoPlaybackException(error.errorCode, error) diff --git a/ExoPlayerAdapter/src/exo-error-just-2_14/java/com/mux/stats/sdk/muxstats/ExoErrorMetricsUpTo214.kt b/ExoPlayerAdapter/src/exo-error-just-2_14/java/com/mux/stats/sdk/muxstats/ExoErrorMetricsUpTo214.kt index 24b47f3e..ed180e0f 100644 --- a/ExoPlayerAdapter/src/exo-error-just-2_14/java/com/mux/stats/sdk/muxstats/ExoErrorMetricsUpTo214.kt +++ b/ExoPlayerAdapter/src/exo-error-just-2_14/java/com/mux/stats/sdk/muxstats/ExoErrorMetricsUpTo214.kt @@ -23,20 +23,20 @@ private class ExoErrorMetricsByListenerJust214 : MuxPlayerAdapter.PlayerBinding< MuxLogger.d(logTag(), "created"); } - override fun bindPlayer(player: ExoPlayer, collector: MuxStateCollector) { + override fun bindPlayer(player: ExoPlayer, collector: MuxStateCollectorBase) { playerListener = newListener(collector).also { player.addListener(it) } } - override fun unbindPlayer(player: ExoPlayer, collector: MuxStateCollector) { + override fun unbindPlayer(player: ExoPlayer, collector: MuxStateCollectorBase) { collector.positionWatcher?.stop("player unbound") collector.positionWatcher = null playerListener?.let { player.removeListener(it) } } - private fun newListener(collector: MuxStateCollector) = ErrorPlayerListenerUpTo214(collector) + private fun newListener(collector: MuxStateCollectorBase) = ErrorPlayerListenerUpTo214(collector) } // class ErrorPlayerBuListenerUpTo214 -private class ErrorPlayerListenerUpTo214(val collector: MuxStateCollector) : Player.Listener { +private class ErrorPlayerListenerUpTo214(val collector: MuxStateCollectorBase) : Player.Listener { override fun onPlayerError(error: ExoPlaybackException) { collector.handleExoPlaybackException(error.type, error) } diff --git a/ExoPlayerAdapter/src/exo-event-2_14-now/java/com/mux/stats/sdk/muxstats/BasicExoMetrics14toNow.kt b/ExoPlayerAdapter/src/exo-event-2_14-now/java/com/mux/stats/sdk/muxstats/BasicExoMetrics14toNow.kt index 2bda23ae..4a6b6d74 100644 --- a/ExoPlayerAdapter/src/exo-event-2_14-now/java/com/mux/stats/sdk/muxstats/BasicExoMetrics14toNow.kt +++ b/ExoPlayerAdapter/src/exo-event-2_14-now/java/com/mux/stats/sdk/muxstats/BasicExoMetrics14toNow.kt @@ -28,23 +28,23 @@ private class BasicExoMetrics14toNow : MuxPlayerAdapter.PlayerBinding MuxLogger.d(logTag(), "created"); } - override fun bindPlayer(player: ExoPlayer, collector: MuxStateCollector) { + override fun bindPlayer(player: ExoPlayer, collector: MuxStateCollectorBase) { playerListener = newListener(player, collector).also { player.addListener(it) } } - override fun unbindPlayer(player: ExoPlayer, collector: MuxStateCollector) { + override fun unbindPlayer(player: ExoPlayer, collector: MuxStateCollectorBase) { collector.positionWatcher?.stop("player unbound") collector.positionWatcher = null playerListener?.let { player.removeListener(it) } } - private fun newListener(player: ExoPlayer, collector: MuxStateCollector) = + private fun newListener(player: ExoPlayer, collector: MuxStateCollectorBase) = PlayerListener(player, collector) } // class BaseExoMetrics -private class PlayerListener(player: ExoPlayer, val collector: MuxStateCollector) : +private class PlayerListener(player: ExoPlayer, val collector: MuxStateCollectorBase) : Player.Listener { val player by weak(player) // player should be weakly reachable in case user doesn't clean up diff --git a/ExoPlayerAdapter/src/exo-player-2_16-now/java/com/mux/stats/sdk/muxstats/PlayerStateMetrics216ToNow.kt b/ExoPlayerAdapter/src/exo-player-2_16-now/java/com/mux/stats/sdk/muxstats/PlayerStateMetrics216ToNow.kt index 1c84726c..f93ce1ab 100644 --- a/ExoPlayerAdapter/src/exo-player-2_16-now/java/com/mux/stats/sdk/muxstats/PlayerStateMetrics216ToNow.kt +++ b/ExoPlayerAdapter/src/exo-player-2_16-now/java/com/mux/stats/sdk/muxstats/PlayerStateMetrics216ToNow.kt @@ -18,13 +18,13 @@ private class PlayerStateMetrics216ToNow : MuxPlayerAdapter.PlayerBinding MuxStats, private val dispatcher: IEventDispatcher, private val trackFirstFrameRendered: Boolean = true, diff --git a/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/MuxPlayerAdapter.kt b/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/MuxPlayerAdapter.kt index 54e9340c..9e58f23e 100644 --- a/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/MuxPlayerAdapter.kt +++ b/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/MuxPlayerAdapter.kt @@ -1,6 +1,6 @@ package com.mux.stats.sdk.muxstats.exoplayeradapter -import com.mux.stats.sdk.muxstats.MuxStateCollector +import com.mux.stats.sdk.muxstats.MuxStateCollectorBase import com.mux.stats.sdk.muxstats.exoplayeradapter.internal.observableWeak import com.mux.stats.sdk.muxstats.exoplayeradapter.internal.weak @@ -9,7 +9,7 @@ import com.mux.stats.sdk.muxstats.exoplayeradapter.internal.weak */ class MuxPlayerAdapter( player: MainPlayer, - val collector: MuxStateCollector, + val collector: MuxStateCollectorBase, @Suppress("MemberVisibilityCanBePrivate") val uiDelegate: MuxUiDelegate, @Suppress("MemberVisibilityCanBePrivate") @@ -54,12 +54,12 @@ class MuxPlayerAdapter( } } - private fun changeBasicPlayer(player: MainPlayer?, collector: MuxStateCollector) { + private fun changeBasicPlayer(player: MainPlayer?, collector: MuxStateCollectorBase) { basicPlayer?.let { oldPlayer -> basicMetrics.unbindPlayer(oldPlayer, collector) } player?.let { newPlayer -> basicMetrics.bindPlayer(newPlayer, collector) } } - private fun changeExtraPlayer(player: ExtraPlayer?, collector: MuxStateCollector) { + private fun changeExtraPlayer(player: ExtraPlayer?, collector: MuxStateCollectorBase) { if (extraMetrics != null) { extraPlayer?.let { oldPlayer -> extraMetrics.bindings.onEach { it.unbindPlayer(oldPlayer, collector) } @@ -80,12 +80,12 @@ class MuxPlayerAdapter( * Binds a player to a MuxDataCollector, setting listeners or whatever is required to observe * state, and calling hooks on MuxDataCollector */ - fun bindPlayer(player: Player, collector: MuxStateCollector) + fun bindPlayer(player: Player, collector: MuxStateCollectorBase) /** * Unbinds a player from a MuxDataCollector, removing listeners and cleaning up */ - fun unbindPlayer(player: Player, collector: MuxStateCollector) + fun unbindPlayer(player: Player, collector: MuxStateCollectorBase) } /** diff --git a/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/internal/BandwidthMetric.kt b/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/internal/BandwidthMetric.kt index 6efe747c..9e881d70 100644 --- a/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/internal/BandwidthMetric.kt +++ b/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/internal/BandwidthMetric.kt @@ -11,7 +11,7 @@ import com.mux.stats.sdk.core.events.playback.RequestCompleted import com.mux.stats.sdk.core.events.playback.RequestFailed import com.mux.stats.sdk.core.model.BandwidthMetricData import com.mux.stats.sdk.core.util.MuxLogger -import com.mux.stats.sdk.muxstats.MuxStateCollector +import com.mux.stats.sdk.muxstats.MuxStateCollectorBase import java.io.IOException import java.util.* @@ -20,7 +20,7 @@ import java.util.* * these events in {@link MuxStatsExoPlayer} and will be propagated here for processing, at this * point both HLS and DASH segments are processed in same way so all metrics are collected here. */ -internal open class BandwidthMetric(val player: ExoPlayer, val collector: MuxStateCollector) { +internal open class BandwidthMetric(val player: ExoPlayer, val collector: MuxStateCollectorBase) { /** Available qualities. */ var availableTracks: TrackGroupArray? = null @@ -188,7 +188,7 @@ internal open class BandwidthMetric(val player: ExoPlayer, val collector: MuxSta } internal class BandwidthMetricHls(player: ExoPlayer, - collector: MuxStateCollector + collector: MuxStateCollectorBase ) : BandwidthMetric(player, collector) { override fun onLoadError(loadedSegments: Long, e: IOException) : BandwidthMetricData { @@ -224,10 +224,10 @@ internal class BandwidthMetricHls(player: ExoPlayer, * {@link BandwidthMetricHls}. */ internal class BandwidthMetricDispatcher(player: ExoPlayer, - collector: MuxStateCollector + collector: MuxStateCollectorBase ) { private val player: ExoPlayer? by weak(player) - private val collector: MuxStateCollector? by weak(collector) + private val collector: MuxStateCollectorBase? by weak(collector) protected var bandwidthMetricHls: BandwidthMetricHls = BandwidthMetricHls(player, collector) protected var debugModeOn:Boolean = false protected var requestSegmentDuration:Long = 1000 diff --git a/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/internal/BasicExoPlayerBindings.kt b/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/internal/BasicExoPlayerBindings.kt index 621295cc..abd32823 100644 --- a/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/internal/BasicExoPlayerBindings.kt +++ b/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/internal/BasicExoPlayerBindings.kt @@ -17,12 +17,12 @@ private class BasicExoPlayerBindings : MuxPlayerAdapter.PlayerBinding private val coreBinding = playerStateMetrics() private val errorBinding = playerErrorMetrics() - override fun bindPlayer(player: ExoPlayer, collector: MuxStateCollector) { + override fun bindPlayer(player: ExoPlayer, collector: MuxStateCollectorBase) { coreBinding.bindPlayer(player, collector) errorBinding.bindPlayer(player, collector) } - override fun unbindPlayer(player: ExoPlayer, collector: MuxStateCollector) { + override fun unbindPlayer(player: ExoPlayer, collector: MuxStateCollectorBase) { coreBinding.unbindPlayer(player, collector) errorBinding.unbindPlayer(player, collector) } @@ -32,7 +32,7 @@ private class BasicExoPlayerBindings : MuxPlayerAdapter.PlayerBinding * Creates a new PlayerAdapter that monitors an ExoPlayer */ @Suppress("unused") -fun MuxStateCollector.createExoPlayerAdapter( +fun MuxStateCollectorBase.createExoPlayerAdapter( context: Context, playerView: View?, player: ExoPlayer, diff --git a/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/internal/Util.kt b/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/internal/Util.kt index cb2fe4b3..fb2b915c 100644 --- a/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/internal/Util.kt +++ b/ExoPlayerAdapter/src/main/java/com/mux/stats/sdk/muxstats/exoplayeradapter/internal/Util.kt @@ -12,8 +12,7 @@ import com.google.android.exoplayer2.source.hls.HlsManifest import com.mux.stats.sdk.core.util.MuxLogger import com.mux.stats.sdk.muxstats.MuxErrorException import com.mux.stats.sdk.muxstats.exoplayeradapter.MuxPlayerState -import com.mux.stats.sdk.muxstats.MuxStateCollector -import com.mux.stats.sdk.muxstats.exoplayeradapter.MuxStateCollectorBase +import com.mux.stats.sdk.muxstats.MuxStateCollectorBase // -- General Utils -- @@ -56,7 +55,7 @@ internal fun isHlsExtensionAvailable() = hlsExtensionAvailable * Handles an ExoPlayer position discontinuity. */ @JvmSynthetic -internal fun MuxStateCollector.handlePositionDiscontinuity(reason: Int) { +internal fun MuxStateCollectorBase.handlePositionDiscontinuity(reason: Int) { // todo - other versions too when (reason) { Player.DISCONTINUITY_REASON_SEEK_ADJUSTMENT, Player.DISCONTINUITY_REASON_SEEK -> { @@ -78,7 +77,7 @@ internal fun MuxStateCollector.handlePositionDiscontinuity(reason: Int) { * with Exo 2.18/media3 1.0 */ @JvmSynthetic // Hides from java -internal fun MuxStateCollector.handlePositionDiscontinuityBefore218(reason: Int) { +internal fun MuxStateCollectorBase.handlePositionDiscontinuityBefore218(reason: Int) { when (reason) { Player.DISCONTINUITY_REASON_SEEK -> { // If they seek while paused, this is how we know the seek is complete @@ -101,7 +100,7 @@ internal fun MuxStateCollector.handlePositionDiscontinuityBefore218(reason: Int) * Handles a change of basic ExoPlayer state */ @JvmSynthetic // Hidden from Java callers, since the only ones are external -internal fun MuxStateCollector.handleExoPlaybackState( +internal fun MuxStateCollectorBase.handleExoPlaybackState( playbackState: Int, // the @IntDef for player state omitted. Unavailable on all exo versions playWhenReady: Boolean ) { @@ -151,7 +150,7 @@ internal fun MuxStateCollector.handleExoPlaybackState( * @param e The Exception thrown. The error code will be overidden with the value of [errorCode] */ @JvmSynthetic -internal fun MuxStateCollector.handleExoPlaybackException(errorCode: Int, e: ExoPlaybackException) { +internal fun MuxStateCollectorBase.handleExoPlaybackException(errorCode: Int, e: ExoPlaybackException) { if (e.type == ExoPlaybackException.TYPE_RENDERER) { val rendererEx = e.rendererException // Decoder Init errors are given special messages @@ -229,12 +228,12 @@ internal fun ExoPlayer.MuxMediaHasVideoTrack(): Boolean { /** * Returns and starts an object that will poll ExoPlayer for its content position every so often - * and updated the given MuxStateCollector + * and updated the given MuxStateCollectorBase */ @Suppress("unused") // this method is used with some versions of ExoPlayer @JvmSynthetic // Hidden from Java callers, since the only ones are external -internal fun ExoPlayer.watchContentPosition(stateCollector: MuxStateCollector): - MuxStateCollectorBase.PositionWatcher = +internal fun ExoPlayer.watchContentPosition(stateCollector: MuxStateCollectorBase): + MuxStateCollectorBase.PositionWatcher = ExoPositionWatcher(this, stateCollector).apply { start() } // -- private helper classes @@ -242,8 +241,8 @@ internal fun ExoPlayer.watchContentPosition(stateCollector: MuxStateCollector): /** * Watches an ExoPlayer's position, polling it every {@link #UPDATE_INTERVAL_MILIS} milliseconds */ -private class ExoPositionWatcher(player: ExoPlayer, stateCollector: MuxStateCollector) : - MuxStateCollectorBase.PositionWatcher( +private class ExoPositionWatcher(player: ExoPlayer, stateCollector: MuxStateCollectorBase) : + MuxStateCollectorBase.PositionWatcher( UPDATE_INTERVAL_MILLIS, stateCollector ) { companion object { diff --git a/ExoPlayerAdapter/src/test/java/com/mux/exoplayeradapter/PlayerAdapterTests.kt b/ExoPlayerAdapter/src/test/java/com/mux/exoplayeradapter/PlayerAdapterTests.kt index 4ca69647..983e1008 100644 --- a/ExoPlayerAdapter/src/test/java/com/mux/exoplayeradapter/PlayerAdapterTests.kt +++ b/ExoPlayerAdapter/src/test/java/com/mux/exoplayeradapter/PlayerAdapterTests.kt @@ -4,7 +4,7 @@ import android.view.View import com.mux.exoplayeradapter.double.FakePlayerBinding import com.mux.exoplayeradapter.double.UiDelegateMocks import com.mux.stats.sdk.muxstats.exoplayeradapter.MuxPlayerAdapter -import com.mux.stats.sdk.muxstats.MuxStateCollector +import com.mux.stats.sdk.muxstats.MuxStateCollectorBase import com.mux.stats.sdk.muxstats.exoplayeradapter.MuxUiDelegate import com.mux.stats.sdk.muxstats.exoplayeradapter.muxUiDelegate import io.mockk.* @@ -104,6 +104,6 @@ class PlayerAdapterTests : AbsRobolectricTest() { ) } - private fun mockStateCollector() = mockk() + private fun mockStateCollector() = mockk< MuxStateCollectorBase>() } diff --git a/ExoPlayerAdapter/src/test/java/com/mux/exoplayeradapter/StateCollectorTests.kt b/ExoPlayerAdapter/src/test/java/com/mux/exoplayeradapter/StateCollectorTests.kt index 0ef21587..17f1d75c 100644 --- a/ExoPlayerAdapter/src/test/java/com/mux/exoplayeradapter/StateCollectorTests.kt +++ b/ExoPlayerAdapter/src/test/java/com/mux/exoplayeradapter/StateCollectorTests.kt @@ -2,9 +2,9 @@ package com.mux.exoplayeradapter import com.mux.exoplayeradapter.double.FakeEventDispatcher import com.mux.stats.sdk.core.events.playback.* +import com.mux.stats.sdk.muxstats.MuxStateCollectorExoImpl import com.mux.stats.sdk.muxstats.exoplayeradapter.MuxPlayerState -import com.mux.stats.sdk.muxstats.MuxStateCollector -import com.mux.stats.sdk.muxstats.exoplayeradapter.MuxStateCollectorBase +import com.mux.stats.sdk.muxstats.MuxStateCollectorBase import com.mux.stats.sdk.muxstats.MuxStats import io.mockk.mockk import kotlinx.coroutines.delay @@ -19,14 +19,14 @@ import java.util.regex.Pattern class StateCollectorTests : AbsRobolectricTest() { - private lateinit var stateCollector: MuxStateCollector + private lateinit var stateCollector: MuxStateCollectorBase private lateinit var eventDispatcher: FakeEventDispatcher @Before fun setUpCollector() { eventDispatcher = FakeEventDispatcher() val stats = mockk(relaxed = true) - stateCollector = MuxStateCollector({ stats }, eventDispatcher) + stateCollector = MuxStateCollectorExoImpl({ stats }, eventDispatcher) } @Test @@ -302,7 +302,7 @@ class StateCollectorTests : AbsRobolectricTest() { fun testAllowedHeaderString() { val headerNameMatches = "real-header" val headerNameDoesntMatch = "not-the-right-header" - val spec = MuxStateCollectorBase.AllowedHeaderSpec.ExactlyIgnoreCase("real-header") + val spec = MuxStateCollectorBase.AllowedHeaderSpec.ExactlyIgnoreCase("real-header") assertFalse( "only exact matches should be allowed", @@ -322,7 +322,7 @@ class StateCollectorTests : AbsRobolectricTest() { fun testAllowedHeaderPattern() { val headerNameMatches = "x-litix-session-id" val headerNameDoesntMatch = "fastcdn-log-tag-id" - val spec = MuxStateCollectorBase.AllowedHeaderSpec.Matching(Pattern.compile("^x-litix.*")) + val spec = MuxStateCollectorBase.AllowedHeaderSpec.Matching(Pattern.compile("^x-litix.*")) assertFalse( "only headers matching the regex are allowed", diff --git a/ExoPlayerAdapter/src/test/java/com/mux/exoplayeradapter/double/FakePlayerBinding.kt b/ExoPlayerAdapter/src/test/java/com/mux/exoplayeradapter/double/FakePlayerBinding.kt index 3ad6075f..f60db41c 100644 --- a/ExoPlayerAdapter/src/test/java/com/mux/exoplayeradapter/double/FakePlayerBinding.kt +++ b/ExoPlayerAdapter/src/test/java/com/mux/exoplayeradapter/double/FakePlayerBinding.kt @@ -2,15 +2,15 @@ package com.mux.exoplayeradapter.double import com.mux.exoplayeradapter.log import com.mux.stats.sdk.muxstats.exoplayeradapter.MuxPlayerAdapter -import com.mux.stats.sdk.muxstats.MuxStateCollector +import com.mux.stats.sdk.muxstats.MuxStateCollectorBase import com.mux.stats.sdk.muxstats.exoplayeradapter.internal.logTag class FakePlayerBinding(val name: String) : MuxPlayerAdapter.PlayerBinding { - override fun bindPlayer(player: Player, collector: MuxStateCollector) { + override fun bindPlayer(player: Player, collector: MuxStateCollectorBase) { log(logTag(), "Binding $name: bindPlayer() called") } - override fun unbindPlayer(player: Player, collector: MuxStateCollector) { + override fun unbindPlayer(player: Player, collector: MuxStateCollectorBase) { log(logTag(), "Binding $name: unbindPlayer() called") } } \ No newline at end of file diff --git a/MuxExoPlayer/src/main/java/com/mux/stats/sdk/muxstats/AdsImaSDKListener.kt b/MuxExoPlayer/src/main/java/com/mux/stats/sdk/muxstats/AdsImaSDKListener.kt index a5ea6eba..99e8a903 100644 --- a/MuxExoPlayer/src/main/java/com/mux/stats/sdk/muxstats/AdsImaSDKListener.kt +++ b/MuxExoPlayer/src/main/java/com/mux/stats/sdk/muxstats/AdsImaSDKListener.kt @@ -19,7 +19,7 @@ import com.mux.stats.sdk.core.events.playback.AdEvent as MuxAdEvent */ class AdsImaSDKListener private constructor( exoPlayer: ExoPlayer, - private val stateCollector: MuxStateCollector, + private val stateCollector: MuxStateCollectorBase, private val eventBus: EventBus ) : AdErrorEvent.AdErrorListener, AdEvent.AdEventListener { @@ -30,7 +30,7 @@ class AdsImaSDKListener private constructor( @JvmSynthetic internal fun createIfImaAvailable( exoPlayer: ExoPlayer, - collector: MuxStateCollector, + collector: MuxStateCollectorBase, eventBus: EventBus ): AdsImaSDKListener? { return try { diff --git a/MuxExoPlayer/src/main/java/com/mux/stats/sdk/muxstats/MuxStatsExoPlayer.kt b/MuxExoPlayer/src/main/java/com/mux/stats/sdk/muxstats/MuxStatsExoPlayer.kt index c58c279c..38d7d6bf 100644 --- a/MuxExoPlayer/src/main/java/com/mux/stats/sdk/muxstats/MuxStatsExoPlayer.kt +++ b/MuxExoPlayer/src/main/java/com/mux/stats/sdk/muxstats/MuxStatsExoPlayer.kt @@ -160,7 +160,7 @@ class MuxStatsExoPlayer @JvmOverloads constructor( private var _playerView by weak(playerView) private val eventBus = EventBus() - private val collector = MuxStateCollector({ muxStats }, eventBus) + private val collector = MuxStateCollectorExoImpl({ muxStats }, eventBus) private val playerAdapter = collector.createExoPlayerAdapter( context = context, playerView = playerView, @@ -422,7 +422,7 @@ class MuxStatsExoPlayer @JvmOverloads constructor( /** * Allow HTTP headers with a given name to be passed to the backend. By default we ignore all HTTP - * headers that are not in the [MuxStateCollectorBase.allowedHeaders] list. + * headers that are not in the [ MuxStateCollectorBase.allowedHeaders] list. * This is used in automated tests and is not intended to be used from the application layer. * * @param headerName name of the header to send to the backend.