diff --git a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt
index b89cfc9e4..d1b7199f8 100644
--- a/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt
+++ b/app/src/main/java/org/oxycblt/auxio/detail/AlbumDetailFragment.kt
@@ -192,7 +192,7 @@ class AlbumDetailFragment :
override fun onShuffle() {
playbackModel.shuffle(unlikelyToBeNull(detailModel.currentAlbum.value))
}
-
+
override fun onOpenSortMenu() {
findNavController().navigateSafe(AlbumDetailFragmentDirections.sort())
}
diff --git a/app/src/main/java/org/oxycblt/auxio/list/sort/SortAdapter.kt b/app/src/main/java/org/oxycblt/auxio/list/sort/SortAdapter.kt
deleted file mode 100644
index 16ac05fd2..000000000
--- a/app/src/main/java/org/oxycblt/auxio/list/sort/SortAdapter.kt
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2023 Auxio Project
- * SortAdapter.kt is part of Auxio.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package org.oxycblt.auxio.list.sort
-
-import android.view.View
-import android.view.ViewGroup
-import androidx.recyclerview.widget.DiffUtil
-import androidx.recyclerview.widget.RecyclerView
-import org.oxycblt.auxio.databinding.ItemSortModeBinding
-import org.oxycblt.auxio.list.Sort
-import org.oxycblt.auxio.list.adapter.FlexibleListAdapter
-import org.oxycblt.auxio.util.inflater
-
-class SortAdapter(var selectedMode: Sort.Mode) :
- FlexibleListAdapter(SortModeViewHolder.DIFF_CALLBACK) {
- var currentlySelected = selectedMode
- private set
-
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =
- SortModeViewHolder.from(parent)
-
- override fun onBindViewHolder(holder: SortModeViewHolder, position: Int) {
- throw NotImplementedError()
- }
-
- override fun onBindViewHolder(holder: SortModeViewHolder, position: Int, payload: List) {
- val mode = getItem(position)
- if (payload.isEmpty()) {
- holder.bind(mode)
- }
- holder.setSelected(mode == currentlySelected)
- }
-
- fun setSelected(mode: Sort.Mode) {
- if (mode == currentlySelected) return
- val oldMode = currentList.indexOf(currentlySelected)
- val newMode = currentList.indexOf(mode)
- currentlySelected = selectedMode
- notifyItemChanged(oldMode, PAYLOAD_SELECTION_CHANGED)
- notifyItemChanged(newMode, PAYLOAD_SELECTION_CHANGED)
- }
-
- private companion object {
- val PAYLOAD_SELECTION_CHANGED = Any()
- }
-}
-
-class SortModeViewHolder private constructor(private val binding: ItemSortModeBinding) :
- RecyclerView.ViewHolder(binding.root) {
- fun bind(mode: Sort.Mode) {
- // TODO: Add names to sort.mode
- binding.sortRadio.text = mode.toString()
- }
-
- fun setSelected(selected: Boolean) {
- binding.sortRadio.isChecked = selected
- }
-
- companion object {
- fun from(parent: View) =
- SortModeViewHolder(ItemSortModeBinding.inflate(parent.context.inflater))
-
- val DIFF_CALLBACK =
- object : DiffUtil.ItemCallback() {
- override fun areItemsTheSame(oldItem: Sort.Mode, newItem: Sort.Mode) =
- oldItem == newItem
-
- override fun areContentsTheSame(oldItem: Sort.Mode, newItem: Sort.Mode) =
- oldItem == newItem
- }
- }
-}
diff --git a/app/src/main/java/org/oxycblt/auxio/list/sort/SortDialog.kt b/app/src/main/java/org/oxycblt/auxio/list/sort/SortDialog.kt
index f6391ce87..39e14d199 100644
--- a/app/src/main/java/org/oxycblt/auxio/list/sort/SortDialog.kt
+++ b/app/src/main/java/org/oxycblt/auxio/list/sort/SortDialog.kt
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2023 Auxio Project
- * MenuDialogFragment.kt is part of Auxio.
+ * SortDialog.kt is part of Auxio.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -16,126 +16,74 @@
* along with this program. If not, see .
*/
-package org.oxycblt.auxio.list.menu
+package org.oxycblt.auxio.list.sort
-import android.annotation.SuppressLint
import android.os.Bundle
import android.view.LayoutInflater
-import android.view.MenuInflater
-import android.view.MenuItem
-import androidx.appcompat.view.menu.MenuBuilder
-import androidx.core.view.children
-import androidx.navigation.fragment.findNavController
+import androidx.core.view.updatePadding
import androidx.recyclerview.widget.RecyclerView
-import org.oxycblt.auxio.databinding.DialogMenuBinding
+import org.oxycblt.auxio.R
+import org.oxycblt.auxio.databinding.DialogSortBinding
import org.oxycblt.auxio.list.ClickableListListener
-import org.oxycblt.auxio.list.ListViewModel
-import org.oxycblt.auxio.list.Menu
+import org.oxycblt.auxio.list.Sort
import org.oxycblt.auxio.list.adapter.UpdateInstructions
import org.oxycblt.auxio.ui.ViewBindingBottomSheetDialogFragment
-import org.oxycblt.auxio.util.collectImmediately
-import org.oxycblt.auxio.util.logD
+import org.oxycblt.auxio.util.systemBarInsetsCompat
-/**
- * A [ViewBindingBottomSheetDialogFragment] that displays basic music information and a series of
- * options.
- *
- * @author Alexander Capehart (OxygenCobalt)
- *
- * TODO: Extend the amount of music info shown in the dialog
- */
-abstract class MenuDialogFragment :
- ViewBindingBottomSheetDialogFragment(), ClickableListListener