From c42ac644eb152e2a9878bb8ba0d0e96ea1de9f61 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Tue, 24 Dec 2024 15:08:49 -0500 Subject: [PATCH] musikr: compute uid on presong creation --- .../org/oxycblt/musikr/graph/MusicGraph.kt | 2 +- .../java/org/oxycblt/musikr/model/SongImpl.kt | 2 +- .../oxycblt/musikr/tag/interpret/PreMusic.kt | 29 +++++++++---------- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/musikr/src/main/java/org/oxycblt/musikr/graph/MusicGraph.kt b/musikr/src/main/java/org/oxycblt/musikr/graph/MusicGraph.kt index ace58aab1..d08a979ce 100644 --- a/musikr/src/main/java/org/oxycblt/musikr/graph/MusicGraph.kt +++ b/musikr/src/main/java/org/oxycblt/musikr/graph/MusicGraph.kt @@ -55,7 +55,7 @@ private class MusicGraphBuilderImpl : MusicGraph.Builder { private val playlistVertices = mutableSetOf() override fun add(preSong: PreSong) { - val uid = preSong.computeUid() + val uid = preSong.uid if (songVertices.containsKey(uid)) { return } diff --git a/musikr/src/main/java/org/oxycblt/musikr/model/SongImpl.kt b/musikr/src/main/java/org/oxycblt/musikr/model/SongImpl.kt index bb59121da..2747edd1d 100644 --- a/musikr/src/main/java/org/oxycblt/musikr/model/SongImpl.kt +++ b/musikr/src/main/java/org/oxycblt/musikr/model/SongImpl.kt @@ -42,7 +42,7 @@ internal interface SongCore { internal class SongImpl(private val handle: SongCore) : Song { private val preSong = handle.preSong - override val uid = preSong.computeUid() + override val uid = preSong.uid override val name = preSong.name override val track = preSong.track override val disc = preSong.disc diff --git a/musikr/src/main/java/org/oxycblt/musikr/tag/interpret/PreMusic.kt b/musikr/src/main/java/org/oxycblt/musikr/tag/interpret/PreMusic.kt index 1632c7547..ba6c28da4 100644 --- a/musikr/src/main/java/org/oxycblt/musikr/tag/interpret/PreMusic.kt +++ b/musikr/src/main/java/org/oxycblt/musikr/tag/interpret/PreMusic.kt @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - + package org.oxycblt.musikr.tag.interpret import android.net.Uri @@ -53,22 +53,21 @@ internal data class PreSong( val preArtists: List, val preGenres: List ) { - fun computeUid() = - musicBrainzId?.let { Music.UID.musicBrainz(Music.UID.Item.SONG, it) } - ?: Music.UID.auxio(Music.UID.Item.SONG) { - // Song UIDs are based on the raw data without parsing so that they remain - // consistent across music setting changes. Parents are not held up to the - // same standard since grouping is already inherently linked to settings. - update(rawName) - update(preAlbum.rawName) - update(date) + val uid = musicBrainzId?.let { Music.UID.musicBrainz(Music.UID.Item.SONG, it) } + ?: Music.UID.auxio(Music.UID.Item.SONG) { + // Song UIDs are based on the raw data without parsing so that they remain + // consistent across music setting changes. Parents are not held up to the + // same standard since grouping is already inherently linked to settings. + update(rawName) + update(preAlbum.rawName) + update(date) - update(track) - update(disc?.number) + update(track) + update(disc?.number) - update(preArtists.map { artist -> artist.rawName }) - update(preAlbum.preArtists.map { artist -> artist.rawName }) - } + update(preArtists.map { artist -> artist.rawName }) + update(preAlbum.preArtists.map { artist -> artist.rawName }) + } } internal data class PreAlbum(