in app/src/main/java/com/amazon/ivs/multiple/players/ui/secondlayout/SecondLayoutFragment.kt [38:96]
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
launchUI {
viewModel.onBuffering.collect { bufferingStates ->
bufferingStates.forEach { state ->
when (state.playerId) {
SecondLayoutStream.STREAM_A.index -> {
binding.surfaceBufferingA = state.buffering
}
SecondLayoutStream.STREAM_B.index -> {
binding.surfaceBufferingB = state.buffering
}
}
}
}
}
launchUI {
viewModel.onError.collect { error ->
binding.root.showSnackBar(error.errorMessage)
}
}
launchUI {
viewModel.onSizeChanged.collect { playerIndex ->
videoSurfaces[playerIndex].onReady(playerIndex) { playerView ->
Timber.d("Player size changed: $playerView")
viewModel.updatePlayerView(playerView)
}
}
}
launchUI {
viewModel.onPlaying.collect { playing ->
binding.controls.isPLaying = playing
}
}
binding.controls.play.setOnClickListener {
if (viewModel.isPlaying) {
viewModel.pause()
} else {
viewModel.play()
}
}
binding.controls.switchStream.setOnClickListener {
videoSurfaces.forEach { playerView ->
playerView.animate().alpha(0f).setDuration(SURFACE_FADE_OUT_DELAY).start()
}
launchMain {
delay(SURFACE_FADE_OUT_DELAY)
activity?.openFragment(R.id.navigation_fragment_third)
}
}
updateOnRotation()
}