@@ -61,18 +61,23 @@ class PreviewVideoFullscreenDialog(
6161 }
6262
6363 override fun show () {
64- goFullScreen()
65- super .show()
66- binding.videoPlayer.showController()
67- }
68-
69- private fun goFullScreen () {
70- setListeners(exoPlayer)
71- StyledPlayerView .switchTargetView(exoPlayer, sourceView, binding.videoPlayer)
64+ val isPlaying = exoPlayer.isPlaying
65+ if (isPlaying) {
66+ exoPlayer.pause()
67+ }
7268 enableImmersiveMode()
69+ setOnShowListener {
70+ StyledPlayerView .switchTargetView(exoPlayer, sourceView, binding.videoPlayer)
71+ setListeners()
72+ if (isPlaying) {
73+ exoPlayer.play()
74+ }
75+ binding.videoPlayer.showController()
76+ }
77+ super .show()
7378 }
7479
75- private fun setListeners (exoPlayer : ExoPlayer ) {
80+ private fun setListeners () {
7681 binding.root.findViewById<View >(R .id.exo_exit_fs).setOnClickListener { onBackPressed() }
7782 val pauseButton: View = binding.root.findViewById(R .id.exo_pause)
7883 pauseButton.setOnClickListener { exoPlayer.pause() }
@@ -96,13 +101,22 @@ class PreviewVideoFullscreenDialog(
96101 }
97102
98103 override fun onBackPressed () {
99- playingStateListener?.let {
100- exoPlayer.removeListener(it)
104+ val isPlaying = exoPlayer.isPlaying
105+ if (isPlaying) {
106+ exoPlayer.pause()
101107 }
102- StyledPlayerView .switchTargetView(exoPlayer, binding.videoPlayer, sourceView)
103108 disableImmersiveMode()
104- super .onBackPressed()
105- sourceView.showController()
109+ setOnDismissListener {
110+ playingStateListener?.let {
111+ exoPlayer.removeListener(it)
112+ }
113+ StyledPlayerView .switchTargetView(exoPlayer, binding.videoPlayer, sourceView)
114+ if (isPlaying) {
115+ exoPlayer.play()
116+ }
117+ sourceView.showController()
118+ }
119+ dismiss()
106120 }
107121
108122 private fun enableImmersiveMode () {
0 commit comments