Skip to content

Commit ed7ce28

Browse files
Merge pull request #17470 from nextcloud/fix/media-player-when-task-in-background
fix(media): video player returning from background
2 parents 4ff7957 + 16f1612 commit ed7ce28

3 files changed

Lines changed: 16 additions & 9 deletions

File tree

app/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -306,10 +306,9 @@ class PreviewImageActivity :
306306
// / Refresh the activity according to the Account and OCFile set
307307
setFile(file) // reset after getting it fresh from storageManager
308308
updateActionBarTitle(getFile()?.fileName)
309-
// if (!stateWasRecovered) {
310-
initViewPager(optionalUser.get())
311-
312-
// }
309+
if (previewMediaPagerAdapter == null) {
310+
initViewPager(optionalUser.get())
311+
}
313312
} else {
314313
// handled file not in the current Account
315314
finish()

app/src/main/java/com/owncloud/android/ui/preview/PreviewMediaActivity.kt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ class PreviewMediaActivity :
138138
private var videoMediaSession: MediaSession? = null
139139
private var audioMediaController: MediaController? = null
140140
private var mediaControllerFuture: ListenableFuture<MediaController>? = null
141+
private var fullscreenDialog: PreviewVideoFullscreenDialog? = null
141142
private lateinit var windowInsetsController: WindowInsetsControllerCompat
142143

143144
override fun onCreate(savedInstanceState: Bundle?) {
@@ -319,14 +320,14 @@ class PreviewMediaActivity :
319320

320321
override fun onStart() {
321322
super.onStart()
322-
323323
Log_OC.v(TAG, "onStart")
324-
325-
if (MimeTypeUtil.isVideo(file)) {
324+
if (MimeTypeUtil.isVideo(file) && videoPlayer == null) {
326325
initializeVideoPlayer()
327326
}
328327
}
329328

329+
private fun isFullscreenActive(): Boolean = fullscreenDialog?.isShowing == true
330+
330331
private fun initializeVideoPlayer() {
331332
lifecycleScope.launch(Dispatchers.IO) {
332333
val client = clientRepository.getNextcloudClient() ?: return@launch
@@ -515,10 +516,12 @@ class PreviewMediaActivity :
515516
)
516517
.apply {
517518
setOnDismissListener {
519+
fullscreenDialog = null
518520
setupVideoView()
519521
}
520522
}
521523

524+
fullscreenDialog = dialog
522525
dialog.show()
523526
}
524527

@@ -770,15 +773,17 @@ class PreviewMediaActivity :
770773

771774
override fun onDestroy() {
772775
mediaControllerFuture?.let { MediaController.releaseFuture(it) }
776+
releaseVideoPlayer()
773777
super.onDestroy()
774778

775779
Log_OC.v(TAG, "onDestroy")
776780
}
777781

778782
override fun onStop() {
779783
Log_OC.v(TAG, "onStop")
780-
781-
releaseVideoPlayer()
784+
if (!isFullscreenActive()) {
785+
releaseVideoPlayer()
786+
}
782787
super.onStop()
783788
}
784789

app/src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,9 @@ class PreviewMediaFragment :
187187

188188
override fun onResume() {
189189
super.onResume()
190+
if (isFullscreenActive) {
191+
return
192+
}
190193
applyWindowInsets()
191194
prepareMedia()
192195
}

0 commit comments

Comments
 (0)