musikr: decouple disc from auxio

This commit is contained in:
Alexander Capehart 2024-12-14 15:50:14 -05:00
parent e3146647d3
commit cb84b2db17
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
4 changed files with 8 additions and 11 deletions

View file

@ -43,7 +43,6 @@ import org.oxycblt.auxio.util.inflater
import org.oxycblt.musikr.Album
import org.oxycblt.musikr.Song
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.
@ -122,7 +121,7 @@ private class DiscHeaderViewHolder(private val binding: ItemDiscHeaderBinding) :
*/
fun bind(discHeader: DiscHeader) {
val disc = discHeader.inner
binding.discNumber.text = disc.resolveNumber(binding.context)
binding.discNumber.text = disc.resolve(binding.context)
binding.discName.apply {
text = disc?.name
isGone = disc?.name == null

View file

@ -26,6 +26,7 @@ import org.oxycblt.auxio.R
import org.oxycblt.auxio.util.concatLocalized
import org.oxycblt.musikr.Music
import org.oxycblt.musikr.tag.Date
import org.oxycblt.musikr.tag.Disc
import org.oxycblt.musikr.tag.Name
import org.oxycblt.musikr.tag.Placeholder
import timber.log.Timber
@ -98,3 +99,7 @@ private fun Date.resolveFineGrained(): String? {
format.applyPattern("MMM yyyy")
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)

View file

@ -29,6 +29,7 @@ import org.oxycblt.auxio.home.HomeGenerator
import org.oxycblt.auxio.list.adapter.UpdateInstructions
import org.oxycblt.auxio.music.MusicRepository
import org.oxycblt.auxio.music.MusicType
import org.oxycblt.auxio.music.resolve
import org.oxycblt.auxio.search.SearchEngine
import org.oxycblt.musikr.Album
import org.oxycblt.musikr.Artist
@ -36,7 +37,6 @@ import org.oxycblt.musikr.Genre
import org.oxycblt.musikr.Music
import org.oxycblt.musikr.Playlist
import org.oxycblt.musikr.Song
import org.oxycblt.musikr.tag.resolveNumber
class MusicBrowser
private constructor(
@ -219,7 +219,7 @@ private constructor(
section.items.map { it.toMediaItem(context, header(section.stringRes)) }
is DetailSection.Discs ->
section.discs.flatMap { (disc, songs) ->
val discString = disc.resolveNumber(context)
val discString = disc.resolve(context)
songs.map { it.toMediaItem(context, header(discString)) }
}
else -> error("Unknown section type: $section")

View file

@ -18,9 +18,6 @@
package org.oxycblt.musikr.tag
import android.content.Context
import org.oxycblt.auxio.R
/**
* 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)
}
fun Disc?.resolveNumber(context: Context) =
this?.run { context.getString(R.string.fmt_disc_no, number) }
?: context.getString(R.string.def_disc)