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