- Make the interpreters use a more conventional naming structure
- Remove the redundant file name extraction that is largely an artifact
of older versions
Split the version-specific components into "Interpreters" that are then
composed into MediaStoreExtractor. This is both a nicer design and also
allows me to resolve an evil Huawei bug that prevents me from using the
new path fields.
Resolves#592
The context of the "New Playlist" dialog can differ depending on the
action performed, such as adding to a playlist or importing a playlist.
We need to make sure we're still showing the right message once this
is done.
Add more types of playlist messages corresponding to other actions, so
they can be indicated in the UI only when the process is complete.
This is somewhat incomplete. It does not include indicating errors for
other playlist operations (Which I want to do), and neither does it
handle situations in which some playlist operations and up reducing
to others (i.e import -> create). I need to do that later.
Add a menu option that allows you to import a playlist file into an
existing playlist.
This is useful for keeping Auxio playlists up to date with a remote
source.
Add configuration options for:
- Using windows-compatible paths with \ separators and C:\\ volume
prefixes
- Switching between relative and absolute paths
- Turns out path extraction via MediaStore doesn't work, have to grok
the URI format.
- Added playlist name extraction
- Proactively handling whitespace
Always decode with ffmpeg before decoding with MediaCodec.
MediaCodec is unreliable on some devices in such a way as to cause a
full loading failure on them. Prevent this by using ffmpeg.
At some point, the switch to keying raw music information broke my
mitigation for duplicate tags that use similar cases. This then
crashed the music loader in certain cases. Fix it by making the
check use raw music keys.
Resolves#614
Only include an artists explicit albums (ones directly linked w/album
artist) in their count.
This is arguably more appropriate than the prior behavior, given
Auxio's collaborator/artist distinction.
Resolves#581.
This is part of the MusicBrainz spec, but I didn't think of implementing
it. Turns out it's stupidly common among music releases, so may as well.
Resolves#590.
Recently, Android 14 seemed to have finally made it impossible to start
services in onStart. I never realized this error since I thought
onStart signified the beginning of the foreground state, when it was
actually onResume. I think it only worked prior due to race conditions.
Try to fix it by moving the service starting code to onResume.
See #608.
* Translated using Weblate (Hungarian)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hu/
* Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.8% (274 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pt_BR/
* Translated using Weblate (Indonesian)
Currently translated at 68.5% (198 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/id/
* Translated using Weblate (Korean)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ko/
* Translated using Weblate (Korean)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ko/
* Translated using Weblate (Finnish)
Currently translated at 91.6% (265 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fi/
* Translated using Weblate (Punjabi)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/
* Translated using Weblate (Arabic (ar_IQ))
Currently translated at 59.5% (172 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ar_IQ/
* Translated using Weblate (German)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/
* Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.8% (274 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pt_BR/
* Translated using Weblate (French)
Currently translated at 99.6% (288 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fr/
* Translated using Weblate (French)
Currently translated at 100.0% (37 of 37 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/fr/
* Added translation using Weblate (Slovenian)
* Translated using Weblate (Slovenian)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sl/
* Translated using Weblate (Slovenian)
Currently translated at 100.0% (37 of 37 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/sl/
* Added translation using Weblate (Portuguese)
* Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pt_PT/
* Translated using Weblate (Portuguese (Portugal))
Currently translated at 97.2% (36 of 37 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/pt_PT/
* Translated using Weblate (Turkish)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/tr/
* Translated using Weblate (Turkish)
Currently translated at 100.0% (37 of 37 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/tr/
* Translated using Weblate (Korean)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ko/
* Translated using Weblate (Korean)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ko/
* Translated using Weblate (Portuguese (Portugal))
Currently translated at 99.3% (287 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pt_PT/
* Translated using Weblate (Portuguese (Portugal))
Currently translated at 99.6% (288 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pt_PT/
* Translated using Weblate (Lithuanian)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/
* Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (37 of 37 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/pt_PT/
---------
Co-authored-by: Tibor Botfai (gidano) <gidano@gmail.com>
Co-authored-by: santiago046 <comehere665@gmail.com>
Co-authored-by: Reza Almanda <rezaalmanda27@gmail.com>
Co-authored-by: Yurical <yurical1@outlook.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: Hamzoz <hamzoz.3010@gmail.com>
Co-authored-by: qwerty287 <ndev@web.de>
Co-authored-by: cwpute <obigre@protonmail.com>
Co-authored-by: K_Lar <zan.sprogar@gmail.com>
Co-authored-by: pringless <rexpress97@gmail.com>
Co-authored-by: Bai <batuhanakkurt000@gmail.com>
Co-authored-by: Vaclovas Intas <vaclovas1999@gmail.com>
- Use Replace instead of Diff for now since that avoids the scroll
state freaking out. In practice I'll likely need to radically refactor
this system (AGAIN...) to make the queue updates 100% fine-grained,
even during shuffling.
- Remove the behaivor of staying paused on the next track. That's
covered by #568.