music: break off stack into musikr
Will become it's own separate module later.
This commit is contained in:
parent
e647c31c56
commit
86a77bc19b
54 changed files with 147 additions and 144 deletions
|
@ -66,7 +66,7 @@ import org.oxycblt.auxio.music.Playlist
|
|||
import org.oxycblt.auxio.music.PlaylistDecision
|
||||
import org.oxycblt.auxio.music.PlaylistMessage
|
||||
import org.oxycblt.auxio.music.external.M3U
|
||||
import org.oxycblt.auxio.music.stack.IndexingProgress
|
||||
import org.oxycblt.auxio.musikr.IndexingProgress
|
||||
import org.oxycblt.auxio.playback.PlaybackDecision
|
||||
import org.oxycblt.auxio.playback.PlaybackViewModel
|
||||
import org.oxycblt.auxio.util.collect
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
package org.oxycblt.auxio.music
|
||||
|
||||
import android.os.Build
|
||||
import org.oxycblt.auxio.music.stack.IndexingProgress
|
||||
import org.oxycblt.auxio.musikr.IndexingProgress
|
||||
|
||||
/** Version-aware permission identifier for reading audio files. */
|
||||
val PERMISSION_READ_AUDIO =
|
||||
|
|
|
@ -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.music.stack.explore.fs.MimeType
|
||||
import org.oxycblt.auxio.music.stack.explore.fs.Path
|
||||
import org.oxycblt.auxio.musikr.explore.fs.MimeType
|
||||
import org.oxycblt.auxio.musikr.explore.fs.Path
|
||||
import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment
|
||||
import org.oxycblt.auxio.util.concatLocalized
|
||||
import org.oxycblt.auxio.util.toUuidOrNull
|
||||
|
|
|
@ -27,10 +27,10 @@ import kotlinx.coroutines.yield
|
|||
import org.oxycblt.auxio.music.MusicRepository.IndexingWorker
|
||||
import org.oxycblt.auxio.music.info.Name
|
||||
import org.oxycblt.auxio.music.metadata.Separators
|
||||
import org.oxycblt.auxio.music.stack.Indexer
|
||||
import org.oxycblt.auxio.music.stack.IndexingProgress
|
||||
import org.oxycblt.auxio.music.stack.interpret.Interpretation
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.MutableLibrary
|
||||
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 timber.log.Timber as L
|
||||
|
||||
/**
|
||||
|
|
|
@ -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.music.stack.explore.fs.DocumentPathFactory
|
||||
import org.oxycblt.auxio.musikr.explore.fs.DocumentPathFactory
|
||||
import org.oxycblt.auxio.settings.Settings
|
||||
import timber.log.Timber as L
|
||||
|
||||
|
|
|
@ -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.music.stack.explore.fs.Components
|
||||
import org.oxycblt.auxio.music.stack.explore.fs.DocumentPathFactory
|
||||
import org.oxycblt.auxio.music.stack.explore.fs.Path
|
||||
import org.oxycblt.auxio.music.stack.explore.fs.contentResolverSafe
|
||||
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 timber.log.Timber as L
|
||||
|
||||
/**
|
||||
|
|
|
@ -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.music.stack.explore.extractor.correctWhitespace
|
||||
import org.oxycblt.auxio.music.stack.explore.fs.Components
|
||||
import org.oxycblt.auxio.music.stack.explore.fs.Path
|
||||
import org.oxycblt.auxio.music.stack.explore.fs.Volume
|
||||
import org.oxycblt.auxio.music.stack.explore.fs.VolumeManager
|
||||
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.util.unlikelyToBeNull
|
||||
import timber.log.Timber as L
|
||||
|
||||
|
|
|
@ -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.music.stack.explore.fs.Path
|
||||
import org.oxycblt.auxio.musikr.explore.fs.Path
|
||||
import org.oxycblt.auxio.util.context
|
||||
import org.oxycblt.auxio.util.inflater
|
||||
import timber.log.Timber as L
|
||||
|
|
|
@ -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.music.stack.explore.fs.DocumentPathFactory
|
||||
import org.oxycblt.auxio.musikr.explore.fs.DocumentPathFactory
|
||||
import org.oxycblt.auxio.ui.ViewBindingMaterialDialogFragment
|
||||
import org.oxycblt.auxio.util.showToast
|
||||
import timber.log.Timber as L
|
||||
|
|
|
@ -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.music.stack.explore.fs.MimeType
|
||||
import org.oxycblt.auxio.musikr.explore.fs.MimeType
|
||||
import timber.log.Timber as L
|
||||
|
||||
/**
|
||||
|
@ -119,6 +119,7 @@ constructor(@ApplicationContext private val context: Context) : AudioProperties.
|
|||
return AudioProperties(
|
||||
bitrate,
|
||||
sampleRate,
|
||||
MimeType(fromExtension = song.mimeType.fromExtension, fromFormat = formatMimeType))
|
||||
MimeType(fromExtension = song.mimeType.fromExtension, fromFormat = formatMimeType)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,8 +18,8 @@
|
|||
|
||||
package org.oxycblt.auxio.music.metadata
|
||||
|
||||
import org.oxycblt.auxio.music.stack.explore.extractor.correctWhitespace
|
||||
import org.oxycblt.auxio.music.stack.explore.extractor.splitEscaped
|
||||
import org.oxycblt.auxio.musikr.explore.extractor.correctWhitespace
|
||||
import org.oxycblt.auxio.musikr.explore.extractor.splitEscaped
|
||||
|
||||
/**
|
||||
* Defines the user-specified parsing of multi-value tags. This should be used to parse any tags
|
||||
|
|
|
@ -25,7 +25,7 @@ import org.oxycblt.auxio.BuildConfig
|
|||
import org.oxycblt.auxio.ForegroundServiceNotification
|
||||
import org.oxycblt.auxio.IntegerTable
|
||||
import org.oxycblt.auxio.R
|
||||
import org.oxycblt.auxio.music.stack.IndexingProgress
|
||||
import org.oxycblt.auxio.musikr.IndexingProgress
|
||||
import org.oxycblt.auxio.util.newMainPendingIntent
|
||||
import timber.log.Timber as L
|
||||
|
||||
|
|
|
@ -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.music.stack.explore.fs.contentResolverSafe
|
||||
import org.oxycblt.auxio.musikr.explore.fs.contentResolverSafe
|
||||
import timber.log.Timber as L
|
||||
|
||||
/**
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack
|
||||
package org.oxycblt.auxio.musikr
|
||||
|
||||
import android.net.Uri
|
||||
import javax.inject.Inject
|
||||
|
@ -27,10 +27,10 @@ import kotlinx.coroutines.flow.Flow
|
|||
import kotlinx.coroutines.flow.buffer
|
||||
import kotlinx.coroutines.flow.flow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
import org.oxycblt.auxio.music.stack.explore.Explorer
|
||||
import org.oxycblt.auxio.music.stack.interpret.Interpretation
|
||||
import org.oxycblt.auxio.music.stack.interpret.Interpreter
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.MutableLibrary
|
||||
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
|
||||
|
||||
interface Indexer {
|
||||
suspend fun run(
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack
|
||||
package org.oxycblt.auxio.musikr
|
||||
|
||||
import dagger.Binds
|
||||
import dagger.Module
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore
|
||||
package org.oxycblt.auxio.musikr.explore
|
||||
|
||||
import dagger.Binds
|
||||
import dagger.Module
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore
|
||||
package org.oxycblt.auxio.musikr.explore
|
||||
|
||||
import android.net.Uri
|
||||
import javax.inject.Inject
|
||||
|
@ -29,17 +29,16 @@ import kotlinx.coroutines.flow.buffer
|
|||
import kotlinx.coroutines.flow.flattenMerge
|
||||
import kotlinx.coroutines.flow.flow
|
||||
import kotlinx.coroutines.flow.flowOn
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.flow.merge
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import kotlinx.coroutines.flow.receiveAsFlow
|
||||
import kotlinx.coroutines.flow.withIndex
|
||||
import org.oxycblt.auxio.music.stack.IndexingProgress
|
||||
import org.oxycblt.auxio.music.stack.explore.cache.CacheResult
|
||||
import org.oxycblt.auxio.music.stack.explore.cache.TagCache
|
||||
import org.oxycblt.auxio.music.stack.explore.extractor.TagExtractor
|
||||
import org.oxycblt.auxio.music.stack.explore.fs.DeviceFiles
|
||||
import org.oxycblt.auxio.music.stack.explore.playlists.StoredPlaylists
|
||||
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 timber.log.Timber
|
||||
|
||||
interface Explorer {
|
|
@ -16,13 +16,13 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore
|
||||
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.music.stack.explore.fs.Path
|
||||
import org.oxycblt.auxio.musikr.explore.fs.Path
|
||||
|
||||
data class DeviceFile(
|
||||
val uri: Uri,
|
|
@ -16,14 +16,14 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.cache
|
||||
package org.oxycblt.auxio.musikr.explore.cache
|
||||
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import org.oxycblt.auxio.music.stack.explore.AudioFile
|
||||
import org.oxycblt.auxio.music.stack.explore.DeviceFile
|
||||
import org.oxycblt.auxio.musikr.explore.AudioFile
|
||||
import org.oxycblt.auxio.musikr.explore.DeviceFile
|
||||
|
||||
sealed interface CacheResult {
|
||||
data class Hit(val audioFile: AudioFile) : CacheResult
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.cache
|
||||
package org.oxycblt.auxio.musikr.explore.cache
|
||||
|
||||
import android.content.Context
|
||||
import androidx.room.Room
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.cache
|
||||
package org.oxycblt.auxio.musikr.explore.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.music.stack.explore.AudioFile
|
||||
import org.oxycblt.auxio.music.stack.explore.DeviceFile
|
||||
import org.oxycblt.auxio.music.stack.explore.extractor.correctWhitespace
|
||||
import org.oxycblt.auxio.music.stack.explore.extractor.splitEscaped
|
||||
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
|
||||
|
||||
@Database(entities = [Tags::class], version = 50, exportSchema = false)
|
||||
abstract class TagDatabase : RoomDatabase() {
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.extractor
|
||||
package org.oxycblt.auxio.musikr.explore.extractor
|
||||
|
||||
import dagger.Binds
|
||||
import dagger.Module
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.extractor
|
||||
package org.oxycblt.auxio.musikr.explore.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.music.stack.explore.AudioFile
|
||||
import org.oxycblt.auxio.music.stack.explore.DeviceFile
|
||||
import org.oxycblt.auxio.musikr.explore.AudioFile
|
||||
import org.oxycblt.auxio.musikr.explore.DeviceFile
|
||||
import timber.log.Timber as L
|
||||
|
||||
interface TagExtractor {
|
||||
|
@ -194,7 +194,8 @@ private class ChunkedMetadataRetriever(private val mediaSourceFactory: MediaSour
|
|||
job = MetadataJob(data, mediaSourceCaller)
|
||||
|
||||
mediaSourceHandler.sendEmptyMessageDelayed(
|
||||
MESSAGE_CHECK_FAILURE, /* delayMs= */ CHECK_INTERVAL_MS)
|
||||
MESSAGE_CHECK_FAILURE, /* delayMs= */ CHECK_INTERVAL_MS
|
||||
)
|
||||
|
||||
return true
|
||||
}
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.extractor
|
||||
package org.oxycblt.auxio.musikr.explore.extractor
|
||||
|
||||
import androidx.core.text.isDigitsOnly
|
||||
import org.oxycblt.auxio.music.info.Date
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.extractor
|
||||
package org.oxycblt.auxio.musikr.explore.extractor
|
||||
|
||||
import org.oxycblt.auxio.util.positiveOrNull
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.extractor
|
||||
package org.oxycblt.auxio.musikr.explore.extractor
|
||||
|
||||
import androidx.media3.common.Metadata
|
||||
import androidx.media3.extractor.metadata.id3.InternalFrame
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.fs
|
||||
package org.oxycblt.auxio.musikr.explore.fs
|
||||
|
||||
import android.content.ContentResolver
|
||||
import android.content.Context
|
||||
|
@ -31,7 +31,7 @@ import kotlinx.coroutines.flow.emitAll
|
|||
import kotlinx.coroutines.flow.flatMapMerge
|
||||
import kotlinx.coroutines.flow.flattenMerge
|
||||
import kotlinx.coroutines.flow.flow
|
||||
import org.oxycblt.auxio.music.stack.explore.DeviceFile
|
||||
import org.oxycblt.auxio.musikr.explore.DeviceFile
|
||||
import timber.log.Timber
|
||||
|
||||
interface DeviceFiles {
|
||||
|
@ -65,7 +65,8 @@ constructor(
|
|||
): Flow<DeviceFile> = flow {
|
||||
contentResolver.useQuery(
|
||||
DocumentsContract.buildChildDocumentsUriUsingTree(rootUri, treeDocumentId),
|
||||
PROJECTION) { cursor ->
|
||||
PROJECTION
|
||||
) { cursor ->
|
||||
val childUriIndex =
|
||||
cursor.getColumnIndexOrThrow(DocumentsContract.Document.COLUMN_DOCUMENT_ID)
|
||||
val displayNameIndex =
|
||||
|
@ -97,7 +98,8 @@ constructor(
|
|||
mimeType,
|
||||
newPath,
|
||||
size,
|
||||
lastModified))
|
||||
lastModified)
|
||||
)
|
||||
}
|
||||
}
|
||||
emitAll(recursive.asFlow().flattenMerge())
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.fs
|
||||
package org.oxycblt.auxio.musikr.explore.fs
|
||||
|
||||
import android.content.ContentUris
|
||||
import android.content.Context
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.fs
|
||||
package org.oxycblt.auxio.musikr.explore.fs
|
||||
|
||||
import android.content.Context
|
||||
import android.media.MediaFormat
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.fs
|
||||
package org.oxycblt.auxio.musikr.explore.fs
|
||||
|
||||
import android.content.ContentResolver
|
||||
import android.content.Context
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.fs
|
||||
package org.oxycblt.auxio.musikr.explore.fs
|
||||
|
||||
import android.database.Cursor
|
||||
import android.os.Build
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.fs
|
||||
package org.oxycblt.auxio.musikr.explore.fs
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.ContentResolver
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.playlists
|
||||
package org.oxycblt.auxio.musikr.explore.playlists
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Database
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.playlists
|
||||
package org.oxycblt.auxio.musikr.explore.playlists
|
||||
|
||||
import androidx.room.ColumnInfo
|
||||
import androidx.room.Embedded
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.playlists
|
||||
package org.oxycblt.auxio.musikr.explore.playlists
|
||||
|
||||
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.music.stack.explore.PlaylistFile
|
||||
import org.oxycblt.auxio.musikr.explore.PlaylistFile
|
||||
|
||||
interface StoredPlaylists {
|
||||
fun read(): Flow<PlaylistFile>
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.explore.playlists
|
||||
package org.oxycblt.auxio.musikr.explore.playlists
|
||||
|
||||
import android.content.Context
|
||||
import androidx.room.Room
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret
|
||||
package org.oxycblt.auxio.musikr.interpret
|
||||
|
||||
import dagger.Binds
|
||||
import dagger.Module
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret
|
||||
package org.oxycblt.auxio.musikr.interpret
|
||||
|
||||
import org.oxycblt.auxio.music.info.Name
|
||||
import org.oxycblt.auxio.music.metadata.Separators
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret
|
||||
package org.oxycblt.auxio.musikr.interpret
|
||||
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
@ -28,21 +28,21 @@ 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.music.stack.explore.AudioFile
|
||||
import org.oxycblt.auxio.music.stack.explore.PlaylistFile
|
||||
import org.oxycblt.auxio.music.stack.interpret.linker.AlbumLinker
|
||||
import org.oxycblt.auxio.music.stack.interpret.linker.ArtistLinker
|
||||
import org.oxycblt.auxio.music.stack.interpret.linker.GenreLinker
|
||||
import org.oxycblt.auxio.music.stack.interpret.linker.Linked
|
||||
import org.oxycblt.auxio.music.stack.interpret.linker.LinkedSong
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.AlbumImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.ArtistImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.GenreImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.LibraryImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.MutableLibrary
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.SongImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.prepare.PreSong
|
||||
import org.oxycblt.auxio.music.stack.interpret.prepare.Preparer
|
||||
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 timber.log.Timber as L
|
||||
|
||||
interface Interpreter {
|
|
@ -16,13 +16,13 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret.linker
|
||||
package org.oxycblt.auxio.musikr.interpret.linker
|
||||
|
||||
import java.util.UUID
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.AlbumImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.SongImpl
|
||||
import org.oxycblt.auxio.musikr.interpret.model.AlbumImpl
|
||||
import org.oxycblt.auxio.musikr.interpret.model.SongImpl
|
||||
|
||||
class AlbumLinker {
|
||||
private val tree = mutableMapOf<String?, MutableMap<UUID?, AlbumLink>>()
|
|
@ -16,17 +16,17 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret.linker
|
||||
package org.oxycblt.auxio.musikr.interpret.linker
|
||||
|
||||
import java.util.UUID
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
import org.oxycblt.auxio.music.Music
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.AlbumImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.ArtistImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.SongImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.prepare.PreAlbum
|
||||
import org.oxycblt.auxio.music.stack.interpret.prepare.PreArtist
|
||||
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
|
||||
|
||||
class ArtistLinker {
|
||||
private val tree = mutableMapOf<String?, MutableMap<UUID?, ArtistLink>>()
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret.linker
|
||||
package org.oxycblt.auxio.musikr.interpret.linker
|
||||
|
||||
class Contribution<T> {
|
||||
private val map = mutableMapOf<T, Int>()
|
|
@ -16,14 +16,14 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret.linker
|
||||
package org.oxycblt.auxio.musikr.interpret.linker
|
||||
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.GenreImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.SongImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.prepare.PreGenre
|
||||
import org.oxycblt.auxio.music.stack.interpret.prepare.PreSong
|
||||
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
|
||||
|
||||
class GenreLinker {
|
||||
private val tree = mutableMapOf<String?, GenreLink>()
|
|
@ -16,16 +16,16 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret.linker
|
||||
package org.oxycblt.auxio.musikr.interpret.linker
|
||||
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.AlbumImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.ArtistImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.GenreImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.PlaylistImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.SongImpl
|
||||
import org.oxycblt.auxio.music.stack.interpret.prepare.PreAlbum
|
||||
import org.oxycblt.auxio.music.stack.interpret.prepare.PrePlaylist
|
||||
import org.oxycblt.auxio.music.stack.interpret.prepare.PreSong
|
||||
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
|
||||
|
||||
interface LinkedSong {
|
||||
val preSong: PreSong
|
|
@ -16,12 +16,12 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret.linker
|
||||
package org.oxycblt.auxio.musikr.interpret.linker
|
||||
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.emptyFlow
|
||||
import org.oxycblt.auxio.music.stack.explore.PlaylistFile
|
||||
import org.oxycblt.auxio.music.stack.interpret.model.PlaylistImpl
|
||||
import org.oxycblt.auxio.musikr.explore.PlaylistFile
|
||||
import org.oxycblt.auxio.musikr.interpret.model.PlaylistImpl
|
||||
|
||||
class PlaylistLinker {
|
||||
fun register(
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret.model
|
||||
package org.oxycblt.auxio.musikr.interpret.model
|
||||
|
||||
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.music.stack.interpret.linker.LinkedAlbum
|
||||
import org.oxycblt.auxio.music.stack.interpret.linker.LinkedSong
|
||||
import org.oxycblt.auxio.music.stack.interpret.prepare.PreArtist
|
||||
import org.oxycblt.auxio.music.stack.interpret.prepare.PreGenre
|
||||
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.util.update
|
||||
|
||||
/**
|
|
@ -16,13 +16,13 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret.model
|
||||
package org.oxycblt.auxio.musikr.interpret.model
|
||||
|
||||
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.music.stack.explore.fs.Path
|
||||
import org.oxycblt.auxio.musikr.explore.fs.Path
|
||||
|
||||
interface MutableLibrary : Library {
|
||||
suspend fun createPlaylist(name: String, songs: List<Song>): MutableLibrary
|
|
@ -16,12 +16,12 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret.model
|
||||
package org.oxycblt.auxio.musikr.interpret.model
|
||||
|
||||
import org.oxycblt.auxio.image.Cover
|
||||
import org.oxycblt.auxio.music.Playlist
|
||||
import org.oxycblt.auxio.music.info.Name
|
||||
import org.oxycblt.auxio.music.stack.interpret.linker.LinkedPlaylist
|
||||
import org.oxycblt.auxio.musikr.interpret.linker.LinkedPlaylist
|
||||
|
||||
class PlaylistImpl(linkedPlaylist: LinkedPlaylist) : Playlist {
|
||||
private val prePlaylist = linkedPlaylist.prePlaylist
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret.prepare
|
||||
package org.oxycblt.auxio.musikr.interpret.prepare
|
||||
|
||||
/// --- ID3v2 PARSING ---
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret.prepare
|
||||
package org.oxycblt.auxio.musikr.interpret.prepare
|
||||
|
||||
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.music.stack.explore.PlaylistHandle
|
||||
import org.oxycblt.auxio.music.stack.explore.fs.MimeType
|
||||
import org.oxycblt.auxio.music.stack.explore.fs.Path
|
||||
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.playback.replaygain.ReplayGainAdjustment
|
||||
import org.oxycblt.auxio.util.update
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret.prepare
|
||||
package org.oxycblt.auxio.musikr.interpret.prepare
|
||||
|
||||
import dagger.Binds
|
||||
import dagger.Module
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.auxio.music.stack.interpret.prepare
|
||||
package org.oxycblt.auxio.musikr.interpret.prepare
|
||||
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
@ -25,9 +25,9 @@ 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.music.stack.explore.AudioFile
|
||||
import org.oxycblt.auxio.music.stack.explore.fs.MimeType
|
||||
import org.oxycblt.auxio.music.stack.interpret.Interpretation
|
||||
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.playback.replaygain.ReplayGainAdjustment
|
||||
import org.oxycblt.auxio.util.toUuidOrNull
|
||||
|
|
@ -20,11 +20,11 @@ package org.oxycblt.auxio.music.metadata
|
|||
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
import org.oxycblt.auxio.music.stack.explore.extractor.correctWhitespace
|
||||
import org.oxycblt.auxio.music.stack.explore.extractor.parseId3v2PositionField
|
||||
import org.oxycblt.auxio.music.stack.explore.extractor.parseVorbisPositionField
|
||||
import org.oxycblt.auxio.music.stack.explore.extractor.splitEscaped
|
||||
import org.oxycblt.auxio.music.stack.interpret.prepare.parseId3GenreNames
|
||||
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
|
||||
|
||||
class TagUtilTest {
|
||||
@Test
|
||||
|
|
|
@ -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.music.stack.explore.extractor.TextTags
|
||||
import org.oxycblt.auxio.musikr.explore.extractor.TextTags
|
||||
|
||||
class TextTagsTest {
|
||||
@Test
|
||||
|
|
Loading…
Reference in a new issue