musikr: decouple disc from auxio
This commit is contained in:
parent
e3146647d3
commit
cb84b2db17
4 changed files with 8 additions and 11 deletions
|
@ -43,7 +43,6 @@ import org.oxycblt.auxio.util.inflater
|
||||||
import org.oxycblt.musikr.Album
|
import org.oxycblt.musikr.Album
|
||||||
import org.oxycblt.musikr.Song
|
import org.oxycblt.musikr.Song
|
||||||
import org.oxycblt.musikr.tag.Disc
|
import org.oxycblt.musikr.tag.Disc
|
||||||
import org.oxycblt.musikr.tag.resolveNumber
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An [DetailListAdapter] implementing the header and sub-items for the [Album] detail view.
|
* An [DetailListAdapter] implementing the header and sub-items for the [Album] detail view.
|
||||||
|
@ -122,7 +121,7 @@ private class DiscHeaderViewHolder(private val binding: ItemDiscHeaderBinding) :
|
||||||
*/
|
*/
|
||||||
fun bind(discHeader: DiscHeader) {
|
fun bind(discHeader: DiscHeader) {
|
||||||
val disc = discHeader.inner
|
val disc = discHeader.inner
|
||||||
binding.discNumber.text = disc.resolveNumber(binding.context)
|
binding.discNumber.text = disc.resolve(binding.context)
|
||||||
binding.discName.apply {
|
binding.discName.apply {
|
||||||
text = disc?.name
|
text = disc?.name
|
||||||
isGone = disc?.name == null
|
isGone = disc?.name == null
|
||||||
|
|
|
@ -26,6 +26,7 @@ import org.oxycblt.auxio.R
|
||||||
import org.oxycblt.auxio.util.concatLocalized
|
import org.oxycblt.auxio.util.concatLocalized
|
||||||
import org.oxycblt.musikr.Music
|
import org.oxycblt.musikr.Music
|
||||||
import org.oxycblt.musikr.tag.Date
|
import org.oxycblt.musikr.tag.Date
|
||||||
|
import org.oxycblt.musikr.tag.Disc
|
||||||
import org.oxycblt.musikr.tag.Name
|
import org.oxycblt.musikr.tag.Name
|
||||||
import org.oxycblt.musikr.tag.Placeholder
|
import org.oxycblt.musikr.tag.Placeholder
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
@ -98,3 +99,7 @@ private fun Date.resolveFineGrained(): String? {
|
||||||
format.applyPattern("MMM yyyy")
|
format.applyPattern("MMM yyyy")
|
||||||
return format.format(date)
|
return format.format(date)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Disc?.resolve(context: Context) =
|
||||||
|
this?.run { context.getString(R.string.fmt_disc_no, number) }
|
||||||
|
?: context.getString(R.string.def_disc)
|
||||||
|
|
|
@ -29,6 +29,7 @@ import org.oxycblt.auxio.home.HomeGenerator
|
||||||
import org.oxycblt.auxio.list.adapter.UpdateInstructions
|
import org.oxycblt.auxio.list.adapter.UpdateInstructions
|
||||||
import org.oxycblt.auxio.music.MusicRepository
|
import org.oxycblt.auxio.music.MusicRepository
|
||||||
import org.oxycblt.auxio.music.MusicType
|
import org.oxycblt.auxio.music.MusicType
|
||||||
|
import org.oxycblt.auxio.music.resolve
|
||||||
import org.oxycblt.auxio.search.SearchEngine
|
import org.oxycblt.auxio.search.SearchEngine
|
||||||
import org.oxycblt.musikr.Album
|
import org.oxycblt.musikr.Album
|
||||||
import org.oxycblt.musikr.Artist
|
import org.oxycblt.musikr.Artist
|
||||||
|
@ -36,7 +37,6 @@ import org.oxycblt.musikr.Genre
|
||||||
import org.oxycblt.musikr.Music
|
import org.oxycblt.musikr.Music
|
||||||
import org.oxycblt.musikr.Playlist
|
import org.oxycblt.musikr.Playlist
|
||||||
import org.oxycblt.musikr.Song
|
import org.oxycblt.musikr.Song
|
||||||
import org.oxycblt.musikr.tag.resolveNumber
|
|
||||||
|
|
||||||
class MusicBrowser
|
class MusicBrowser
|
||||||
private constructor(
|
private constructor(
|
||||||
|
@ -219,7 +219,7 @@ private constructor(
|
||||||
section.items.map { it.toMediaItem(context, header(section.stringRes)) }
|
section.items.map { it.toMediaItem(context, header(section.stringRes)) }
|
||||||
is DetailSection.Discs ->
|
is DetailSection.Discs ->
|
||||||
section.discs.flatMap { (disc, songs) ->
|
section.discs.flatMap { (disc, songs) ->
|
||||||
val discString = disc.resolveNumber(context)
|
val discString = disc.resolve(context)
|
||||||
songs.map { it.toMediaItem(context, header(discString)) }
|
songs.map { it.toMediaItem(context, header(discString)) }
|
||||||
}
|
}
|
||||||
else -> error("Unknown section type: $section")
|
else -> error("Unknown section type: $section")
|
||||||
|
|
|
@ -18,9 +18,6 @@
|
||||||
|
|
||||||
package org.oxycblt.musikr.tag
|
package org.oxycblt.musikr.tag
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import org.oxycblt.auxio.R
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A disc identifier for a song.
|
* A disc identifier for a song.
|
||||||
*
|
*
|
||||||
|
@ -35,7 +32,3 @@ class Disc(val number: Int, val name: String?) : Comparable<Disc> {
|
||||||
|
|
||||||
override fun compareTo(other: Disc) = number.compareTo(other.number)
|
override fun compareTo(other: Disc) = number.compareTo(other.number)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Disc?.resolveNumber(context: Context) =
|
|
||||||
this?.run { context.getString(R.string.fmt_disc_no, number) }
|
|
||||||
?: context.getString(R.string.def_disc)
|
|
||||||
|
|
Loading…
Reference in a new issue