Fix sorting modes
Change the NUMERIC_DOWN sorting mode to actually sort by decending order, not ascending order.
This commit is contained in:
parent
414e85153f
commit
ac3b3e7903
19 changed files with 77 additions and 81 deletions
|
@ -9,11 +9,11 @@ import androidx.fragment.app.Fragment
|
|||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import org.oxycblt.auxio.reycler.ClickListener
|
||||
import org.oxycblt.auxio.R
|
||||
import org.oxycblt.auxio.databinding.FragmentAlbumDetailBinding
|
||||
import org.oxycblt.auxio.detail.adapters.DetailSongAdapter
|
||||
import org.oxycblt.auxio.music.MusicViewModel
|
||||
import org.oxycblt.auxio.recycler.ClickListener
|
||||
import org.oxycblt.auxio.theme.applyDivider
|
||||
|
||||
class AlbumDetailFragment : Fragment() {
|
||||
|
|
|
@ -9,14 +9,13 @@ import androidx.fragment.app.Fragment
|
|||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import org.oxycblt.auxio.reycler.ClickListener
|
||||
import org.oxycblt.auxio.databinding.FragmentArtistDetailBinding
|
||||
import org.oxycblt.auxio.detail.adapters.DetailAlbumAdapter
|
||||
import org.oxycblt.auxio.music.MusicViewModel
|
||||
import org.oxycblt.auxio.music.models.Album
|
||||
import org.oxycblt.auxio.reycler.SortMode
|
||||
import org.oxycblt.auxio.recycler.ClickListener
|
||||
import org.oxycblt.auxio.recycler.SortMode
|
||||
import org.oxycblt.auxio.theme.applyDivider
|
||||
import java.util.Comparator
|
||||
|
||||
class ArtistDetailFragment : Fragment() {
|
||||
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
package org.oxycblt.auxio.detail
|
||||
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import org.oxycblt.auxio.music.models.Album
|
||||
import org.oxycblt.auxio.music.models.Artist
|
||||
import org.oxycblt.auxio.reycler.SortMode
|
||||
import org.oxycblt.auxio.recycler.SortMode
|
||||
|
||||
class DetailViewModel : ViewModel() {
|
||||
var isAlreadyNavigating = false
|
||||
|
|
|
@ -4,10 +4,10 @@ import android.view.LayoutInflater
|
|||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.ListAdapter
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import org.oxycblt.auxio.reycler.ClickListener
|
||||
import org.oxycblt.auxio.databinding.ItemAlbumBinding
|
||||
import org.oxycblt.auxio.music.models.Album
|
||||
import org.oxycblt.auxio.reycler.DiffCallback
|
||||
import org.oxycblt.auxio.recycler.ClickListener
|
||||
import org.oxycblt.auxio.recycler.DiffCallback
|
||||
|
||||
class DetailAlbumAdapter(
|
||||
private val listener: ClickListener<Album>
|
||||
|
|
|
@ -3,9 +3,9 @@ package org.oxycblt.auxio.detail.adapters
|
|||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import org.oxycblt.auxio.reycler.ClickListener
|
||||
import org.oxycblt.auxio.databinding.ItemAlbumSongBinding
|
||||
import org.oxycblt.auxio.music.models.Song
|
||||
import org.oxycblt.auxio.recycler.ClickListener
|
||||
|
||||
class DetailSongAdapter(
|
||||
private val data: List<Song>,
|
||||
|
|
|
@ -8,12 +8,12 @@ import android.view.ViewGroup
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import org.oxycblt.auxio.reycler.ClickListener
|
||||
import org.oxycblt.auxio.MainFragmentDirections
|
||||
import org.oxycblt.auxio.databinding.FragmentLibraryBinding
|
||||
import org.oxycblt.auxio.library.adapters.ArtistAdapter
|
||||
import org.oxycblt.auxio.music.MusicViewModel
|
||||
import org.oxycblt.auxio.music.models.Artist
|
||||
import org.oxycblt.auxio.recycler.ClickListener
|
||||
import org.oxycblt.auxio.theme.applyDivider
|
||||
|
||||
class LibraryFragment : Fragment() {
|
||||
|
|
|
@ -3,9 +3,9 @@ package org.oxycblt.auxio.library.adapters
|
|||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import org.oxycblt.auxio.reycler.ClickListener
|
||||
import org.oxycblt.auxio.databinding.ItemAlbumBinding
|
||||
import org.oxycblt.auxio.music.models.Album
|
||||
import org.oxycblt.auxio.recycler.ClickListener
|
||||
|
||||
class AlbumAdapter(
|
||||
private val data: List<Album>,
|
||||
|
|
|
@ -3,9 +3,9 @@ package org.oxycblt.auxio.library.adapters
|
|||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import org.oxycblt.auxio.reycler.ClickListener
|
||||
import org.oxycblt.auxio.databinding.ItemArtistBinding
|
||||
import org.oxycblt.auxio.music.models.Artist
|
||||
import org.oxycblt.auxio.recycler.ClickListener
|
||||
|
||||
class ArtistAdapter(
|
||||
private val data: List<Artist>,
|
||||
|
|
|
@ -86,7 +86,6 @@ fun TextView.bindArtistCounts(artist: Artist) {
|
|||
text = context.getString(R.string.format_double_counts, albums, songs)
|
||||
}
|
||||
|
||||
|
||||
// Get the artist genre.
|
||||
// TODO: Stub, add option to list all genres instead of just the most prominent
|
||||
@BindingAdapter("artistGenre")
|
||||
|
|
|
@ -10,7 +10,8 @@ data class Artist(
|
|||
var genre = ""
|
||||
|
||||
val numAlbums: Int get() = albums.size
|
||||
val numSongs: Int get() {
|
||||
val numSongs: Int
|
||||
get() {
|
||||
var num = 0
|
||||
albums.forEach {
|
||||
num += it.numSongs
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
package org.oxycblt.auxio.reycler
|
||||
package org.oxycblt.auxio.recycler
|
||||
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import org.oxycblt.auxio.R
|
||||
import org.oxycblt.auxio.music.models.Album
|
||||
import org.oxycblt.auxio.music.models.Artist
|
||||
|
||||
// RecyclerView click listener
|
||||
class ClickListener<T>(val onClick: (T) -> Unit)
|
||||
|
@ -32,8 +31,8 @@ enum class SortMode(val iconRes: Int) {
|
|||
// Sort comparators are different for each music model, so they are
|
||||
// static maps instead.
|
||||
val albumSortComparators = mapOf<SortMode, Comparator<Album>>(
|
||||
NUMERIC_DOWN to compareBy { it.year },
|
||||
NUMERIC_UP to compareByDescending { it.year },
|
||||
NUMERIC_DOWN to compareByDescending { it.year },
|
||||
NUMERIC_UP to compareBy { it.year },
|
||||
|
||||
// Alphabetic sorting needs to be case-insensitive
|
||||
ALPHA_DOWN to compareByDescending(
|
|
@ -3,9 +3,9 @@ package org.oxycblt.auxio.songs
|
|||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import org.oxycblt.auxio.reycler.ClickListener
|
||||
import org.oxycblt.auxio.databinding.ItemSongBinding
|
||||
import org.oxycblt.auxio.music.models.Song
|
||||
import org.oxycblt.auxio.recycler.ClickListener
|
||||
|
||||
class SongAdapter(
|
||||
private val data: List<Song>,
|
||||
|
|
|
@ -7,9 +7,9 @@ import android.view.View
|
|||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import org.oxycblt.auxio.reycler.ClickListener
|
||||
import org.oxycblt.auxio.databinding.FragmentSongsBinding
|
||||
import org.oxycblt.auxio.music.MusicViewModel
|
||||
import org.oxycblt.auxio.recycler.ClickListener
|
||||
import org.oxycblt.auxio.theme.applyDivider
|
||||
|
||||
class SongsFragment : Fragment() {
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
Divider used by recyclerview header items
|
||||
https://stackoverflow.com/a/61157571/14143986
|
||||
-->
|
||||
|
@ -17,7 +16,6 @@ https://stackoverflow.com/a/61157571/14143986
|
|||
<item>
|
||||
<ripple
|
||||
android:color="@color/selection_color"
|
||||
android:radius="@dimen/divider_ripple_size">
|
||||
</ripple>
|
||||
android:radius="@dimen/divider_ripple_size"></ripple>
|
||||
</item>
|
||||
</layer-list>
|
|
@ -4,6 +4,7 @@
|
|||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
|
||||
<variable
|
||||
name="artist"
|
||||
type="org.oxycblt.auxio.music.models.Artist" />
|
||||
|
|
Loading…
Reference in a new issue