diff --git a/app/src/main/java/com/nextcloud/talk/activities/FullScreenMediaActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/FullScreenMediaActivity.kt index b393d1abe..c9b4711f5 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/FullScreenMediaActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/FullScreenMediaActivity.kt @@ -4,9 +4,11 @@ * @author Marcel Hibbe * @author Andy Scherzinger * @author Ezhil Shanmugham + * @author Parneet Singh * Copyright (C) 2021 Andy Scherzinger * Copyright (C) 2021 Marcel Hibbe * Copyright (C) 2023 Ezhil Shanmugham + * Copyright (c) 2023 Parneet Singh * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -51,7 +53,10 @@ class FullScreenMediaActivity : AppCompatActivity(), Player.Listener { lateinit var binding: ActivityFullScreenMediaBinding private lateinit var path: String - private lateinit var player: ExoPlayer + private var player: ExoPlayer? = null + + private var playWhenReadyState: Boolean = true + private var playBackPosition: Long = 0L override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.menu_preview, menu) @@ -122,11 +127,7 @@ class FullScreenMediaActivity : AppCompatActivity(), Player.Listener { override fun onStart() { super.onStart() initializePlayer() - - val mediaItem: MediaItem = MediaItem.fromUri(path) - player.setMediaItem(mediaItem) - player.prepare() - player.play() + preparePlayer() } override fun onStop() { @@ -137,12 +138,26 @@ class FullScreenMediaActivity : AppCompatActivity(), Player.Listener { private fun initializePlayer() { player = ExoPlayer.Builder(applicationContext).build() binding.playerView.player = player - player.playWhenReady = true - player.addListener(this) + player?.addListener(this) + } + + private fun preparePlayer() { + val mediaItem: MediaItem = MediaItem.fromUri(path) + player?.let { exoPlayer -> + exoPlayer.setMediaItem(mediaItem) + exoPlayer.playWhenReady = playWhenReadyState + exoPlayer.seekTo(playBackPosition) + exoPlayer.prepare() + } } private fun releasePlayer() { - player.release() + player?.let { exoPlayer -> + playBackPosition = exoPlayer.currentPosition + playWhenReadyState = exoPlayer.playWhenReady + exoPlayer.release() + } + player = null } private fun hideSystemUI() {