fix: exit fullscreen gesture

This commit is contained in:
Bnyro 2023-08-24 16:32:43 +02:00
parent 4c506de565
commit c398936355
5 changed files with 20 additions and 7 deletions

View File

@ -1512,6 +1512,10 @@ class PlayerFragment : Fragment(), OnlinePlayerOptions {
baseBottomSheet.show(childFragmentManager)
}
override fun exitFullscreen() {
unsetFullscreen()
}
override fun onStatsClicked() {
if (!this::streams.isInitialized) return
StatsSheet(exoPlayer, videoId)

View File

@ -8,4 +8,6 @@ interface OnlinePlayerOptions {
fun onAudioStreamClicked()
fun onStatsClicked()
fun exitFullscreen()
}

View File

@ -14,7 +14,6 @@ import android.view.View
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.core.os.postDelayed
import androidx.core.view.ViewCompat
@ -686,7 +685,7 @@ open class CustomExoPlayerView(
if (distanceY >= 0) return
playerGestureController.isMoving = false
(context as? AppCompatActivity)?.onBackPressedDispatcher?.onBackPressed()
minimizeOrExitPlayer()
}
override fun onSwipeEnd() {
@ -735,6 +734,8 @@ open class CustomExoPlayerView(
return super.onInterceptTouchEvent(ev)
}
open fun minimizeOrExitPlayer() = Unit
companion object {
private const val HIDE_CONTROLLER_TOKEN = "hideController"
private const val HIDE_FORWARD_BUTTON_TOKEN = "hideForwardButton"

View File

@ -2,6 +2,7 @@ package com.github.libretube.ui.views
import android.content.Context
import android.util.AttributeSet
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.WindowInsetsCompat
import com.github.libretube.ui.extensions.toggleSystemBars
@ -25,4 +26,8 @@ class OfflinePlayerView(
// the offline player requires a bigger top bar margin
return if (isFullscreen()) 18 else super.getTopBarMarginDp()
}
override fun minimizeOrExitPlayer() {
(context as AppCompatActivity).onBackPressedDispatcher.onBackPressed()
}
}

View File

@ -4,6 +4,7 @@ import android.content.Context
import android.content.res.Configuration
import android.util.AttributeSet
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.WindowInsetsCompat
import androidx.lifecycle.LifecycleOwner
import androidx.media3.exoplayer.trackselection.TrackSelector
@ -168,11 +169,6 @@ class OnlinePlayerView(
updateTopBarMargin()
}
override fun onSwipeCenterScreen(distanceY: Float) {
super.onSwipeCenterScreen(distanceY)
playerViewModel?.isFullscreen?.value = false
}
override fun getTopBarMarginDp(): Int {
return when {
resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE -> 15
@ -184,4 +180,9 @@ class OnlinePlayerView(
override fun isFullscreen(): Boolean {
return playerViewModel?.isFullscreen?.value ?: super.isFullscreen()
}
override fun minimizeOrExitPlayer() {
(context as? AppCompatActivity)?.onBackPressedDispatcher?.onBackPressed()
playerViewModel?.isFullscreen?.value = false
}
}