Make queue a fragment instead of a dialog

Make QueueFragment an actual fragment instead of a BottomSheetDialogFragment. Really dont want to deal with the garbage BottomSheetDialogFragment does.
This commit is contained in:
OxygenCobalt 2020-11-08 14:35:31 -07:00
parent 4fb4120342
commit a192fb52c3
6 changed files with 42 additions and 23 deletions

View file

@ -6,13 +6,13 @@ import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import org.oxycblt.auxio.databinding.FragmentQueueBinding
import org.oxycblt.auxio.playback.PlaybackViewModel
// TODO: Make this better
class QueueFragment : BottomSheetDialogFragment() {
class QueueFragment : Fragment() {
private val playbackModel: PlaybackViewModel by activityViewModels()
override fun onCreateView(
@ -22,13 +22,17 @@ class QueueFragment : BottomSheetDialogFragment() {
): View? {
val binding = FragmentQueueBinding.inflate(inflater)
binding.queueToolbar.setNavigationOnClickListener {
findNavController().navigateUp()
}
binding.queueViewpager.adapter = PagerAdapter()
// TODO: Add option for default queue screen
if (playbackModel.userQueue.value!!.isEmpty()) {
binding.queueViewpager.setCurrentItem(1, false)
} else {
if (playbackModel.userQueue.value!!.isNotEmpty()) {
binding.queueViewpager.setCurrentItem(0, false)
} else {
binding.queueViewpager.setCurrentItem(1, false)
}
return binding.root

View file

@ -16,6 +16,7 @@ import org.oxycblt.auxio.playback.PlaybackViewModel
import org.oxycblt.auxio.playback.state.PlaybackMode
import org.oxycblt.auxio.ui.applyDivider
// TODO: Unify the user/next queues into a single fragment
class QueueListFragment(private val type: Int) : Fragment() {
private val playbackModel: PlaybackViewModel by activityViewModels()

View file

@ -3,14 +3,29 @@
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<FrameLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/queue_toolbar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:background="?android:attr/windowBackground"
android:theme="@style/Toolbar.Style"
android:clickable="true"
android:focusable="true"
app:navigationIcon="@drawable/ic_down"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:title="@string/label_queue"
app:titleTextAppearance="@style/TextAppearance.Toolbar.Header" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/queue_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
</LinearLayout>
</layout>

View file

@ -7,23 +7,23 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/background">
android:background="@color/background"
android:animateLayoutChanges="true">
<TextView
android:id="@+id/queue_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:fontFamily="@font/inter_black"
android:marqueeRepeatLimit="marquee_forever"
android:padding="@dimen/padding_medium"
android:singleLine="true"
android:text="@string/label_queue"
android:textColor="?android:attr/colorPrimary"
android:textAppearance="@style/TextAppearance.Toolbar.Header"
app:layout_constraintEnd_toStartOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:background="@drawable/ui_header_dividers"
android:fontFamily="@font/inter_bold"
android:paddingStart="@dimen/padding_medium"
android:paddingTop="@dimen/padding_small"
android:paddingEnd="@dimen/padding_small"
android:paddingBottom="@dimen/padding_small"
android:textAppearance="@style/TextAppearance.MaterialComponents.Overline"
android:textSize="16sp"
tools:text="Next in Queue"
app:layout_constraintTop_toBottomOf="@+id/album_details" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/queue_recycler"
@ -44,6 +44,5 @@
android:textAlignment="center"
android:visibility="gone" />
</LinearLayout>
</layout>

View file

@ -124,7 +124,7 @@
app:popEnterAnim="@anim/anim_stationary"
app:popExitAnim="@anim/anim_nav_slide_down" />
</fragment>
<dialog
<fragment
android:id="@+id/queue_fragment"
android:name="org.oxycblt.auxio.playback.queue.QueueFragment"
android:label="QueueFragment"

View file

@ -31,7 +31,7 @@
<string name="label_queue_add">Add to queue</string>
<string name="label_queue_added">Added to queue</string>
<string name="label_next_user_queue">Next in Queue</string>
<string name="label_empty_queue">Nothing here.</string>
<string name="label_empty_queue">Nothing here</string>
<string name="label_notification_playback">Music Playback</string>
<string name="label_service_playback">The music playback service for Auxio.</string>