From 523d3cdd3070c3d98e5a7f944abcfba462accb94 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Sat, 30 Nov 2024 17:05:13 -0700 Subject: [PATCH] musikr: flatten modules --- .../java/org/oxycblt/auxio/music/Music.kt | 4 +- .../oxycblt/auxio/music/MusicRepository.kt | 4 +- .../org/oxycblt/auxio/music/MusicSettings.kt | 2 +- .../music/external/ExternalPlaylistManager.kt | 8 +- .../org/oxycblt/auxio/music/external/M3U.kt | 10 +-- .../auxio/music/locations/LocationAdapter.kt | 2 +- .../music/locations/MusicSourcesDialog.kt | 2 +- .../auxio/music/metadata/AudioProperties.kt | 2 +- .../auxio/music/metadata/Separators.kt | 4 +- .../music/service/SystemContentObserver.kt | 2 +- .../java/org/oxycblt/auxio/musikr/Indexer.kt | 10 +-- .../oxycblt/auxio/musikr/explore/Explorer.kt | 13 +-- .../org/oxycblt/auxio/musikr/explore/Files.kt | 81 ------------------- .../org/oxycblt/auxio/musikr/fs/DeviceFile.kt | 30 +++++++ .../musikr/{explore => }/fs/DeviceFiles.kt | 3 +- .../{explore => }/fs/DocumentPathFactory.kt | 2 +- .../auxio/musikr/{explore => }/fs/Fs.kt | 2 +- .../auxio/musikr/{explore => }/fs/FsModule.kt | 2 +- .../fs/MediaStorePathInterpreter.kt | 2 +- .../musikr/{explore => }/fs/StorageUtil.kt | 2 +- .../auxio/musikr/metadata/AudioMetadata.kt | 11 +++ .../musikr/metadata/MetadataExtractor.kt | 8 ++ .../{interpret => model}/Interpretation.kt | 2 +- .../PrepareModule.kt => model/ModelModule.kt} | 10 +-- .../Interpreter.kt => model/Modeler.kt} | 46 +++++------ .../model => model/impl}/DeviceMusicImpl.kt | 10 +-- .../model => model/impl}/Library.kt | 4 +- .../model => model/impl}/PlaylistImpl.kt | 4 +- .../prepare => model/interpret}/ID3Genre.kt | 2 +- .../{ => model}/interpret/InterpretModule.kt | 8 +- .../interpret/Interpreter.kt} | 16 ++-- .../prepare => model/interpret}/PreMusic.kt | 8 +- .../linker => model/link}/AlbumLinker.kt | 6 +- .../linker => model/link}/ArtistLinker.kt | 12 +-- .../linker => model/link}/Contribution.kt | 2 +- .../linker => model/link}/GenreLinker.kt | 10 +-- .../linker => model/link}/LinkedMusic.kt | 18 ++--- .../linker => model/link}/PlaylistLinker.kt | 6 +- .../auxio/musikr/playlist/PlaylistFile.kt | 27 +++++++ .../db}/PlaylistDatabase.kt | 2 +- .../playlists => playlist/db}/RawPlaylist.kt | 2 +- .../db}/StoredPlaylists.kt | 4 +- .../playlists => playlist/db}/UserModule.kt | 2 +- .../org/oxycblt/auxio/musikr/tag/AudioFile.kt | 29 +++++++ .../musikr/{explore => tag}/cache/TagCache.kt | 6 +- .../{explore => tag}/cache/TagCacheModule.kt | 2 +- .../{explore => tag}/cache/TagDatabase.kt | 10 +-- .../extractor/ExtractorModule.kt | 2 +- .../extractor/TagExtractor.kt | 6 +- .../{explore => tag}/extractor/TagFields.kt | 2 +- .../{explore => tag}/extractor/TagUtil.kt | 2 +- .../{explore => tag}/extractor/TextTags.kt | 2 +- .../auxio/music/metadata/TagUtilTest.kt | 10 +-- .../auxio/music/metadata/TextTagsTest.kt | 2 +- 54 files changed, 253 insertions(+), 227 deletions(-) delete mode 100644 app/src/main/java/org/oxycblt/auxio/musikr/explore/Files.kt create mode 100644 app/src/main/java/org/oxycblt/auxio/musikr/fs/DeviceFile.kt rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => }/fs/DeviceFiles.kt (98%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => }/fs/DocumentPathFactory.kt (99%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => }/fs/Fs.kt (99%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => }/fs/FsModule.kt (97%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => }/fs/MediaStorePathInterpreter.kt (99%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => }/fs/StorageUtil.kt (99%) create mode 100644 app/src/main/java/org/oxycblt/auxio/musikr/metadata/AudioMetadata.kt create mode 100644 app/src/main/java/org/oxycblt/auxio/musikr/metadata/MetadataExtractor.kt rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret => model}/Interpretation.kt (95%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/prepare/PrepareModule.kt => model/ModelModule.kt} (80%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/Interpreter.kt => model/Modeler.kt} (75%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/model => model/impl}/DeviceMusicImpl.kt (96%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/model => model/impl}/Library.kt (96%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/model => model/impl}/PlaylistImpl.kt (93%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/prepare => model/interpret}/ID3Genre.kt (99%) rename app/src/main/java/org/oxycblt/auxio/musikr/{ => model}/interpret/InterpretModule.kt (81%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/prepare/Preparer.kt => model/interpret/Interpreter.kt} (93%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/prepare => model/interpret}/PreMusic.kt (93%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/linker => model/link}/AlbumLinker.kt (95%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/linker => model/link}/ArtistLinker.kt (93%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/linker => model/link}/Contribution.kt (95%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/linker => model/link}/GenreLinker.kt (89%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/linker => model/link}/LinkedMusic.kt (69%) rename app/src/main/java/org/oxycblt/auxio/musikr/{interpret/linker => model/link}/PlaylistLinker.kt (86%) create mode 100644 app/src/main/java/org/oxycblt/auxio/musikr/playlist/PlaylistFile.kt rename app/src/main/java/org/oxycblt/auxio/musikr/{explore/playlists => playlist/db}/PlaylistDatabase.kt (98%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore/playlists => playlist/db}/RawPlaylist.kt (97%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore/playlists => playlist/db}/StoredPlaylists.kt (92%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore/playlists => playlist/db}/UserModule.kt (96%) create mode 100644 app/src/main/java/org/oxycblt/auxio/musikr/tag/AudioFile.kt rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => tag}/cache/TagCache.kt (92%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => tag}/cache/TagCacheModule.kt (97%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => tag}/cache/TagDatabase.kt (95%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => tag}/extractor/ExtractorModule.kt (95%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => tag}/extractor/TagExtractor.kt (98%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => tag}/extractor/TagFields.kt (99%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => tag}/extractor/TagUtil.kt (98%) rename app/src/main/java/org/oxycblt/auxio/musikr/{explore => tag}/extractor/TextTags.kt (98%) diff --git a/app/src/main/java/org/oxycblt/auxio/music/Music.kt b/app/src/main/java/org/oxycblt/auxio/music/Music.kt index 272f34463..0a4b54acd 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/Music.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/Music.kt @@ -33,8 +33,8 @@ import org.oxycblt.auxio.music.info.Date import org.oxycblt.auxio.music.info.Disc import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.music.info.ReleaseType -import org.oxycblt.auxio.musikr.explore.fs.MimeType -import org.oxycblt.auxio.musikr.explore.fs.Path +import org.oxycblt.auxio.musikr.fs.MimeType +import org.oxycblt.auxio.musikr.fs.Path import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment import org.oxycblt.auxio.util.concatLocalized import org.oxycblt.auxio.util.toUuidOrNull diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt index 33eebd8c0..aa63af107 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt @@ -29,8 +29,8 @@ import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.music.metadata.Separators import org.oxycblt.auxio.musikr.Indexer import org.oxycblt.auxio.musikr.IndexingProgress -import org.oxycblt.auxio.musikr.interpret.Interpretation -import org.oxycblt.auxio.musikr.interpret.model.MutableLibrary +import org.oxycblt.auxio.musikr.model.Interpretation +import org.oxycblt.auxio.musikr.model.impl.MutableLibrary import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicSettings.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicSettings.kt index 5b26c54ae..d65a0f986 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicSettings.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicSettings.kt @@ -24,7 +24,7 @@ import androidx.core.content.edit import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject import org.oxycblt.auxio.R -import org.oxycblt.auxio.musikr.explore.fs.DocumentPathFactory +import org.oxycblt.auxio.musikr.fs.DocumentPathFactory import org.oxycblt.auxio.settings.Settings import timber.log.Timber as L diff --git a/app/src/main/java/org/oxycblt/auxio/music/external/ExternalPlaylistManager.kt b/app/src/main/java/org/oxycblt/auxio/music/external/ExternalPlaylistManager.kt index 9cae2c483..c071af76f 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/external/ExternalPlaylistManager.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/external/ExternalPlaylistManager.kt @@ -23,10 +23,10 @@ import android.net.Uri import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject import org.oxycblt.auxio.music.Playlist -import org.oxycblt.auxio.musikr.explore.fs.Components -import org.oxycblt.auxio.musikr.explore.fs.DocumentPathFactory -import org.oxycblt.auxio.musikr.explore.fs.Path -import org.oxycblt.auxio.musikr.explore.fs.contentResolverSafe +import org.oxycblt.auxio.musikr.fs.Components +import org.oxycblt.auxio.musikr.fs.DocumentPathFactory +import org.oxycblt.auxio.musikr.fs.Path +import org.oxycblt.auxio.musikr.fs.contentResolverSafe import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/music/external/M3U.kt b/app/src/main/java/org/oxycblt/auxio/music/external/M3U.kt index c4447afec..0d6efb0a7 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/external/M3U.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/external/M3U.kt @@ -28,11 +28,11 @@ import java.io.OutputStream import javax.inject.Inject import org.oxycblt.auxio.music.Playlist import org.oxycblt.auxio.music.resolveNames -import org.oxycblt.auxio.musikr.explore.extractor.correctWhitespace -import org.oxycblt.auxio.musikr.explore.fs.Components -import org.oxycblt.auxio.musikr.explore.fs.Path -import org.oxycblt.auxio.musikr.explore.fs.Volume -import org.oxycblt.auxio.musikr.explore.fs.VolumeManager +import org.oxycblt.auxio.musikr.tag.extractor.correctWhitespace +import org.oxycblt.auxio.musikr.fs.Components +import org.oxycblt.auxio.musikr.fs.Path +import org.oxycblt.auxio.musikr.fs.Volume +import org.oxycblt.auxio.musikr.fs.VolumeManager import org.oxycblt.auxio.util.unlikelyToBeNull import timber.log.Timber as L diff --git a/app/src/main/java/org/oxycblt/auxio/music/locations/LocationAdapter.kt b/app/src/main/java/org/oxycblt/auxio/music/locations/LocationAdapter.kt index 25127f9b5..771b2eb1b 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/locations/LocationAdapter.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/locations/LocationAdapter.kt @@ -24,7 +24,7 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import org.oxycblt.auxio.databinding.ItemMusicLocationBinding import org.oxycblt.auxio.list.recycler.DialogRecyclerView -import org.oxycblt.auxio.musikr.explore.fs.Path +import org.oxycblt.auxio.musikr.fs.Path import org.oxycblt.auxio.util.context import org.oxycblt.auxio.util.inflater import timber.log.Timber as L diff --git a/app/src/main/java/org/oxycblt/auxio/music/locations/MusicSourcesDialog.kt b/app/src/main/java/org/oxycblt/auxio/music/locations/MusicSourcesDialog.kt index 45285966e..fb1e61580 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/locations/MusicSourcesDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/locations/MusicSourcesDialog.kt @@ -36,7 +36,7 @@ import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.DialogMusicLocationsBinding import org.oxycblt.auxio.music.MusicSettings -import org.oxycblt.auxio.musikr.explore.fs.DocumentPathFactory +import org.oxycblt.auxio.musikr.fs.DocumentPathFactory import org.oxycblt.auxio.ui.ViewBindingMaterialDialogFragment import org.oxycblt.auxio.util.showToast import timber.log.Timber as L diff --git a/app/src/main/java/org/oxycblt/auxio/music/metadata/AudioProperties.kt b/app/src/main/java/org/oxycblt/auxio/music/metadata/AudioProperties.kt index bb51156f7..ed523a46a 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/metadata/AudioProperties.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/metadata/AudioProperties.kt @@ -24,7 +24,7 @@ import android.media.MediaFormat import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject import org.oxycblt.auxio.music.Song -import org.oxycblt.auxio.musikr.explore.fs.MimeType +import org.oxycblt.auxio.musikr.fs.MimeType import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/music/metadata/Separators.kt b/app/src/main/java/org/oxycblt/auxio/music/metadata/Separators.kt index c0b65a3b5..552d25d00 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/metadata/Separators.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/metadata/Separators.kt @@ -18,8 +18,8 @@ package org.oxycblt.auxio.music.metadata -import org.oxycblt.auxio.musikr.explore.extractor.correctWhitespace -import org.oxycblt.auxio.musikr.explore.extractor.splitEscaped +import org.oxycblt.auxio.musikr.tag.extractor.correctWhitespace +import org.oxycblt.auxio.musikr.tag.extractor.splitEscaped /** * Defines the user-specified parsing of multi-value tags. This should be used to parse any tags diff --git a/app/src/main/java/org/oxycblt/auxio/music/service/SystemContentObserver.kt b/app/src/main/java/org/oxycblt/auxio/music/service/SystemContentObserver.kt index c2e648b9e..67f8bd0a3 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/service/SystemContentObserver.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/service/SystemContentObserver.kt @@ -27,7 +27,7 @@ import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject import org.oxycblt.auxio.music.MusicRepository import org.oxycblt.auxio.music.MusicSettings -import org.oxycblt.auxio.musikr.explore.fs.contentResolverSafe +import org.oxycblt.auxio.musikr.fs.contentResolverSafe import timber.log.Timber as L /** diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/Indexer.kt b/app/src/main/java/org/oxycblt/auxio/musikr/Indexer.kt index 7c2fde9bb..9944021d7 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/Indexer.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/Indexer.kt @@ -28,9 +28,9 @@ import kotlinx.coroutines.flow.buffer import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOn import org.oxycblt.auxio.musikr.explore.Explorer -import org.oxycblt.auxio.musikr.interpret.Interpretation -import org.oxycblt.auxio.musikr.interpret.Interpreter -import org.oxycblt.auxio.musikr.interpret.model.MutableLibrary +import org.oxycblt.auxio.musikr.model.Interpretation +import org.oxycblt.auxio.musikr.model.Modeler +import org.oxycblt.auxio.musikr.model.impl.MutableLibrary interface Indexer { suspend fun run( @@ -53,7 +53,7 @@ sealed interface IndexingProgress { class IndexerImpl @Inject -constructor(private val explorer: Explorer, private val interpreter: Interpreter) : Indexer { +constructor(private val explorer: Explorer, private val modeler: Modeler) : Indexer { override suspend fun run( uris: List, interpretation: Interpretation, @@ -68,7 +68,7 @@ constructor(private val explorer: Explorer, private val interpreter: Interpreter .flowOn(Dispatchers.IO) .buffer(Channel.UNLIMITED) val playlistFiles = files.playlists.flowOn(Dispatchers.IO).buffer(Channel.UNLIMITED) - interpreter.interpret(audioFiles, playlistFiles, interpretation) + modeler.model(audioFiles, playlistFiles, interpretation) } private fun Flow.cap(start: suspend () -> Unit, end: suspend () -> Unit): Flow = diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/Explorer.kt b/app/src/main/java/org/oxycblt/auxio/musikr/explore/Explorer.kt index e7c612ccf..eb6d5618e 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/Explorer.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/explore/Explorer.kt @@ -34,11 +34,14 @@ import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.receiveAsFlow import kotlinx.coroutines.flow.withIndex import org.oxycblt.auxio.musikr.IndexingProgress -import org.oxycblt.auxio.musikr.explore.cache.CacheResult -import org.oxycblt.auxio.musikr.explore.cache.TagCache -import org.oxycblt.auxio.musikr.explore.extractor.TagExtractor -import org.oxycblt.auxio.musikr.explore.fs.DeviceFiles -import org.oxycblt.auxio.musikr.explore.playlists.StoredPlaylists +import org.oxycblt.auxio.musikr.fs.DeviceFile +import org.oxycblt.auxio.musikr.tag.cache.CacheResult +import org.oxycblt.auxio.musikr.tag.cache.TagCache +import org.oxycblt.auxio.musikr.tag.extractor.TagExtractor +import org.oxycblt.auxio.musikr.fs.DeviceFiles +import org.oxycblt.auxio.musikr.playlist.db.StoredPlaylists +import org.oxycblt.auxio.musikr.playlist.PlaylistFile +import org.oxycblt.auxio.musikr.tag.AudioFile import timber.log.Timber interface Explorer { diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/Files.kt b/app/src/main/java/org/oxycblt/auxio/musikr/explore/Files.kt deleted file mode 100644 index 77c8e7a6f..000000000 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/Files.kt +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2023 Auxio Project - * Files.kt is part of Auxio. - * - * 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 - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package org.oxycblt.auxio.musikr.explore - -import android.net.Uri -import org.oxycblt.auxio.music.Music -import org.oxycblt.auxio.music.Song -import org.oxycblt.auxio.music.info.Date -import org.oxycblt.auxio.musikr.explore.fs.Path - -data class DeviceFile( - val uri: Uri, - val mimeType: String, - val path: Path, - val size: Long, - val lastModified: Long -) - -data class AudioFile( - val deviceFile: DeviceFile, - val durationMs: Long, - val replayGainTrackAdjustment: Float? = null, - val replayGainAlbumAdjustment: Float? = null, - val musicBrainzId: String? = null, - val name: String, - val sortName: String? = null, - val track: Int? = null, - val disc: Int? = null, - val subtitle: String? = null, - val date: Date? = null, - val albumMusicBrainzId: String? = null, - val albumName: String? = null, - val albumSortName: String? = null, - val releaseTypes: List = listOf(), - val artistMusicBrainzIds: List = listOf(), - val artistNames: List = listOf(), - val artistSortNames: List = listOf(), - val albumArtistMusicBrainzIds: List = listOf(), - val albumArtistNames: List = listOf(), - val albumArtistSortNames: List = listOf(), - val genreNames: List = listOf() -) - -data class PlaylistFile( - val name: String, - val songPointers: List, - val editor: PlaylistHandle -) - -interface PlaylistHandle { - val uid: Music.UID - - suspend fun rename(name: String) - - suspend fun add(songs: List) - - suspend fun rewrite(songs: List) - - suspend fun delete() -} - -sealed interface SongPointer { - data class UID(val uid: Music.UID) : SongPointer - // data class Path(val options: List) : SongPointer -} diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/fs/DeviceFile.kt b/app/src/main/java/org/oxycblt/auxio/musikr/fs/DeviceFile.kt new file mode 100644 index 000000000..d19d44522 --- /dev/null +++ b/app/src/main/java/org/oxycblt/auxio/musikr/fs/DeviceFile.kt @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2023 Auxio Project + * DeviceFile.kt is part of Auxio. + * + * 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package org.oxycblt.auxio.musikr.fs + +import android.net.Uri + +data class DeviceFile( + val uri: Uri, + val mimeType: String, + val path: Path, + val size: Long, + val lastModified: Long +) + diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/DeviceFiles.kt b/app/src/main/java/org/oxycblt/auxio/musikr/fs/DeviceFiles.kt similarity index 98% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/DeviceFiles.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/fs/DeviceFiles.kt index 32b028c31..8eaaf6a7d 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/DeviceFiles.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/fs/DeviceFiles.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.fs +package org.oxycblt.auxio.musikr.fs import android.content.ContentResolver import android.content.Context @@ -31,7 +31,6 @@ import kotlinx.coroutines.flow.emitAll import kotlinx.coroutines.flow.flatMapMerge import kotlinx.coroutines.flow.flattenMerge import kotlinx.coroutines.flow.flow -import org.oxycblt.auxio.musikr.explore.DeviceFile import timber.log.Timber interface DeviceFiles { diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/DocumentPathFactory.kt b/app/src/main/java/org/oxycblt/auxio/musikr/fs/DocumentPathFactory.kt similarity index 99% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/DocumentPathFactory.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/fs/DocumentPathFactory.kt index 224ef78f3..c30d7969a 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/DocumentPathFactory.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/fs/DocumentPathFactory.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.fs +package org.oxycblt.auxio.musikr.fs import android.content.ContentUris import android.content.Context diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/Fs.kt b/app/src/main/java/org/oxycblt/auxio/musikr/fs/Fs.kt similarity index 99% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/Fs.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/fs/Fs.kt index dd8bffcaf..421747767 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/Fs.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/fs/Fs.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.fs +package org.oxycblt.auxio.musikr.fs import android.content.Context import android.media.MediaFormat diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/FsModule.kt b/app/src/main/java/org/oxycblt/auxio/musikr/fs/FsModule.kt similarity index 97% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/FsModule.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/fs/FsModule.kt index 9063dca20..2b0a02360 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/FsModule.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/fs/FsModule.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.fs +package org.oxycblt.auxio.musikr.fs import android.content.ContentResolver import android.content.Context diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/MediaStorePathInterpreter.kt b/app/src/main/java/org/oxycblt/auxio/musikr/fs/MediaStorePathInterpreter.kt similarity index 99% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/MediaStorePathInterpreter.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/fs/MediaStorePathInterpreter.kt index 1e7ec27c4..2b7715505 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/MediaStorePathInterpreter.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/fs/MediaStorePathInterpreter.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.fs +package org.oxycblt.auxio.musikr.fs import android.database.Cursor import android.os.Build diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/StorageUtil.kt b/app/src/main/java/org/oxycblt/auxio/musikr/fs/StorageUtil.kt similarity index 99% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/StorageUtil.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/fs/StorageUtil.kt index 61082a198..658329918 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/fs/StorageUtil.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/fs/StorageUtil.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.fs +package org.oxycblt.auxio.musikr.fs import android.annotation.SuppressLint import android.content.ContentResolver diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/metadata/AudioMetadata.kt b/app/src/main/java/org/oxycblt/auxio/musikr/metadata/AudioMetadata.kt new file mode 100644 index 000000000..6ebb0af57 --- /dev/null +++ b/app/src/main/java/org/oxycblt/auxio/musikr/metadata/AudioMetadata.kt @@ -0,0 +1,11 @@ +package org.oxycblt.auxio.musikr.metadata + +import android.media.MediaMetadataRetriever +import androidx.media3.common.Metadata +import org.oxycblt.auxio.musikr.fs.DeviceFile + +data class AudioMetadata( + val file: DeviceFile, + val exoPlayerMetadata: Metadata, + val mediaMetadataRetriever: MediaMetadataRetriever +) diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/metadata/MetadataExtractor.kt b/app/src/main/java/org/oxycblt/auxio/musikr/metadata/MetadataExtractor.kt new file mode 100644 index 000000000..994e42421 --- /dev/null +++ b/app/src/main/java/org/oxycblt/auxio/musikr/metadata/MetadataExtractor.kt @@ -0,0 +1,8 @@ +package org.oxycblt.auxio.musikr.metadata + +import kotlinx.coroutines.flow.Flow +import org.oxycblt.auxio.musikr.fs.DeviceFile + +interface MetadataExtractor { + fun extract(files: Flow): Flow +} \ No newline at end of file diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/Interpretation.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/Interpretation.kt similarity index 95% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/Interpretation.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/Interpretation.kt index 00ecacddd..1d7347bec 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/Interpretation.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/Interpretation.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret +package org.oxycblt.auxio.musikr.model import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.music.metadata.Separators diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/prepare/PrepareModule.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/ModelModule.kt similarity index 80% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/prepare/PrepareModule.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/ModelModule.kt index 85447d9a2..d27f5d552 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/prepare/PrepareModule.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/ModelModule.kt @@ -1,6 +1,6 @@ /* - * Copyright (c) 2024 Auxio Project - * PrepareModule.kt is part of Auxio. + * Copyright (c) 2023 Auxio Project + * InterpretModule.kt is part of Auxio. * * 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 @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret.prepare +package org.oxycblt.auxio.musikr.model import dagger.Binds import dagger.Module @@ -25,6 +25,6 @@ import dagger.hilt.components.SingletonComponent @Module @InstallIn(SingletonComponent::class) -interface PrepareModule { - @Binds fun prepare(factory: PreparerImpl): Preparer +interface ModelModule { + @Binds fun interpreter(interpreter: ModelerImpl): Modeler } diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/Interpreter.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/Modeler.kt similarity index 75% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/Interpreter.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/Modeler.kt index d9a7b0132..838b65914 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/Interpreter.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/Modeler.kt @@ -1,6 +1,6 @@ /* * Copyright (c) 2024 Auxio Project - * Interpreter.kt is part of Auxio. + * Modeler.kt is part of Auxio. * * 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 @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret +package org.oxycblt.auxio.musikr.model import javax.inject.Inject import kotlinx.coroutines.Dispatchers @@ -28,40 +28,40 @@ import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.toList import org.oxycblt.auxio.music.Music -import org.oxycblt.auxio.musikr.explore.AudioFile -import org.oxycblt.auxio.musikr.explore.PlaylistFile -import org.oxycblt.auxio.musikr.interpret.linker.AlbumLinker -import org.oxycblt.auxio.musikr.interpret.linker.ArtistLinker -import org.oxycblt.auxio.musikr.interpret.linker.GenreLinker -import org.oxycblt.auxio.musikr.interpret.linker.Linked -import org.oxycblt.auxio.musikr.interpret.linker.LinkedSong -import org.oxycblt.auxio.musikr.interpret.model.AlbumImpl -import org.oxycblt.auxio.musikr.interpret.model.ArtistImpl -import org.oxycblt.auxio.musikr.interpret.model.GenreImpl -import org.oxycblt.auxio.musikr.interpret.model.LibraryImpl -import org.oxycblt.auxio.musikr.interpret.model.MutableLibrary -import org.oxycblt.auxio.musikr.interpret.model.SongImpl -import org.oxycblt.auxio.musikr.interpret.prepare.PreSong -import org.oxycblt.auxio.musikr.interpret.prepare.Preparer +import org.oxycblt.auxio.musikr.tag.AudioFile +import org.oxycblt.auxio.musikr.playlist.PlaylistFile +import org.oxycblt.auxio.musikr.model.link.AlbumLinker +import org.oxycblt.auxio.musikr.model.link.ArtistLinker +import org.oxycblt.auxio.musikr.model.link.GenreLinker +import org.oxycblt.auxio.musikr.model.link.Linked +import org.oxycblt.auxio.musikr.model.link.LinkedSong +import org.oxycblt.auxio.musikr.model.impl.AlbumImpl +import org.oxycblt.auxio.musikr.model.impl.ArtistImpl +import org.oxycblt.auxio.musikr.model.impl.GenreImpl +import org.oxycblt.auxio.musikr.model.impl.LibraryImpl +import org.oxycblt.auxio.musikr.model.impl.MutableLibrary +import org.oxycblt.auxio.musikr.model.impl.SongImpl +import org.oxycblt.auxio.musikr.model.interpret.PreSong +import org.oxycblt.auxio.musikr.model.interpret.Interpreter import timber.log.Timber as L -interface Interpreter { - suspend fun interpret( +interface Modeler { + suspend fun model( audioFiles: Flow, playlistFiles: Flow, interpretation: Interpretation ): MutableLibrary } -class InterpreterImpl @Inject constructor(private val preparer: Preparer) : Interpreter { - override suspend fun interpret( +class ModelerImpl @Inject constructor(private val interpreter: Interpreter) : Modeler { + override suspend fun model( audioFiles: Flow, playlistFiles: Flow, interpretation: Interpretation ): MutableLibrary { val preSongs = - preparer - .prepare(audioFiles, interpretation) + interpreter + .interpret(audioFiles, interpretation) .flowOn(Dispatchers.Main) .buffer(Channel.UNLIMITED) diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/model/DeviceMusicImpl.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/impl/DeviceMusicImpl.kt similarity index 96% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/model/DeviceMusicImpl.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/impl/DeviceMusicImpl.kt index b40107de5..8d41a80f9 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/model/DeviceMusicImpl.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/impl/DeviceMusicImpl.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret.model +package org.oxycblt.auxio.musikr.model.impl import kotlin.math.min import org.oxycblt.auxio.image.Cover @@ -28,10 +28,10 @@ import org.oxycblt.auxio.music.Music import org.oxycblt.auxio.music.MusicType import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.music.info.Date -import org.oxycblt.auxio.musikr.interpret.linker.LinkedAlbum -import org.oxycblt.auxio.musikr.interpret.linker.LinkedSong -import org.oxycblt.auxio.musikr.interpret.prepare.PreArtist -import org.oxycblt.auxio.musikr.interpret.prepare.PreGenre +import org.oxycblt.auxio.musikr.model.link.LinkedAlbum +import org.oxycblt.auxio.musikr.model.link.LinkedSong +import org.oxycblt.auxio.musikr.model.interpret.PreArtist +import org.oxycblt.auxio.musikr.model.interpret.PreGenre import org.oxycblt.auxio.util.update /** diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/model/Library.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/impl/Library.kt similarity index 96% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/model/Library.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/impl/Library.kt index 6cf7daa8f..37ca090f2 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/model/Library.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/impl/Library.kt @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret.model +package org.oxycblt.auxio.musikr.model.impl import org.oxycblt.auxio.music.Library import org.oxycblt.auxio.music.Music import org.oxycblt.auxio.music.Playlist import org.oxycblt.auxio.music.Song -import org.oxycblt.auxio.musikr.explore.fs.Path +import org.oxycblt.auxio.musikr.fs.Path interface MutableLibrary : Library { suspend fun createPlaylist(name: String, songs: List): MutableLibrary diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/model/PlaylistImpl.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/impl/PlaylistImpl.kt similarity index 93% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/model/PlaylistImpl.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/impl/PlaylistImpl.kt index 097ee0002..9e230e51a 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/model/PlaylistImpl.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/impl/PlaylistImpl.kt @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret.model +package org.oxycblt.auxio.musikr.model.impl import org.oxycblt.auxio.image.Cover import org.oxycblt.auxio.music.Playlist import org.oxycblt.auxio.music.info.Name -import org.oxycblt.auxio.musikr.interpret.linker.LinkedPlaylist +import org.oxycblt.auxio.musikr.model.link.LinkedPlaylist class PlaylistImpl(linkedPlaylist: LinkedPlaylist) : Playlist { private val prePlaylist = linkedPlaylist.prePlaylist diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/prepare/ID3Genre.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/interpret/ID3Genre.kt similarity index 99% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/prepare/ID3Genre.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/interpret/ID3Genre.kt index d456f6838..8a74a1349 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/prepare/ID3Genre.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/interpret/ID3Genre.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret.prepare +package org.oxycblt.auxio.musikr.model.interpret /// --- ID3v2 PARSING --- diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/InterpretModule.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/interpret/InterpretModule.kt similarity index 81% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/InterpretModule.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/interpret/InterpretModule.kt index 9c8453e58..4928d7529 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/InterpretModule.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/interpret/InterpretModule.kt @@ -1,6 +1,6 @@ /* - * Copyright (c) 2023 Auxio Project - * InterpretModule.kt is part of Auxio. + * Copyright (c) 2024 Auxio Project + * PrepareModule.kt is part of Auxio. * * 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 @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret +package org.oxycblt.auxio.musikr.model.interpret import dagger.Binds import dagger.Module @@ -26,5 +26,5 @@ import dagger.hilt.components.SingletonComponent @Module @InstallIn(SingletonComponent::class) interface InterpretModule { - @Binds fun interpreter(interpreter: InterpreterImpl): Interpreter + @Binds fun prepare(factory: InterpreterImpl): Interpreter } diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/prepare/Preparer.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/interpret/Interpreter.kt similarity index 93% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/prepare/Preparer.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/interpret/Interpreter.kt index df428229e..cd99ff5e1 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/prepare/Preparer.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/interpret/Interpreter.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret.prepare +package org.oxycblt.auxio.musikr.model.interpret import javax.inject.Inject import kotlinx.coroutines.flow.Flow @@ -25,18 +25,18 @@ import org.oxycblt.auxio.R import org.oxycblt.auxio.music.info.Disc import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.music.info.ReleaseType -import org.oxycblt.auxio.musikr.explore.AudioFile -import org.oxycblt.auxio.musikr.explore.fs.MimeType -import org.oxycblt.auxio.musikr.interpret.Interpretation +import org.oxycblt.auxio.musikr.tag.AudioFile +import org.oxycblt.auxio.musikr.fs.MimeType +import org.oxycblt.auxio.musikr.model.Interpretation import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment import org.oxycblt.auxio.util.toUuidOrNull -interface Preparer { - fun prepare(audioFiles: Flow, interpretation: Interpretation): Flow +interface Interpreter { + fun interpret(audioFiles: Flow, interpretation: Interpretation): Flow } -class PreparerImpl @Inject constructor() : Preparer { - override fun prepare(audioFiles: Flow, interpretation: Interpretation) = +class InterpreterImpl @Inject constructor() : Interpreter { + override fun interpret(audioFiles: Flow, interpretation: Interpretation) = audioFiles.map { audioFile -> val individualPreArtists = makePreArtists( diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/prepare/PreMusic.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/interpret/PreMusic.kt similarity index 93% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/prepare/PreMusic.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/interpret/PreMusic.kt index b4a9229df..a9640ab75 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/prepare/PreMusic.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/interpret/PreMusic.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret.prepare +package org.oxycblt.auxio.musikr.model.interpret import android.net.Uri import java.util.UUID @@ -26,9 +26,9 @@ import org.oxycblt.auxio.music.info.Date import org.oxycblt.auxio.music.info.Disc import org.oxycblt.auxio.music.info.Name import org.oxycblt.auxio.music.info.ReleaseType -import org.oxycblt.auxio.musikr.explore.PlaylistHandle -import org.oxycblt.auxio.musikr.explore.fs.MimeType -import org.oxycblt.auxio.musikr.explore.fs.Path +import org.oxycblt.auxio.musikr.playlist.PlaylistHandle +import org.oxycblt.auxio.musikr.fs.MimeType +import org.oxycblt.auxio.musikr.fs.Path import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment import org.oxycblt.auxio.util.update diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/AlbumLinker.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/link/AlbumLinker.kt similarity index 95% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/AlbumLinker.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/link/AlbumLinker.kt index 6cb4d8908..eed825e99 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/AlbumLinker.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/link/AlbumLinker.kt @@ -16,13 +16,13 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret.linker +package org.oxycblt.auxio.musikr.model.link import java.util.UUID import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map -import org.oxycblt.auxio.musikr.interpret.model.AlbumImpl -import org.oxycblt.auxio.musikr.interpret.model.SongImpl +import org.oxycblt.auxio.musikr.model.impl.AlbumImpl +import org.oxycblt.auxio.musikr.model.impl.SongImpl class AlbumLinker { private val tree = mutableMapOf>() diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/ArtistLinker.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/link/ArtistLinker.kt similarity index 93% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/ArtistLinker.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/link/ArtistLinker.kt index 10016f00e..ca37b1cff 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/ArtistLinker.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/link/ArtistLinker.kt @@ -16,17 +16,17 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret.linker +package org.oxycblt.auxio.musikr.model.link import java.util.UUID import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map import org.oxycblt.auxio.music.Music -import org.oxycblt.auxio.musikr.interpret.model.AlbumImpl -import org.oxycblt.auxio.musikr.interpret.model.ArtistImpl -import org.oxycblt.auxio.musikr.interpret.model.SongImpl -import org.oxycblt.auxio.musikr.interpret.prepare.PreAlbum -import org.oxycblt.auxio.musikr.interpret.prepare.PreArtist +import org.oxycblt.auxio.musikr.model.impl.AlbumImpl +import org.oxycblt.auxio.musikr.model.impl.ArtistImpl +import org.oxycblt.auxio.musikr.model.impl.SongImpl +import org.oxycblt.auxio.musikr.model.interpret.PreAlbum +import org.oxycblt.auxio.musikr.model.interpret.PreArtist class ArtistLinker { private val tree = mutableMapOf>() diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/Contribution.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/link/Contribution.kt similarity index 95% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/Contribution.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/link/Contribution.kt index 2166f9053..0ffdf88b9 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/Contribution.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/link/Contribution.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret.linker +package org.oxycblt.auxio.musikr.model.link class Contribution { private val map = mutableMapOf() diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/GenreLinker.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/link/GenreLinker.kt similarity index 89% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/GenreLinker.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/link/GenreLinker.kt index ff9c87076..e84cfd95f 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/GenreLinker.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/link/GenreLinker.kt @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret.linker +package org.oxycblt.auxio.musikr.model.link import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map -import org.oxycblt.auxio.musikr.interpret.model.GenreImpl -import org.oxycblt.auxio.musikr.interpret.model.SongImpl -import org.oxycblt.auxio.musikr.interpret.prepare.PreGenre -import org.oxycblt.auxio.musikr.interpret.prepare.PreSong +import org.oxycblt.auxio.musikr.model.impl.GenreImpl +import org.oxycblt.auxio.musikr.model.impl.SongImpl +import org.oxycblt.auxio.musikr.model.interpret.PreGenre +import org.oxycblt.auxio.musikr.model.interpret.PreSong class GenreLinker { private val tree = mutableMapOf() diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/LinkedMusic.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/link/LinkedMusic.kt similarity index 69% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/LinkedMusic.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/link/LinkedMusic.kt index a1a383cc4..71a2bdd8b 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/LinkedMusic.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/link/LinkedMusic.kt @@ -16,16 +16,16 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret.linker +package org.oxycblt.auxio.musikr.model.link -import org.oxycblt.auxio.musikr.interpret.model.AlbumImpl -import org.oxycblt.auxio.musikr.interpret.model.ArtistImpl -import org.oxycblt.auxio.musikr.interpret.model.GenreImpl -import org.oxycblt.auxio.musikr.interpret.model.PlaylistImpl -import org.oxycblt.auxio.musikr.interpret.model.SongImpl -import org.oxycblt.auxio.musikr.interpret.prepare.PreAlbum -import org.oxycblt.auxio.musikr.interpret.prepare.PrePlaylist -import org.oxycblt.auxio.musikr.interpret.prepare.PreSong +import org.oxycblt.auxio.musikr.model.impl.AlbumImpl +import org.oxycblt.auxio.musikr.model.impl.ArtistImpl +import org.oxycblt.auxio.musikr.model.impl.GenreImpl +import org.oxycblt.auxio.musikr.model.impl.PlaylistImpl +import org.oxycblt.auxio.musikr.model.impl.SongImpl +import org.oxycblt.auxio.musikr.model.interpret.PreAlbum +import org.oxycblt.auxio.musikr.model.interpret.PrePlaylist +import org.oxycblt.auxio.musikr.model.interpret.PreSong interface LinkedSong { val preSong: PreSong diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/PlaylistLinker.kt b/app/src/main/java/org/oxycblt/auxio/musikr/model/link/PlaylistLinker.kt similarity index 86% rename from app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/PlaylistLinker.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/model/link/PlaylistLinker.kt index 696575e6b..85b3b13b9 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/interpret/linker/PlaylistLinker.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/model/link/PlaylistLinker.kt @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.interpret.linker +package org.oxycblt.auxio.musikr.model.link import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.emptyFlow -import org.oxycblt.auxio.musikr.explore.PlaylistFile -import org.oxycblt.auxio.musikr.interpret.model.PlaylistImpl +import org.oxycblt.auxio.musikr.playlist.PlaylistFile +import org.oxycblt.auxio.musikr.model.impl.PlaylistImpl class PlaylistLinker { fun register( diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/playlist/PlaylistFile.kt b/app/src/main/java/org/oxycblt/auxio/musikr/playlist/PlaylistFile.kt new file mode 100644 index 000000000..c323e9b2a --- /dev/null +++ b/app/src/main/java/org/oxycblt/auxio/musikr/playlist/PlaylistFile.kt @@ -0,0 +1,27 @@ +package org.oxycblt.auxio.musikr.playlist + +import org.oxycblt.auxio.music.Music +import org.oxycblt.auxio.music.Song + +data class PlaylistFile( + val name: String, + val songPointers: List, + val editor: PlaylistHandle +) + +sealed interface SongPointer { + data class UID(val uid: Music.UID) : SongPointer + // data class Path(val options: List) : SongPointer +} + +interface PlaylistHandle { + val uid: Music.UID + + suspend fun rename(name: String) + + suspend fun add(songs: List) + + suspend fun rewrite(songs: List) + + suspend fun delete() +} diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/playlists/PlaylistDatabase.kt b/app/src/main/java/org/oxycblt/auxio/musikr/playlist/db/PlaylistDatabase.kt similarity index 98% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/playlists/PlaylistDatabase.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/playlist/db/PlaylistDatabase.kt index 46691d21f..40534b41d 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/playlists/PlaylistDatabase.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/playlist/db/PlaylistDatabase.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.playlists +package org.oxycblt.auxio.musikr.playlist.db import androidx.room.Dao import androidx.room.Database diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/playlists/RawPlaylist.kt b/app/src/main/java/org/oxycblt/auxio/musikr/playlist/db/RawPlaylist.kt similarity index 97% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/playlists/RawPlaylist.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/playlist/db/RawPlaylist.kt index 003244671..3eae0d966 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/playlists/RawPlaylist.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/playlist/db/RawPlaylist.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.playlists +package org.oxycblt.auxio.musikr.playlist.db import androidx.room.ColumnInfo import androidx.room.Embedded diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/playlists/StoredPlaylists.kt b/app/src/main/java/org/oxycblt/auxio/musikr/playlist/db/StoredPlaylists.kt similarity index 92% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/playlists/StoredPlaylists.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/playlist/db/StoredPlaylists.kt index 8e1e2468b..7053f2f4f 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/playlists/StoredPlaylists.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/playlist/db/StoredPlaylists.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.playlists +package org.oxycblt.auxio.musikr.playlist.db import javax.inject.Inject import kotlinx.coroutines.flow.Flow @@ -24,7 +24,7 @@ import kotlinx.coroutines.flow.asFlow import kotlinx.coroutines.flow.emitAll import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.map -import org.oxycblt.auxio.musikr.explore.PlaylistFile +import org.oxycblt.auxio.musikr.playlist.PlaylistFile interface StoredPlaylists { fun read(): Flow diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/playlists/UserModule.kt b/app/src/main/java/org/oxycblt/auxio/musikr/playlist/db/UserModule.kt similarity index 96% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/playlists/UserModule.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/playlist/db/UserModule.kt index 824cb6d8c..00b99f9df 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/playlists/UserModule.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/playlist/db/UserModule.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.playlists +package org.oxycblt.auxio.musikr.playlist.db import android.content.Context import androidx.room.Room diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/tag/AudioFile.kt b/app/src/main/java/org/oxycblt/auxio/musikr/tag/AudioFile.kt new file mode 100644 index 000000000..6f43fb478 --- /dev/null +++ b/app/src/main/java/org/oxycblt/auxio/musikr/tag/AudioFile.kt @@ -0,0 +1,29 @@ +package org.oxycblt.auxio.musikr.tag + +import org.oxycblt.auxio.music.info.Date +import org.oxycblt.auxio.musikr.fs.DeviceFile + +data class AudioFile( + val deviceFile: DeviceFile, + val durationMs: Long, + val replayGainTrackAdjustment: Float? = null, + val replayGainAlbumAdjustment: Float? = null, + val musicBrainzId: String? = null, + val name: String, + val sortName: String? = null, + val track: Int? = null, + val disc: Int? = null, + val subtitle: String? = null, + val date: Date? = null, + val albumMusicBrainzId: String? = null, + val albumName: String? = null, + val albumSortName: String? = null, + val releaseTypes: List = listOf(), + val artistMusicBrainzIds: List = listOf(), + val artistNames: List = listOf(), + val artistSortNames: List = listOf(), + val albumArtistMusicBrainzIds: List = listOf(), + val albumArtistNames: List = listOf(), + val albumArtistSortNames: List = listOf(), + val genreNames: List = listOf() +) \ No newline at end of file diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/cache/TagCache.kt b/app/src/main/java/org/oxycblt/auxio/musikr/tag/cache/TagCache.kt similarity index 92% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/cache/TagCache.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/tag/cache/TagCache.kt index 94a50ef5b..720dc317e 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/cache/TagCache.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/tag/cache/TagCache.kt @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.cache +package org.oxycblt.auxio.musikr.tag.cache import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onEach -import org.oxycblt.auxio.musikr.explore.AudioFile -import org.oxycblt.auxio.musikr.explore.DeviceFile +import org.oxycblt.auxio.musikr.tag.AudioFile +import org.oxycblt.auxio.musikr.fs.DeviceFile sealed interface CacheResult { data class Hit(val audioFile: AudioFile) : CacheResult diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/cache/TagCacheModule.kt b/app/src/main/java/org/oxycblt/auxio/musikr/tag/cache/TagCacheModule.kt similarity index 97% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/cache/TagCacheModule.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/tag/cache/TagCacheModule.kt index 2f1fcc41a..db133bcfe 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/cache/TagCacheModule.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/tag/cache/TagCacheModule.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.cache +package org.oxycblt.auxio.musikr.tag.cache import android.content.Context import androidx.room.Room diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/cache/TagDatabase.kt b/app/src/main/java/org/oxycblt/auxio/musikr/tag/cache/TagDatabase.kt similarity index 95% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/cache/TagDatabase.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/tag/cache/TagDatabase.kt index 65118d778..05db90e45 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/cache/TagDatabase.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/tag/cache/TagDatabase.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.cache +package org.oxycblt.auxio.musikr.tag.cache import androidx.room.Dao import androidx.room.Database @@ -29,10 +29,10 @@ import androidx.room.RoomDatabase import androidx.room.TypeConverter import androidx.room.TypeConverters import org.oxycblt.auxio.music.info.Date -import org.oxycblt.auxio.musikr.explore.AudioFile -import org.oxycblt.auxio.musikr.explore.DeviceFile -import org.oxycblt.auxio.musikr.explore.extractor.correctWhitespace -import org.oxycblt.auxio.musikr.explore.extractor.splitEscaped +import org.oxycblt.auxio.musikr.tag.AudioFile +import org.oxycblt.auxio.musikr.fs.DeviceFile +import org.oxycblt.auxio.musikr.tag.extractor.correctWhitespace +import org.oxycblt.auxio.musikr.tag.extractor.splitEscaped @Database(entities = [Tags::class], version = 50, exportSchema = false) abstract class TagDatabase : RoomDatabase() { diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/ExtractorModule.kt b/app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/ExtractorModule.kt similarity index 95% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/ExtractorModule.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/ExtractorModule.kt index 29ef4c849..dd3f630c0 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/ExtractorModule.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/ExtractorModule.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.extractor +package org.oxycblt.auxio.musikr.tag.extractor import dagger.Binds import dagger.Module diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/TagExtractor.kt b/app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/TagExtractor.kt similarity index 98% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/TagExtractor.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/TagExtractor.kt index 983e028ab..60823034b 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/TagExtractor.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/TagExtractor.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.extractor +package org.oxycblt.auxio.musikr.tag.extractor import android.content.Context import android.media.MediaMetadataRetriever @@ -43,8 +43,8 @@ import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow import kotlinx.coroutines.guava.asDeferred -import org.oxycblt.auxio.musikr.explore.AudioFile -import org.oxycblt.auxio.musikr.explore.DeviceFile +import org.oxycblt.auxio.musikr.tag.AudioFile +import org.oxycblt.auxio.musikr.fs.DeviceFile import timber.log.Timber as L interface TagExtractor { diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/TagFields.kt b/app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/TagFields.kt similarity index 99% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/TagFields.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/TagFields.kt index e87d3782f..c1012e119 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/TagFields.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/TagFields.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.extractor +package org.oxycblt.auxio.musikr.tag.extractor import androidx.core.text.isDigitsOnly import org.oxycblt.auxio.music.info.Date diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/TagUtil.kt b/app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/TagUtil.kt similarity index 98% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/TagUtil.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/TagUtil.kt index 44eee85c4..170627bd4 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/TagUtil.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/TagUtil.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.extractor +package org.oxycblt.auxio.musikr.tag.extractor import org.oxycblt.auxio.util.positiveOrNull diff --git a/app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/TextTags.kt b/app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/TextTags.kt similarity index 98% rename from app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/TextTags.kt rename to app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/TextTags.kt index 38f0fc028..e626655ff 100644 --- a/app/src/main/java/org/oxycblt/auxio/musikr/explore/extractor/TextTags.kt +++ b/app/src/main/java/org/oxycblt/auxio/musikr/tag/extractor/TextTags.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.oxycblt.auxio.musikr.explore.extractor +package org.oxycblt.auxio.musikr.tag.extractor import androidx.media3.common.Metadata import androidx.media3.extractor.metadata.id3.InternalFrame diff --git a/app/src/test/java/org/oxycblt/auxio/music/metadata/TagUtilTest.kt b/app/src/test/java/org/oxycblt/auxio/music/metadata/TagUtilTest.kt index f795542a1..b018f18ec 100644 --- a/app/src/test/java/org/oxycblt/auxio/music/metadata/TagUtilTest.kt +++ b/app/src/test/java/org/oxycblt/auxio/music/metadata/TagUtilTest.kt @@ -20,11 +20,11 @@ package org.oxycblt.auxio.music.metadata import org.junit.Assert.assertEquals import org.junit.Test -import org.oxycblt.auxio.musikr.explore.extractor.correctWhitespace -import org.oxycblt.auxio.musikr.explore.extractor.parseId3v2PositionField -import org.oxycblt.auxio.musikr.explore.extractor.parseVorbisPositionField -import org.oxycblt.auxio.musikr.explore.extractor.splitEscaped -import org.oxycblt.auxio.musikr.interpret.prepare.parseId3GenreNames +import org.oxycblt.auxio.musikr.tag.extractor.correctWhitespace +import org.oxycblt.auxio.musikr.tag.extractor.parseId3v2PositionField +import org.oxycblt.auxio.musikr.tag.extractor.parseVorbisPositionField +import org.oxycblt.auxio.musikr.tag.extractor.splitEscaped +import org.oxycblt.auxio.musikr.model.interpret.parseId3GenreNames class TagUtilTest { @Test diff --git a/app/src/test/java/org/oxycblt/auxio/music/metadata/TextTagsTest.kt b/app/src/test/java/org/oxycblt/auxio/music/metadata/TextTagsTest.kt index 4b744c0e2..b0af8bf81 100644 --- a/app/src/test/java/org/oxycblt/auxio/music/metadata/TextTagsTest.kt +++ b/app/src/test/java/org/oxycblt/auxio/music/metadata/TextTagsTest.kt @@ -27,7 +27,7 @@ import androidx.media3.extractor.metadata.vorbis.VorbisComment import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Test -import org.oxycblt.auxio.musikr.explore.extractor.TextTags +import org.oxycblt.auxio.musikr.tag.extractor.TextTags class TextTagsTest { @Test