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">