Skip to content

Commit

Permalink
* Auto release when LegacyYouTubePlayerView is detached from window
Browse files Browse the repository at this point in the history
* Change listeners in NetworkObservers from List to Set to avoid duplicated listeners
  • Loading branch information
stevezuju committed Sep 19, 2023
1 parent a7d20f7 commit 1816c49
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal class NetworkObserver(private val context: Context) {
fun onNetworkUnavailable()
}

val listeners = mutableListOf<Listener>()
val listeners = mutableSetOf<Listener>()

private var networkBroadcastReceiver: NetworkBroadcastReceiver? = null
private var networkCallback: ConnectivityManager.NetworkCallback? = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,9 @@ internal class LegacyYouTubePlayerView(
youTubePlayer.removeListener(this)
}
})
}

private fun initInternalNetworkListener() {
networkObserver.listeners.add(object : NetworkObserver.Listener {
override fun onNetworkAvailable() {
if (!isYouTubePlayerReady) {
Expand All @@ -82,6 +84,16 @@ internal class LegacyYouTubePlayerView(
})
}

override fun onAttachedToWindow() {
super.onAttachedToWindow()
initInternalNetworkListener()
}

override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
release()
}

/**
* Initialize the player. You must call this method before using the player.
* @param youTubePlayerListener listener for player events
Expand Down

0 comments on commit 1816c49

Please sign in to comment.