musikr: rename indexer to musikr
This commit is contained in:
parent
0f8294bf43
commit
3528392f95
9 changed files with 34 additions and 29 deletions
|
@ -25,7 +25,7 @@ import kotlinx.coroutines.Job
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import kotlinx.coroutines.yield
|
import kotlinx.coroutines.yield
|
||||||
import org.oxycblt.auxio.music.MusicRepository.IndexingWorker
|
import org.oxycblt.auxio.music.MusicRepository.IndexingWorker
|
||||||
import org.oxycblt.musikr.Indexer
|
import org.oxycblt.musikr.Musikr
|
||||||
import org.oxycblt.musikr.IndexingProgress
|
import org.oxycblt.musikr.IndexingProgress
|
||||||
import org.oxycblt.musikr.Library
|
import org.oxycblt.musikr.Library
|
||||||
import org.oxycblt.musikr.Music
|
import org.oxycblt.musikr.Music
|
||||||
|
@ -203,7 +203,7 @@ interface MusicRepository {
|
||||||
|
|
||||||
class MusicRepositoryImpl
|
class MusicRepositoryImpl
|
||||||
@Inject
|
@Inject
|
||||||
constructor(private val indexer: Indexer, private val musicSettings: MusicSettings) :
|
constructor(private val musikr: Musikr, private val musicSettings: MusicSettings) :
|
||||||
MusicRepository {
|
MusicRepository {
|
||||||
private val updateListeners = mutableListOf<MusicRepository.UpdateListener>()
|
private val updateListeners = mutableListOf<MusicRepository.UpdateListener>()
|
||||||
private val indexingListeners = mutableListOf<MusicRepository.IndexingListener>()
|
private val indexingListeners = mutableListOf<MusicRepository.IndexingListener>()
|
||||||
|
@ -350,7 +350,7 @@ constructor(private val indexer: Indexer, private val musicSettings: MusicSettin
|
||||||
val locations = musicSettings.musicLocations
|
val locations = musicSettings.musicLocations
|
||||||
|
|
||||||
val newLibrary =
|
val newLibrary =
|
||||||
indexer.run(locations, Interpretation(nameFactory, separators), ::emitIndexingProgress)
|
musikr.run(locations, Interpretation(nameFactory, separators), ::emitIndexingProgress)
|
||||||
|
|
||||||
emitIndexingCompletion(null)
|
emitIndexingCompletion(null)
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2024 Auxio Project
|
* Copyright (c) 2024 Auxio Project
|
||||||
* Indexer.kt is part of Auxio.
|
* Musikr.kt is part of Auxio.
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -31,7 +31,7 @@ import org.oxycblt.musikr.pipeline.ExploreStep
|
||||||
import org.oxycblt.musikr.pipeline.ExtractStep
|
import org.oxycblt.musikr.pipeline.ExtractStep
|
||||||
import org.oxycblt.musikr.tag.Interpretation
|
import org.oxycblt.musikr.tag.Interpretation
|
||||||
|
|
||||||
interface Indexer {
|
interface Musikr {
|
||||||
suspend fun run(
|
suspend fun run(
|
||||||
locations: List<MusicLocation>,
|
locations: List<MusicLocation>,
|
||||||
interpretation: Interpretation,
|
interpretation: Interpretation,
|
||||||
|
@ -50,13 +50,13 @@ sealed interface IndexingProgress {
|
||||||
data object Indeterminate : IndexingProgress
|
data object Indeterminate : IndexingProgress
|
||||||
}
|
}
|
||||||
|
|
||||||
class IndexerImpl
|
class MusikrImpl
|
||||||
@Inject
|
@Inject
|
||||||
constructor(
|
constructor(
|
||||||
private val exploreStep: ExploreStep,
|
private val exploreStep: ExploreStep,
|
||||||
private val extractStep: ExtractStep,
|
private val extractStep: ExtractStep,
|
||||||
private val evaluateStep: EvaluateStep
|
private val evaluateStep: EvaluateStep
|
||||||
) : Indexer {
|
) : Musikr {
|
||||||
override suspend fun run(
|
override suspend fun run(
|
||||||
locations: List<MusicLocation>,
|
locations: List<MusicLocation>,
|
||||||
interpretation: Interpretation,
|
interpretation: Interpretation,
|
|
@ -25,6 +25,6 @@ import dagger.hilt.components.SingletonComponent
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
@InstallIn(SingletonComponent::class)
|
@InstallIn(SingletonComponent::class)
|
||||||
interface StackModule {
|
interface MusikrModule {
|
||||||
@Binds fun indexer(impl: IndexerImpl): Indexer
|
@Binds fun musikr(impl: MusikrImpl): Musikr
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,17 +18,10 @@
|
||||||
|
|
||||||
package org.oxycblt.musikr.fs
|
package org.oxycblt.musikr.fs
|
||||||
|
|
||||||
import android.content.ContentResolver
|
|
||||||
import android.content.Context
|
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import dagger.hilt.components.SingletonComponent
|
import dagger.hilt.components.SingletonComponent
|
||||||
import org.oxycblt.musikr.fs.query.DeviceFiles
|
|
||||||
import org.oxycblt.musikr.fs.query.DeviceFilesImpl
|
|
||||||
import org.oxycblt.musikr.fs.query.contentResolverSafe
|
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
@InstallIn(SingletonComponent::class)
|
@InstallIn(SingletonComponent::class)
|
||||||
|
|
|
@ -68,8 +68,7 @@ class DeviceFilesImpl @Inject constructor(@ApplicationContext private val contex
|
||||||
): Flow<DeviceFile> = flow {
|
): Flow<DeviceFile> = flow {
|
||||||
contentResolver.useQuery(
|
contentResolver.useQuery(
|
||||||
DocumentsContract.buildChildDocumentsUriUsingTree(rootUri, treeDocumentId),
|
DocumentsContract.buildChildDocumentsUriUsingTree(rootUri, treeDocumentId),
|
||||||
PROJECTION
|
PROJECTION) { cursor ->
|
||||||
) { cursor ->
|
|
||||||
val childUriIndex =
|
val childUriIndex =
|
||||||
cursor.getColumnIndexOrThrow(DocumentsContract.Document.COLUMN_DOCUMENT_ID)
|
cursor.getColumnIndexOrThrow(DocumentsContract.Document.COLUMN_DOCUMENT_ID)
|
||||||
val displayNameIndex =
|
val displayNameIndex =
|
||||||
|
@ -101,8 +100,7 @@ class DeviceFilesImpl @Inject constructor(@ApplicationContext private val contex
|
||||||
mimeType,
|
mimeType,
|
||||||
newPath,
|
newPath,
|
||||||
size,
|
size,
|
||||||
lastModified)
|
lastModified))
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
emitAll(recursive.asFlow().flattenMerge())
|
emitAll(recursive.asFlow().flattenMerge())
|
||||||
|
|
|
@ -1,3 +1,21 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2024 Auxio Project
|
||||||
|
* QueryModule.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 <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
package org.oxycblt.musikr.fs.query
|
package org.oxycblt.musikr.fs.query
|
||||||
|
|
||||||
import android.content.ContentResolver
|
import android.content.ContentResolver
|
||||||
|
@ -8,8 +26,6 @@ import dagger.Provides
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import dagger.hilt.components.SingletonComponent
|
import dagger.hilt.components.SingletonComponent
|
||||||
import org.oxycblt.musikr.fs.MusicLocation
|
|
||||||
import org.oxycblt.musikr.fs.MusicLocationFactoryImpl
|
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
@InstallIn(SingletonComponent::class)
|
@InstallIn(SingletonComponent::class)
|
||||||
|
@ -22,6 +38,5 @@ class QueryProvidesModule {
|
||||||
@Module
|
@Module
|
||||||
@InstallIn(SingletonComponent::class)
|
@InstallIn(SingletonComponent::class)
|
||||||
interface QueryBindsModule {
|
interface QueryBindsModule {
|
||||||
@Binds
|
@Binds fun deviceFiles(deviceFilesImpl: DeviceFilesImpl): DeviceFiles
|
||||||
fun deviceFiles(deviceFilesImpl: DeviceFilesImpl): DeviceFiles
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,8 +23,8 @@ import android.media.MediaExtractor
|
||||||
import android.media.MediaFormat
|
import android.media.MediaFormat
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import org.oxycblt.musikr.fs.MimeType
|
|
||||||
import org.oxycblt.musikr.Song
|
import org.oxycblt.musikr.Song
|
||||||
|
import org.oxycblt.musikr.fs.MimeType
|
||||||
import timber.log.Timber as L
|
import timber.log.Timber as L
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -119,7 +119,6 @@ constructor(@ApplicationContext private val context: Context) : AudioProperties.
|
||||||
return AudioProperties(
|
return AudioProperties(
|
||||||
bitrate,
|
bitrate,
|
||||||
sampleRate,
|
sampleRate,
|
||||||
MimeType(fromExtension = song.mimeType.fromExtension, fromFormat = formatMimeType)
|
MimeType(fromExtension = song.mimeType.fromExtension, fromFormat = formatMimeType))
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,9 +24,9 @@ import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.asFlow
|
import kotlinx.coroutines.flow.asFlow
|
||||||
import kotlinx.coroutines.flow.flowOn
|
import kotlinx.coroutines.flow.flowOn
|
||||||
import kotlinx.coroutines.flow.mapNotNull
|
import kotlinx.coroutines.flow.mapNotNull
|
||||||
|
import org.oxycblt.musikr.fs.MusicLocation
|
||||||
import org.oxycblt.musikr.fs.query.DeviceFile
|
import org.oxycblt.musikr.fs.query.DeviceFile
|
||||||
import org.oxycblt.musikr.fs.query.DeviceFiles
|
import org.oxycblt.musikr.fs.query.DeviceFiles
|
||||||
import org.oxycblt.musikr.fs.MusicLocation
|
|
||||||
import org.oxycblt.musikr.playlist.m3u.M3U
|
import org.oxycblt.musikr.playlist.m3u.M3U
|
||||||
|
|
||||||
interface ExploreStep {
|
interface ExploreStep {
|
||||||
|
|
|
@ -23,8 +23,8 @@ import java.util.UUID
|
||||||
import org.oxycblt.auxio.music.MusicType
|
import org.oxycblt.auxio.music.MusicType
|
||||||
import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment
|
import org.oxycblt.auxio.playback.replaygain.ReplayGainAdjustment
|
||||||
import org.oxycblt.auxio.util.update
|
import org.oxycblt.auxio.util.update
|
||||||
import org.oxycblt.musikr.fs.MimeType
|
|
||||||
import org.oxycblt.musikr.Music
|
import org.oxycblt.musikr.Music
|
||||||
|
import org.oxycblt.musikr.fs.MimeType
|
||||||
import org.oxycblt.musikr.fs.Path
|
import org.oxycblt.musikr.fs.Path
|
||||||
import org.oxycblt.musikr.playlist.PlaylistHandle
|
import org.oxycblt.musikr.playlist.PlaylistHandle
|
||||||
import org.oxycblt.musikr.tag.Date
|
import org.oxycblt.musikr.tag.Date
|
||||||
|
|
Loading…
Reference in a new issue