Fix sorting modes

Change the NUMERIC_DOWN sorting mode to actually sort by decending order, not ascending order.
This commit is contained in:
OxygenCobalt 2020-09-24 06:59:53 -06:00
parent 414e85153f
commit ac3b3e7903
19 changed files with 77 additions and 81 deletions

View file

@ -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() {

View file

@ -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() {

View file

@ -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

View file

@ -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>

View file

@ -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>,

View file

@ -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() {

View file

@ -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>,

View file

@ -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>,

View file

@ -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")

View file

@ -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

View file

@ -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(

View file

@ -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>,

View file

@ -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() {

View file

@ -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>

View file

@ -4,6 +4,7 @@
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="artist"
type="org.oxycblt.auxio.music.models.Artist" />