@@ -59,16 +59,15 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
5959import com.google.common.util.concurrent.ListenableFuture
6060import com.google.common.util.concurrent.MoreExecutors
6161import com.nextcloud.client.account.User
62- import com.nextcloud.client.account.UserAccountManager
6362import com.nextcloud.client.di.Injectable
64- import com.nextcloud.client.jobs.BackgroundJobManager
6563import com.nextcloud.client.jobs.download.FileDownloadHelper
6664import com.nextcloud.client.media.BackgroundPlayerService
6765import com.nextcloud.client.media.ErrorFormat
6866import com.nextcloud.client.media.ExoplayerListener
6967import com.nextcloud.client.media.NextcloudExoPlayer.createNextcloudExoplayer
7068import com.nextcloud.client.network.ClientFactory
7169import com.nextcloud.client.network.ClientFactory.CreationException
70+ import com.nextcloud.common.NextcloudClient
7271import com.nextcloud.ui.fileactions.FileAction
7372import com.nextcloud.ui.fileactions.FileActionsBottomSheet.Companion.newInstance
7473import com.nextcloud.ui.fileactions.FileActionsBottomSheet.ResultListener
@@ -101,7 +100,6 @@ import kotlinx.coroutines.Dispatchers
101100import kotlinx.coroutines.launch
102101import kotlinx.coroutines.withContext
103102import java.lang.ref.WeakReference
104- import javax.inject.Inject
105103
106104/* *
107105 * This activity shows a preview of a downloaded media file (audio or video).
@@ -126,15 +124,7 @@ class PreviewMediaActivity :
126124 private var savedPlaybackPosition: Long = 0
127125 private var autoplay = true
128126 private var streamUri: Uri ? = null
129-
130- @Inject
131- lateinit var clientFactory: ClientFactory
132-
133- @Inject
134- lateinit var accountManager: UserAccountManager
135-
136- @Inject
137- lateinit var backgroundJobManager: BackgroundJobManager
127+ private var nextcloudClient: NextcloudClient ? = null
138128
139129 private lateinit var binding: ActivityPreviewMediaBinding
140130 private var emptyListView: ViewGroup ? = null
@@ -332,6 +322,7 @@ class PreviewMediaActivity :
332322 val client = clientRepository.getNextcloudClient() ? : return @launch
333323
334324 withContext(Dispatchers .Main ) {
325+ nextcloudClient = client
335326 videoPlayer = createNextcloudExoplayer(this @PreviewMediaActivity, client)
336327 val uniqueSessionId = " preview_session_" + System .currentTimeMillis()
337328 videoMediaSession = MediaSession .Builder (this @PreviewMediaActivity, videoPlayer as Player )
@@ -491,17 +482,36 @@ class PreviewMediaActivity :
491482 PlayerView .ControllerVisibilityListener { visibility ->
492483 if (visibility == View .VISIBLE ) {
493484 windowInsetsController.show(type)
494- supportActionBar!! .show()
485+ supportActionBar? .show()
495486 } else if (visibility == View .GONE ) {
496487 windowInsetsController.hide(type)
497- supportActionBar!! .hide()
488+ supportActionBar? .hide()
498489 }
499490 }
500491 )
501492 it.player = videoPlayer
493+ it.setFullscreenButtonClickListener { startFullScreenVideo() }
502494 }
503495 }
504496
497+ private fun startFullScreenVideo () {
498+ val client = nextcloudClient ? : return
499+ val player = videoPlayer ? : return
500+ val dialog = PreviewVideoFullscreenDialog (
501+ this ,
502+ client,
503+ player,
504+ binding.exoplayerView
505+ )
506+ .apply {
507+ setOnDismissListener {
508+ setupVideoView()
509+ }
510+ }
511+
512+ dialog.show()
513+ }
514+
505515 override fun onCreateOptionsMenu (menu : Menu ? ): Boolean {
506516 menuInflater.inflate(R .menu.custom_menu_placeholder, menu)
507517
@@ -592,7 +602,7 @@ class PreviewMediaActivity :
592602 list,
593603 this ,
594604 binding.root,
595- backgroundJobManager
605+ this . backgroundJobManager
596606 )
597607 }
598608
0 commit comments