Show status bar automatically with controls in offline player

This commit is contained in:
Bnyro 2023-06-09 09:53:00 +02:00
parent 44b893ba96
commit 2a4aad88ee
2 changed files with 23 additions and 6 deletions

View File

@ -6,9 +6,12 @@ import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.text.format.DateUtils import android.text.format.DateUtils
import android.view.View import android.view.View
import android.view.ViewGroup.MarginLayoutParams
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.core.view.isInvisible import androidx.core.view.isInvisible
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.marginTop
import androidx.core.view.updateLayoutParams
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.media3.common.C import androidx.media3.common.C
import androidx.media3.common.MediaItem import androidx.media3.common.MediaItem
@ -29,6 +32,7 @@ import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding
import com.github.libretube.db.DatabaseHolder.Database import com.github.libretube.db.DatabaseHolder.Database
import com.github.libretube.db.obj.DownloadItem import com.github.libretube.db.obj.DownloadItem
import com.github.libretube.enums.FileType import com.github.libretube.enums.FileType
import com.github.libretube.extensions.dpToPx
import com.github.libretube.extensions.toAndroidUri import com.github.libretube.extensions.toAndroidUri
import com.github.libretube.extensions.updateParameters import com.github.libretube.extensions.updateParameters
import com.github.libretube.helpers.PlayerHelper import com.github.libretube.helpers.PlayerHelper
@ -101,6 +105,14 @@ class OfflinePlayerActivity : BaseActivity() {
playerView.player = player playerView.player = player
playerBinding = binding.player.binding playerBinding = binding.player.binding
// increase the margin to the status bar
playerBinding.topBar.setPadding(
playerBinding.topBar.paddingLeft,
playerBinding.topBar.paddingTop * 2,
playerBinding.topBar.paddingRight,
playerBinding.topBar.paddingBottom
)
playerBinding.fullscreen.isInvisible = true playerBinding.fullscreen.isInvisible = true
playerBinding.closeImageButton.setOnClickListener { playerBinding.closeImageButton.setOnClickListener {
finish() finish()

View File

@ -251,12 +251,14 @@ internal class CustomExoPlayerView(
cancelHideControllerTask() cancelHideControllerTask()
super.hideController() super.hideController()
// hide system bars if in fullscreen // hide system bars if in fullscreen or offline player
playerViewModel?.let { if (playerViewModel != null) {
if (it.isFullscreen.value == true) { if (playerViewModel!!.isFullscreen.value == true) {
WindowHelper.toggleFullscreen(activity, true) WindowHelper.toggleFullscreen(activity, true)
} }
updateTopBarMargin() updateTopBarMargin()
} else {
activity.toggleSystemBars(WindowInsetsCompat.Type.systemBars(), false)
} }
} }
@ -266,11 +268,14 @@ internal class CustomExoPlayerView(
// automatically hide the controller after 2 seconds // automatically hide the controller after 2 seconds
enqueueHideControllerTask() enqueueHideControllerTask()
super.showController() super.showController()
// show the system bars when in offline player
if (playerViewModel == null) {
activity.toggleSystemBars(WindowInsetsCompat.Type.statusBars(), true)
}
} }
override fun onTouchEvent(event: MotionEvent): Boolean { override fun onTouchEvent(event: MotionEvent) = false
return false
}
private fun initRewindAndForward() { private fun initRewindAndForward() {
val seekIncrementText = (PlayerHelper.seekIncrement / 1000).toString() val seekIncrementText = (PlayerHelper.seekIncrement / 1000).toString()