music: move other metadata into model

This commit is contained in:
Alexander Capehart 2024-11-30 17:24:17 -07:00
parent 523d3cdd30
commit dfff01bd28
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
38 changed files with 108 additions and 105 deletions

View file

@ -32,8 +32,8 @@ import org.oxycblt.auxio.music.MusicRepository
import org.oxycblt.auxio.music.MusicType import org.oxycblt.auxio.music.MusicType
import org.oxycblt.auxio.music.Playlist import org.oxycblt.auxio.music.Playlist
import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.music.Song
import org.oxycblt.auxio.music.info.Disc import org.oxycblt.auxio.musikr.model.Disc
import org.oxycblt.auxio.music.info.ReleaseType import org.oxycblt.auxio.musikr.model.ReleaseType
import timber.log.Timber as L import timber.log.Timber as L
interface DetailGenerator { interface DetailGenerator {

View file

@ -34,7 +34,7 @@ import org.oxycblt.auxio.detail.list.SongPropertyAdapter
import org.oxycblt.auxio.list.adapter.UpdateInstructions import org.oxycblt.auxio.list.adapter.UpdateInstructions
import org.oxycblt.auxio.music.Music import org.oxycblt.auxio.music.Music
import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.music.Song
import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.musikr.model.Name
import org.oxycblt.auxio.music.metadata.AudioProperties import org.oxycblt.auxio.music.metadata.AudioProperties
import org.oxycblt.auxio.music.resolveNames import org.oxycblt.auxio.music.resolveNames
import org.oxycblt.auxio.playback.formatDurationMs import org.oxycblt.auxio.playback.formatDurationMs

View file

@ -37,8 +37,8 @@ import org.oxycblt.auxio.list.adapter.SelectionIndicatorAdapter
import org.oxycblt.auxio.list.adapter.SimpleDiffCallback import org.oxycblt.auxio.list.adapter.SimpleDiffCallback
import org.oxycblt.auxio.music.Album import org.oxycblt.auxio.music.Album
import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.music.Song
import org.oxycblt.auxio.music.info.Disc import org.oxycblt.auxio.musikr.model.Disc
import org.oxycblt.auxio.music.info.resolveNumber import org.oxycblt.auxio.musikr.model.resolveNumber
import org.oxycblt.auxio.playback.formatDurationMs import org.oxycblt.auxio.playback.formatDurationMs
import org.oxycblt.auxio.util.context import org.oxycblt.auxio.util.context
import org.oxycblt.auxio.util.getAttrColorCompat import org.oxycblt.auxio.util.getAttrColorCompat

View file

@ -29,10 +29,10 @@ import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import org.oxycblt.auxio.image.Cover import org.oxycblt.auxio.image.Cover
import org.oxycblt.auxio.list.Item import org.oxycblt.auxio.list.Item
import org.oxycblt.auxio.music.info.Date import org.oxycblt.auxio.musikr.model.Date
import org.oxycblt.auxio.music.info.Disc import org.oxycblt.auxio.musikr.model.Disc
import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.musikr.model.Name
import org.oxycblt.auxio.music.info.ReleaseType import org.oxycblt.auxio.musikr.model.ReleaseType
import org.oxycblt.auxio.musikr.fs.MimeType import org.oxycblt.auxio.musikr.fs.MimeType
import org.oxycblt.auxio.musikr.fs.Path import org.oxycblt.auxio.musikr.fs.Path
import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment

View file

@ -25,12 +25,12 @@ import kotlinx.coroutines.Job
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import kotlinx.coroutines.yield import kotlinx.coroutines.yield
import org.oxycblt.auxio.music.MusicRepository.IndexingWorker import org.oxycblt.auxio.music.MusicRepository.IndexingWorker
import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.musikr.model.Name
import org.oxycblt.auxio.music.metadata.Separators import org.oxycblt.auxio.music.metadata.Separators
import org.oxycblt.auxio.musikr.Indexer import org.oxycblt.auxio.musikr.Indexer
import org.oxycblt.auxio.musikr.IndexingProgress import org.oxycblt.auxio.musikr.IndexingProgress
import org.oxycblt.auxio.musikr.model.Interpretation import org.oxycblt.auxio.musikr.interpret.Interpretation
import org.oxycblt.auxio.musikr.model.impl.MutableLibrary import org.oxycblt.auxio.musikr.model.MutableLibrary
import timber.log.Timber as L import timber.log.Timber as L
/** /**

View file

@ -35,7 +35,7 @@ import org.oxycblt.auxio.music.MusicRepository
import org.oxycblt.auxio.music.MusicType import org.oxycblt.auxio.music.MusicType
import org.oxycblt.auxio.music.Playlist import org.oxycblt.auxio.music.Playlist
import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.music.Song
import org.oxycblt.auxio.music.info.resolveNumber import org.oxycblt.auxio.musikr.model.resolveNumber
import org.oxycblt.auxio.search.SearchEngine import org.oxycblt.auxio.search.SearchEngine
class MusicBrowser class MusicBrowser

View file

@ -28,9 +28,9 @@ import kotlinx.coroutines.flow.buffer
import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.flowOn
import org.oxycblt.auxio.musikr.explore.Explorer import org.oxycblt.auxio.musikr.explore.Explorer
import org.oxycblt.auxio.musikr.model.Interpretation import org.oxycblt.auxio.musikr.interpret.Interpretation
import org.oxycblt.auxio.musikr.model.Modeler import org.oxycblt.auxio.musikr.interpret.Modeler
import org.oxycblt.auxio.musikr.model.impl.MutableLibrary import org.oxycblt.auxio.musikr.model.MutableLibrary
interface Indexer { interface Indexer {
suspend fun run( suspend fun run(

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2024 Auxio Project * Copyright (c) 2023 Auxio Project
* PrepareModule.kt is part of Auxio. * InterpretModule.kt is part of Auxio.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model.interpret package org.oxycblt.auxio.musikr.interpret
import dagger.Binds import dagger.Binds
import dagger.Module import dagger.Module
@ -26,5 +26,5 @@ import dagger.hilt.components.SingletonComponent
@Module @Module
@InstallIn(SingletonComponent::class) @InstallIn(SingletonComponent::class)
interface InterpretModule { interface InterpretModule {
@Binds fun prepare(factory: InterpreterImpl): Interpreter @Binds fun interpreter(interpreter: ModelerImpl): Modeler
} }

View file

@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model package org.oxycblt.auxio.musikr.interpret
import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.musikr.model.Name
import org.oxycblt.auxio.music.metadata.Separators import org.oxycblt.auxio.music.metadata.Separators
data class Interpretation(val nameFactory: Name.Known.Factory, val separators: Separators) data class Interpretation(val nameFactory: Name.Known.Factory, val separators: Separators)

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2024 Auxio Project * Copyright (c) 2024 Auxio Project
* Modeler.kt is part of Auxio. * Interpreter.kt is part of Auxio.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model package org.oxycblt.auxio.musikr.interpret
import javax.inject.Inject import javax.inject.Inject
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@ -30,19 +30,19 @@ import kotlinx.coroutines.flow.toList
import org.oxycblt.auxio.music.Music import org.oxycblt.auxio.music.Music
import org.oxycblt.auxio.musikr.tag.AudioFile import org.oxycblt.auxio.musikr.tag.AudioFile
import org.oxycblt.auxio.musikr.playlist.PlaylistFile import org.oxycblt.auxio.musikr.playlist.PlaylistFile
import org.oxycblt.auxio.musikr.model.link.AlbumLinker import org.oxycblt.auxio.musikr.interpret.link.AlbumLinker
import org.oxycblt.auxio.musikr.model.link.ArtistLinker import org.oxycblt.auxio.musikr.interpret.link.ArtistLinker
import org.oxycblt.auxio.musikr.model.link.GenreLinker import org.oxycblt.auxio.musikr.interpret.link.GenreLinker
import org.oxycblt.auxio.musikr.model.link.Linked import org.oxycblt.auxio.musikr.interpret.link.Linked
import org.oxycblt.auxio.musikr.model.link.LinkedSong import org.oxycblt.auxio.musikr.interpret.link.LinkedSong
import org.oxycblt.auxio.musikr.model.impl.AlbumImpl import org.oxycblt.auxio.musikr.model.AlbumImpl
import org.oxycblt.auxio.musikr.model.impl.ArtistImpl import org.oxycblt.auxio.musikr.model.ArtistImpl
import org.oxycblt.auxio.musikr.model.impl.GenreImpl import org.oxycblt.auxio.musikr.model.GenreImpl
import org.oxycblt.auxio.musikr.model.impl.LibraryImpl import org.oxycblt.auxio.musikr.model.LibraryImpl
import org.oxycblt.auxio.musikr.model.impl.MutableLibrary import org.oxycblt.auxio.musikr.model.MutableLibrary
import org.oxycblt.auxio.musikr.model.impl.SongImpl import org.oxycblt.auxio.musikr.model.SongImpl
import org.oxycblt.auxio.musikr.model.interpret.PreSong import org.oxycblt.auxio.musikr.interpret.prepare.PreSong
import org.oxycblt.auxio.musikr.model.interpret.Interpreter import org.oxycblt.auxio.musikr.interpret.prepare.Preparer
import timber.log.Timber as L import timber.log.Timber as L
interface Modeler { interface Modeler {
@ -53,14 +53,14 @@ interface Modeler {
): MutableLibrary ): MutableLibrary
} }
class ModelerImpl @Inject constructor(private val interpreter: Interpreter) : Modeler { class ModelerImpl @Inject constructor(private val preparer: Preparer) : Modeler {
override suspend fun model( override suspend fun model(
audioFiles: Flow<AudioFile>, audioFiles: Flow<AudioFile>,
playlistFiles: Flow<PlaylistFile>, playlistFiles: Flow<PlaylistFile>,
interpretation: Interpretation interpretation: Interpretation
): MutableLibrary { ): MutableLibrary {
val preSongs = val preSongs =
interpreter preparer
.interpret(audioFiles, interpretation) .interpret(audioFiles, interpretation)
.flowOn(Dispatchers.Main) .flowOn(Dispatchers.Main)
.buffer(Channel.UNLIMITED) .buffer(Channel.UNLIMITED)

View file

@ -16,13 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model.link package org.oxycblt.auxio.musikr.interpret.link
import java.util.UUID import java.util.UUID
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import org.oxycblt.auxio.musikr.model.impl.AlbumImpl import org.oxycblt.auxio.musikr.model.AlbumImpl
import org.oxycblt.auxio.musikr.model.impl.SongImpl import org.oxycblt.auxio.musikr.model.SongImpl
class AlbumLinker { class AlbumLinker {
private val tree = mutableMapOf<String?, MutableMap<UUID?, AlbumLink>>() private val tree = mutableMapOf<String?, MutableMap<UUID?, AlbumLink>>()

View file

@ -16,17 +16,17 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model.link package org.oxycblt.auxio.musikr.interpret.link
import java.util.UUID import java.util.UUID
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import org.oxycblt.auxio.music.Music import org.oxycblt.auxio.music.Music
import org.oxycblt.auxio.musikr.model.impl.AlbumImpl import org.oxycblt.auxio.musikr.model.AlbumImpl
import org.oxycblt.auxio.musikr.model.impl.ArtistImpl import org.oxycblt.auxio.musikr.model.ArtistImpl
import org.oxycblt.auxio.musikr.model.impl.SongImpl import org.oxycblt.auxio.musikr.model.SongImpl
import org.oxycblt.auxio.musikr.model.interpret.PreAlbum import org.oxycblt.auxio.musikr.interpret.prepare.PreAlbum
import org.oxycblt.auxio.musikr.model.interpret.PreArtist import org.oxycblt.auxio.musikr.interpret.prepare.PreArtist
class ArtistLinker { class ArtistLinker {
private val tree = mutableMapOf<String?, MutableMap<UUID?, ArtistLink>>() private val tree = mutableMapOf<String?, MutableMap<UUID?, ArtistLink>>()

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model.link package org.oxycblt.auxio.musikr.interpret.link
class Contribution<T> { class Contribution<T> {
private val map = mutableMapOf<T, Int>() private val map = mutableMapOf<T, Int>()

View file

@ -16,14 +16,14 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model.link package org.oxycblt.auxio.musikr.interpret.link
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import org.oxycblt.auxio.musikr.model.impl.GenreImpl import org.oxycblt.auxio.musikr.model.GenreImpl
import org.oxycblt.auxio.musikr.model.impl.SongImpl import org.oxycblt.auxio.musikr.model.SongImpl
import org.oxycblt.auxio.musikr.model.interpret.PreGenre import org.oxycblt.auxio.musikr.interpret.prepare.PreGenre
import org.oxycblt.auxio.musikr.model.interpret.PreSong import org.oxycblt.auxio.musikr.interpret.prepare.PreSong
class GenreLinker { class GenreLinker {
private val tree = mutableMapOf<String?, GenreLink>() private val tree = mutableMapOf<String?, GenreLink>()

View file

@ -16,16 +16,16 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model.link package org.oxycblt.auxio.musikr.interpret.link
import org.oxycblt.auxio.musikr.model.impl.AlbumImpl import org.oxycblt.auxio.musikr.model.AlbumImpl
import org.oxycblt.auxio.musikr.model.impl.ArtistImpl import org.oxycblt.auxio.musikr.model.ArtistImpl
import org.oxycblt.auxio.musikr.model.impl.GenreImpl import org.oxycblt.auxio.musikr.model.GenreImpl
import org.oxycblt.auxio.musikr.model.impl.PlaylistImpl import org.oxycblt.auxio.musikr.model.PlaylistImpl
import org.oxycblt.auxio.musikr.model.impl.SongImpl import org.oxycblt.auxio.musikr.model.SongImpl
import org.oxycblt.auxio.musikr.model.interpret.PreAlbum import org.oxycblt.auxio.musikr.interpret.prepare.PreAlbum
import org.oxycblt.auxio.musikr.model.interpret.PrePlaylist import org.oxycblt.auxio.musikr.interpret.prepare.PrePlaylist
import org.oxycblt.auxio.musikr.model.interpret.PreSong import org.oxycblt.auxio.musikr.interpret.prepare.PreSong
interface LinkedSong { interface LinkedSong {
val preSong: PreSong val preSong: PreSong

View file

@ -16,12 +16,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model.link package org.oxycblt.auxio.musikr.interpret.link
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.emptyFlow import kotlinx.coroutines.flow.emptyFlow
import org.oxycblt.auxio.musikr.playlist.PlaylistFile import org.oxycblt.auxio.musikr.playlist.PlaylistFile
import org.oxycblt.auxio.musikr.model.impl.PlaylistImpl import org.oxycblt.auxio.musikr.model.PlaylistImpl
class PlaylistLinker { class PlaylistLinker {
fun register( fun register(

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model.interpret package org.oxycblt.auxio.musikr.interpret.prepare
/// --- ID3v2 PARSING --- /// --- ID3v2 PARSING ---

View file

@ -16,16 +16,16 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model.interpret package org.oxycblt.auxio.musikr.interpret.prepare
import android.net.Uri import android.net.Uri
import java.util.UUID import java.util.UUID
import org.oxycblt.auxio.music.Music import org.oxycblt.auxio.music.Music
import org.oxycblt.auxio.music.MusicType import org.oxycblt.auxio.music.MusicType
import org.oxycblt.auxio.music.info.Date import org.oxycblt.auxio.musikr.model.Date
import org.oxycblt.auxio.music.info.Disc import org.oxycblt.auxio.musikr.model.Disc
import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.musikr.model.Name
import org.oxycblt.auxio.music.info.ReleaseType import org.oxycblt.auxio.musikr.model.ReleaseType
import org.oxycblt.auxio.musikr.playlist.PlaylistHandle import org.oxycblt.auxio.musikr.playlist.PlaylistHandle
import org.oxycblt.auxio.musikr.fs.MimeType import org.oxycblt.auxio.musikr.fs.MimeType
import org.oxycblt.auxio.musikr.fs.Path import org.oxycblt.auxio.musikr.fs.Path

View file

@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2023 Auxio Project * Copyright (c) 2024 Auxio Project
* InterpretModule.kt is part of Auxio. * PrepareModule.kt is part of Auxio.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model package org.oxycblt.auxio.musikr.interpret.prepare
import dagger.Binds import dagger.Binds
import dagger.Module import dagger.Module
@ -25,6 +25,6 @@ import dagger.hilt.components.SingletonComponent
@Module @Module
@InstallIn(SingletonComponent::class) @InstallIn(SingletonComponent::class)
interface ModelModule { interface PrepareModule {
@Binds fun interpreter(interpreter: ModelerImpl): Modeler @Binds fun prepare(factory: PreparerImpl): Preparer
} }

View file

@ -16,26 +16,26 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model.interpret package org.oxycblt.auxio.musikr.interpret.prepare
import javax.inject.Inject import javax.inject.Inject
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import org.oxycblt.auxio.R import org.oxycblt.auxio.R
import org.oxycblt.auxio.music.info.Disc import org.oxycblt.auxio.musikr.model.Disc
import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.musikr.model.Name
import org.oxycblt.auxio.music.info.ReleaseType import org.oxycblt.auxio.musikr.model.ReleaseType
import org.oxycblt.auxio.musikr.tag.AudioFile import org.oxycblt.auxio.musikr.tag.AudioFile
import org.oxycblt.auxio.musikr.fs.MimeType import org.oxycblt.auxio.musikr.fs.MimeType
import org.oxycblt.auxio.musikr.model.Interpretation import org.oxycblt.auxio.musikr.interpret.Interpretation
import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment
import org.oxycblt.auxio.util.toUuidOrNull import org.oxycblt.auxio.util.toUuidOrNull
interface Interpreter { interface Preparer {
fun interpret(audioFiles: Flow<AudioFile>, interpretation: Interpretation): Flow<PreSong> fun interpret(audioFiles: Flow<AudioFile>, interpretation: Interpretation): Flow<PreSong>
} }
class InterpreterImpl @Inject constructor() : Interpreter { class PreparerImpl @Inject constructor() : Preparer {
override fun interpret(audioFiles: Flow<AudioFile>, interpretation: Interpretation) = override fun interpret(audioFiles: Flow<AudioFile>, interpretation: Interpretation) =
audioFiles.map { audioFile -> audioFiles.map { audioFile ->
val individualPreArtists = val individualPreArtists =

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.music.info package org.oxycblt.auxio.musikr.model
import android.content.Context import android.content.Context
import java.text.ParseException import java.text.ParseException

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model.impl package org.oxycblt.auxio.musikr.model
import kotlin.math.min import kotlin.math.min
import org.oxycblt.auxio.image.Cover import org.oxycblt.auxio.image.Cover
@ -27,11 +27,10 @@ import org.oxycblt.auxio.music.Genre
import org.oxycblt.auxio.music.Music import org.oxycblt.auxio.music.Music
import org.oxycblt.auxio.music.MusicType import org.oxycblt.auxio.music.MusicType
import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.music.Song
import org.oxycblt.auxio.music.info.Date import org.oxycblt.auxio.musikr.interpret.link.LinkedAlbum
import org.oxycblt.auxio.musikr.model.link.LinkedAlbum import org.oxycblt.auxio.musikr.interpret.link.LinkedSong
import org.oxycblt.auxio.musikr.model.link.LinkedSong import org.oxycblt.auxio.musikr.interpret.prepare.PreArtist
import org.oxycblt.auxio.musikr.model.interpret.PreArtist import org.oxycblt.auxio.musikr.interpret.prepare.PreGenre
import org.oxycblt.auxio.musikr.model.interpret.PreGenre
import org.oxycblt.auxio.util.update import org.oxycblt.auxio.util.update
/** /**

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.music.info package org.oxycblt.auxio.musikr.model
import android.content.Context import android.content.Context
import org.oxycblt.auxio.R import org.oxycblt.auxio.R

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model.impl package org.oxycblt.auxio.musikr.model
import org.oxycblt.auxio.music.Library import org.oxycblt.auxio.music.Library
import org.oxycblt.auxio.music.Music import org.oxycblt.auxio.music.Music

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.music.info package org.oxycblt.auxio.musikr.model
import android.content.Context import android.content.Context
import androidx.annotation.StringRes import androidx.annotation.StringRes

View file

@ -16,12 +16,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.musikr.model.impl package org.oxycblt.auxio.musikr.model
import org.oxycblt.auxio.image.Cover import org.oxycblt.auxio.image.Cover
import org.oxycblt.auxio.music.Playlist import org.oxycblt.auxio.music.Playlist
import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.musikr.interpret.link.LinkedPlaylist
import org.oxycblt.auxio.musikr.model.link.LinkedPlaylist
class PlaylistImpl(linkedPlaylist: LinkedPlaylist) : Playlist { class PlaylistImpl(linkedPlaylist: LinkedPlaylist) : Playlist {
private val prePlaylist = linkedPlaylist.prePlaylist private val prePlaylist = linkedPlaylist.prePlaylist

View file

@ -16,10 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package org.oxycblt.auxio.music.info package org.oxycblt.auxio.musikr.model
import org.oxycblt.auxio.R import org.oxycblt.auxio.R
import org.oxycblt.auxio.music.info.ReleaseType.Album import org.oxycblt.auxio.musikr.model.ReleaseType.Album
/** /**
* The type of release an [Album] is considered. This includes EPs, Singles, Compilations, etc. * The type of release an [Album] is considered. This includes EPs, Singles, Compilations, etc.

View file

@ -1,6 +1,6 @@
package org.oxycblt.auxio.musikr.tag package org.oxycblt.auxio.musikr.tag
import org.oxycblt.auxio.music.info.Date import org.oxycblt.auxio.musikr.model.Date
import org.oxycblt.auxio.musikr.fs.DeviceFile import org.oxycblt.auxio.musikr.fs.DeviceFile
data class AudioFile( data class AudioFile(

View file

@ -28,7 +28,7 @@ import androidx.room.Query
import androidx.room.RoomDatabase import androidx.room.RoomDatabase
import androidx.room.TypeConverter import androidx.room.TypeConverter
import androidx.room.TypeConverters import androidx.room.TypeConverters
import org.oxycblt.auxio.music.info.Date import org.oxycblt.auxio.musikr.model.Date
import org.oxycblt.auxio.musikr.tag.AudioFile import org.oxycblt.auxio.musikr.tag.AudioFile
import org.oxycblt.auxio.musikr.fs.DeviceFile import org.oxycblt.auxio.musikr.fs.DeviceFile
import org.oxycblt.auxio.musikr.tag.extractor.correctWhitespace import org.oxycblt.auxio.musikr.tag.extractor.correctWhitespace

View file

@ -19,7 +19,7 @@
package org.oxycblt.auxio.musikr.tag.extractor package org.oxycblt.auxio.musikr.tag.extractor
import androidx.core.text.isDigitsOnly import androidx.core.text.isDigitsOnly
import org.oxycblt.auxio.music.info.Date import org.oxycblt.auxio.musikr.model.Date
import org.oxycblt.auxio.util.nonZeroOrNull import org.oxycblt.auxio.util.nonZeroOrNull
// Song // Song

View file

@ -38,7 +38,7 @@ import org.oxycblt.auxio.music.MusicParent
import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.auxio.music.MusicRepository
import org.oxycblt.auxio.music.Playlist import org.oxycblt.auxio.music.Playlist
import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.music.Song
import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.musikr.model.Name
import org.oxycblt.auxio.music.service.MediaSessionUID import org.oxycblt.auxio.music.service.MediaSessionUID
import org.oxycblt.auxio.music.service.MusicBrowser import org.oxycblt.auxio.music.service.MusicBrowser
import org.oxycblt.auxio.playback.state.PlaybackCommand import org.oxycblt.auxio.playback.state.PlaybackCommand

View file

@ -28,7 +28,7 @@ import org.oxycblt.auxio.music.Genre
import org.oxycblt.auxio.music.Music import org.oxycblt.auxio.music.Music
import org.oxycblt.auxio.music.Playlist import org.oxycblt.auxio.music.Playlist
import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.music.Song
import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.musikr.model.Name
import timber.log.Timber as L import timber.log.Timber as L
/** /**

View file

@ -22,7 +22,7 @@ import java.security.MessageDigest
import java.util.UUID import java.util.UUID
import kotlin.reflect.KClass import kotlin.reflect.KClass
import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.BuildConfig
import org.oxycblt.auxio.music.info.Date import org.oxycblt.auxio.musikr.model.Date
/** /**
* Sanitizes a value that is unlikely to be null. On debug builds, this aliases to [requireNotNull], * Sanitizes a value that is unlikely to be null. On debug builds, this aliases to [requireNotNull],

View file

@ -21,6 +21,7 @@ package org.oxycblt.auxio.music.info
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue import org.junit.Assert.assertTrue
import org.junit.Test import org.junit.Test
import org.oxycblt.auxio.musikr.model.Date
class DateTest { class DateTest {
@Test @Test

View file

@ -20,6 +20,7 @@ package org.oxycblt.auxio.music.info
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Test import org.junit.Test
import org.oxycblt.auxio.musikr.model.Disc
class DiscTest { class DiscTest {
@Test @Test

View file

@ -21,6 +21,8 @@ package org.oxycblt.auxio.music.info
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotEquals import org.junit.Assert.assertNotEquals
import org.junit.Test import org.junit.Test
import org.oxycblt.auxio.musikr.model.Name
import org.oxycblt.auxio.musikr.model.SortToken
class NameTest { class NameTest {
@Test @Test

View file

@ -20,6 +20,7 @@ package org.oxycblt.auxio.music.info
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Test import org.junit.Test
import org.oxycblt.auxio.musikr.model.ReleaseType
class ReleaseTypeTest { class ReleaseTypeTest {
@Test @Test

View file

@ -24,7 +24,7 @@ import org.oxycblt.auxio.musikr.tag.extractor.correctWhitespace
import org.oxycblt.auxio.musikr.tag.extractor.parseId3v2PositionField import org.oxycblt.auxio.musikr.tag.extractor.parseId3v2PositionField
import org.oxycblt.auxio.musikr.tag.extractor.parseVorbisPositionField import org.oxycblt.auxio.musikr.tag.extractor.parseVorbisPositionField
import org.oxycblt.auxio.musikr.tag.extractor.splitEscaped import org.oxycblt.auxio.musikr.tag.extractor.splitEscaped
import org.oxycblt.auxio.musikr.model.interpret.parseId3GenreNames import org.oxycblt.auxio.musikr.interpret.prepare.parseId3GenreNames
class TagUtilTest { class TagUtilTest {
@Test @Test