From 7837ce1c601cfbec988ca4b18a69d0a2deb7bdc4 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Fri, 28 Oct 2022 22:08:50 +0200 Subject: [PATCH] add shuffle and clear to playing queue --- .../libretube/ui/sheets/PlayingQueueSheet.kt | 21 +++++- app/src/main/res/drawable/ic_shuffle.xml | 10 +++ .../main/res/layout/queue_bottom_sheet.xml | 66 +++++++++++++++++++ 3 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 app/src/main/res/drawable/ic_shuffle.xml create mode 100644 app/src/main/res/layout/queue_bottom_sheet.xml 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 1292b7377..d8038e513 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 @@ -7,20 +7,20 @@ import android.view.ViewGroup import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.github.libretube.databinding.BottomSheetBinding +import com.github.libretube.databinding.QueueBottomSheetBinding import com.github.libretube.ui.adapters.PlayingQueueAdapter import com.github.libretube.util.PlayingQueue import com.google.android.material.bottomsheet.BottomSheetDialogFragment class PlayingQueueSheet : BottomSheetDialogFragment() { - private lateinit var binding: BottomSheetBinding + private lateinit var binding: QueueBottomSheetBinding override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { - binding = BottomSheetBinding.inflate(layoutInflater) + binding = QueueBottomSheetBinding.inflate(layoutInflater) return binding.root } @@ -31,6 +31,21 @@ class PlayingQueueSheet : BottomSheetDialogFragment() { val adapter = PlayingQueueAdapter() binding.optionsRecycler.adapter = adapter + binding.shuffle.setOnClickListener { + val streams = PlayingQueue.getStreams() + streams.subList(PlayingQueue.currentIndex(), PlayingQueue.size()).shuffle() + adapter.notifyItemRangeChanged(0, PlayingQueue.size()) + } + + binding.clear.setOnClickListener { + val streams = PlayingQueue.getStreams() + streams.subList(PlayingQueue.currentIndex(), PlayingQueue.size()).clear() + } + + binding.bottomControls.setOnClickListener { + dialog?.dismiss() + } + val callback = object : ItemTouchHelper.SimpleCallback( ItemTouchHelper.UP or ItemTouchHelper.DOWN, ItemTouchHelper.LEFT diff --git a/app/src/main/res/drawable/ic_shuffle.xml b/app/src/main/res/drawable/ic_shuffle.xml new file mode 100644 index 000000000..76ff342cd --- /dev/null +++ b/app/src/main/res/drawable/ic_shuffle.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/queue_bottom_sheet.xml b/app/src/main/res/layout/queue_bottom_sheet.xml new file mode 100644 index 000000000..7f6a0a8eb --- /dev/null +++ b/app/src/main/res/layout/queue_bottom_sheet.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file