Skip to content

Commit cd0ea5e

Browse files
committed
fix(preview-video): show exo controls via direct tap on video
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
1 parent 3ac78fe commit cd0ea5e

2 files changed

Lines changed: 26 additions & 16 deletions

File tree

app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ public abstract class FileActivity extends DrawerActivity
181181
@Inject public ConnectivityService connectivityService;
182182

183183
@Inject
184-
BackgroundJobManager backgroundJobManager;
184+
protected BackgroundJobManager backgroundJobManager;
185185

186186
@Inject
187187
EditorUtils editorUtils;

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

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,15 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
5959
import com.google.common.util.concurrent.ListenableFuture
6060
import com.google.common.util.concurrent.MoreExecutors
6161
import com.nextcloud.client.account.User
62-
import com.nextcloud.client.account.UserAccountManager
6362
import com.nextcloud.client.di.Injectable
64-
import com.nextcloud.client.jobs.BackgroundJobManager
6563
import com.nextcloud.client.jobs.download.FileDownloadHelper
6664
import com.nextcloud.client.media.BackgroundPlayerService
6765
import com.nextcloud.client.media.ErrorFormat
6866
import com.nextcloud.client.media.ExoplayerListener
6967
import com.nextcloud.client.media.NextcloudExoPlayer.createNextcloudExoplayer
7068
import com.nextcloud.client.network.ClientFactory
7169
import com.nextcloud.client.network.ClientFactory.CreationException
70+
import com.nextcloud.common.NextcloudClient
7271
import com.nextcloud.ui.fileactions.FileAction
7372
import com.nextcloud.ui.fileactions.FileActionsBottomSheet.Companion.newInstance
7473
import com.nextcloud.ui.fileactions.FileActionsBottomSheet.ResultListener
@@ -101,7 +100,6 @@ import kotlinx.coroutines.Dispatchers
101100
import kotlinx.coroutines.launch
102101
import kotlinx.coroutines.withContext
103102
import 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

Comments
 (0)