diff --git a/musikr/src/main/java/org/oxycblt/musikr/Config.kt b/musikr/src/main/java/org/oxycblt/musikr/Config.kt index d00b3b052..6cded8171 100644 --- a/musikr/src/main/java/org/oxycblt/musikr/Config.kt +++ b/musikr/src/main/java/org/oxycblt/musikr/Config.kt @@ -57,5 +57,5 @@ data class Interpretation( val separators: Separators, /** Whether to ignore hidden files and directories (those starting with a dot). */ - val ignoreHidden: Boolean = true + val ignoreHidden: Boolean ) diff --git a/musikr/src/main/java/org/oxycblt/musikr/Musikr.kt b/musikr/src/main/java/org/oxycblt/musikr/Musikr.kt index c18a01684..934880963 100644 --- a/musikr/src/main/java/org/oxycblt/musikr/Musikr.kt +++ b/musikr/src/main/java/org/oxycblt/musikr/Musikr.kt @@ -71,7 +71,7 @@ interface Musikr { fun new(context: Context, storage: Storage, interpretation: Interpretation): Musikr = MusikrImpl( storage, - ExploreStep.from(context, storage), + ExploreStep.from(context, storage, interpretation), ExtractStep.from(context, storage), EvaluateStep.new(storage, interpretation)) } diff --git a/musikr/src/main/java/org/oxycblt/musikr/fs/device/DeviceFiles.kt b/musikr/src/main/java/org/oxycblt/musikr/fs/device/DeviceFiles.kt index 2ba57558d..9f8e8979c 100644 --- a/musikr/src/main/java/org/oxycblt/musikr/fs/device/DeviceFiles.kt +++ b/musikr/src/main/java/org/oxycblt/musikr/fs/device/DeviceFiles.kt @@ -31,16 +31,16 @@ import org.oxycblt.musikr.fs.MusicLocation import org.oxycblt.musikr.fs.Path internal interface DeviceFiles { - fun explore(locations: Flow, ignoreHidden: Boolean = true): Flow + fun explore(locations: Flow): Flow companion object { - fun from(context: Context): DeviceFiles = DeviceFilesImpl(context.contentResolverSafe) + fun from(context: Context, ignoreHidden: Boolean): DeviceFiles = DeviceFilesImpl(context.contentResolverSafe, ignoreHidden) } } @OptIn(ExperimentalCoroutinesApi::class) -private class DeviceFilesImpl(private val contentResolver: ContentResolver) : DeviceFiles { - override fun explore(locations: Flow, ignoreHidden: Boolean): Flow = +private class DeviceFilesImpl(private val contentResolver: ContentResolver, private val ignoreHidden: Boolean) : DeviceFiles { + override fun explore(locations: Flow): Flow = locations.flatMapMerge { location -> // Create a root directory for each location val rootDirectory = diff --git a/musikr/src/main/java/org/oxycblt/musikr/pipeline/ExploreStep.kt b/musikr/src/main/java/org/oxycblt/musikr/pipeline/ExploreStep.kt index 65f742688..24d12470e 100644 --- a/musikr/src/main/java/org/oxycblt/musikr/pipeline/ExploreStep.kt +++ b/musikr/src/main/java/org/oxycblt/musikr/pipeline/ExploreStep.kt @@ -30,6 +30,7 @@ import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.merge +import org.oxycblt.musikr.Interpretation import org.oxycblt.musikr.Storage import org.oxycblt.musikr.fs.MusicLocation import org.oxycblt.musikr.fs.device.DeviceDirectory @@ -44,8 +45,8 @@ internal interface ExploreStep { fun explore(locations: List): Flow companion object { - fun from(context: Context, storage: Storage): ExploreStep = - ExploreStepImpl(DeviceFiles.from(context), storage.storedPlaylists) + fun from(context: Context, storage: Storage, interpretation: Interpretation): ExploreStep = + ExploreStepImpl(DeviceFiles.from(context, interpretation.ignoreHidden), storage.storedPlaylists) } }