diff --git a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt index 6941ef05d..255113cb6 100644 --- a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt @@ -1078,7 +1078,7 @@ class PlayerFragment : Fragment() { } override fun onSingleTapConfirmed(e: MotionEvent?): Boolean { - binding.player.performClick() + toggleController() return super.onSingleTapConfirmed(e) } } @@ -1100,7 +1100,7 @@ class PlayerFragment : Fragment() { } override fun onSingleTapConfirmed(e: MotionEvent?): Boolean { - binding.player.performClick() + toggleController() return super.onSingleTapConfirmed(e) } } @@ -1172,6 +1172,11 @@ class PlayerFragment : Fragment() { } } + private fun toggleController() { + if (exoPlayerView.isControllerFullyVisible) exoPlayerView.hideController() + else exoPlayerView.showController() + } + // enable seek bar preview private fun enableSeekbarPreview() { playerBinding.exoProgress.addListener(object : TimeBar.OnScrubListener { diff --git a/app/src/main/java/com/github/libretube/views/CustomExoPlayerView.kt b/app/src/main/java/com/github/libretube/views/CustomExoPlayerView.kt index 1d7d01df7..5a11b0e30 100644 --- a/app/src/main/java/com/github/libretube/views/CustomExoPlayerView.kt +++ b/app/src/main/java/com/github/libretube/views/CustomExoPlayerView.kt @@ -5,6 +5,7 @@ import android.content.Context import android.util.AttributeSet import android.view.MotionEvent import android.view.View +import com.github.libretube.R import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding import com.google.android.exoplayer2.ui.StyledPlayerView @@ -12,12 +13,35 @@ internal class CustomExoPlayerView( context: Context, attributeSet: AttributeSet? = null ) : StyledPlayerView(context, attributeSet) { + val TAG = "CustomExoPlayerView" val binding: ExoStyledPlayerControlViewBinding = ExoStyledPlayerControlViewBinding.bind(this) + init { + setControllerVisibilityListener { + // hide the advanced options + binding.toggleOptions.animate().rotationX(0F).setDuration(0).start() + binding.advancedOptions.visibility = View.GONE + } + } + override fun hideController() { super.hideController() - binding.toggleOptions.animate().rotationX(0F).setDuration(1000).start() - binding.advancedOptions.visibility = View.GONE + setDoubleTapOverlayLayoutParams(0) + } + + override fun showController() { + setDoubleTapOverlayLayoutParams(90) + super.showController() + } + + // set the top and bottom margin of the double tap overlay + private fun setDoubleTapOverlayLayoutParams(margin: Int) { + val dpMargin = resources?.displayMetrics?.density!!.toInt() * margin + val doubleTapOverlay = binding.root.findViewById(R.id.doubleTapOverlay) + val params = doubleTapOverlay.layoutParams as MarginLayoutParams + params.topMargin = dpMargin + params.bottomMargin = dpMargin + doubleTapOverlay.layoutParams = params } @SuppressLint("ClickableViewAccessibility") diff --git a/app/src/main/java/com/github/libretube/views/DoubleTapOverlay.kt b/app/src/main/java/com/github/libretube/views/DoubleTapOverlay.kt index cd937f30b..bdd2a3fcb 100644 --- a/app/src/main/java/com/github/libretube/views/DoubleTapOverlay.kt +++ b/app/src/main/java/com/github/libretube/views/DoubleTapOverlay.kt @@ -10,7 +10,7 @@ class DoubleTapOverlay( context: Context, attrs: AttributeSet? = null ) : LinearLayout(context, attrs) { - lateinit var binding: DoubleTapOverlayBinding + var binding: DoubleTapOverlayBinding init { val layoutInflater = LayoutInflater.from(context) diff --git a/app/src/main/res/layout/double_tap_overlay.xml b/app/src/main/res/layout/double_tap_overlay.xml index 34a7fc40a..4bd49b822 100644 --- a/app/src/main/res/layout/double_tap_overlay.xml +++ b/app/src/main/res/layout/double_tap_overlay.xml @@ -4,7 +4,6 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_marginVertical="65dp" android:baselineAligned="false"> diff --git a/app/src/main/res/layout/fragment_player.xml b/app/src/main/res/layout/fragment_player.xml index 3ae2601bb..ddcfa77c8 100644 --- a/app/src/main/res/layout/fragment_player.xml +++ b/app/src/main/res/layout/fragment_player.xml @@ -377,14 +377,12 @@ + android:layout_height="match_parent" /> + +