diff --git a/app/src/main/java/com/github/libretube/ui/sheets/PlayingQueueSheet.kt b/app/src/main/java/com/github/libretube/ui/sheets/PlayingQueueSheet.kt index 886ddf591..9982f5216 100644 --- a/app/src/main/java/com/github/libretube/ui/sheets/PlayingQueueSheet.kt +++ b/app/src/main/java/com/github/libretube/ui/sheets/PlayingQueueSheet.kt @@ -48,8 +48,7 @@ class PlayingQueueSheet : ExpandedBottomSheet() { binding.clear.setOnClickListener { val currentIndex = PlayingQueue.currentIndex() - val streams = PlayingQueue.getStreams().filterIndexed { - position, _ -> + val streams = PlayingQueue.getStreams().filterIndexed { position, _ -> position <= currentIndex } @@ -57,6 +56,11 @@ class PlayingQueueSheet : ExpandedBottomSheet() { adapter.notifyDataSetChanged() } + binding.reverse.setOnClickListener { + PlayingQueue.setStreams(PlayingQueue.getStreams().reversed()) + adapter.notifyDataSetChanged() + } + binding.bottomControls.setOnClickListener { dialog?.dismiss() } diff --git a/app/src/main/res/drawable/ic_reverse.xml b/app/src/main/res/drawable/ic_reverse.xml new file mode 100644 index 000000000..1daf24465 --- /dev/null +++ b/app/src/main/res/drawable/ic_reverse.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:tint="?attr/colorControlNormal" + android:viewportWidth="48" + android:viewportHeight="48"> + <path + android:fillColor="#FF000000" + android:pathData="m16.25,41.4 l-2.1,-2.1 3.2,-3.3q-5.5,0 -9.425,-3.75Q4,28.5 4,23q0,-5.35 3.725,-9.175Q11.45,10 16.8,10h7.6v3h-7.6q-4.1,0 -6.95,2.925Q7,18.85 7,23q0,4.25 3.125,7.125T17.6,33l-3.3,-3.3 2.1,-2.1 6.8,6.85ZM28.6,36v-3L44,33v3ZM28.6,24.5v-3L44,21.5v3ZM27.4,13v-3L44,10v3Z" /> +</vector> diff --git a/app/src/main/res/layout/queue_bottom_sheet.xml b/app/src/main/res/layout/queue_bottom_sheet.xml index e5671da4c..9d7c17904 100644 --- a/app/src/main/res/layout/queue_bottom_sheet.xml +++ b/app/src/main/res/layout/queue_bottom_sheet.xml @@ -41,10 +41,20 @@ android:id="@+id/shuffle" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginHorizontal="5dp" android:background="?attr/selectableItemBackgroundBorderless" android:padding="5dp" android:src="@drawable/ic_shuffle" /> + <ImageView + android:id="@+id/reverse" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginHorizontal="5dp" + android:background="?attr/selectableItemBackgroundBorderless" + android:padding="5dp" + android:src="@drawable/ic_reverse" /> + <ImageView android:layout_width="0dp" android:layout_height="wrap_content" @@ -53,10 +63,20 @@ android:layout_weight="1" android:src="@drawable/ic_arrow_down" /> + <ImageView + android:id="@+id/repeat" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginHorizontal="5dp" + android:background="?attr/selectableItemBackgroundBorderless" + android:padding="5dp" + android:src="@drawable/ic_repeat" /> + <ImageView android:id="@+id/clear" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginHorizontal="5dp" android:background="?attr/selectableItemBackgroundBorderless" android:padding="5dp" android:src="@drawable/ic_close" />