info: update docs

Update information here and there.
This commit is contained in:
OxygenCobalt 2022-07-20 17:38:20 -06:00
parent b8ac1e6560
commit 0212887610
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
10 changed files with 64 additions and 35 deletions

View file

@ -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>

View file

@ -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

View file

@ -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

View file

@ -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) {

View file

@ -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) }

View file

@ -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) =

View file

@ -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

View file

@ -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" />

View file

@ -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>

View file

@ -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