Media3 simply will not tolerate me doing this. I am basically stuck
at the mercy of the Android OS now, until I can have my own unified
source of truth with cover loading.
Media3 simply will not tolerate me doing this. I am basically stuck
at the mercy of the Android OS now, until I can have my own unified
source of truth with cover loading.
* Translated using Weblate (Interlingua)
Currently translated at 62.9% (197 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ia/
* Translated using Weblate (Interlingua)
Currently translated at 63.8% (200 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ia/
* Translated using Weblate (Interlingua)
Currently translated at 69.6% (218 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ia/
* Translated using Weblate (Romanian)
Currently translated at 82.4% (258 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ro/
* Added translation using Weblate (Welsh)
* Translated using Weblate (Welsh)
Currently translated at 97.7% (43 of 44 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/cy/
* Translated using Weblate (Welsh)
Currently translated at 8.3% (26 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cy/
* Translated using Weblate (Welsh)
Currently translated at 10.8% (34 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cy/
* Translated using Weblate (Czech)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/
* Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/
* Translated using Weblate (Welsh)
Currently translated at 62.7% (197 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cy/
* Translated using Weblate (Spanish)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/
* Translated using Weblate (Korean)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ko/
* Translated using Weblate (Ukrainian)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/
* Translated using Weblate (Lithuanian)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/
* Translated using Weblate (Croatian)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hr/
* Translated using Weblate (Swedish)
Currently translated at 99.6% (313 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/
* Translated using Weblate (Russian)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/
* Translated using Weblate (Belarusian)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/
* Translated using Weblate (Lithuanian)
Currently translated at 100.0% (46 of 46 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/lt/
* Translated using Weblate (Slovenian)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sl/
* Translated using Weblate (Slovenian)
Currently translated at 100.0% (46 of 46 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/sl/
* Translated using Weblate (Hindi)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/
* Translated using Weblate (Punjabi)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/
* Translated using Weblate (French)
Currently translated at 99.6% (313 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fr/
* Added translation using Weblate (Bulgarian)
* Translated using Weblate (Bulgarian)
Currently translated at 100.0% (46 of 46 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/bg/
* Translated using Weblate (Bulgarian)
Currently translated at 32.8% (103 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/bg/
* Translated using Weblate (Bulgarian)
Currently translated at 64.6% (203 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/bg/
* Translated using Weblate (Bulgarian)
Currently translated at 84.0% (264 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/bg/
---------
Co-authored-by: Software In Interlingua <softinterlingua@gmail.com>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: fin-w <fin-w@tutanota.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: fin-w <fin-w@users.noreply.hosted.weblate.org>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: ID J <tabby4442@gmail.com>
Co-authored-by: BMT[UA] <weblate@yopmail.com>
Co-authored-by: Vaclovas Intas <vaclovas1999@gmail.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: paddis paddis <turtle@turtle.garden>
Co-authored-by: K_Lar <zan.sprogar@gmail.com>
Co-authored-by: ShareASmile <ShareASmile@users.noreply.hosted.weblate.org>
Co-authored-by: Victor Lamoine <victor.lamoine@gmail.com>
Co-authored-by: trunars <trunars@gmail.com>
* Translated using Weblate (Interlingua)
Currently translated at 62.9% (197 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ia/
* Translated using Weblate (Interlingua)
Currently translated at 63.8% (200 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ia/
* Translated using Weblate (Interlingua)
Currently translated at 69.6% (218 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ia/
* Translated using Weblate (Romanian)
Currently translated at 82.4% (258 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ro/
* Added translation using Weblate (Welsh)
* Translated using Weblate (Welsh)
Currently translated at 97.7% (43 of 44 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/cy/
* Translated using Weblate (Welsh)
Currently translated at 8.3% (26 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cy/
* Translated using Weblate (Welsh)
Currently translated at 10.8% (34 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cy/
* Translated using Weblate (Czech)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/
* Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/
* Translated using Weblate (Welsh)
Currently translated at 62.7% (197 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cy/
* Translated using Weblate (Spanish)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/
* Translated using Weblate (Korean)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ko/
* Translated using Weblate (Ukrainian)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/
* Translated using Weblate (Lithuanian)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/
* Translated using Weblate (Croatian)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hr/
* Translated using Weblate (Swedish)
Currently translated at 99.6% (313 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/
* Translated using Weblate (Russian)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/
* Translated using Weblate (Belarusian)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/
* Translated using Weblate (Lithuanian)
Currently translated at 100.0% (46 of 46 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/lt/
* Translated using Weblate (Slovenian)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sl/
* Translated using Weblate (Slovenian)
Currently translated at 100.0% (46 of 46 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/sl/
* Translated using Weblate (Hindi)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/
* Translated using Weblate (Punjabi)
Currently translated at 100.0% (314 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/
* Translated using Weblate (French)
Currently translated at 99.6% (313 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fr/
* Added translation using Weblate (Bulgarian)
* Translated using Weblate (Bulgarian)
Currently translated at 100.0% (46 of 46 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/bg/
* Translated using Weblate (Bulgarian)
Currently translated at 32.8% (103 of 314 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/bg/
---------
Co-authored-by: Software In Interlingua <softinterlingua@gmail.com>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: fin-w <fin-w@tutanota.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: fin-w <fin-w@users.noreply.hosted.weblate.org>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: ID J <tabby4442@gmail.com>
Co-authored-by: BMT[UA] <weblate@yopmail.com>
Co-authored-by: Vaclovas Intas <vaclovas1999@gmail.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: paddis paddis <turtle@turtle.garden>
Co-authored-by: K_Lar <zan.sprogar@gmail.com>
Co-authored-by: ShareASmile <ShareASmile@users.noreply.hosted.weblate.org>
Co-authored-by: Victor Lamoine <victor.lamoine@gmail.com>
Co-authored-by: trunars <trunars@gmail.com>
- Implement perceptual hashing algorithm to efficiently cache images
- Efficiently pre-sort cover sources to make cover images load without
freezing and look more pleasing
Resolbes #342.
Don't gradually fade out until the very end, reduce the corner radii
at the very end, fix elevation, delift elevation at the very end.
More tweaks are probably needed here to make it look good.
Break up the monster AuxioService into sub-classes, keeping just the
major lifecycle and music stuff in AuxioService for now (which will
likely be split out itself eventually)
ExoPlayer method for fetching next media item respects Repeat All, which
on the last song of a queue causes playNext to wrap around and insert
the songs at the start of the queue. New code fetches next song as if
repeat were turned off, so the songs will always be added to the end of
the queue.
FixesOxygenCobalt/Auxio#735. ExoPlayer method for fetching next media
item returns C.INDEX_UNSET (-1) when used on the last song of a queue,
which is not a valid index for ExoPlayer.addMediaItems(). New code just
adds songs to the end of the queue if there isn't a next song.
Apparently:
1. Some OEMs don't actually autocrop to rounded corners
2. I was not correctly using the right corner radius attributes in the
first place, making it inconsistent.
Let's fix that.
Closes#730
Again, a two-fold problem:
- Was not properly giving the right StateAck to the state holder
- ShuffleOrder not properly handling the index given when adding to
queue internally
Resolves#727.
Caused by the new state restoration code being bugged and applying on
playlist changes, then combined with the playlist code not properly
switching to the main context when dispatching a library update.
Playback and indexing now occur in the same service through a new
bridge called AuxioService.
AuxioService contains the existing service instances as Fragment
implementations, and then forwards typical service events to them
(albeit this will drift more and more as I continue to deal with
lifecycle issues).
This should be the first step in enabling true service independence,
as it means that the service will now immediately initialize and load
music as soon as possible.
* Translated using Weblate (Czech)
Currently translated at 100.0% (43 of 43 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/cs/
* Translated using Weblate (Spanish)
Currently translated at 100.0% (43 of 43 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/es/
* Translated using Weblate (Ukrainian)
Currently translated at 100.0% (43 of 43 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/uk/
* Translated using Weblate (Punjabi)
Currently translated at 100.0% (43 of 43 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/pa/
* Translated using Weblate (Hindi)
Currently translated at 100.0% (43 of 43 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/hi/
* Translated using Weblate (Belarusian)
Currently translated at 100.0% (43 of 43 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/be/
* Translated using Weblate (French)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fr/
* Translated using Weblate (Italian)
Currently translated at 98.0% (307 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/
* Translated using Weblate (Finnish)
Currently translated at 92.9% (291 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fi/
* Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (44 of 44 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/zh_Hans/
* Translated using Weblate (Interlingua)
Currently translated at 42.1% (132 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ia/
* Translated using Weblate (German)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/
* Translated using Weblate (Russian)
Currently translated at 100.0% (44 of 44 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/ru/
* Translated using Weblate (Korean)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ko/
* Translated using Weblate (Korean)
Currently translated at 100.0% (44 of 44 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/ko/
* Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.0% (310 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pt_BR/
* Translated using Weblate (Interlingua)
Currently translated at 56.2% (176 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ia/
* Translated using Weblate (Interlingua)
Currently translated at 59.4% (186 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ia/
* Translated using Weblate (German)
Currently translated at 100.0% (44 of 44 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/de/
* Translated using Weblate (Interlingua)
Currently translated at 61.6% (193 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ia/
* Translated using Weblate (French)
Currently translated at 100.0% (44 of 44 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/fr/
* Translated using Weblate (Russian)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/
* Translated using Weblate (Belarusian)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/
---------
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: Сергій <sergiy.goncharuk.1@gmail.com>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: kopatych <maxklezovich@gmail.com>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Software In Interlingua <softinterlingua@gmail.com>
Co-authored-by: min7-i <min7-i@users.noreply.hosted.weblate.org>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: Yurical <yurical1@outlook.com>
Co-authored-by: santiago046 <comehere665@gmail.com>
Co-authored-by: qwerty287 <qwerty287@posteo.de>
This time, actually wait for the save to complete before stopping the
foreground state. This requires some checks to make sure that we don't
have any "randomly smashing on buttons" errors, but I'm unsure if that
will be enough.
The last case in which this becomes an issue is when the service
is killed outright. I can't do much here to make the state more sane
unless I did some playback position monitoring.
* Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.2% (298 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pt_BR/
* Translated using Weblate (Romanian)
Currently translated at 82.4% (258 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ro/
* Translated using Weblate (Ukrainian)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/
* Translated using Weblate (Finnish)
Currently translated at 90.7% (284 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fi/
* Translated using Weblate (German)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/
* Translated using Weblate (Swedish)
Currently translated at 83.0% (260 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/
* Added translation using Weblate (Interlingua)
* Translated using Weblate (Hindi)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/
* Translated using Weblate (Punjabi)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/
* Translated using Weblate (Swedish)
Currently translated at 83.0% (260 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/
* Translated using Weblate (Swedish)
Currently translated at 83.0% (260 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/
* Translated using Weblate (Croatian)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hr/
* Translated using Weblate (Swedish)
Currently translated at 83.7% (262 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/
* Translated using Weblate (Swedish)
Currently translated at 93.2% (292 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/
* Translated using Weblate (Swedish)
Currently translated at 93.6% (293 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/
* Translated using Weblate (Finnish)
Currently translated at 92.6% (290 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fi/
* Translated using Weblate (Interlingua)
Currently translated at 14.3% (45 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ia/
* Translated using Weblate (Russian)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/
* Translated using Weblate (Belarusian)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/
* Translated using Weblate (Swedish)
Currently translated at 98.0% (307 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/
* Translated using Weblate (Swedish)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/
* Translated using Weblate (Hindi)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/
* Translated using Weblate (Lithuanian)
Currently translated at 100.0% (313 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/
* Translated using Weblate (Interlingua)
Currently translated at 24.2% (76 of 313 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ia/
* Update translation files
Updated by "Remove blank strings" hook in Weblate.
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/
---------
Co-authored-by: santiago046 <comehere665@gmail.com>
Co-authored-by: Ilie <iliul@protonmail.com>
Co-authored-by: Сергій <sergiy.goncharuk.1@gmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: qwerty287 <qwerty287@posteo.de>
Co-authored-by: Johan Hansén <johnahnase@users.noreply.hosted.weblate.org>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: Software In Interlingua <softinterlingua@gmail.com>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: Sourabh Mishra <msourabh802@gmail.com>
Co-authored-by: Vaclovas Intas <vaclovas1999@gmail.com>
Add a 1x3/1x4 widget that displays the cover and controls
Also requires another widget type that just displays controls to
accomodate landscape devices.
Resolves#420.
This setting allows you to remain playing/paused when you move in the
queue or edit the queue. Useful for some people who like this behavior
more than always playing.
Resolves#568.
This is apparently the standard behavior that media apps should use to
allow the foreground state to be exited. I personally don't want to
make it really unilateral like that, so if playback is already ongoing
I'll keep the foreground state going.
More or less, the paths being selected for were extremely malformed,
stuff like storage/emulated/0Music. This completely broke music folders
below API 29.
Turns out there are two ways the selector can go malformed. One was the
complicated issue where you can't resolve a directory, the other was me
*missing a character* and not even building the selector right.
It's mostly identical to prior, albiet pausing on repeat now leaves the
player position at the end of the song rather than the beginning.
That's the only regression I couldn't figure out how to resolve.
Mirror the last playback state of the holder inside
PlaybackStateManager.
This is generally more efficient and will enable better handling of
when state holders attach and detach.
Add a currently-unused ShuffleOrder implementation with fixes for media
item insertion.
This will be used as the basis of the new gapless playback system,
assuming all else goes well.
OPUS has another volume adjustment field on top of the existing R128
adjustments. I was under the impression this was handled by the android
system, but apparently not. This commit applies the base gain to files
by just adding them onto the existing ReplayGain values.
Resolves#521.
Handle back presses gracefully without finicky behavior when doing back
gestures.
I've spent far too much time trying to make this sensible. I'm going to
take a break.
The stock overlay is not sufficient for our needs, as:
1. It seemingly cannot be set up without missing certain touch areas or
disabling the touch area of the speed dial itself
2. The scrim can't be evenly applied everywhere in the app due to the
nested expore UI.
So, modify the speed dial to work without a scrim and reimplement the
overlay touch behavior manually.
When reimporting an M3U file into a playlist, if the name differs, then
initiate a rename dialog so the user has a choice on whether they want
to use the new name or not.
This does kinda desecrate the "Rename" decision a bit, but it's still
to the user the same.
When you import a playlist, Auxio will now always display the
"New Playlist" dialog so you can change whatever name Auxio has picked
for the imported playlist.
This also prevents the creation of two playlists with the same names.
- 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.
M4A has it's own multi-value spec that works similarly to vorbis, where
they just repeat the atom several times with multiple values. Since M4A
atoms are remapped to ID3v2 frames, this more or less requires us to
tolerate duplicate ID3v2 frames as well, which is frustratingly a spec
violation. It solves the problem though
Resolves#558.
Completely misunderstood how this would affect the widget/notification
on Android 14. Apparently it just blocks all intents, even if they are
tangentially from the app.
Resolves#598.
* Translated using Weblate (French)
Currently translated at 99.6% (286 of 287 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fr/
* Translated using Weblate (Romanian)
Currently translated at 60.2% (173 of 287 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ro/
* Translated using Weblate (Hindi)
Currently translated at 100.0% (287 of 287 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/
* Translated using Weblate (Punjabi)
Currently translated at 100.0% (287 of 287 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/
* Translated using Weblate (Romanian)
Currently translated at 60.6% (174 of 287 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ro/
* Translated using Weblate (Czech)
Currently translated at 100.0% (291 of 291 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/
* Translated using Weblate (Spanish)
Currently translated at 100.0% (291 of 291 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/
* Translated using Weblate (Hindi)
Currently translated at 100.0% (291 of 291 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/
* Translated using Weblate (Ukrainian)
Currently translated at 100.0% (291 of 291 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/
* Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (291 of 291 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/
* Translated using Weblate (Lithuanian)
Currently translated at 100.0% (291 of 291 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/
* Translated using Weblate (Punjabi)
Currently translated at 100.0% (291 of 291 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/
* Translated using Weblate (Russian)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/
* Translated using Weblate (Belarusian)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/
* Translated using Weblate (Ukrainian)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/
* Translated using Weblate (Hebrew)
Currently translated at 100.0% (37 of 37 strings)
Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/he/
* Translated using Weblate (Hebrew)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/he/
* Translated using Weblate (Croatian)
Currently translated at 100.0% (289 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hr/
* Translated using Weblate (Swedish)
Currently translated at 89.9% (260 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/
* Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.4% (273 of 289 strings)
Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pt_BR/
---------
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: Yokyrole <iteodormatianu@gmail.com>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: Fjuro <ifjuro@proton.me>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: BMT[UA] <weblate@yopmail.com>
Co-authored-by: Eric <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Vaclovas Intas <vaclovas1999@gmail.com>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: FAYE <pl4gve@gmail.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: sköldpadda <weblate@turtle.garden>
Co-authored-by: santiago046 <comehere665@gmail.com>
Fix some immediate compile issues and some style nitpicks. This breaks
the system a bit, but I don't think I will have enough time to debug
fully for the forseeable future, so I want to get this out now.
Make it so that music items are meaningfully different when they were
created under different settings. This resolves an issue where music
information would not correctly update when separators or intelligent
sorting would change.
Resolves#546.
Implement a new Name.Known.Factory instance that replaces the usage of
Name.Known.from.
This again allows songs to be differentiated on tag interpretation and
is generally easier to test.
Move all multi-value utilities to a new Separators interface.
This should allow separator config to be dynamically compared across
song instances, and generally make songs easier to test.
Trim simple names once punctuation has been removed.
This prevents situations where album names like "& Yet & Yet" (a real
album by post-rock outfit Do Make Say Think) will have blank thumbs.
This probably isn't the best approach in general, but nothing about the
intelligent name system is a good approach.
Caused yet again by sharing StateFlows leading to a strange
out-of-order collector notification, which then allows detail
fragments to consume item navigation requests before the playback
panel can even get them. SharedFlow doesn't help here, so we are
just forced to move this to MainFragment which does not have this
issue for some reason.
Apparently dialog fragments do not change the state of the fragment it
is overlaid on, resulting in it still having active StateFlow
collectors that will intercept new playlist requests before
AddToPlaylistDialog. Once again sharing StateFlows across views has
bit me.
In the future I may try to preserve the navigation idioms by not
stacking NewPlaylistDialog on AddToPlaylistDialog and instead
simply swap them out. I think this would also be better design too
(It's not like I'm allowing other decision dialogs to be exitable
back to their prior dialog).
Vendor BottomSheetDialog(Fragment) with the inset fix that prior used
reflection.
Apparently said reflection breaks down and crashes the release build
somehow. So now I just have to hastily patch BackportBottomSheetBehavior
and vendor another 1000 lines of MDC code.
Really considering making a PHP sadness-like blog solely for android
at this point.
Add a dialog that shows the stack trace of a music loading error.
This is an MVP that is only available to music loading to resolve some
immediate issues.
Resolves#527.
Don't disable bottom sheet inset calculations and use the expanded
state hack to mitigate for the peek height calculation, instead,
just clobber the window inset routine to fix the peek height while
not applying the padding. The expanded hack still remains, but is
now relegated to the cases where the 16:9 keyline breaks down.
By default, bottom sheet handles have 16dp bottom padding for some
reason. This looked really bad on the dialogs, so remove it there.
Only keep it on the queue handle, since it has a companion label that
will overlap if not lopsided.
Make sure that we don't drop selections or playlist edits when we
navigate to dialogs, this time achieved through a more general
navigation listener implementation than prior.