music: add setting to ignore hidden files during music loading

This commit is contained in:
Alexander Capehart (aider) 2025-02-25 15:48:18 -07:00 committed by Alexander Capehart
parent e2b0601d4c
commit 10eb0be7d0
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
4 changed files with 26 additions and 3 deletions

View file

@ -384,13 +384,14 @@ constructor(
Naming.simple()
}
val locations = musicSettings.musicLocations
val ignoreHidden = musicSettings.ignoreHidden
val currentRevision = musicSettings.revision
val newRevision = currentRevision?.takeIf { withCache } ?: UUID.randomUUID()
val cache = if (withCache) storedCache.visible() else storedCache.invisible()
val covers = settingCovers.create(context, newRevision)
val storage = Storage(cache, covers, storedPlaylists)
val interpretation = Interpretation(nameFactory, separators)
val interpretation = Interpretation(nameFactory, separators, ignoreHidden)
val result =
Musikr.new(context, storage, interpretation).run(locations, ::emitIndexingProgress)

View file

@ -40,6 +40,8 @@ interface MusicSettings : Settings<MusicSettings.Listener> {
var musicLocations: List<MusicLocation>
/** Whether to exclude non-music audio files from the music library. */
val excludeNonMusic: Boolean
/** Whether to ignore hidden files and directories during music loading. */
val ignoreHidden: Boolean
/** Whether to be actively watching for changes in the music library. */
val shouldBeObserving: Boolean
/** A [String] of characters representing the desired characters to denote multi-value tags. */
@ -90,6 +92,9 @@ class MusicSettingsImpl @Inject constructor(@ApplicationContext private val cont
override val excludeNonMusic: Boolean
get() = sharedPreferences.getBoolean(getString(R.string.set_key_exclude_non_music), true)
override val ignoreHidden: Boolean
get() = sharedPreferences.getBoolean(getString(R.string.set_key_ignore_hidden), true)
override val shouldBeObserving: Boolean
get() = sharedPreferences.getBoolean(getString(R.string.set_key_observing), false)
@ -116,7 +121,9 @@ class MusicSettingsImpl @Inject constructor(@ApplicationContext private val cont
listener.onMusicLocationsChanged()
}
getString(R.string.set_key_separators),
getString(R.string.set_key_auto_sort_names) -> {
getString(R.string.set_key_auto_sort_names),
getString(R.string.set_key_ignore_hidden),
getString(R.string.set_key_exclude_non_music) -> {
L.d("Dispatching indexing setting change for $key")
listener.onIndexingSettingChanged()
}

View file

@ -67,5 +67,14 @@ class MusicPreferenceFragment : BasePreferenceFragment(R.xml.preferences_music)
true
}
}
if (preference.key == getString(R.string.set_key_ignore_hidden)) {
L.d("Configuring ignore hidden files setting")
preference.onPreferenceChangeListener =
Preference.OnPreferenceChangeListener { _, _ ->
L.d("Ignore hidden files setting changed, reloading music")
musicModel.refresh()
true
}
}
}
}

View file

@ -14,6 +14,12 @@
app:key="@string/set_key_exclude_non_music"
app:summary="@string/set_exclude_non_music_desc"
app:title="@string/set_exclude_non_music" />
<SwitchPreferenceCompat
app:defaultValue="true"
app:key="@string/set_key_ignore_hidden"
app:summary="@string/set_ignore_hidden_desc"
app:title="@string/set_ignore_hidden" />
<org.oxycblt.auxio.settings.ui.WrappedDialogPreference
app:key="@string/set_key_separators"
@ -50,4 +56,4 @@
app:title="@string/set_square_covers" />
</PreferenceCategory>
</PreferenceScreen>
</PreferenceScreen>