diff --git a/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt index 3c128e671..b41dd2a94 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/HomeFragment.kt @@ -306,9 +306,7 @@ class HomeFragment : if (unit == null) { return } - findNavController().navigateSafe( - HomeFragmentDirections.chooseLocations() - ) + findNavController().navigateSafe(HomeFragmentDirections.chooseLocations()) homeModel.chooseMusicLocations.consume() } diff --git a/app/src/main/java/org/oxycblt/auxio/home/list/AlbumListFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/list/AlbumListFragment.kt index ca9b5cd9e..0638f770e 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/list/AlbumListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/list/AlbumListFragment.kt @@ -83,9 +83,7 @@ class AlbumListFragment : binding.homeNoMusicMsg.text = getString(R.string.lng_no_albums) - binding.homeChooseMusicSources.setOnClickListener { - homeModel.startChooseMusicLocations() - } + binding.homeChooseMusicSources.setOnClickListener { homeModel.startChooseMusicLocations() } collectImmediately(homeModel.albumList, musicModel.indexingState, ::updateAlbums) collectImmediately(listModel.selected, ::updateSelection) diff --git a/app/src/main/java/org/oxycblt/auxio/home/list/ArtistListFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/list/ArtistListFragment.kt index 5e0290428..1d1096ace 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/list/ArtistListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/list/ArtistListFragment.kt @@ -78,9 +78,7 @@ class ArtistListFragment : binding.homeNoMusicMsg.text = getString(R.string.lng_no_artists) - binding.homeChooseMusicSources.setOnClickListener { - homeModel.startChooseMusicLocations() - } + binding.homeChooseMusicSources.setOnClickListener { homeModel.startChooseMusicLocations() } collectImmediately(homeModel.artistList, musicModel.indexingState, ::updateArtists) collectImmediately(listModel.selected, ::updateSelection) diff --git a/app/src/main/java/org/oxycblt/auxio/home/list/GenreListFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/list/GenreListFragment.kt index 86a8bc795..99f26526f 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/list/GenreListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/list/GenreListFragment.kt @@ -77,9 +77,7 @@ class GenreListFragment : binding.homeNoMusicMsg.text = getString(R.string.lng_no_genres) - binding.homeChooseMusicSources.setOnClickListener { - homeModel.startChooseMusicLocations() - } + binding.homeChooseMusicSources.setOnClickListener { homeModel.startChooseMusicLocations() } collectImmediately(homeModel.genreList, musicModel.indexingState, ::updateGenres) collectImmediately(listModel.selected, ::updateSelection) diff --git a/app/src/main/java/org/oxycblt/auxio/home/list/PlaylistListFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/list/PlaylistListFragment.kt index ecfd99065..17ebd73f6 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/list/PlaylistListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/list/PlaylistListFragment.kt @@ -75,9 +75,7 @@ class PlaylistListFragment : binding.homeNoMusicMsg.text = getString(R.string.lng_no_playlists) - binding.homeChooseMusicSources.setOnClickListener { - homeModel.startChooseMusicLocations() - } + binding.homeChooseMusicSources.setOnClickListener { homeModel.startChooseMusicLocations() } collectImmediately(homeModel.playlistList, musicModel.indexingState, ::updatePlaylists) collectImmediately(listModel.selected, ::updateSelection) @@ -126,7 +124,8 @@ class PlaylistListFragment : private fun updatePlaylists(playlists: List, indexingState: IndexingState?) { requireBinding().apply { - homeRecycler.isInvisible = indexingState is IndexingState.Indexing || playlists.isEmpty() + homeRecycler.isInvisible = + indexingState is IndexingState.Indexing || playlists.isEmpty() homeNoMusic.isInvisible = playlists.isEmpty() } playlistAdapter.update(playlists, homeModel.playlistInstructions.consume()) diff --git a/app/src/main/java/org/oxycblt/auxio/home/list/SongListFragment.kt b/app/src/main/java/org/oxycblt/auxio/home/list/SongListFragment.kt index a48e18218..c8c34c432 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/list/SongListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/list/SongListFragment.kt @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - + package org.oxycblt.auxio.home.list import android.os.Bundle @@ -81,15 +81,12 @@ class SongListFragment : binding.homeNoMusicMsg.text = getString(R.string.lng_no_songs) - binding.homeChooseMusicSources.setOnClickListener { - homeModel.startChooseMusicLocations() - } + binding.homeChooseMusicSources.setOnClickListener { homeModel.startChooseMusicLocations() } collectImmediately(homeModel.songList, musicModel.indexingState, ::updateSongs) collectImmediately(listModel.selected, ::updateSelection) collectImmediately( - playbackModel.song, playbackModel.parent, playbackModel.isPlaying, ::updatePlayback - ) + playbackModel.song, playbackModel.parent, playbackModel.isPlaying, ::updatePlayback) } override fun onDestroyBinding(binding: FragmentHomeListBinding) { @@ -127,12 +124,11 @@ class SongListFragment : val dateAddedMillis = song.dateAdded.secsToMs() formatterSb.setLength(0) DateUtils.formatDateRange( - context, - formatter, - dateAddedMillis, - dateAddedMillis, - DateUtils.FORMAT_ABBREV_ALL - ) + context, + formatter, + dateAddedMillis, + dateAddedMillis, + DateUtils.FORMAT_ABBREV_ALL) .toString() } @@ -159,7 +155,6 @@ class SongListFragment : homeNoMusic.isInvisible = songs.isEmpty() } songAdapter.update(songs, homeModel.songInstructions.consume()) - } private fun updateSelection(selection: List) { 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 acd985780..c3805f9cd 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,6 @@ 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.dirs.MusicDirectories import org.oxycblt.auxio.music.stack.explore.fs.DocumentPathFactory import org.oxycblt.auxio.settings.Settings import timber.log.Timber as L @@ -35,8 +34,7 @@ import timber.log.Timber as L * @author Alexander Capehart (OxygenCobalt) */ interface MusicSettings : Settings { - /** The configuration on how to handle particular directories in the music library. */ - var musicDirs: MusicDirectories + /** The locations of music to load. */ var musicLocations: List /** Whether to exclude non-music audio files from the music library. */ val excludeNonMusic: Boolean @@ -61,25 +59,27 @@ constructor( @ApplicationContext context: Context, private val documentPathFactory: DocumentPathFactory ) : Settings.Impl(context), MusicSettings { - override var musicDirs: MusicDirectories - get() { - val dirs = - (sharedPreferences.getStringSet(getString(R.string.set_key_music_dirs), null) - ?: emptySet()) - .mapNotNull(documentPathFactory::fromDocumentId) - return MusicDirectories( - dirs, - sharedPreferences.getBoolean(getString(R.string.set_key_music_dirs_include), false)) - } - set(value) { - sharedPreferences.edit { - putStringSet( - getString(R.string.set_key_music_dirs), - value.dirs.map(documentPathFactory::toDocumentId).toSet()) - putBoolean(getString(R.string.set_key_music_dirs_include), value.shouldInclude) - apply() - } - } + // override var musicDirs: MusicDirectories + // get() { + // val dirs = + // (sharedPreferences.getStringSet(getString(R.string.set_key_music_dirs), null) + // ?: emptySet()) + // .mapNotNull(documentPathFactory::fromDocumentId) + // return MusicDirectories( + // dirs, + // sharedPreferences.getBoolean(getString(R.string.set_key_music_dirs_include), + // false)) + // } + // set(value) { + // sharedPreferences.edit { + // putStringSet( + // getString(R.string.set_key_music_dirs), + // value.dirs.map(documentPathFactory::toDocumentId).toSet()) + // putBoolean(getString(R.string.set_key_music_dirs_include), + // value.shouldInclude) + // apply() + // } + // } override var musicLocations: List get() { diff --git a/app/src/main/java/org/oxycblt/auxio/music/dirs/DirectoryAdapter.kt b/app/src/main/java/org/oxycblt/auxio/music/dirs/DirectoryAdapter.kt deleted file mode 100644 index 4daa379b6..000000000 --- a/app/src/main/java/org/oxycblt/auxio/music/dirs/DirectoryAdapter.kt +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2021 Auxio Project - * DirectoryAdapter.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.music.dirs - -import android.view.View -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView -import org.oxycblt.auxio.databinding.ItemMusicDirBinding -import org.oxycblt.auxio.list.recycler.DialogRecyclerView -import org.oxycblt.auxio.music.stack.explore.fs.Path -import org.oxycblt.auxio.util.context -import org.oxycblt.auxio.util.inflater -import timber.log.Timber as L - -/** - * [RecyclerView.Adapter] that manages a list of [Path] music directory instances. - * - * @param listener A [DirectoryAdapter.Listener] to bind interactions to. - * @author Alexander Capehart (OxygenCobalt) - */ -class DirectoryAdapter(private val listener: Listener) : - RecyclerView.Adapter() { - private val _dirs = mutableListOf() - /** The current list of [Path]s, may not line up with [MusicDirectories] due to removals. */ - val dirs: List = _dirs - - override fun getItemCount() = dirs.size - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = - MusicDirViewHolder.from(parent) - - override fun onBindViewHolder(holder: MusicDirViewHolder, position: Int) = - holder.bind(dirs[position], listener) - - /** - * Add a [Path] to the end of the list. - * - * @param path The [Path] to add. - */ - fun add(path: Path) { - if (_dirs.contains(path)) return - L.d("Adding $path") - _dirs.add(path) - notifyItemInserted(_dirs.lastIndex) - } - - /** - * Add a list of [Path] instances to the end of the list. - * - * @param path The [Path] instances to add. - */ - fun addAll(path: List) { - L.d("Adding ${path.size} directories") - val oldLastIndex = path.lastIndex - _dirs.addAll(path) - notifyItemRangeInserted(oldLastIndex, path.size) - } - - /** - * Remove a [Path] from the list. - * - * @param path The [Path] to remove. Must exist in the list. - */ - fun remove(path: Path) { - L.d("Removing $path") - val idx = _dirs.indexOf(path) - _dirs.removeAt(idx) - notifyItemRemoved(idx) - } - - /** A Listener for [DirectoryAdapter] interactions. */ - interface Listener { - /** Called when the delete button on a directory item is clicked. */ - fun onRemoveDirectory(dir: Path) - } -} - -/** - * A [RecyclerView.Recycler] that displays a [Path]. Use [from] to create an instance. - * - * @author Alexander Capehart (OxygenCobalt) - */ -class MusicDirViewHolder private constructor(private val binding: ItemMusicDirBinding) : - DialogRecyclerView.ViewHolder(binding.root) { - /** - * Bind new data to this instance. - * - * @param path The new [Path] to bind. - * @param listener A [DirectoryAdapter.Listener] to bind interactions to. - */ - fun bind(path: Path, listener: DirectoryAdapter.Listener) { - binding.dirPath.text = path.resolve(binding.context) - binding.dirDelete.setOnClickListener { listener.onRemoveDirectory(path) } - } - - companion object { - /** - * Create a new instance. - * - * @param parent The parent to inflate this instance from. - * @return A new instance. - */ - fun from(parent: View) = - MusicDirViewHolder(ItemMusicDirBinding.inflate(parent.context.inflater)) - } -} diff --git a/app/src/main/java/org/oxycblt/auxio/music/dirs/MusicDirectories.kt b/app/src/main/java/org/oxycblt/auxio/music/dirs/MusicDirectories.kt deleted file mode 100644 index 9a39d54fa..000000000 --- a/app/src/main/java/org/oxycblt/auxio/music/dirs/MusicDirectories.kt +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2023 Auxio Project - * MusicDirectories.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.music.dirs - -import org.oxycblt.auxio.music.stack.explore.fs.Path - -/** - * Represents the configuration for specific directories to filter to/from when loading music. - * - * @param dirs A list of directory [Path] instances. How these are interpreted depends on - * [shouldInclude] - * @param shouldInclude True if the library should only load from the [Path] instances, false if the - * library should not load from the [Path] instances. - * @author Alexander Capehart (OxygenCobalt) - */ -data class MusicDirectories(val dirs: List, val shouldInclude: Boolean) 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 new file mode 100644 index 000000000..bbcefd0ca --- /dev/null +++ b/app/src/main/java/org/oxycblt/auxio/music/locations/LocationAdapter.kt @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2021 Auxio Project + * LocationAdapter.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.music.locations + +import android.net.Uri +import android.view.View +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.util.context +import org.oxycblt.auxio.util.inflater +import timber.log.Timber as L + +/** + * [RecyclerView.Adapter] that manages a list of [MusicLocation] music directory instances. + * + * @param listener A [LocationAdapter.Listener] to bind interactions to. + * @author Alexander Capehart (OxygenCobalt) + */ +class LocationAdapter(private val listener: Listener) : RecyclerView.Adapter() { + private val _locations = mutableListOf() + /** + * The current list of [MusicLocation]s, may not line up with [MusicLocation]s due to removals. + */ + val locations: List = _locations + + override fun getItemCount() = locations.size + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = + MusicDirViewHolder.from(parent) + + override fun onBindViewHolder(holder: MusicDirViewHolder, position: Int) = + holder.bind(locations[position], listener) + + /** + * Add a [MusicLocation] to the end of the list. + * + * @param location The [MusicLocation] to add. + */ + fun add(location: MusicLocation) { + if (_locations.contains(location)) return + L.d("Adding $location") + _locations.add(location) + notifyItemInserted(_locations.lastIndex) + } + + /** + * Add a list of [MusicLocation] instances to the end of the list. + * + * @param locations The [MusicLocation] instances to add. + */ + fun addAll(locations: List) { + L.d("Adding ${locations.size} locations") + val oldLastIndex = locations.lastIndex + _locations.addAll(locations) + notifyItemRangeInserted(oldLastIndex, locations.size) + } + + /** + * Remove a [MusicLocation] from the list. + * + * @param location The [MusicLocation] to remove. Must exist in the list. + */ + fun remove(location: MusicLocation) { + L.d("Removing $location") + val idx = _locations.indexOf(location) + _locations.removeAt(idx) + notifyItemRemoved(idx) + } + + /** A Listener for [LocationAdapter] interactions. */ + interface Listener { + /** Called when the delete button on a directory item is clicked. */ + fun onRemoveLocation(location: MusicLocation) + } +} + +data class MusicLocation(val uri: Uri, val path: Path) + +/** + * A [RecyclerView.Recycler] that displays a [MusicLocation]. Use [from] to create an instance. + * + * @author Alexander Capehart (OxygenCobalt) + */ +class MusicDirViewHolder private constructor(private val binding: ItemMusicLocationBinding) : + DialogRecyclerView.ViewHolder(binding.root) { + /** + * Bind new data to this instance. + * + * @param location The new [MusicLocation] to bind. + * @param listener A [LocationAdapter.Listener] to bind interactions to. + */ + fun bind(location: MusicLocation, listener: LocationAdapter.Listener) { + binding.locationPath.text = location.path.resolve(binding.context) + binding.locationDelete.setOnClickListener { listener.onRemoveLocation(location) } + } + + companion object { + /** + * Create a new instance. + * + * @param parent The parent to inflate this instance from. + * @return A new instance. + */ + fun from(parent: View) = + MusicDirViewHolder(ItemMusicLocationBinding.inflate(parent.context.inflater)) + } +} diff --git a/app/src/main/java/org/oxycblt/auxio/music/dirs/MusicDirsDialog.kt b/app/src/main/java/org/oxycblt/auxio/music/locations/MusicSourcesDialog.kt similarity index 51% rename from app/src/main/java/org/oxycblt/auxio/music/dirs/MusicDirsDialog.kt rename to app/src/main/java/org/oxycblt/auxio/music/locations/MusicSourcesDialog.kt index 0c14abd65..0bbe30fa9 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/dirs/MusicDirsDialog.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/locations/MusicSourcesDialog.kt @@ -1,6 +1,6 @@ /* * Copyright (c) 2021 Auxio Project - * MusicDirsDialog.kt is part of Auxio. + * MusicSourcesDialog.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.music.dirs +package org.oxycblt.auxio.music.locations import android.content.ActivityNotFoundException import android.net.Uri @@ -31,49 +31,51 @@ import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.R -import org.oxycblt.auxio.databinding.DialogMusicDirsBinding +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.music.stack.explore.fs.Path import org.oxycblt.auxio.ui.ViewBindingMaterialDialogFragment import org.oxycblt.auxio.util.showToast import timber.log.Timber as L /** - * Dialog that manages the music dirs setting. + * Dialog that manages the music locations setting. * * @author Alexander Capehart (OxygenCobalt) */ @AndroidEntryPoint -class MusicDirsDialog : - ViewBindingMaterialDialogFragment(), DirectoryAdapter.Listener { - private val dirAdapter = DirectoryAdapter(this) +class MusicSourcesDialog : + ViewBindingMaterialDialogFragment(), LocationAdapter.Listener { + private val locationAdapter = LocationAdapter(this) private var openDocumentTreeLauncher: ActivityResultLauncher? = null @Inject lateinit var documentPathFactory: DocumentPathFactory @Inject lateinit var musicSettings: MusicSettings override fun onCreateBinding(inflater: LayoutInflater) = - DialogMusicDirsBinding.inflate(inflater) + DialogMusicLocationsBinding.inflate(inflater) override fun onConfigDialog(builder: AlertDialog.Builder) { builder - .setTitle(R.string.set_dirs) + .setTitle(R.string.set_locations) .setNegativeButton(R.string.lbl_cancel, null) .setPositiveButton(R.string.lbl_save) { _, _ -> - val newDirs = MusicDirectories(dirAdapter.dirs, isUiModeInclude(requireBinding())) - if (musicSettings.musicDirs != newDirs) { + val newDirs = locationAdapter.locations.map { it.uri } + if (musicSettings.musicLocations != newDirs) { L.d("Committing changes") - musicSettings.musicDirs = newDirs + musicSettings.musicLocations = newDirs } } } - override fun onBindingCreated(binding: DialogMusicDirsBinding, savedInstanceState: Bundle?) { + override fun onBindingCreated( + binding: DialogMusicLocationsBinding, + savedInstanceState: Bundle? + ) { openDocumentTreeLauncher = registerForActivityResult( ActivityResultContracts.OpenDocumentTree(), ::addDocumentTreeUriToDirs) - binding.dirsAdd.apply { + binding.locationsAdd.apply { ViewCompat.setTooltipText(this, contentDescription) setOnClickListener { L.d("Opening launcher") @@ -91,98 +93,65 @@ class MusicDirsDialog : } } - binding.dirsRecycler.apply { - adapter = dirAdapter + binding.locationsRecycler.apply { + adapter = locationAdapter itemAnimator = null } - var dirs = musicSettings.musicDirs - if (savedInstanceState != null) { - val pendingDirs = savedInstanceState.getStringArrayList(KEY_PENDING_DIRS) - if (pendingDirs != null) { - dirs = - MusicDirectories( - pendingDirs.mapNotNull(documentPathFactory::fromDocumentId), - savedInstanceState.getBoolean(KEY_PENDING_MODE)) + val locationUris = + savedInstanceState?.getStringArrayList(KEY_PENDING_LOCATIONS)?.map { Uri.parse(it) } + ?: musicSettings.musicLocations + val locations = + locationUris.mapNotNull { + MusicLocation( + it, documentPathFactory.unpackDocumentTreeUri(it) ?: return@mapNotNull null) } - } - dirAdapter.addAll(dirs.dirs) - requireBinding().dirsEmpty.isVisible = dirs.dirs.isEmpty() - - binding.folderModeGroup.apply { - check( - if (dirs.shouldInclude) { - R.id.dirs_mode_include - } else { - R.id.dirs_mode_exclude - }) - - updateMode() - addOnButtonCheckedListener { _, _, _ -> updateMode() } - } + locationAdapter.addAll(locations) + requireBinding().locationsEmpty.isVisible = locations.isEmpty() } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) outState.putStringArrayList( - KEY_PENDING_DIRS, ArrayList(dirAdapter.dirs.map(documentPathFactory::toDocumentId))) - outState.putBoolean(KEY_PENDING_MODE, isUiModeInclude(requireBinding())) + KEY_PENDING_LOCATIONS, ArrayList(locationAdapter.locations.map { it.uri.toString() })) } - override fun onDestroyBinding(binding: DialogMusicDirsBinding) { + override fun onDestroyBinding(binding: DialogMusicLocationsBinding) { super.onDestroyBinding(binding) openDocumentTreeLauncher = null - binding.dirsRecycler.adapter = null + binding.locationsRecycler.adapter = null } - override fun onRemoveDirectory(dir: Path) { - dirAdapter.remove(dir) - requireBinding().dirsEmpty.isVisible = dirAdapter.dirs.isEmpty() + override fun onRemoveLocation(location: MusicLocation) { + locationAdapter.remove(location) + requireBinding().locationsEmpty.isVisible = locationAdapter.locations.isEmpty() } /** - * Add a Document Tree [Uri] chosen by the user to the current [MusicDirectories] instance. + * Add a Document Tree [Uri] chosen by the user to the current [MusicLocation]s. * * @param uri The document tree [Uri] to add, chosen by the user. Will do nothing if the [Uri] * is null or not valid. */ private fun addDocumentTreeUriToDirs(uri: Uri?) { if (uri == null) { - // A null URI means that the user left the file picker without picking a directory + // A null URI means that the user left the file picker without picking a locationectory L.d("No URI given (user closed the dialog)") return } - val dir = documentPathFactory.unpackDocumentTreeUri(uri) + val path = documentPathFactory.unpackDocumentTreeUri(uri) - if (dir != null) { - dirAdapter.add(dir) - requireBinding().dirsEmpty.isVisible = false + if (path != null) { + locationAdapter.add(MusicLocation(uri, path)) + requireBinding().locationsEmpty.isVisible = false } else { - requireContext().showToast(R.string.err_bad_dir) + requireContext().showToast(R.string.err_bad_location) } } - private fun updateMode() { - val binding = requireBinding() - if (isUiModeInclude(binding)) { - binding.dirsModeExclude.icon = null - binding.dirsModeInclude.setIconResource(R.drawable.ic_check_24) - binding.dirsModeDesc.setText(R.string.set_dirs_mode_include_desc) - } else { - binding.dirsModeExclude.setIconResource(R.drawable.ic_check_24) - binding.dirsModeInclude.icon = null - binding.dirsModeDesc.setText(R.string.set_dirs_mode_exclude_desc) - } - } - - /** Get if the UI has currently configured [MusicDirectories.shouldInclude] to be true. */ - private fun isUiModeInclude(binding: DialogMusicDirsBinding) = - binding.folderModeGroup.checkedButtonId == R.id.dirs_mode_include - private companion object { - const val KEY_PENDING_DIRS = BuildConfig.APPLICATION_ID + ".key.PENDING_DIRS" - const val KEY_PENDING_MODE = BuildConfig.APPLICATION_ID + ".key.SHOULD_INCLUDE" + const val KEY_PENDING_LOCATIONS = BuildConfig.APPLICATION_ID + ".key.PENDING_LOCATIONS" } } diff --git a/app/src/main/java/org/oxycblt/auxio/music/stack/interpret/model/Library.kt b/app/src/main/java/org/oxycblt/auxio/music/stack/interpret/model/Library.kt index 849e25188..e094b0ee3 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/stack/interpret/model/Library.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/stack/interpret/model/Library.kt @@ -22,7 +22,7 @@ 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.Pathi +import org.oxycblt.auxio.music.stack.explore.fs.Path interface MutableLibrary : Library { suspend fun createPlaylist(name: String, songs: List): MutableLibrary diff --git a/app/src/main/java/org/oxycblt/auxio/settings/RootPreferenceFragment.kt b/app/src/main/java/org/oxycblt/auxio/settings/RootPreferenceFragment.kt index 689bf9a05..39a523c0c 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/RootPreferenceFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/RootPreferenceFragment.kt @@ -52,7 +52,8 @@ class RootPreferenceFragment : BasePreferenceFragment(R.xml.preferences_root) { override fun onOpenDialogPreference(preference: WrappedDialogPreference) { if (preference.key == getString(R.string.set_key_music_dirs)) { - findNavController().navigateSafe(RootPreferenceFragmentDirections.musicDirsSettings()) + findNavController() + .navigateSafe(RootPreferenceFragmentDirections.musicLocationsSettings()) } } diff --git a/app/src/main/res/layout/dialog_music_dirs.xml b/app/src/main/res/layout/dialog_music_dirs.xml deleted file mode 100644 index 0885dbc22..000000000 --- a/app/src/main/res/layout/dialog_music_dirs.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_music_locations.xml b/app/src/main/res/layout/dialog_music_locations.xml new file mode 100644 index 000000000..0792b51c0 --- /dev/null +++ b/app/src/main/res/layout/dialog_music_locations.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_music_dir.xml b/app/src/main/res/layout/item_music_location.xml similarity index 89% rename from app/src/main/res/layout/item_music_dir.xml rename to app/src/main/res/layout/item_music_location.xml index ae1082de6..45d427155 100644 --- a/app/src/main/res/layout/item_music_dir.xml +++ b/app/src/main/res/layout/item_music_location.xml @@ -10,7 +10,7 @@ android:paddingBottom="@dimen/spacing_small"> diff --git a/app/src/main/res/navigation/inner.xml b/app/src/main/res/navigation/inner.xml index 13f90102b..2f8b7a6f8 100644 --- a/app/src/main/res/navigation/inner.xml +++ b/app/src/main/res/navigation/inner.xml @@ -89,7 +89,7 @@ app:destination="@id/error_details_dialog" /> + app:destination="@id/music_locations_dialog" /> + android:id="@+id/music_locations_dialog" + android:name="org.oxycblt.auxio.music.locations.MusicSourcesDialog" + android:label="music_locations_dialog" + tools:layout="@layout/dialog_music_locations" /> \ No newline at end of file diff --git a/app/src/main/res/navigation/outer.xml b/app/src/main/res/navigation/outer.xml index 63adfa466..503172f3b 100644 --- a/app/src/main/res/navigation/outer.xml +++ b/app/src/main/res/navigation/outer.xml @@ -34,8 +34,8 @@ android:id="@+id/audio_peferences" app:destination="@id/audio_preferences_fragment" /> + android:id="@+id/music_locations_settings" + app:destination="@id/music_locations_dialog" /> + android:id="@+id/music_locations_dialog" + android:name="org.oxycblt.auxio.music.locations.MusicSourcesDialog" + android:label="music_locations_dialog" + tools:layout="@layout/dialog_music_locations" /> أذهب إلى الالبوم أضف حفظ - لا مجلد + لا مجلد حول الإصدار عرض على الكود في Github @@ -75,7 +75,7 @@ فشل تحميل الموسيقى اوكسيو يحتاج إلى صلاحيات لقراءة للاطلاع على مكتبتك للموسيقى لا يوجد تطبيق لفتح هذا الرابط - هذا المجلد غير مدعوم + هذا المجلد غير مدعوم البحث في مكتبتك… @@ -90,7 +90,7 @@ نقل اغنية من الطابور تحريك التبويت إزالة كلمة البحث - إزالة المجلد المستبعد + إزالة المجلد المستبعد ايقونة اوكسيو غلاف الالبوم غلاف الالبوم لـ %s diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 9e162c19a..c2ac9d5ce 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -109,7 +109,7 @@ إظهار فقط الفنانين المُعتمدين مباشرة على الألبوم (يعمل بشكل أفضل في المكتبات المعروفة بتوسيماتها الجيدة) المحتوى - مجلدات + مجلدات إخفاء المتعاونين ضبط سلوك وصوت التشغيل إعادة التشغيل قبل الانتقال للوراء @@ -130,7 +130,7 @@ الانتقال إلى التالي غلاف الألبوم غير قادر على تصدير قائمة التشغيل إلى هذا الملف - إزالة المجلد + إزالة المجلد رمز مساعد %1$s، %2$s متحرك @@ -169,8 +169,8 @@ اغنية فردية ريميكس الصور إعادة تحميل مكتبة الموسيقى، باستخدام العلامات المخزنة مؤقتًا عند الإمكان - لا توجد مجلدات - هذا المجلد غير مدعوم + لا توجد مجلدات + هذا المجلد غير مدعوم خلط جميع الأغاني ازرق سماوي تحرير %s @@ -225,8 +225,8 @@ صوت تحذير: تغيير مكبر الصوت المسبق إلى قيمة إيجابية عالية قد يؤدي إلى ظهور ذروات صوتية على بعض المسارات الصوتية. مكتبة - مجلدات الموسيقى - إدارة موقع تحميل الموسيقى + مجلدات الموسيقى + إدارة موقع تحميل الموسيقى الموسيقى لن تتم تحميلها من المجلدات التي تقوم بإضافتها. الموسيقى ستتم تحميلها فقط من المجلدات التي تقوم بإضافتها. الانتقال إلى الأغنية الأخيرة diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index d3c595384..d64ea439f 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -97,7 +97,7 @@ Падвышанай якасці (павольная загрузка) Аддайце перавагу альбому, калі ён гучыць Карэкціроўка без тэгаў - Тэчкі з музыкай + Тэчкі з музыкай Аўтапрайграванне гарнітуры Наладзьце гук і паводзіны прайгравання Заўсёды пачынаць гульню, калі падключана гарнітура (можа працаваць не на ўсіх прыладах) @@ -113,8 +113,8 @@ Аддайце перавагу альбому Папярэдні ўзмацняльнік ReplayGain Бібліятэка - Кіруйце месцам загрузкі музыкі - Тэчкі + Кіруйце месцам загрузкі музыкі + Тэчкі Рэжым Выключэнні Музыка не будзе загружана з выбраных тэчак. @@ -126,8 +126,8 @@ Auxio патрабуецца дазвол на чытанне вашай музычнай бібліятэкі Музыка не знойдзена Памылка загрузкі музыкі - Няма тэчак - Гэтая папка не падтрымліваецца + Няма тэчак + Гэтая папка не падтрымліваецца Кампазіцыя %d Перамясціць песню ў чаргу Не знойдзена прыкладання, якое можа справіцца з гэтай задачай @@ -142,7 +142,7 @@ Спыніць прайграванне Адкрыйце чаргу Ачысціць пошукавы запыт - Выдаліць тэчку + Выдаліць тэчку Вокладка альбома Вокладка альбома %s Выява выканаўцы для %s diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index eacbfb1f5..da701efc5 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -208,9 +208,9 @@ Регулиране с етикети Корекция без етикети Библиотека - Музикални папки - Управлявайте откъде да се зарежда музиката - Папки + Музикални папки + Управлявайте откъде да се зарежда музиката + Папки Режим Изключете Музиката няма да се зарежда от папките, които добавяте. @@ -221,7 +221,7 @@ Auxio се нуждае от разрешение, за да чете вашата музикална библиотека Плейлиста не може да се изнесе в този файл Няма намерено приложение, което да може да се справи с тази задача - Няма папки + Няма папки Изпълни или пауза Премини към следваща песен Премини към последна песен @@ -236,9 +236,9 @@ Премести този раздел Предупреждение: Промяната на пред усилвателя на висока положителна стойност може да доведе до пикове на някои аудио записи. Изчисти заявката за търсене - Премахни папка + Премахни папка Не може да се внесе плейлист от този файл - Тази папка не се поддържа + Тази папка не се поддържа Auxio икона Обложка на албум Включете diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 0561c6730..181c6b102 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -94,8 +94,8 @@ Načítání hudby selhalo Auxio potřebuje oprávnění ke čtení vaší hudební knihovny Nebyla nalezena žádná aplikace, která by dokázala vykonat tuto akci - Žádné složky - Tato složka není podporována + Žádné složky + Tato složka není podporována Prohledat vaší knihovnu… @@ -110,7 +110,7 @@ Přesunout tuto skladbu ve frontě Přesunout tuto kartu Vymazat hledání - Odebrat složku + Odebrat složku Ikona Auxio Obal alba Obal alba %s @@ -178,7 +178,7 @@ %d kbps %d Hz Při přehrávání z podrobností o položce - Spravovat, odkud by měla být načítána hudba + Spravovat, odkud by měla být načítána hudba Přehrát ze zobrazené položky Zobrazit vlastnosti Vlastnosti skladby @@ -186,7 +186,7 @@ Velikost Přenosová rychlost Vzorkovací frekvence - Složky s hudbou + Složky s hudbou Monitorování hudební knihovny Automatické znovunačítání Sledování změn v hudební knihovně… @@ -251,7 +251,7 @@ Wiki %1$s, %2$s Obnovit - Složky + Složky Normalizace hlasitosti Chování Změnit motiv a barvy aplikace diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index 691a6e407..08ea32375 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -34,7 +34,7 @@ Trac Didoli Didoli gan - Ffolderi + Ffolderi Allgáu Rhestri chwarae Rhestr chwarae newydd @@ -87,7 +87,7 @@ Sain I ffwrdd Llyfrgell - Ffolderi cerddoriaeth + Ffolderi cerddoriaeth Modd Cynnwys Adnewyddu cerddoriaeth @@ -206,7 +206,7 @@ Methwyd llwytho cerddoriaeth Mae ar Auxio angen caniatâd i ddarllen eich llyfrgell gerddoriaeth Methwyd dod o hyd ap sydd yn gallu gwneud y tasg hon - Dim ffolderi + Dim ffolderi Neidio i\'r gân nesaf Neidio i\'r gân ddiwethaf Newid y modd ail-chwarae @@ -237,7 +237,7 @@ Methwyd allforio\'r rhestr chwarae i\'r ffeil hon Symud y tab hwn Clirio\'r ymholiad chwilio - Tynnu ffolder + Tynnu ffolder Eicon Auxio Clawr albwm %s Llun artist %s @@ -291,7 +291,7 @@ Chwarae\'n awtomatig gyda chlustffon Ail-sganio cerddoriaeth %1$s, %2$s - Rheoli o ble i lwytho cerddoriaeth + Rheoli o ble i lwytho cerddoriaeth Free Lossless Audio Codec (FLAC) Addasu rheolaethau\'r UI ac ymarweddiad Gweithred addasedig ar y bar chwarae @@ -303,7 +303,7 @@ Bydd cerddoriaeth yn cael ei llwytho dim ond o\'r ffolderi rydych yn eu hychwanegu. Ail-lwytho\'r llyfrgell cerddoriaeth, gan ddefnyddio tagiau wedi\'u cadw\'n barod pan fo modd Dileu\'r tagiau wedi\'u cadw\'n barod ac ail-lwytho\'r llyfrgell gerddoriaeth yn llawn (yn arafach, ond yn fwy cyflawn) - Ni chefnogir y ffolder hon + Ni chefnogir y ffolder hon Advanced Audio Coding (AAC) Addasu Albwm ReplayGain Addasu Trac ReplayGain diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 2ef6e71df..c1b28cbad 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -26,7 +26,7 @@ Zum Album gehen Hinzufügen Speichern - Keine Ordner + Keine Ordner Über Version Quellcode @@ -68,7 +68,7 @@ Laden der Musik fehlgeschlagen Auxio benötigt die Berechtigung, um deine Musikbibliothek zu lesen Es konnte keine App gefunden werden, die diese Aufgabe übernehmen kann - Das Verzeichnis wird nicht unterstützt + Das Verzeichnis wird nicht unterstützt Musikbibliothek durchsuchen… @@ -123,7 +123,7 @@ Pausieren, wenn ein Song wiederholt wird Zufällig an- oder ausschalten Lied in der Warteschlange verschieben - Verzechnis entfernen + Verzechnis entfernen Albumcover Keine Musik wird gespielt Bibliotheks-Registerkarten @@ -152,8 +152,8 @@ Warnung: Das Erhöhen der Vorverstärkung zu einem hohen positiven Wert könnte zu einer Übersteuerung bei einigen Audiospuren führen. Wenn ein Lied aus den Elementdetails abgespielt wird Vom dargestellten Element abspielen - Musikordner - Verwalten, von wo die Musik geladen werden soll + Musikordner + Verwalten, von wo die Musik geladen werden soll Modus Ausschließen Musik wird nicht aus den von dir hinzugefügten Ordnern geladen. @@ -249,7 +249,7 @@ Musik Bilder Bibliothek - Ordner + Ordner Wiedergabe Ton und Wiedergabeverhalten konfigurieren Lautstärkenormalisierung diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 2f8fe6285..6f379565b 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -69,7 +69,7 @@ Φόρτωση της συλλογής μουσικής σας… (%1$d/%2$d) Είδη που φορτώθηκαν: %d Αριθμός τραγουδιών - Αυτός ο φάκελος δεν υποστηρίζεται + Αυτός ο φάκελος δεν υποστηρίζεται Δίσκος %d Album που φορτώθηκαν: %d Καλλιτέχνες που φορτώθηκαν: %d @@ -95,7 +95,7 @@ Όνομα Διάρκεια Συνολική διάρκεια: %s - Καθόλου φάκελοι + Καθόλου φάκελοι Μια απλή, λογική εφαρμογή αναπαραγωγής μουσικής για Android. Φόρτωση μουσικής Προβολή και έλεγχος αναπαραγωγής μουσικής @@ -121,7 +121,7 @@ Επαναφόρτωση μουσικής Σάουντρακ Ζωντανά - Φάκελοι μουσικής + Φάκελοι μουσικής Μουσικο κομματι Σύνθεση ζωντανών κομματιών Σύνθεση ρεμίξ diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index f63a21a68..3f86f40b1 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -34,7 +34,7 @@ Ir al álbum Agregar Guardar - Sin carpetas + Sin carpetas Acerca de Versión Código fuente @@ -77,7 +77,7 @@ Falló la carga de música Auxio necesita permiso para leer su biblioteca de música No se encontró ninguna aplicación que pueda manejar esta tarea - Directorio no soportado + Directorio no soportado Buscar en la biblioteca… @@ -92,7 +92,7 @@ Mover canción en la cola Mover pestaña Borrar búsqueda - Quitar carpeta + Quitar carpeta Icono de Auxio Carátula de álbum Carátula de álbum para %s @@ -172,8 +172,8 @@ Frecuencia de muestreo Cancelar Reproducción automática con auriculares - Carpetas de música - Gestionar de dónde se cargará la música + Carpetas de música + Gestionar de dónde se cargará la música La música solo se cargará de las carpetas que añadas. Dinámico Disco %d @@ -253,7 +253,7 @@ Imágenes Configurar el comportamiento del sonido y la reproducción Reproducción - Carpetas + Carpetas Cambiar el tema y los colores de la aplicación Personalizar los controles y el comportamiento de la interfaz de usuario Biblioteca diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index d5a256a6d..2344da85a 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -241,9 +241,9 @@ Kohandamine ilma siltides leiduvate väärtusteta Hoiatus: kui muudad eelvõimenduse väärtuse suureks positiivseks väärtuseks, siis mõnede lugude puhul võib see tähendada liiga kõrgeid toone. Muusikakogu - Muusika kaustad - Halda kaustu, kust otsime ja laadime muusikat - Kaustad + Muusika kaustad + Halda kaustu, kust otsime ja laadime muusikat + Kaustad Kaustade loogika Välista Sinu määratud kaustadest ei laadita muusikat. @@ -260,8 +260,8 @@ Sellesse faili ei õnnestu esitusloendit eksportida Ei leidu selle ülesande täitmiseks sobilikku rakendust Lugu %d - Kaustu pole määratud - See kaust pole toetatud + Kaustu pole määratud + See kaust pole toetatud Esita või peata Muuda kordamise režiimi Hüppa järgmise pala juurde @@ -274,7 +274,7 @@ Eemalda see pala Tõsta see pala teise kohta Tühjenda otsinguajalugu - Eemalda kaust + Eemalda kaust Auxio ikoon Albumi kaanepilt %s albumi kaanepilt diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index a3ff24005..eb4f11bf3 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -85,21 +85,21 @@ Suosi kappaletta ReplayGainin esivahvistus Kirjasto - Musiikkikansiot - Määritä mistä musiikki tulee ladata + Musiikkikansiot + Määritä mistä musiikki tulee ladata Läpikäy musiikki uudelleen Tila Ohita Sisällytä Musiikkia ladataan vain lisäämistäsi kansioista. Tähän tehtävään kykenevää sovellusta ei löytynyt - Ei kansioita + Ei kansioita Raita %d Siirry seuraavaan kappaleeseen Muuta kertaustilaa Pysäytä toisto Avaa jono - Poista kansio + Poista kansio Auxion kuvake Albumin %s kansi Tyylilajin %s kuva @@ -209,9 +209,9 @@ Automaattitoisto kuulokkeilla Aloita aina toisto, kun kuulokkeet yhdistetään (ei välttämättä toimi kaikilla laitteilla) Siirry viimeiseen kappaleeseen - Kansiot + Kansiot Toista tai keskeytä - Tämä kansio ei ole tuettu + Tämä kansio ei ole tuettu Sekoitus päällä/pois Sekoita kaikki kappaleet Siirry tätä välilehteä diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 07ccf50a5..a22378945 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -131,14 +131,14 @@ Genre inconnu Dynamique Cyan - Aucun dossier - Supprimer le dossier + Aucun dossier + Supprimer le dossier Artiste inconnu Compilation en direct Compilation de remix Mix DJ Mix DJ - Ce dossier n\'est pas pris en charge + Ce dossier n\'est pas pris en charge Réinitialiser Ogg audio Violet foncé @@ -193,14 +193,14 @@ Barre oblique (/) Plus (+) Ajustement avec étiquettes - Dossiers de musique - Gérer d\'où la musique doit être chargée + Dossiers de musique + Gérer d\'où la musique doit être chargée Lecture Toujours commencer la lecture lorsqu\'un périphérique audio est connecté (pourrait ne pas fonctionner sur tous les appareils) Stratégie de normalisation de volume Par chanson Par album - Dossiers + Dossiers Par album si un album est en lecture Bibliothèque La musique sera uniquement chargée des dossiers ajoutés. diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 9c21f4c8e..526e2d254 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -107,9 +107,9 @@ Son Alta calidade - Cartafois de música + Cartafois de música Excluír - Este cartafol non está soportado + Este cartafol non está soportado Reproducir ou pausar Saltar á seguinte canción Monitorizando a biblioteca de música @@ -170,7 +170,7 @@ Deter a reprodución Abrir a cola Borrar o historial de busca - Quitar cartafol + Quitar cartafol Icona de Auxio Portada de álbum Portada de álbum para %s @@ -185,7 +185,7 @@ Fallou a carga de música Auxio necesita permiso para leer a túa biblioteca de música Non se atopou ningunha aplicación que poda facer esta tarefa - Sen cartafois + Sen cartafois Audio ogg Advanced Audio Coding (AAC) Free Lossless Audio Codec (FLAC) @@ -230,9 +230,9 @@ Máis (+) Ignorar palabras como \"the\" ao ordenar por nome (funciona mellor con música en inglés) Modo - Xestionar dende onde se carga a música + Xestionar dende onde se carga a música Pausar cando se repite unha canción - Cartafois + Cartafois Ningunha pista Saltar á última canción Sen música diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 2080bc707..498d844ef 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -195,7 +195,7 @@ उन्नत ऑडियो कोडिंग (AAC) गहरा हरा बैंगनी - संगीत फ़ोल्डर + संगीत फ़ोल्डर दोहराने पर विराम बंद सभी एल्बम को 1: 1 पहलू अनुपात में कवर करें @@ -203,10 +203,10 @@ जब कोई गीत दोहराया जाता है तो रुक जाएं रीप्लेगेन प्री-एम्प टैग के साथ समायोजन - फ़ोल्डर + फ़ोल्डर बाहर करें संगीत लोड करना विफल रहा - यह फ़ोल्डर समर्थित नहीं है + यह फ़ोल्डर समर्थित नहीं है रिपीट मोड बदलें शफ़ल चालू या बंद करें सभी गीत शफ़ल करें @@ -227,7 +227,7 @@ तिथि नहीं आपके द्वारा जोड़े गए फ़ोल्डरों से संगीत लोड नहीं किया जाएगा। संगीत केवल आपके द्वारा जोड़े गए फ़ोल्डरों से लोड किया जाएगा। - प्रबंधित करें कि संगीत कहाँ से लोड किया जाना चाहिए + प्रबंधित करें कि संगीत कहाँ से लोड किया जाना चाहिए %s के लिए कलाकार छवि MPEG-4 ऑडियो छवियां @@ -246,7 +246,7 @@ केवल उन कलाकारों को दिखाएँ जिन्हें सीधे एल्बम पर श्रेय दिया जाता है (अच्छी तरह से टैग की गई लाइब्रेरी पर अच्छा काम करता है) तेज उच्च गुणवत्ता - फ़ोल्डर हटाएँ + फ़ोल्डर हटाएँ यह गीत हटाओ डिस्क नहीं निःशुल्क दोषरहित ऑडियो कोडेक (FLAC) @@ -267,7 +267,7 @@ ट्रैक को प्राथमिकता दें टैग कैश साफ़ करें और संगीत लाइब्रेरी को पूरी तरह पुनः लोड करें (धीमी, लेकिन अधिक पूर्ण) Auxio को आपकी संगीत लाइब्रेरी पढ़ने के लिए अनुमति की आवश्यकता है - कोई फ़ोल्डर नहीं + कोई फ़ोल्डर नहीं भूरा पीला नींबू रंग diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index f3be59096..0dab0e8ae 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -83,8 +83,8 @@ Reproduciraj iz svih pjesama Aktualiziraj glazbu Ponovo učitaj glazbenu biblioteku, koristeći predmemorirane oznake kada je to moguće - Mape glazbe - Upravljaj odakle će se glazba učitati + Mape glazbe + Upravljaj odakle će se glazba učitati Način Isključi Glazba se neće učitati iz dodanih mapa. @@ -96,8 +96,8 @@ Greška u učitvanju glazbe Auxio treba dozvolu za čitanje tvoje zbirke glazbe Nijedna aplikacija ne može obraditi ovaj zadatak - Nema mapa - Ova mapa nije podržana + Nema mapa + Ova mapa nije podržana Pretraži svoju zbirku … Zvučni zapis %d Omogućite ili onemogućite miješanje @@ -106,7 +106,7 @@ Premjesti ovu pjesmu u popisu pjesama Pomakni ovu pločicu Izbriši pretražene pojmove - Ukloni mapu + Ukloni mapu Auxio logotip Omot albuma Omot albuma za %s @@ -238,7 +238,7 @@ %1$s, %2$s Resetiraj Normalizacija glasnoće - Mape + Mape Silazno Promijenite temu i boje aplikacije Prilagodite kontrole i ponašanje korisničkog sučelja diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 2ec3f80fd..6ce3badf3 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -83,7 +83,7 @@ Keverés be/ki kapcsolása %s album borítója Hangerő normalizálás - Mappa eltávolítása + Mappa eltávolítása Lejátszólistához ad Formátum Wiki @@ -95,7 +95,7 @@ Visszajátszás stratégia Inkább album Inkább hangsáv - Ez a mappa nem támogatott + Ez a mappa nem támogatott %s playlista képe Nincs hangsáv Nincs dal @@ -112,7 +112,7 @@ DJ Mix Műfaj Dal tulajdonságai - Nincs mappa + Nincs mappa Tiszta fekete sötét téma használata Dinamikus Album borítók @@ -163,7 +163,7 @@ Lejátszólista átnevezés Átnevez Hozzáadás dátuma - Mappák + Mappák Ment Alaphelyzet Fejlesztő Alexander Capehart @@ -171,7 +171,7 @@ Lejátszás műfajból Tartalom A zenei könyvtár újratöltése, ha változik (állandó értesítést igényel) - Zene könyvtárak + Zene könyvtárak A zene nem töltődik be a hozzáadott mappákból. Kizárva A zene betöltése sikertelen @@ -253,7 +253,7 @@ Lejátszás Fejhallgató auto. lejátszás Beállítás címkék nélkül - Kezelje, hogy honnan töltsön be zenét + Kezelje, hogy honnan töltsön be zenét Zene újraolvasása A címkék gyorsítótárának törlése és a zenei könyvtár teljes újratöltése (lassabb, de teljesebb) A zene csak az Ön által hozzáadott mappákból töltődik be. diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index 92e3c0240..ac9007ea2 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -138,14 +138,14 @@ Rapide Reproduction Rememorar le pausa - Dossieres de musica - Dossieres + Dossieres de musica + Dossieres Modo Actualisar le musica Nulle musica trovate Falleva le carga del musica - Necun dossieres - Iste dossier non es supportate + Necun dossieres + Iste dossier non es supportate Tracia %d Reproducer o pausar Saltar al canto sequente @@ -153,7 +153,7 @@ Cambiar modo de repetition Stoppar le reproduction Aperir le cauda - Remover le dossier + Remover le dossier Icone de Auxio Copertura de album pro %s Artista incognite diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index c57a8f3a5..f30e48bbe 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -100,11 +100,11 @@ Konten Muat ulang musik Muat ulang perpustakaan musik, menggunakan tag yang di-cache jika memungkinkan - Kelola dari mana musik dimuat + Kelola dari mana musik dimuat Kecualikan Termasuk Tidak ada aplikasi yang bisa membuka tugas ini - Folder ini tidak didukung + Folder ini tidak didukung Pindahkan tab ini Tidak ada nomor trek Audio MPEG-1 @@ -137,7 +137,7 @@ Hapus lagu antrian ini Hapus kueri pencarian Penyesuaian tanpa tag - Folder musik + Folder musik Putar dari artis Mode Auxio memerlukan izin untuk membaca perpustakaan musik Anda @@ -148,9 +148,9 @@ Pemuatan musik gagal Sampul album untuk %s Artis tidak dikenal - Tidak ada folder + Tidak ada folder Loncat ke lagu berikutnya - Hapus folder + Hapus folder Ikon Auxio Sampul album Aktifkan atau nonaktifkan acak @@ -192,7 +192,7 @@ Nonaktif Cepat Album remix - Folder + Folder Memuat musik Memantau pustaka musik Memantau perubahan pada pustaka musik Anda… diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 9310cbdb1..d21e0e839 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -34,7 +34,7 @@ Vai all\'album Aggiungi Salva - Nessuna cartella + Nessuna cartella Informazioni Versione Codice sorgente @@ -80,7 +80,7 @@ Caricamento musica fallito Auxio ha bisogno del permesso per leggere la tua libreria musicale Nessuna app può completare questa azione - Questa cartella non è supportata + Questa cartella non è supportata Cerca nella libreria… @@ -95,7 +95,7 @@ Sposta questo brano Muove questa scheda Cancella la query di ricerca - Rimuovi cartella + Rimuovi cartella Icona Auxio Copertina album Copertina album per %s @@ -159,8 +159,8 @@ Regolazione con tag Il pre-amp è applicato alla regolazione esistente durante la riproduzione Riproduci dall\'elemento mostrato - Gestisci le cartelle da dove caricare la musica - Cartelle musica + Gestisci le cartelle da dove caricare la musica + Cartelle musica Escludi Matroska audio Free Lossless Audio Codec (FLAC) @@ -247,7 +247,7 @@ %1$s, %2$s Ripristina Comportamento - Cartelle + Cartelle Musica Immagini Collezione diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index f0d4d3feb..1dd3788cf 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -165,7 +165,7 @@ למחוק את רשימת ההשמעה\? עריכה כתום - תיקיות מוזיקה + תיקיות מוזיקה טעינה מחדש של ספריית המוזיקה, במידה וניתן ייעשה שימוש בתגיות מהמטמון סריקת מוסיקה מחדש ‏ Auxio צריך הרשאות על מנת לקרוא את ספריית המוזיקה שלך @@ -178,8 +178,8 @@ ז\'אנרים טעונים: %d ספריה לא נמצא יישום שיכול לטפל במשימה זו - אין תיקיות - תיקייה זו אינה נתמכת + אין תיקיות + תיקייה זו אינה נתמכת דילוג לשיר האחרון שינוי מצב חזרה ניגון או השהיה @@ -199,11 +199,11 @@ דינמי המוזיקה שלך בטעינה… (‎%1$d/%2$d) דיסק %d - ניהול המקומות שמהם תיטען מוזיקה + ניהול המקומות שמהם תיטען מוזיקה אין שירים ורוד נוצרה רשימת השמעה - תיקיות + תיקיות אומן אחד שני אומנים @@ -229,7 +229,7 @@ נוסף לרשימת השמעה ערבוב כל השירים סמל Auxio - הסרת תיקייה + הסרת תיקייה תמונת רשימת השמעה עבור %s אדום ירוק diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 2c7ce7664..fd5ae2390 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -40,7 +40,7 @@ ライブラリタブの視度と順序をカスタマイズ アルバムで直接クレジットされたアーティストのみを表示 (適正にタグ付けされたライブラリで最適に作動します) 前の曲にスキップ前に曲を巻き戻す - 音楽フォルダ + 音楽フォルダ プラス (+) リミックスコンピレーション DJミックス @@ -76,17 +76,17 @@ アンパサンド (&) アルバムを優先 トラックを優先 - 音楽の読み込み元を管理 + 音楽の読み込み元を管理 除外 音楽の再読み込み Auxio は音楽ライブラリを読む許可を必要とします 追加 - フォルダがありません - このフォルダはサポートされていません + フォルダがありません + このフォルダはサポートされていません トラック %d 再生またはポーズ 再生待ちの曲を除去 - フォルダを除去 + フォルダを除去 Auxio アイコン アルバムカバー %s のアルバムカバー @@ -180,7 +180,7 @@ ここに追加したフォルダはからは音楽が読み込まれません ライブラリ タグ無しで調整 - フォルダ + フォルダ セミコロン (;) スラッシュ (/) 繰り返しモードを変更 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 77b804b10..b2633ef8a 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -92,8 +92,8 @@ 음악 불러오기 실패 앱에서 음악 라이브러리를 읽을 수 있는 권한이 필요합니다. 이 작업을 처리할 수 있는 앱을 찾을 수 없습니다. - 폴더 없음 - 지원하지 않는 폴더입니다. + 폴더 없음 + 지원하지 않는 폴더입니다. 라이브러리에서 검색… @@ -108,7 +108,7 @@ 이 곡 이동 이 탭 이동 검색 기록 삭제 - 폴더 제거 + 폴더 제거 Auxio 아이콘 앨범 커버 %s의 앨범 커버 @@ -175,8 +175,8 @@ 무작위 재생 표시된 항목에서 재생 음악 라이브러리 불러오는 중… - 음악 폴더 - 음악을 불러오는 위치 관리 + 음악 폴더 + 음악을 불러오는 위치 관리 추가한 폴더에서 음악을 불러오지 않습니다. 포함 다중 값 구분 기호 @@ -245,7 +245,7 @@ ReplayGain 볼륨 조정 사운드 및 재생 동작 구성 재생 - 폴더 + 폴더 앱 테마 및 색상 변경 음악 라이브러리 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 66baf4c87..6f701aa20 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -122,8 +122,8 @@ Ogg garsas Aleksandras Keiphartas (angl. Alexander Capehart) Pageidauti takeliui - Nėra aplankų - Šis aplankas nepalaikomas. + Nėra aplankų + Šis aplankas nepalaikomas. Leisti arba pristabdyti Praleisti į kitą dainą Praleisti į paskutinę dainą @@ -154,7 +154,7 @@ Pauzė ant kartojimo Kai leidžiant iš bibliotekos Kai leidžiant iš elemento informacijos - Pašalinti aplanką + Pašalinti aplanką Žanras Ieškok savo bibliotekoje… Ekvalaizeris @@ -192,12 +192,12 @@ Nėra leidžiamos muzikos Sustabdyk, kai daina kartojasi. Turinys - Muzikos aplankai + Muzikos aplankai Atnaujinti muziką Perkrauk muzikos biblioteką, naudojant podėlio žymes, kai įmanoma. Pasirinktinis įrašo perklausos juostos veiksmas „ReplayGain“ išankstinis stiprintuvas - Tvarkyk, kur muzika turėtų būti įkeliama iš. + Tvarkyk, kur muzika turėtų būti įkeliama iš. Žanro vaizdas %s Įjungti arba išjungti maišymą %d takelis @@ -250,7 +250,7 @@ Vaizdai Įrašo perklausa Garso normalizavimas - Aplankai + Aplankai Mažėjantis Teisingai surūšiuok pavadinimus, kurie prasideda skaičiais arba žodžiais, tokiais kaip „the“ (geriausiai veikia su anglų kalbos muzika). Išmanusis rūšiavimas diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index b50d9dc8c..5a39ace2d 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -87,7 +87,7 @@ Sett opp lyd- og avspillingsadferd Lyd ReplayGain-strategi - Håndter hvor musikk lastes inn fra + Håndter hvor musikk lastes inn fra Forforsterkning brukes for eksisterende justering under avspilling Modus Tøm etiketthurtiglager og last inn hele musikkbiblioteket igjen (tregere, men mer fullstendig) @@ -110,7 +110,7 @@ Spor innlastet: %d Dato Endre drakten og programfargene - Mapper + Mapper Gul Intelligent sortering Gi nytt navn @@ -138,7 +138,7 @@ Reskann musikk Musikk vil kun innlastes fra mappene du legger til. Last inn musikkbiblioteket igjen, ved bruk av hurtiglagrede etiketter når mulig - Ingen mapper + Ingen mapper Album innlastet: %d Bibliotekstatistikk Av @@ -147,14 +147,14 @@ Justering med etiketter Adferd Innhold - Musikkmapper + Musikkmapper Gjeninnlast musikkbibliotek når det endrer seg (krever vedvarende varsling) Klarte ikke laste inn musikk - Denne mappen støttes ikke + Denne mappen støttes ikke Hopp til neste spor Hopp til siste spor Omstokk alle spor - Fjern mappe + Fjern mappe Ukjent sjanger Sjangerbilde for %s Ukjent artist diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 334ac114d..d772114fc 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -29,7 +29,7 @@ Ga naar album Voeg toe Bewaar - Geen mappen + Geen mappen Over Versie Broncode @@ -58,7 +58,7 @@ Laden van muziek mislukt Auxio heeft toestemming nodig om uw muziekbibliotheek te lezen Geen app gevonden die deze taak kan uitvoeren - Deze map wordt niet ondersteund + Deze map wordt niet ondersteund Zoek in uw bibliotheek… @@ -68,7 +68,7 @@ Ga naar laatste nummer Wijzig herhaalmodus Wis zoekopdracht - Verwijder map + Verwijder map Auxio icoon Albumhoes voor %s Artiest afbeelding voor %s @@ -123,10 +123,10 @@ Voorkeur track Voorkeur album De voorversterker wordt toegepast op de bestaande afstelling tijdens weergave - Muziek mappen + Muziek mappen ReplayGain voorversterker Modus - Beheer waarvan muziek moet worden geladen + Beheer waarvan muziek moet worden geladen Totale duur: %s Shuffle alles OK @@ -223,7 +223,7 @@ Hernoem afspeellijst Verwijder afspeellijst? Herhaalmodus - Mappen + Mappen Open de wachtrij %s verwijderen\? Dit kan niet ongedaan worden gemaakt. Uit diff --git a/app/src/main/res/values-nn/strings.xml b/app/src/main/res/values-nn/strings.xml index 796adecd7..e4c89ad1b 100644 --- a/app/src/main/res/values-nn/strings.xml +++ b/app/src/main/res/values-nn/strings.xml @@ -186,8 +186,8 @@ Justering med etikettar Justering utan etikettar Bibliotek - Handsam kvar musikk skal lastast inn ifrå - Mapper + Handsam kvar musikk skal lastast inn ifrå + Mapper Modus Inkluder Gjenoppfrisk musikk @@ -257,7 +257,7 @@ Alltid byrj avspeling når hovudtelefonar vert tilkopla (verkar kanskje ikkje på alle einingar) Pause når eit spor vert gjenteke Åtvaring: Å endre forforsterkninga til høge positive verdier, kan forårsake forvrengning ved høge ljodtrykk på nokre spor. - Musikkmapper + Musikkmapper Musikk vil kun verte lasta inn frå mappene du legg til. Utelat Musikk vil ikkje verte lasta inn frå mappene du legg til. @@ -269,12 +269,12 @@ Artistbilete for %s Klarte ikkje å laste inn musikk Kan ikkje eksportere spelelista til denne fila - Denne mappa er ikkje støtta + Denne mappa er ikkje støtta Ingen app funne som kan handsama denne oppgåva Spel av eller pause Auxio-ikon Spor %d - Ingen mapper + Ingen mapper Bland alle spor Fjern dette sporet Flytt dette sporet @@ -283,7 +283,7 @@ Flytt denne fana Tøm søket Ukjend sjanger - Fjern mappe + Fjern mappe Utvalsbilete Ingen dato +%.1f dB diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index 86de2a45e..21bf380e2 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -119,14 +119,14 @@ ਟਰੈਕ ਨੂੰ ਤਰਜੀਹ ਐਲਬਮ ਨੂੰ ਤਰਜੀਹ ਬਿਨਾਂ ਟੈਗਾਂ ਦੇ ਐਡਜਸਟਮੈਂਟ - ਪ੍ਰਬੰਧਿਤ ਕਰੋ ਕਿ ਸੰਗੀਤ ਕਿੱਥੋਂ ਲੋਡ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ - ਫੋਲਡਰ + ਪ੍ਰਬੰਧਿਤ ਕਰੋ ਕਿ ਸੰਗੀਤ ਕਿੱਥੋਂ ਲੋਡ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ + ਫੋਲਡਰ ਬਾਹਰ ਰੱਖੋ ਸ਼ਾਮਿਲ ਕਰੋ ਸੰਗੀਤ ਤਾਜ਼ਾ-ਤਰੀਨ ਕਰੋ ਕੋਈ ਐਪ ਨਹੀਂ ਮਿਲੀ ਜੋ ਇਸ ਕਾਰਜ ਨੂੰ ਸੰਭਾਲ ਸਕਦੀ ਹੈ - ਕੋਈ ਫੋਲਡਰ ਨਹੀਂ - ਇਹ ਫੋਲਡਰ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ + ਕੋਈ ਫੋਲਡਰ ਨਹੀਂ + ਇਹ ਫੋਲਡਰ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ ਚਲਾਓ ਜਾਂ ਰੋਕੋ ਅਗਲੇ ਗੀਤ \'ਤੇ ਜਾਓ ਆਖਰੀ ਗੀਤ \'ਤੇ ਜਾਓ @@ -177,7 +177,7 @@ ਪਿਛਲੇ ਗੀਤ \'ਤੇ ਜਾਣ ਤੋਂ ਪਹਿਲਾਂ ਰੀਵਾਈਂਡ ਕਰੋ ਦੁਹਰਾਉਣ \'ਤੇ ਰੁਕੋ ਲਾਇਬ੍ਰੇਰੀ - ਸੰਗੀਤ ਫੋਲਡਰ + ਸੰਗੀਤ ਫੋਲਡਰ ਕਤਾਰ ਖੋਲ੍ਹੋ ਇਸ ਕਤਾਰ ਗੀਤ ਨੂੰ ਹਟਾਓ ਇਸ ਕਤਾਰ ਗੀਤ ਨੂੰ ਮੂਵ ਕਰੋ @@ -259,7 +259,7 @@ ਸਲੇਟੀ ਕੁੱਲ ਮਿਆਦ: %s - ਫੋਲਡਰ ਹਟਾਓ + ਫੋਲਡਰ ਹਟਾਓ Auxio ਆਈਕਾਨ ਉੱਤੇ ਵਿਖਾਈ ਦਿੰਦਾ ਹੈ ਪਲੇਅ-ਲਿਸਟਾਂ diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 101ef6aa4..b73dd03d5 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -129,7 +129,7 @@ Brak utworu Korektor Rozmiar - Brak folderów + Brak folderów Odtwórz wszystkie utwory Odtwórz album Automatycznie odtwórz muzykę po podłączeniu słuchawek (może nie działać na wszystkich urządzeniach) @@ -164,7 +164,7 @@ MPEG-4 Ogg Prosty i praktyczny odtwarzacz muzyki na Androida. - Usuń folder + Usuń folder Pokaż kolejkę AAC Automatycznie odśwież bibliotekę po wykryciu zmian (wymaga stałego powiadomienia) @@ -182,8 +182,8 @@ Material You %d kb/s Matroska - Foldery z muzyką - Wybierz z których folderów importowane są utwory + Foldery z muzyką + Wybierz z których folderów importowane są utwory Tryb Przewiń przed odtworzeniem poprzedniego utworu Przewiń do początku obecnie odtwarzanego utworu zamiast odtworzenia poprzedniego @@ -210,7 +210,7 @@ Znaki oddzielające wartości Wybierz znaki oddzielające poszczególne wartości w metadanych Auxio wymaga zgody na dostęp do twojej biblioteki muzycznej - Ten folder nie jest wspierany + Ten folder nie jest wspierany Utwory nie są odtwarzane Importuję bibliotekę muzyczną… (%1$d/%2$d) Zaimportowane albumy: %d @@ -239,7 +239,7 @@ Dostosuj elementy i funkcje interfejsu Pokaż tylko artystów bezpośrednio przypisanych do albumu (działa najlepiej w przypadku dobrze otagowanych bibliotek) Odtwarzanie - Foldery + Foldery Obrazy Zarządzaj dźwiękiem i odtwarzaniem muzyki Wybrano %d diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 47afab265..42b9b132b 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -80,13 +80,13 @@ Usar player de notificação alternativo A pré-amplificação é aplicada em cima da normalização de volume Aviso: Alterar a pré-amplificação para um valor positivo muito alto pode resultar em picos de volume em algumas faixas. - Pastas de música - Gerencia de onde as músicas devem ser carregadas + Pastas de música + Gerencia de onde as músicas devem ser carregadas Incluir Falha ao carregar músicas Nenhum aplicativo encontrado que possa lidar com esta tarefa - Sem pastas - Esta pasta não é compatível + Sem pastas + Esta pasta não é compatível Recarrega a biblioteca de músicas usando metadados salvos em cache quando possível Retroceder antes de voltar Recarregar música @@ -127,7 +127,7 @@ Capa do álbum Pular para a próxima música Ativa ou desativa o modo aleatório - Remover pasta + Remover pasta Ciano Roxo escuro Índigo @@ -254,7 +254,7 @@ Normalização de volume Biblioteca Comportamento - Pastas + Pastas Decrescente Ignorar artigos ao classificar Ignore palavras como \"the\" ao classificar por nome (funciona melhor com músicas em inglês) diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index a4b818f62..10e5ff7e0 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -96,10 +96,10 @@ Reproduzir do artista Pausar na repetição O Auxio precisa de permissão para ler a sua biblioteca de músicas - Sem pastas - Esta pasta não é compatível + Sem pastas + Esta pasta não é compatível Mover esta música da fila - Remover pasta + Remover pasta Mistura de compilações Compilação ao vivo Disco @@ -137,14 +137,14 @@ Duração Cancelar A carregar biblioteca de músicas… - Configurar onde a música deve ser carregada + Configurar onde a música deve ser carregada Gênero Mantenha a reprodução aleatória ao reproduzir uma nova música Pular para a próxima música Aviso: Usar essa configuração pode resultar em algumas etiquetas serem interpretadas incorretamente como tendo múltiplos valores. Pode resolver isso pré-definindo caracteres de separador indesejados com uma barra invertida (\\). Áudio MPEG-1 Recarregamento automático - Pastas de música + Pastas de música Modo Excluir A música não será carregada das pastas que adicionar. @@ -252,7 +252,7 @@ Imagens Configurar o som e comportamento da reprodução Reprodução - Pastas + Pastas Biblioteca E comercial (&) Comportamento diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 724f28ea8..329b2d7c8 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -113,8 +113,8 @@ Lista de reprodução eliminada Procurar na biblioteca… Desligado - Configurar onde a música deve ser carregada - Pastas + Configurar onde a música deve ser carregada + Pastas Modo Ativar ou desativar a reprodução aleatória Seleção de imagem @@ -146,7 +146,7 @@ Retrocede a música antes de voltar para a anterior Pausar na repetição Pausar quando uma música é repetida - Pastas de música + Pastas de música Lembrar pausa Continuar a reproduzir/pausado quando ao pular ou editar a fila Estratégia do ganho de repetição @@ -285,8 +285,8 @@ Não foi possível importar uma lista de reprodução deste ficheiro Incapaz de exportar a lista de reprodução para este ficheiro Nenhuma aplicação encontrada que possa executar esta tarefa - Sem pastas - Esta pasta não é compatível + Sem pastas + Esta pasta não é compatível Alterar o modo de repetição Parar reprodução Remover esta música de fila @@ -294,7 +294,7 @@ Abra a fila Mover esta guia Limpar consulta de pesquisa - Remover pasta + Remover pasta Capa do álbum para %s Imagem do artista para %s Imagem de gênero para %s diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 153c816f9..e99525fa7 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -207,7 +207,7 @@ %d de artiști Arată doar artiști care sunt creditați direct pe albun (Funcționează mai bine pe bibloteci cu taguri puse bine) - Dosarul ăsta nu e suportat + Dosarul ăsta nu e suportat Copertă album Bibliotecă Slash (/) @@ -217,8 +217,8 @@ Artist necunoscut Vezi mai mult Configurează caracterele care denotă mai multe valori de taguri - Foldere cu muzică - Foldere + Foldere cu muzică + Foldere Exclude Muzica nu va fi încărcată din dosarele pe care le adaugi aici. Fără cântece @@ -239,7 +239,7 @@ Pauză la repetare Configurează comportamentul sunetului și redării Fără track - Configurează de unde se încarcă muzica + Configurează de unde se încarcă muzica Reîncarcă muzica Copertă album pentru %s Gen necunoscut @@ -248,7 +248,7 @@ Mov închis Ține minte pauza Ține minte pauza atunci când dai skip printre cântece - Elimină dosarul + Elimină dosarul Imagine selecție Indigo %d Selectate @@ -265,7 +265,7 @@ Încărcarea muzicii a eșuat Auxio are nevoie de permisiune ca să-ți acceseze biblioteca de muzică Mută acest cântec - Niciun dosar + Niciun dosar Pornește sau oprește amestecarea Oprește redarea Elimină acest cântec diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index d93565855..6aea999f2 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -34,7 +34,7 @@ Перейти к альбому Добавить Сохранить - Нет папок + Нет папок О программе Версия Исходный код @@ -79,7 +79,7 @@ Ошибка чтения библиотеки Auxio требуется разрешение на чтение музыкальной библиотеки Нет приложений для открытия данной ссылки - Эта папка не поддерживается + Эта папка не поддерживается Найти в библиотеке… @@ -94,7 +94,7 @@ Переместить трек в очереди Переместить вкладку Очистить поисковый запрос - Удалить папку + Удалить папку Иконка Auxio Обложка альбома Обложка альбома %s @@ -168,7 +168,7 @@ Исключить AAC Музыка не будет загружена из указанных папок. - Укажите, откуда надо загружать музыку + Укажите, откуда надо загружать музыку %d кбит/с Автоматическая перезагрузка MPEG-1 @@ -183,7 +183,7 @@ Концертный альбом Концертный Мониторинг изменений в музыкальной библиотеке… - Папки с музыкой + Папки с музыкой Включить Альбом ремиксов Концертный мини-альбом @@ -259,7 +259,7 @@ Управляйте загрузкой музыки и изображений Настройка звука и поведения при воспроизведении Воспроизведение - Папки + Папки По убыванию Плейлист Плейлисты diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 88c22cdae..bc4441eff 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -79,7 +79,7 @@ Seznam predavanja ustvarjen Celoten čas predvajanja: %s Pavza ob ponavljanju - Mape za glasbo + Mape za glasbo Zapomni si naključno predvajanje Pojdi na izvajalca Naloženih pesmi: %d @@ -118,9 +118,9 @@ Pred-ojačevalec se uporablja na obstoječi prilagoditvi med predvajanjem Predvajaj iz albuma Glasba - Ta mapa ni podprta + Ta mapa ni podprta Razvil Alexander Capehart - Odstrani mapo + Odstrani mapo Kopirano Nalaganje glasbe ni uspelo Album @@ -154,7 +154,7 @@ Ni pesmi Podaljšano Pesmi - Mape + Mape Prireži vse naslovnice albumov v razmerje 1:1 Prilagojeno dejanje na vrstici za predvajanje Indigo modra @@ -204,7 +204,7 @@ Premakni ta zavihek Pesem Slika žanra za %s - Nastavitev virov za nalaganje glasbe + Nastavitev virov za nalaganje glasbe DJ Miksi Odstrani seznam predvajanja\? Modra @@ -262,7 +262,7 @@ ReplayGain strategija Izvorna koda Predvajaj iz izvajalca - Ni map + Ni map Prilagoditev kontrol uporabniškega vmesnika in obnašanja Hitrost vzorčenja Čakalna vrsta diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml index 1e6a20c7f..e9395ab37 100644 --- a/app/src/main/res/values-sq/strings.xml +++ b/app/src/main/res/values-sq/strings.xml @@ -213,8 +213,8 @@ %d album %d albume - Dosjet e muzikës - Kjo dosje nuk mbështetet + Dosjet e muzikës + Kjo dosje nuk mbështetet Ndryshoni mënyrën e përsëritjes Hiq këtë këngë Free Lossless Audio Codec (FLAC) @@ -244,8 +244,8 @@ Rregullim pa etiketa Kujdes: Ndryshimi i pre-amplitudës në një vlerë të lartë pozitive mund të shkaktojë teprim në disa shtegtarë audio. Biblioteka - Menaxho se nga ku duhet të ngarkohet muzika - Dosjet + Menaxho se nga ku duhet të ngarkohet muzika + Dosjet Mënyrë Përjashtoni Muzika nuk do të ngarkohet nga dosjet që shtoni. @@ -261,7 +261,7 @@ Nuk mund të importoni një listë këngësh nga ky skedar Nuk mund të eksportoni listën e këngëve në këtë skedar Nuk u gjet asnjë aplikacion që mund ta përballojë këtë detyrë - Nuk ka dosje + Nuk ka dosje Kënga %d Luaj ose ndalo Kaloni te kënga tjetër @@ -272,7 +272,7 @@ Lëviz këtë këngë Hap radhën Pastro kërkimin - Hiq dosjen + Hiq dosjen Ikona e Auxio Kopertina e albumit Kopertina e albumit për %s diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 4f0762611..e75ac8510 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -173,7 +173,7 @@ Läs in musik på nytt, vid möjlighet med användning av cachade taggar Blanda alla låtar Rensa sökfrågan - Ta bort mapp + Ta bort mapp Genrebild för %s Spellistabild för %s MPEG-1-ljud @@ -198,10 +198,10 @@ Pausa vid upprepning ReplayGain försteg Justering utan taggar - Musikmappar + Musikmappar Varning: Om man ändrar förförstärkaren till ett högt positivt värde kan det leda till toppning på vissa ljudspår. - Hantera vart musik läses in ifrån - Mappar + Hantera vart musik läses in ifrån + Mappar Modus Utesluta Musik laddas endast från mapparna som ni lägger till. @@ -211,7 +211,7 @@ Läsa in musik misslyckades Auxio måste ges behörighet för att läsa in ditt musikbibliotek Ingen lämplig app kunde hittas - Denna mapp stöds inte + Denna mapp stöds inte Spår %d Spela eller pausa Flytta detta spår @@ -250,7 +250,7 @@ Beskär alla albumomslag till ett 1:1 sidförhållande Spola tillbaka innan att hoppa till föregående låt Justering med taggar - Inga mappar + Inga mappar Stoppa uppspelning Ta bort låt Auxio-ikon diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 583944f7b..d597944a7 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -92,7 +92,7 @@ Gösterilen öğeden çal Tüm şarkılardan çal Albümden çal - Müzik klasörleri + Müzik klasörleri Müzik yalnızca eklediğiniz klasörlerden yüklenecektir. %s Albümünün kapağı %s Sanatçısının resmi @@ -148,8 +148,8 @@ Yeni bir şarkı çalarken karışık çalmayı açık tut Müziği yenile Mümkün olduğunda önbelleğe alınmış etiketleri kullanarak müzik kitaplığını yeniden yükleyin - Klasör yok - Bu klasör desteklenmiyor + Klasör yok + Bu klasör desteklenmiyor Sonraki şarkıya geç Son şarkıya geç Tekrarlama modunu değiştir @@ -157,13 +157,13 @@ Auxio\'nun müzik kitaplığınızı görüntülemek için izne ihtiyacı var Bu görevi yerine getirebilecek bir uygulama bulunamadı Karıştırmayı açın veya kapatın - Klasörü kaldır + Klasörü kaldır Bütün şarkıları karıştır Auxio simgesi Bu sekmeyi taşı Albüm kapağı Arama sorgusunu temizle - Müziğin nereden yükleneceğini yönetin + Müziğin nereden yükleneceğini yönetin Mod Hariç tut Eklediğiniz klasörlerden müzik yüklenmeyecek. @@ -248,7 +248,7 @@ Kütüphane Azalan Uygulamanın temasını ve renklerini değiştirin - Klasörler + Klasörler Arayüz kontrollerini ve davranışını özelleştirin Davranış Ses yüksekliği dengesi ReplayGain diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index c8fc37c5d..39ed40b50 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -85,7 +85,7 @@ Вимкнено Перейти до наступної Швидкі - Вкажіть звідки слід завантажувати музику + Вкажіть звідки слід завантажувати музику Виключити Загальна тривалість: %s Мікстейпи @@ -104,7 +104,7 @@ Оновити музику Ремікси Мікстейп - Папки з музикою + Папки з музикою Скинути Чорна тема Зміна видимості та порядку вкладок бібліотеки @@ -180,11 +180,11 @@ Плюс (+) Кома (,) Крапка з комою (;) - Ця папка не підтримується + Ця папка не підтримується Невідомий виконавець Лаймовий Амперсанд (&) - Немає папок + Немає папок Перейти до наступної пісні Ввімкніть або вимкніть перемішування Зупинити відтворення @@ -241,7 +241,7 @@ Сірий Диск %d Не вдалося завантажити музику - Видалити папку + Видалити папку Розширене кодування звуку (AAC) Звук Matroska %1$s, %2$s @@ -256,7 +256,7 @@ Вирівнювання гучності Бібліотека Налаштуйте звук і поведінку при відтворенні - Папки + Папки За спаданням Зображення списку відтворення для %s Список відтворення diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 85b55b5e8..3e4c6cadd 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -34,7 +34,7 @@ 查看专辑 添加 保存 - 没有文件夹 + 没有文件夹 关于 版本 源代码 @@ -79,7 +79,7 @@ 加载音乐失败 Auxio 需要权限来读取音乐库 未找到可以处理此任务的应用 - 该目录不受支持 + 该目录不受支持 在曲库中搜索… @@ -94,7 +94,7 @@ 移动队列曲目 移动该标签 清除搜索队列 - 移除文件夹 + 移除文件夹 Auxio 图标 专辑封面 %s 的专辑封面 @@ -139,8 +139,8 @@ 带有标签的调节项 没有标签的调节项 警告:将前置增益更改为正向高数值或导致某些音轨峰值过高。 - 音乐文件夹 - 管理音乐的加载位置 + 音乐文件夹 + 管理音乐的加载位置 模式 排除 包含 @@ -248,7 +248,7 @@ 图片 播放 曲库 - 文件夹 + 文件夹 音乐 配置声音和播放行为 降序 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 518602a5d..21ecb31a3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -311,17 +311,9 @@ Warning: Changing the pre-amp to a high positive value may result in peaking on some audio tracks. Library - Music folders - Manage where music should be loaded from - Folders - - Mode - - Exclude - Music will not be loaded from the folders you add. - - Include - Music will only be loaded from the folders you add. + Music folders + Manage where music should be loaded from + Folders Refresh music Reload the music library, using cached tags when possible @@ -336,8 +328,8 @@ Unable to export the playlist to this file No app found that can handle this task - No folders - This folder is not supported + No folders + This folder is not supported @@ -356,7 +348,7 @@ Open the queue Move this tab Clear search query - Remove folder + Remove folder Auxio icon Album cover diff --git a/app/src/main/res/xml/preferences_root.xml b/app/src/main/res/xml/preferences_root.xml index 64b8ebafc..5c004cb4c 100644 --- a/app/src/main/res/xml/preferences_root.xml +++ b/app/src/main/res/xml/preferences_root.xml @@ -30,8 +30,8 @@ + app:summary="@string/set_locations_desc" + app:title="@string/set_locations" />