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 51ceca53a..2b58cd071 100644 --- a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt @@ -276,6 +276,16 @@ class PlayerFragment : Fragment() { .remove(this) .commit() } + // show the advanced player options + playerBinding.toggleOptions.setOnClickListener { + if (playerBinding.advancedOptions.isVisible) { + playerBinding.toggleOptions.animate().rotationX(0F).setDuration(200).start() + playerBinding.advancedOptions.visibility = View.GONE + } else { + playerBinding.toggleOptions.animate().rotationX(180F).setDuration(200).start() + playerBinding.advancedOptions.visibility = View.VISIBLE + } + } binding.playImageView.setOnClickListener { paused = if (paused) { binding.playImageView.setImageResource(R.drawable.ic_pause) 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 a3886f8ce..dc520f502 100644 --- a/app/src/main/java/com/github/libretube/views/CustomExoPlayerView.kt +++ b/app/src/main/java/com/github/libretube/views/CustomExoPlayerView.kt @@ -4,6 +4,7 @@ import android.annotation.SuppressLint import android.content.Context import android.util.AttributeSet import android.view.MotionEvent +import android.view.View import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding import com.google.android.exoplayer2.ui.StyledPlayerView @@ -13,6 +14,12 @@ internal class CustomExoPlayerView( ) : StyledPlayerView(context, attributeSet) { val binding: ExoStyledPlayerControlViewBinding = ExoStyledPlayerControlViewBinding.bind(this) + override fun hideController() { + super.hideController() + binding.toggleOptions.animate().rotationX(0F).start() + binding.advancedOptions.visibility = View.GONE + } + @SuppressLint("ClickableViewAccessibility") override fun onTouchEvent(event: MotionEvent): Boolean { when (event.action) { diff --git a/app/src/main/res/layout/exo_styled_player_control_view.xml b/app/src/main/res/layout/exo_styled_player_control_view.xml index 8df359629..e7c188e64 100644 --- a/app/src/main/res/layout/exo_styled_player_control_view.xml +++ b/app/src/main/res/layout/exo_styled_player_control_view.xml @@ -11,73 +11,105 @@ + android:animateLayoutChanges="true" + android:orientation="vertical" + android:paddingStart="5dp" + android:paddingEnd="10dp"> - + - + + + + + + + + + + + + + + + + + - - + android:layout_gravity="right" + android:layout_marginTop="-10dp" + android:orientation="horizontal" + android:visibility="gone"> + + + + - - - - @@ -150,19 +182,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content"> - - - - diff --git a/app/src/main/res/layout/fragment_player.xml b/app/src/main/res/layout/fragment_player.xml index 892f10cbf..35811e6c4 100644 --- a/app/src/main/res/layout/fragment_player.xml +++ b/app/src/main/res/layout/fragment_player.xml @@ -379,7 +379,7 @@ android:id="@+id/doubleTapOverlayLL" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_marginVertical="50dp"> + android:layout_marginVertical="60dp">