info: update docs
Update information here and there.
This commit is contained in:
parent
b8ac1e6560
commit
0212887610
10 changed files with 64 additions and 35 deletions
|
@ -2,11 +2,14 @@
|
|||
<h1 align="center"><b>Auxio</b></h1>
|
||||
<h4 align="center">A simple, rational music player for android.</h4>
|
||||
<p align="center">
|
||||
<a href="https://github.com/oxygencobalt/Auxio/releases/tag/v2.5.0">
|
||||
<img alt="Latest version" src="https://img.shields.io/static/v1?label=tag&message=v2.5.0&color=0D5AF5">
|
||||
</a>
|
||||
<a href="https://github.com/oxygencobalt/Auxio/releases/">
|
||||
<img alt="GitHub release" src="https://img.shields.io/static/v1?label=Tag&message=v2.5.0&color=0D5AF5">
|
||||
<img alt="Releases" src="https://img.shields.io/github/downloads/OxygenCobalt/Auxio/total.svg">
|
||||
</a>
|
||||
<a href="https://www.gnu.org/licenses/gpl-3.0">
|
||||
<img src="https://img.shields.io/badge/License-GPL%20v3-blue.svg">
|
||||
<img src="https://img.shields.io/badge/license-GPL%20v3-blue.svg">
|
||||
</a>
|
||||
<img alt="Minimum SDK" src="https://img.shields.io/badge/API-21%2B-32B5ED">
|
||||
</p>
|
||||
|
|
|
@ -83,6 +83,10 @@ class MainActivity : AppCompatActivity() {
|
|||
}
|
||||
|
||||
if (intent.getBooleanExtra(KEY_INTENT_USED, false)) {
|
||||
// Don't commit the action, but also return that the intent was applied.
|
||||
// This is because onStart can run multiple times, and thus we really don't
|
||||
// want to return false and override the original delayed action with a
|
||||
// RestoreState action.
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -110,8 +114,6 @@ class MainActivity : AppCompatActivity() {
|
|||
// the point where most phones should have an automatic option for light/dark theming.
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
|
||||
AppCompatDelegate.setDefaultNightMode(settings.theme)
|
||||
} else {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
|
||||
}
|
||||
|
||||
// The black theme has a completely separate set of styles since style attributes cannot
|
||||
|
|
|
@ -23,7 +23,6 @@ import org.oxycblt.auxio.R
|
|||
import org.oxycblt.auxio.databinding.FragmentHomeListBinding
|
||||
import org.oxycblt.auxio.music.Album
|
||||
import org.oxycblt.auxio.music.Music
|
||||
import org.oxycblt.auxio.music.resolveYear
|
||||
import org.oxycblt.auxio.ui.DisplayMode
|
||||
import org.oxycblt.auxio.ui.Sort
|
||||
import org.oxycblt.auxio.ui.recycler.AlbumViewHolder
|
||||
|
|
|
@ -151,8 +151,8 @@ abstract class BaseFetcher : Fetcher {
|
|||
return null
|
||||
}
|
||||
|
||||
// The metadata extraction process of ExoPlayer is normalized into a superclass.
|
||||
// That means we have to iterate through and find the cover art ourselves.
|
||||
// The metadata extraction process of ExoPlayer results in a dump of all metadata
|
||||
// it found, which must be iterated through.
|
||||
val metadata = tracks[0].getFormat(0).metadata
|
||||
|
||||
if (metadata == null || metadata.length() == 0) {
|
||||
|
|
|
@ -502,11 +502,7 @@ sealed class ReleaseType {
|
|||
// it isn't. There are technically two other types, but those are unrelated to music
|
||||
// and thus we don't support them.
|
||||
return when {
|
||||
// Album (+ Other and Broadcast, which don't have meaning in Auxio) correspond to
|
||||
// Album.
|
||||
primary.equals("album", true) ||
|
||||
primary.equals("other", true) ||
|
||||
primary.equals("broadcast", true) -> types.parseSecondaryTypes(1) { Album(it) }
|
||||
primary.equals("album", true) -> types.parseSecondaryTypes(1) { Album(it) }
|
||||
primary.equals("ep", true) -> types.parseSecondaryTypes(1) { EP(it) }
|
||||
primary.equals("single", true) -> types.parseSecondaryTypes(1) { Single(it) }
|
||||
else -> types.parseSecondaryTypes(0) { Album(it) }
|
||||
|
|
|
@ -141,7 +141,9 @@ class SearchViewModel(application: Application) :
|
|||
|
||||
private fun List<Song>.filterSongsBy(value: String) =
|
||||
baseFilterBy(value) {
|
||||
it.rawSortName?.contains(value) == true || it.path.name.contains(value)
|
||||
logD(it.rawSortName)
|
||||
it.rawSortName?.contains(value, ignoreCase = true) == true ||
|
||||
it.path.name.contains(value)
|
||||
}
|
||||
|
||||
private fun List<Album>.filterAlbumsBy(value: String) =
|
||||
|
|
|
@ -185,8 +185,6 @@ private fun RemoteViews.applyFullControls(
|
|||
R.id.widget_shuffle,
|
||||
context.newBroadcastPendingIntent(PlaybackService.ACTION_INVERT_SHUFFLE))
|
||||
|
||||
// Like notifications, use the remote variants of icons since we really don't want to hack
|
||||
// indicators.
|
||||
val shuffleRes =
|
||||
when {
|
||||
state.isShuffled -> R.drawable.ic_shuffle_on_24
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.google.android.material.switchmaterial.SwitchMaterial xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/switchWidget"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
|
@ -7,7 +7,9 @@
|
|||
<string name="info_widget_desc">View and control music playback</string>
|
||||
|
||||
<!-- Label Namespace | Static Labels -->
|
||||
|
||||
<string name="lbl_retry">Retry</string>
|
||||
<!-- As in grant permission -->
|
||||
<string name="lbl_grant">Grant</string>
|
||||
<string name="lbl_indexing">Loading music</string>
|
||||
<string name="lbl_indexing_desc">Loading your music library…</string>
|
||||
|
@ -19,26 +21,39 @@
|
|||
|
||||
<string name="lbl_albums">Albums</string>
|
||||
<string name="lbl_album">Album</string>
|
||||
<!-- As in the the music release being played live -->
|
||||
<string name="lbl_album_live">Live album</string>
|
||||
<!-- As in a remix of the music release -->
|
||||
<string name="lbl_album_remix">Remix album</string>
|
||||
|
||||
<!-- As in the type of music release -->
|
||||
<string name="lbl_eps">EPs</string>
|
||||
<!-- As in the type of music release -->
|
||||
<string name="lbl_ep">EP</string>
|
||||
<!-- As in the the music release being played live -->
|
||||
<string name="lbl_ep_live">Live EP</string>
|
||||
<!-- As in a remix of the music release -->
|
||||
<string name="lbl_ep_remix">Remix EP</string>
|
||||
|
||||
<!-- As in the type of music release -->
|
||||
<string name="lbl_singles">Singles</string>
|
||||
<!-- As in the type of music release -->
|
||||
<string name="lbl_single">Single</string>
|
||||
<!-- As in the the music release being played live -->
|
||||
<string name="lbl_single_live">Live single</string>
|
||||
<!-- As in a remix of the music release -->
|
||||
<string name="lbl_single_remix">Remix single</string>
|
||||
|
||||
<!-- As in a compilation of music -->
|
||||
<string name="lbl_compilations">Compilations</string>
|
||||
<!-- As in a compilation of music -->
|
||||
<string name="lbl_compilation">Compilation</string>
|
||||
<string name="lbl_soundtracks">Soundtracks</string>
|
||||
<string name="lbl_soundtrack">Soundtrack</string>
|
||||
<string name="lbl_mixtapes">Mixtapes</string>
|
||||
<string name="lbl_mixtape">Mixtape</string>
|
||||
|
||||
<!-- As in music that was performed live -->
|
||||
<string name="lbl_live_group">Live</string>
|
||||
<string name="lbl_remix_group">Remixes</string>
|
||||
|
||||
|
@ -77,7 +92,9 @@
|
|||
<string name="lbl_props">Song properties</string>
|
||||
<string name="lbl_file_name">File name</string>
|
||||
<string name="lbl_relative_path">Parent path</string>
|
||||
<!-- As in audio format -->
|
||||
<string name="lbl_format">Format</string>
|
||||
<!-- As in file size -->
|
||||
<string name="lbl_size">Size</string>
|
||||
<string name="lbl_bitrate">Bit rate</string>
|
||||
<string name="lbl_sample_rate">Sample rate</string>
|
||||
|
@ -109,6 +126,7 @@
|
|||
<string name="lbl_library_counts">Library statistics</string>
|
||||
|
||||
<!-- Settings namespace | Settings-related labels -->
|
||||
|
||||
<string name="set_title">Settings</string>
|
||||
<string name="set_ui">Appearance</string>
|
||||
<string name="set_theme">Theme</string>
|
||||
|
@ -169,9 +187,12 @@
|
|||
<string name="set_reindex_desc">May wipe playback state</string>
|
||||
<string name="set_dirs">Music folders</string>
|
||||
<string name="set_dirs_desc">Manage where music should be loaded from</string>
|
||||
<!-- As in the mode to be used with the music folders setting -->
|
||||
<string name="set_dirs_mode">Mode</string>
|
||||
<!-- Exclude folders from music loading -->
|
||||
<string name="set_dirs_mode_exclude">Exclude</string>
|
||||
<string name="set_dirs_mode_exclude_desc">Music will <b>not</b> be loaded from the folders you add.</string>
|
||||
<!-- Restrict music loading to selected folders -->
|
||||
<string name="set_dirs_mode_include">Include</string>
|
||||
<string name="set_dirs_mode_include_desc">Music will <b>only</b> be loaded from the folders you add.</string>
|
||||
<string name="set_quality_tags">Ignore MediaStore tags</string>
|
||||
|
@ -184,6 +205,7 @@
|
|||
<string name="err_index_failed">Music loading failed</string>
|
||||
<string name="err_no_perms">Auxio needs permission to read your music library</string>
|
||||
<string name="err_no_app">No app can open this link</string>
|
||||
<!-- No folders in the "Music Folders" setting -->
|
||||
<string name="err_no_dirs">No Folders</string>
|
||||
<string name="err_bad_dir">This folder is not supported</string>
|
||||
<string name="err_too_small">Auxio does not support this window size</string>
|
||||
|
@ -191,9 +213,12 @@
|
|||
<string name="err_did_not_restore">No state could be restored</string>
|
||||
|
||||
<!-- Hint Namespace | EditText Hints -->
|
||||
|
||||
<!-- As in music library -->
|
||||
<string name="hint_search_library">Search your library…</string>
|
||||
|
||||
<!-- Description Namespace | Accessibility Strings -->
|
||||
|
||||
<string name="desc_track_number">Track %d</string>
|
||||
|
||||
<string name="desc_play_pause">Play or Pause</string>
|
||||
|
@ -207,15 +232,16 @@
|
|||
<string name="desc_queue_handle">Move this queue song</string>
|
||||
<string name="desc_tab_handle">Move this tab</string>
|
||||
<string name="desc_clear_search">Clear search query</string>
|
||||
<string name="desc_music_dir_delete">Remove directory</string>
|
||||
<string name="desc_music_dir_delete">Remove folder</string>
|
||||
|
||||
<string name="desc_auxio_icon">Auxio icon</string>
|
||||
<string name="desc_no_cover">Album cover</string>
|
||||
<string name="desc_album_cover">Album Cover for %s</string>
|
||||
<string name="desc_artist_image">Artist Image for %s</string>
|
||||
<string name="desc_genre_image">Genre Image for %s</string>
|
||||
<string name="desc_album_cover">Album cover for %s</string>
|
||||
<string name="desc_artist_image">Artist image for %s</string>
|
||||
<string name="desc_genre_image">Genre image for %s</string>
|
||||
|
||||
<!-- Default Namespace | Placeholder values -->
|
||||
|
||||
<string name="def_artist">Unknown Artist</string>
|
||||
<string name="def_genre">Unknown Genre</string>
|
||||
<string name="def_date">No Date</string>
|
||||
|
@ -228,13 +254,14 @@
|
|||
<string name="def_widget_artist">Artist Name</string>
|
||||
|
||||
<!-- Codec Namespace | Format names -->
|
||||
<!-- "Audio" should be translated -->
|
||||
|
||||
<!-- "Audio" can optionally be translated -->
|
||||
<string name="cdc_mp3">MPEG-1 Audio</string>
|
||||
<!-- "Audio" should be translated -->
|
||||
<!-- "Audio" can optionally be translated -->
|
||||
<string name="cdc_mp4">MPEG-4 Audio</string>
|
||||
<!-- "Audio" should be translated -->
|
||||
<!-- "Audio" can optionally be translated -->
|
||||
<string name="cdc_ogg">Ogg Audio</string>
|
||||
<!-- "Audio" should be translated -->
|
||||
<!-- "Audio" can optionally be translated -->
|
||||
<string name="cdc_mka">Matroska Audio</string>
|
||||
<!-- "Advanced Audio Coding" can optionally be translated -->
|
||||
<string name="cdc_aac">Advanced Audio Coding (AAC)</string>
|
||||
|
@ -242,6 +269,7 @@
|
|||
<string name="cdc_flac">Free Lossless Audio Codec (FLAC)</string>
|
||||
|
||||
<!-- Color Label namespace | Accent names -->
|
||||
|
||||
<string name="clr_red">Red</string>
|
||||
<string name="clr_pink">Pink</string>
|
||||
<string name="clr_purple">Purple</string>
|
||||
|
@ -262,13 +290,15 @@
|
|||
<string name="clr_dynamic">Dynamic</string>
|
||||
|
||||
<!-- Format Namespace | Value formatting/plurals -->
|
||||
|
||||
<!-- As in "Disc 1", "Disc 2", etc. in a set -->
|
||||
<string name="fmt_disc_no">Disc %d</string>
|
||||
|
||||
<!-- Use your native country's abbreviation for decibel units. -->
|
||||
<string name="fmt_db_pos">+%.1f dB</string>
|
||||
<!-- Use your native country's abbreviation for decibel units. -->
|
||||
<string name="fmt_db_neg">-%.1f dB</string>
|
||||
<!-- Use your native country's abbreviation for bitrate units. -->
|
||||
<!-- Use your native country's abbreviation for bit rate units. -->
|
||||
<string name="fmt_bitrate">%d kbps</string>
|
||||
<!-- Use your native country's abbreviation for hertz units. -->
|
||||
<string name="fmt_sample_rate">%d Hz</string>
|
||||
|
|
20
info/FAQ.md
20
info/FAQ.md
|
@ -21,24 +21,24 @@ of Android through the use of the ExoPlayer FLAC extension.
|
|||
|
||||
#### Auxio doesn't load my music correctly!
|
||||
This depends on the context:
|
||||
1. If "Ignore MediaStore Tags" is enabled, please file an issue with your particular issue.
|
||||
1. If "Ignore MediaStore Tags" is enabled, please create a bug report.
|
||||
2. If "Ignore MediaStore Tags" is not enabled, please check below to make sure your issue is not already
|
||||
awknowledged before reporting an issue.
|
||||
|
||||
Moreso, if the issue encountered does not appear in other apps like Music Player GO, Phonograph,
|
||||
Vinyl, Retro Music, VLC, or Vanilla, then it should be reported.
|
||||
awknowledged before reporting a bug.
|
||||
- Moreso, if the issue encountered does not appear in other apps like Music Player GO, Phonograph,
|
||||
or Retro Music then it should definitely be reported, as it is a logic bug on Auxio's part.
|
||||
|
||||
***Known unfixable music loading issues***
|
||||
|
||||
These are a list of unfixable music loading issues that can only be fixed by enabling "Ignore MediaStore Tags":
|
||||
|
||||
**My FLAC/OGG/OPUS files don't have dates:** Android does not read the `DATE` tag from vorbis files. It reads the `YEAR` tag. This is because android's metadata parser is
|
||||
stuck in 2008.
|
||||
**My FLAC/OGG/OPUS/MP3 files don't have dates:** Android does not read the `DATE` tag from vorbis files. It reads the `YEAR` tag.
|
||||
Similarly, Android does not read ID3v2.4's `TDRC` and actually reads `TYER` regardless of the version. This is because android's
|
||||
metadata parser is stuck in 2008.
|
||||
|
||||
**Some files with accented/symbolic characters have corrupted tags:** When Android extracts metadata, at some point it tries to convert the bytes it extracted to a
|
||||
java string, which apparently involves detecting the encoding of the data dynamically and then converting it to Java's Unicode dialect. Of course, trying to detect
|
||||
codings on the fly like that is a [terrible idea](https://en.wikipedia.org/wiki/Bush_hid_the_facts), and more often than not it results in UTF-8 tags (Seen on
|
||||
FLAC/OGG/OPUS files most often) being corrupted.
|
||||
FLAC/OGG/OPUS files most often) being corrupted. It also affects MP3 files with ID3v2.4.0 tags that use the UTF-8 encoding in text-based tags.
|
||||
|
||||
**I have a large library and Auxio takes really long to load it:** This is expected since reading from the audio database takes awhile, especially with libraries
|
||||
containing 10k songs or more.
|
||||
|
@ -98,8 +98,8 @@ fully may take some time.
|
|||
#### Why is playback distorted when I play my FLAC/WAV files?
|
||||
ExoPlayer, while powerful, does add some overhead when playing exceptionally high-quality files (2000+ KB/s bitrate,
|
||||
90000+ Hz sample rate). This is worsened by the ReplayGain system, as it has to copy the audio buffer no matter what.
|
||||
This results in choppy, distorted playback in some cases as audio data cannot be delivered in time. Sadly, there is
|
||||
not much I can do about this right now.
|
||||
This results in choppy, distorted playback in some cases as audio data cannot be delivered in time. I can also mitigate
|
||||
this similarly to the above issue, but again, it may take some time.
|
||||
|
||||
#### Why are accents lighter/less saturated in dark mode?
|
||||
As per the [Material Design Guidelines](https://material.io/design/color/dark-theme.html), accents should be less
|
||||
|
|
Loading…
Reference in a new issue