Commit graph

2174 commits

Author SHA1 Message Date
Alexander Capehart
9b09572382
playback: properly play media items from command
By default it actually routes them to add them
2024-04-11 14:36:56 -06:00
Alexander Capehart
1f9f62b0da
playback: fix wraparound with repeat once 2024-04-10 19:48:28 -06:00
Alexander Capehart
bd890880a3
playback: restore repeat modes again 2024-04-10 19:47:56 -06:00
Alexander Capehart
74551e83ab
playback: fix being unable to exit fg 2024-04-10 19:30:49 -06:00
Alexander Capehart
99a527983b
service: break up
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)
2024-04-10 19:18:04 -06:00
Alexander Capehart
5b8518a567
playback: move most ops to player
This allows me to handle foreign MediaItem events easily. Not tested,
don't have time.
2024-04-10 10:05:20 -06:00
Alexander Capehart
05101c0e08
service: implement onGetItem
Should round out the rest of the MediaSession interface I need. Now
just have to hook up to Android Auto.
2024-04-09 22:44:30 -06:00
Alexander Capehart
48275c4698
service: add search functionality
I cannot tell if this actually works yet.
2024-04-09 22:28:32 -06:00
Alexander Capehart
e9a4b99aa5
service: dead code removal 2024-04-09 15:35:36 -06:00
Alexander Capehart
62d3c2dfb1
service: unify foreground management 2024-04-09 15:27:56 -06:00
Alexander Capehart
7503accada
playback: handle media item playback 2024-04-09 15:17:24 -06:00
Alexander Capehart
64b9557793
playback: always enable skipping 2024-04-08 21:15:15 -06:00
Alexander Capehart
08e00c7fb1
playback: use custom service lifecycle 2024-04-08 21:15:04 -06:00
Alexander Capehart
94e29c0a1b
build: upgrade deps 2024-04-08 21:14:22 -06:00
Alexander Capehart
04ea6834fb
playback: rearchitecture around media3 (prototype)
Nowhere near complete in any capacity.
2024-04-07 23:25:53 -06:00
Alexander Capehart
6491dddc2b
build: bump to 3.4.3
Bump to version 3.4.3 (44).
2024-04-07 23:25:53 -06:00
Alexander Capehart
da07be26f4
playback: re-add replaygain off mode
It was honestly foolish for me to recommend retagging.

Resolves #746.
2024-04-07 23:25:53 -06:00
Alexander Capehart
dc51c84c54
home: handle playback decision event
Forgot to add this.

Resolves #734.
2024-04-07 23:25:53 -06:00
unrenowned
b075f8ec51
playback: fix playNext wraparound with Repeat All
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.
2024-04-07 23:25:53 -06:00
unrenowned
e0352a105a
playback: fix playNext crash on last song of queue
Fixes OxygenCobalt/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.
2024-04-07 23:25:53 -06:00
Alexander Capehart
8221e98401
playback: fix add to queue again 2024-04-07 23:25:53 -06:00
Alexander Capehart
f5bc31a00f
home: fix crash on music updates 2024-04-07 23:25:53 -06:00
Alexander Capehart
2a0624f860
playback: fix more state restore issues
They just keep coming. I hate how complicated this system is.
2024-04-07 23:25:53 -06:00
Alexander Capehart
2f36fcfb45
build: bump to 3.4.2
Bump to version 3.4.2.
2024-04-07 23:25:53 -06:00
Alexander Capehart
6d6b1665e5
all: reformat 2024-04-07 23:25:52 -06:00
Alexander Capehart
3ca9b515cf
widget: fix wafer cover setup
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
2024-04-07 23:25:52 -06:00
Alexander Capehart
dbfe9927bf
playback: fix broken state restore
That didn't properly handle when the index was invalid and kept stale
song entries.

Resolves #723.
2024-04-07 23:25:52 -06:00
Alexander Capehart
b6f89de88d
playback: fix crash w/add to queue
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.
2024-04-07 23:25:52 -06:00
Alexander Capehart
86b7ef8d5c
music: fix crash on playlist add
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.
2024-04-07 23:25:52 -06:00
Alexander Capehart
22a22a883f
service: unify playback and indexer
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.
2024-04-07 23:25:52 -06:00
Weblate (bot)
e452875d59
Translations update from Hosted Weblate (#715)
* 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>
2024-03-12 20:49:23 -06:00
Conny Duck
801fd28aed
convert png files to webp to reduce apk size 2024-02-25 21:21:57 +01:00
Alexander Capehart
b2a6d40252
playback: cleanup 2024-02-24 14:47:55 -07:00
Alexander Capehart
6a76a55060
music: bump cache db version 2024-02-24 14:38:21 -07:00
Alexander Capehart
dd118b4529
build: bump to 3.4.1
Bump to version 3.4.1 (42).
2024-02-24 14:38:01 -07:00
Alexander Capehart
3a04bef074
all: reformat 2024-02-24 13:28:49 -07:00
Alexander Capehart
5efdfb6aac
home: make sure to avoid touch overlay crash
Only configure the touch overlay when the fragment resumes, and don't
do any weird post stuff.
2024-02-24 13:27:52 -07:00
Alexander Capehart
a036005f75
playback: fix broken state restore 2024-02-24 12:37:49 -07:00
Alexander Capehart
07a98029c6
music: fix opus replaygain interpretation
- Don't parse the base gain, the media player actually does apply it.
- Adjust R128 tags to LUFS -18 to be consistent w/MP3.

Resolves #521.
2024-02-20 11:12:24 -07:00
Alexander Capehart
f3261ded43
about: add yrliet to supporters 2024-02-17 14:35:04 -07:00
Alexander Capehart
23d561cc44
playback: save when service closes
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.
2024-02-17 14:00:12 -07:00
Alexander Capehart
80e08fd74a
build: bump to 3.4.0
Bump to version 3.4.0 (41).
2024-02-17 12:59:43 -07:00
Alexander Capehart
eb3c320523
home: move speed dial touch setup to onStart
If we don't do this, the views won't be there and the app will crash
in some circumstances.

Resolves #701.
2024-02-17 12:13:07 -07:00
Weblate (bot)
fb531c8adc
Translations update from Hosted Weblate (#687)
* 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>
2024-02-17 10:09:42 -07:00
Alexander Capehart
6730766504
music: increase music load timeout
TagExtractor can take longer than 10 seconds to load, increase it to 60
seconds.
2024-01-28 21:38:45 -07:00
Alexander Capehart
ced462e718
playback: dont apply state mirror w/no song
Otherwise, the StateHolder will crash.
2024-01-28 21:38:45 -07:00
Alexander Capehart
40fdf59a66
build: bump to 3.4.0-dev
Decided dev is a better suffix.
2024-01-21 20:04:45 -07:00
Alexander Capehart
d0817dd83b
build: bump to 3.4.0
Bump to a testing version of 3.4.0.
2024-01-21 20:03:27 -07:00
Alexander Capehart
8dc0be4a52
all: cleanup 2024-01-21 20:01:26 -07:00
Alexander Capehart
b53a96f574
playback: fix crash when song cannot be restored
The index is -1, which is not a valid position to seek through
normally. In this case we should just ignore it.
2024-01-21 19:33:49 -07:00
Alexander Capehart
588b6e9abd
info: explicitly declare notification perm
Some OEMs might be looking for this before approving even media
or foreground service notifications.
2024-01-18 19:29:46 -07:00
Weblate (bot)
bbe0042281
Translations update from Hosted Weblate (#657)
* Translated using Weblate (Czech)

Currently translated at 100.0% (305 of 305 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (305 of 305 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Hindi)

Currently translated at 100.0% (305 of 305 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (305 of 305 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (305 of 305 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (305 of 305 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/

* Translated using Weblate (Hebrew)

Currently translated at 100.0% (305 of 305 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/he/

* Translated using Weblate (Russian)

Currently translated at 100.0% (305 of 305 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (305 of 305 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/

* Translated using Weblate (Czech)

Currently translated at 100.0% (311 of 311 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (311 of 311 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Hindi)

Currently translated at 100.0% (311 of 311 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (311 of 311 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (311 of 311 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (311 of 311 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/

* Translated using Weblate (German)

Currently translated at 100.0% (311 of 311 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (German)

Currently translated at 100.0% (311 of 311 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (Korean)

Currently translated at 98.7% (307 of 311 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ko/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (311 of 311 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Russian)

Currently translated at 100.0% (311 of 311 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (311 of 311 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (311 of 311 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

* 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 (Czech)

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (313 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* 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 (Croatian)

Currently translated at 100.0% (42 of 42 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/hr/

* Translated using Weblate (Croatian)

Currently translated at 98.7% (309 of 313 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hr/

---------

Co-authored-by: Fjuro <ifjuro@proton.me>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: BMT[UA] <weblate@yopmail.com>
Co-authored-by: Eric <zxmegaxqug@hldrive.com>
Co-authored-by: Ron Shabi <ron@ronsh.net>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: Сергій <sergiy.goncharuk.1@gmail.com>
Co-authored-by: qwerty287 <qwerty287@posteo.de>
Co-authored-by: min7-i <postly+github_min@mailbox.org>
Co-authored-by: Yurical <yurical1@outlook.com>
Co-authored-by: Vaclovas Intas <vaclovas1999@gmail.com>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Milo Ivir <mail@milotype.de>
2024-01-17 03:05:26 +00:00
Alexander Capehart
5ab05b75d9
widgets: fix default cover icon 2024-01-16 14:27:32 -07:00
Alexander Capehart
6c427185ee
widgets: fix default cover icon 2024-01-16 13:25:26 -07:00
Alexander Capehart
e6141b12e6
playback: fix state restore
Wasn't using the corrected shuffle mapping
2024-01-16 13:25:03 -07:00
Alexander Capehart
ec61ba50ec
playback: re-add semi-circular queue w/no repeat 2024-01-16 12:48:32 -07:00
Alexander Capehart
76eb693fb5
all: reformat 2024-01-15 20:51:08 -07:00
Alexander Capehart
881df0fc02
widgets: add 1x3/1x4 widget
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.
2024-01-15 20:49:35 -07:00
Alexander Capehart
3e79f31792
playback: add remember pause setting
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.
2024-01-15 16:45:44 -07:00
Alexander Capehart
a44f0bce35
playback: stop playback on task removal if paused
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.
2024-01-15 16:25:42 -07:00
Alexander Capehart
1766283cd2
playback: save playback state on every change
Prior, I was saving when the service was closed, which is a stupid
decision and caused a lot of unreliability.

Resolves #404.
2024-01-15 16:19:27 -07:00
Alexander Capehart
b2d9b244e5
playback: redocument/refactor gapless playback
Should complete this feature, save regression fixes.

Resolves #110.
2024-01-15 16:02:47 -07:00
Alexander Capehart
48ab83f6de
playback: handle deferred action on startup
Dropped this when I ripped out the code prior.
2024-01-15 16:01:53 -07:00
Alexander Capehart
68443dc337
Merge branch 'dev' into gapless-playback 2024-01-14 12:12:49 -07:00
Alexander Capehart
4f42695812
info: bump to 3.3.3
Bump the app version to 3.3.3 (40).
2024-01-14 11:19:41 -07:00
Alexander Capehart
07acb4f5b9
music: fix data selector creation
More or less, the paths being selected for were extremely malformed,
stuff like storage/emulated/0Music. This completely broke music folders
below API 29.
2024-01-14 11:00:52 -07:00
Alexander Capehart
3d1fa6e4ff
info: bump to 3.3.2
Bump to version 3.3.2 (39).
2024-01-14 09:58:42 -07:00
Alexander Capehart
f1a6b77d30
music: fix other music loading failure from dirs
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.
2024-01-14 09:55:43 -07:00
Alexander Capehart
4234f5b8f1
music: update cache db 2024-01-13 22:23:42 -07:00
Alexander Capehart
b4833918cf
music: fix opus base gain extraction
I have no idea how it ended up this mangled.
2024-01-13 22:16:13 -07:00
Alexander Capehart
dea0ee1432
info: bump to 3.3.1
Bump to version 3.3.1 (38).
2024-01-13 21:14:26 -07:00
Alexander Capehart
3267ae98be
playback: readd service reinit
Make sure the service is properly re-initialized when it dies and is
then restarted.
2024-01-13 20:43:51 -07:00
Alexander Capehart
f525abdba3
playback: fix marquee on playback screen 2024-01-13 20:28:34 -07:00
Alexander Capehart
b2d71f8903
playback: reattach settings to player
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.
2024-01-13 20:26:02 -07:00
Alexander Capehart
bd240f967e
playback: reimplement state saving 2024-01-13 18:34:17 -07:00
Alexander Capehart
1d63ad5b7b
playback: mirror state internally
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.
2024-01-09 15:04:32 -07:00
Alexander Capehart
6a0fd76636
music: fix selector error with malformed folders
Forgot that i is not a good indicator of if we need to begin a selector
or not since we may discard certain music folders.
2024-01-09 13:50:47 -07:00
Alexander Capehart
d5622895d0
playback: fix more gapless issues 2024-01-09 13:49:00 -07:00
Alexander Capehart
26d14ec6e1
playback: ramshack initial gapless playback impl 2024-01-07 16:05:03 -07:00
Alexander Capehart
5d5356e46e
all: cleanup 2024-01-06 21:02:40 -07:00
Alexander Capehart
319eeb07b8
playback: add shuffle order impl
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.
2024-01-06 20:53:08 -07:00
Alexander Capehart
82952a204f
about: add donation link
Add donation link to the about page.
2024-01-06 19:07:40 -07:00
Alexander Capehart
2af90c2427
detail: add replaygain values to song properties
This should allow for clearer debugging.
2024-01-06 18:46:13 -07:00
Alexander Capehart
5c85001b0c
music: add opus base gain support
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.
2024-01-06 18:26:53 -07:00
Alexander Capehart
cdd08e7f99
home: clean up hacky overlay impl
Should have a lesser likelihood of crashing outright, hopefully.
2024-01-05 13:09:24 -07:00
Alexander Capehart
c4143e7d95
music: log when volume cannot be found
Mostly for debugging purposes.
2024-01-05 12:36:51 -07:00
Alexander Capehart
3202660449
music: add check to playlist export dialog 2024-01-03 18:51:29 -07:00
Alexander Capehart
43af2d866d
home: fix shuffle not working on rotate 2024-01-03 09:26:28 -07:00
Alexander Capehart
2b55caadd1
home: fix more speed dial touch problems
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.
2024-01-02 17:19:10 -07:00
Alexander Capehart
7537d135f2
ui: remove redundant sheet content inset 2024-01-02 15:38:34 -07:00
Alexander Capehart
8a75295d99
home: reimplement speed dial overlay
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.
2024-01-02 15:38:23 -07:00
Alexander Capehart
afa73a2319
music: fix playlist import naming 2024-01-01 21:38:39 -07:00
Alexander Capehart
e500286b8b
music: support paths in documents
Apprently these only report their IDs, frustratingly.
2024-01-01 21:38:21 -07:00
Alexander Capehart
32432b18b6
music: fix m3u windows volume detection 2024-01-01 21:36:46 -07:00
Alexander Capehart
399237d2fe
build: bump to 3.3.0
Bump the app version to 3.3.0 (36).
2024-01-01 20:37:05 -07:00
Alexander Capehart
0675ce8a03
music: rename playlist when reimporting
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.
2024-01-01 20:21:39 -07:00
Alexander Capehart
9ad11ec5aa
music: allow renaming playlist before import
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.
2024-01-01 16:12:01 -07:00
Alexander Capehart
68584ba426
music: fix file document path extraction
Apparently on Android 14 you need to reassemble the document URI and
then extract it's ID to get a path object. Really not sure why.
2024-01-01 16:10:11 -07:00
Alexander Capehart
bf9667f545
music: fix working directory in m3u export 2024-01-01 16:07:50 -07:00
Alexander Capehart
53870cd31b
music: fix reloads not cancelling prior ones
Caused by a dumb mistake in the cancellation code.
2024-01-01 14:36:26 -07:00
Alexander Capehart
28ff2b416a
home: make add speed fab consistent with shuffle
Was using color secondary prior since the code was derived from
MaterialFiles.
2024-01-01 14:35:59 -07:00
Alexander Capehart
574e129f34
music: cleanup and document 2024-01-01 14:08:47 -07:00
Alexander Capehart
538533bf3f
music: discard songs w/o volumes 2024-01-01 13:38:26 -07:00
Weblate (bot)
673629dd26
Translations update from Hosted Weblate (#635)
* Translated using Weblate (Russian)

Currently translated at 100.0% (292 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Italian)

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/it/

* Translated using Weblate (French)

Currently translated at 99.6% (291 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fr/

* Translated using Weblate (French)

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/fr/

* Translated using Weblate (Korean)

Currently translated at 99.6% (292 of 293 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ko/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (293 of 293 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Korean)

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/ko/

* Translated using Weblate (Czech)

Currently translated at 100.0% (293 of 293 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (294 of 294 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Czech)

Currently translated at 100.0% (294 of 294 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (294 of 294 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Russian)

Currently translated at 100.0% (294 of 294 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (294 of 294 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (294 of 294 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/

* Translated using Weblate (German)

Currently translated at 100.0% (294 of 294 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (Hindi)

Currently translated at 100.0% (294 of 294 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/

* Translated using Weblate (Croatian)

Currently translated at 100.0% (294 of 294 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hr/

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (294 of 294 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/

* Translated using Weblate (Czech)

Currently translated at 100.0% (301 of 301 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (302 of 302 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Czech)

Currently translated at 100.0% (304 of 304 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Russian)

Currently translated at 100.0% (304 of 304 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (304 of 304 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (304 of 304 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (304 of 304 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (304 of 304 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Hindi)

Currently translated at 100.0% (304 of 304 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (304 of 304 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/

---------

Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: atilluF <110931720+atilluF@users.noreply.github.com>
Co-authored-by: cwpute <collan+weblate@free.fr>
Co-authored-by: Yurical <yurical1@outlook.com>
Co-authored-by: Eric <zxmegaxqug@hldrive.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: qwerty287 <ndev@web.de>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
2024-01-01 20:04:05 +00:00
Alexander Capehart
4a3beafc77
music: indicate volume components checked 2024-01-01 12:52:01 -07:00
Alexander Capehart
17939f6b2a
music: correctly propagate error 2024-01-01 12:36:08 -07:00
Alexander Capehart
b10caaef54
music: more path interpreter guards 2024-01-01 12:25:49 -07:00
Alexander Capehart
77f0bbe614
util: correctly throw channel errors
Wasn't being properly handled before, leading to weird behavior.
2024-01-01 12:02:38 -07:00
Alexander Capehart
ed519eeccc
music: refine new mediastoreextractor impl
- Make the interpreters use a more conventional naming structure
- Remove the redundant file name extraction that is largely an artifact
of older versions
2024-01-01 12:02:38 -07:00
Alexander Capehart
6b9f6862af
music: correctly parse data with new paths
Accidental regression appeared due to inconsistent trailing slashes, so
we need to reimplement this using the path datatype itself.
2024-01-01 12:02:38 -07:00
Alexander Capehart
2af8d8b4bd
music: remove old deadlock check
No longer needed and likely causing bugs
2024-01-01 10:06:36 -07:00
Alexander Capehart
c7f8b3ca6d
music: refactor mediastoreextractor internals
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
2023-12-31 23:34:00 -07:00
Alexander Capehart
6956ca5915
music: fix m3u windows path importing
Forgot that Regex always matches the entire string, so I have to tack
on a wildcard.
2023-12-24 11:35:59 -07:00
Alexander Capehart
480b1b28e5
music: display correct message on new playlist
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.
2023-12-24 11:34:55 -07:00
Alexander Capehart
c5a3f72b99
music: add more playlist messages
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.
2023-12-23 22:02:55 -07:00
Alexander Capehart
21970349cc
music: add ability to import into playlists
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.
2023-12-23 20:50:40 -07:00
Alexander Capehart
c9b1ab9068
all: reformat xml 2023-12-23 20:01:20 -07:00
Alexander Capehart
c1fc548e6a
tests: fix tests 2023-12-23 12:19:06 -07:00
Alexander Capehart
3f1f2f5c2d
music: implement exporting frontend
Implement the exporting dialog and flow in all places in the app.
2023-12-23 12:16:02 -07:00
Alexander Capehart
68e4da5e7e
music: make playlist export configurable
Add configuration options for:
- Using windows-compatible paths with \ separators and C:\\ volume
prefixes
- Switching between relative and absolute paths
2023-12-23 12:12:51 -07:00
Alexander Capehart
c3f67d4dc5
music: fix m3u export
Wasn't correctly writing and also naively relative-izing paths. Those
should be fixed now, I hope.
2023-12-21 20:59:19 -07:00
Alexander Capehart
d59230be6d
music: re-add missing file 2023-12-20 22:53:08 -07:00
Alexander Capehart
771009d4ff
music: add m3u exporting backend
Add the backend for exporting playlists to m3u files.
2023-12-20 22:49:02 -07:00
Alexander Capehart
5562c18415
tests: fix
Need to mock paths now
2023-12-20 13:39:49 -07:00
Alexander Capehart
c995eb0d04
music: support m3u absolute paths
Under the assumption they are in the same volume as the file. It's
hacky, but whatever.
2023-12-20 13:32:13 -07:00
Alexander Capehart
c66a9b19b5
music: more m3u support
- Turns out path extraction via MediaStore doesn't work, have to grok
the URI format.
- Added playlist name extraction
- Proactively handling whitespace
2023-12-20 13:28:36 -07:00
Alexander Capehart
634ff0d823
home: add playlist import flow
Connect the playlist importing system to the home view's playlist add
button.
2023-12-20 13:28:20 -07:00
Alexander Capehart
2195431c66
music: dont inject contentresolver
I don't know why, but I can't inject it without causing errors.
2023-12-20 12:12:40 -07:00
Alexander Capehart
e553744c8e
music: rename import to external
Apparently hilt doesn't like a module with the name import, probably
because of a keyword conflict.
2023-12-20 11:59:48 -07:00
Alexander Capehart
88bce610ca
music: connect playlist importing to frontend 2023-12-20 11:04:54 -07:00
Alexander Capehart
fff8212b0a
music: add importing backend
Add basic importing infrastructure and an M3U parser to the backend.
2023-12-20 11:02:20 -07:00
Alexander Capehart
364675b252
music: revamp paths
Revamp paths with an entirely new abstraction that should improve
testability and integration with M3U playlists.
2023-12-19 22:14:59 -07:00
Alexander Capehart
08ca71b7b0
home: make playlist add a speed dial
Add a speed dial menu that allows you to create a new playlist or
import a playlist from elsewhere.
2023-12-19 15:11:01 -07:00
Alexander Capehart
d3de34ed5e
music: throw on deadlocks
Attempt to throw an exception when any part of the loading routine
times out.
2023-12-18 18:36:09 -07:00
Alexander Capehart
4cb309f01f
playback: eliminate old viewpager stuff 2023-12-16 17:49:41 -07:00
Alexander Capehart
b0dd13b9a3
Merge branch 'dev' into feature/cover_gestures 2023-12-17 00:30:33 +00:00
Alexander Capehart
cd42c77304
playback: use ffmpeg first
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.
2023-12-16 16:33:54 -07:00
Alexander Capehart
b9bcdf4a51
build: fix ndk 2023-12-16 14:33:17 -07:00
Alexander Capehart
f4db2fcd80
build: use ndk r25
Apparently GH actions doesn't like NDK r26 yet.
2023-12-16 14:26:52 -07:00
Alexander Capehart
953b92108a
build: update to ndk r26
Builds, unsure if it will cause any signifigant changes.
2023-12-16 14:21:14 -07:00
Alexander Capehart
4421d6cf36
music: deduplicate by case
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
2023-12-16 13:52:36 -07:00
Alexander Capehart
7a90e7eef1
build: update deps
Will need to put some work into updating some others
2023-12-16 13:51:49 -07:00
Alexander Capehart
b1c48f13fd
build: update agp
AGP -> 8.2.0

Requires me to enable Java 8 desugaring for some...reason.
2023-12-16 11:04:01 -07:00
Weblate (bot)
7d9ed7d114
Translations update from Hosted Weblate (#610)
* Translated using Weblate (Spanish)

Currently translated at 100.0% (289 of 289 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Spanish)

Currently translated at 99.3% (290 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Czech)

Currently translated at 100.0% (292 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (292 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (292 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (292 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Czech)

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/cs/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/es/

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (292 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/lt/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/zh_Hans/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/uk/

* Translated using Weblate (Hindi)

Currently translated at 100.0% (292 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/

* Translated using Weblate (Chinese (Traditional))

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/zh_Hant/

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (292 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/pa/

* Translated using Weblate (Hindi)

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/hi/

* Translated using Weblate (Russian)

Currently translated at 100.0% (292 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Russian)

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/ru/

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (292 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/be/

* Translated using Weblate (Chinese (Traditional))

Currently translated at 19.1% (56 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hant/

* Translated using Weblate (German)

Currently translated at 100.0% (292 of 292 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (German)

Currently translated at 100.0% (38 of 38 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/de/

---------

Co-authored-by: Iago <translate@delthia.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: Fjuro <ifjuro@proton.me>
Co-authored-by: BMT[UA] <weblate@yopmail.com>
Co-authored-by: Eric <zxmegaxqug@hldrive.com>
Co-authored-by: Vaclovas Intas <vaclovas1999@gmail.com>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: abc0922001 <abc0922001@hotmail.com>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: qwerty287 <ndev@web.de>
2023-12-03 11:48:58 -07:00
Alexander Capehart
9ae6b20fd1
music: decouple settings somewhat
Try to decouple the stateful music settings object from the stateless
internals of the music loader. This should make unit testing far
easier.
2023-11-12 11:55:22 -07:00
Alexander Capehart
0ad7a8955a
music: eliminate all reference to artists albums
It's no longer used in any capacity.
2023-11-12 11:32:51 -07:00
Alexander Capehart
d6801354ce
music: only include explicit albums in count
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.
2023-11-12 11:26:27 -07:00
Alexander Capehart
bf3c30e8af
music: add demo release type
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.
2023-11-12 11:12:59 -07:00
Alexander Capehart
7fef5a27da
Revert "playback: temp revert swipe to next behavior"
This reverts commit df7ec27d1c.
2023-11-12 11:05:14 -07:00
Alexander Capehart
0016c77836
music: bump cache version
Accidentally bumped it to version code 35, when this will be version
code 36.
2023-11-12 10:18:03 -07:00
Alexander Capehart
df7ec27d1c
playback: temp revert swipe to next behavior
It's too buggy to be in a release currently, I have to disable it for
now.
2023-11-12 10:00:41 -07:00
Alexander Capehart
917e6c0737
build: bump to v3.2.1
Bump to version 3.2.1 (35).
2023-11-12 10:00:35 -07:00
Alexander Capehart
23dac3b4b7
music: bump cache db version
Made some changes to tag interpretation, so all users have to rescan
now.
2023-11-12 09:59:08 -07:00
Alexander Capehart
d926e19819
all: cleanup 2023-11-11 23:22:46 -07:00
Alexander Capehart
ce5b9e35c7
util: inline log functions
A bit of a stupid workaround now that I use Timber and not my
self-rolled logging solution. Timber uses some weird heuristics for
names that I don't.
2023-11-11 23:14:50 -07:00
Alexander Capehart
52697ef891
detail: allow adding to playlist in playlist
The playback view can still add to a playlist from a playlist, so I
have to implement this navigation route no matter what.
2023-11-11 23:01:51 -07:00
Alexander Capehart
a99b0ff615
ui: fix hebrew string crash
Caused by weblate once again conflating "many" with "other". I really
need to report that.

Resolves #575.
2023-11-11 22:55:24 -07:00
Alexander Capehart
08f3137c5b
app: start service on draw-time
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.
2023-11-11 22:49:35 -07:00
Weblate (bot)
be97e110a6
Translations update from Hosted Weblate (#569)
* 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>
2023-11-03 20:50:21 -06:00
Alexander Capehart
48b0b11e88
all: random cleanup 2023-10-16 21:38:14 -06:00
Alexander Capehart
94e2c3c3e4
playback: further pager cleanup
- 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.
2023-10-16 21:33:53 -06:00
Alexander Capehart
243fb73f94
music: add context to malformed errors
Makes debugging easier.
2023-10-16 21:03:42 -06:00
Alexander Capehart
b19b6665bb
music: accept native m4a multi-value tags
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.
2023-10-16 20:52:38 -06:00
Alexander Capehart
2fe0f3e7d8
playback: partially build back pager impl 2023-10-16 20:45:13 -06:00
Alexander Capehart
d51da1b4bf
playback: export playback reciever
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.
2023-10-16 20:31:53 -06:00
Alexander Capehart
4eacb65aff
music: fix incorrect hashing
Forgot a + hashCode in like half of the hashing statements, ended up
causing incorrect image cache hits.
2023-10-16 20:30:24 -06:00
Alexander Capehart
73ef51c8be
build: update deps 2023-10-16 20:06:50 -06:00
Weblate (bot)
f41905104f
Translations update from Hosted Weblate (#538)
* 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>
2023-09-08 13:40:16 -06:00
Alexander Capehart
23d474278a
music: fix failing tests
Use generic Collection instead of Set to prevent the new DeviceLibrary
tests from failing.
2023-09-03 21:14:53 -06:00
Alexander Capehart
a4e8c250a3
music: add basic devicelibrary tests
Add basic devicelibrary initialization/glue tests.

This does not actually test the grouping process, as that is more
involved.
2023-09-03 21:04:46 -06:00
Alexander Capehart
b3ef43b37e
playback: start cleaning up pager impl
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.
2023-08-22 07:29:06 -06:00
Alexander Capehart
a1abcd7aac
Merge branch 'dev' into feature/cover_carousel 2023-08-21 07:50:23 -06:00
Alexander Capehart
ad672ed919
music: add cache repository test
Add tests for the cache repository and cache data structure.
2023-08-18 19:34:23 -06:00
Alexander Capehart
881fb58648
music: consider settings in equality
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.
2023-08-18 16:00:03 -06:00
Alexander Capehart
9a67a0d539
util: use timber for logging
This will make testing app components a lot easier since it removes the
logging dependency used in most shared objects.
2023-08-18 15:55:20 -06:00
Alexander Capehart
fcffb56021
music: use factory to create known names
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.
2023-08-18 15:27:45 -06:00
Alexander Capehart
c1655a9eca
music: move multi-value util to separators
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.
2023-08-18 14:15:23 -06:00
Alexander Capehart
59e42acad9
test: re-implement tests
Reimplement the tests of music modeling, and re-enable the automatic
test workflow in GH actions.

I'm actually going to work on reimplementing these.
2023-08-18 11:54:47 -06:00
Alexander Capehart
2c2bd79ae2
music: trim simple names after punct removal
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.
2023-08-18 11:47:50 -06:00
Alexander Capehart
d0b34a14e4
playback: fix broken item navigation
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.
2023-08-17 20:43:39 -06:00
Alexander Capehart
20c34fd888
music: fix crash on adding to new playlist
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).
2023-08-17 20:39:05 -06:00
Alexander Capehart
d297c10b0a
detail: fix crash on multi-artist navigation
Caused by an unimplemented navigation branch in ArtistDetailFragment.
2023-08-17 20:25:39 -06:00
Alexander Capehart
58989f8568
build: revert to navigation 2.5.3
I would have to duplicate the workaround for every fragment in the
project. Easier to just roll back until it's fixed.
2023-08-16 19:58:38 -06:00
Alexander Capehart
12bc46e210
build: bump to 3.2.0
Bump Auxio to version 3.2.0 (35).
2023-08-16 19:43:59 -06:00
Alexander Capehart
8026849856
all: cleanup 2023-08-16 19:41:19 -06:00
Alexander Capehart
f400aa513c
ui: mitigate navigation desync bug
This thing reared it's ugly head again during 3.2.0 testing. I think
I've found a terrible but probably functional workaround for it. Start
using it.
2023-08-16 19:23:40 -06:00
Alexander Capehart
449ec7cecd
ui: fix gap in landscape bottom sheet dialog
Apparently a second-order effect of the prior fix since the insetTop
value would now shift the dialog downwards unneccessarily.
2023-08-16 17:32:26 -06:00
Alexander Capehart
70a5bab921
ui: vendor bottom sheet dialog w/fixes
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.
2023-08-16 17:12:56 -06:00
Alexander Capehart
b43e4695c0
build: update deps
fragment: 1.6.0 -> 1.6.1
preferences: 1.2.0 -> 1.2.1
room: 2.6.0-alpha02 -> 2.6.0-alpha03
material: 1.10.0-alpha05 -> 1.10.0-alpha06
media: 1.1.0 -> 1.1.1
2023-08-16 15:11:52 -06:00
Alexander Capehart
e32fc6b609
home: fix misaligned grant/retry button
Caused by naive visibility logic when I added the "More" button prior.

Resolves #544.
2023-08-15 20:48:17 -06:00
Alexander Capehart
e912120f9f
all: general cleanup 2023-08-14 19:54:43 -06:00
Alexander Capehart
f5c7f25cdf
home: add music loading error dialog
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.
2023-08-14 17:46:01 -06:00
Alexander Capehart
ada29b2f7a
ui: improve bottom sheet edge-to-edge support
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.
2023-08-14 17:46:01 -06:00
Alexander Capehart
4ade27e66d
ui: avoid lopsided bottom sheet handles
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.
2023-08-14 17:46:01 -06:00
Weblate (bot)
ed3ed6a713
Translations update from Hosted Weblate (#529)
* Translated using Weblate (Czech)

Currently translated at 100.0% (285 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (285 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Korean)

Currently translated at 100.0% (285 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ko/

* Translated using Weblate (Russian)

Currently translated at 100.0% (285 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (285 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (285 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (285 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (285 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/

* Translated using Weblate (Italian)

Currently translated at 99.6% (284 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Translated using Weblate (Croatian)

Currently translated at 100.0% (36 of 36 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/hr/

* Translated using Weblate (Croatian)

Currently translated at 100.0% (285 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hr/

* Translated using Weblate (Hebrew)

Currently translated at 97.2% (35 of 36 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/he/

* Translated using Weblate (Hebrew)

Currently translated at 90.5% (258 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/he/

* Translated using Weblate (Polish)

Currently translated at 100.0% (285 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pl/

* Translated using Weblate (German)

Currently translated at 100.0% (285 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (Hindi)

Currently translated at 100.0% (285 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/

* Translated using Weblate (German)

Currently translated at 100.0% (36 of 36 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/de/

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (285 of 285 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (287 of 287 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Croatian)

Currently translated at 100.0% (287 of 287 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hr/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (287 of 287 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Korean)

Currently translated at 100.0% (287 of 287 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ko/

* Translated using Weblate (Russian)

Currently translated at 100.0% (287 of 287 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (287 of 287 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Korean)

Currently translated at 100.0% (36 of 36 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/ko/

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (287 of 287 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/

* Translated using Weblate (Czech)

Currently translated at 100.0% (287 of 287 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (287 of 287 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hu/

---------

Co-authored-by: Fjuro <ifjuro@proton.me>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: Eric <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Vaclovas Intas <vaclovas1999@gmail.com>
Co-authored-by: atilluF <110931720+atilluF@users.noreply.github.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: FAYE <pl4gve@gmail.com>
Co-authored-by: Eryk Michalak <gnu.ewm@protonmail.com>
Co-authored-by: qwerty287 <ndev@web.de>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: BMT[UA] <weblate@yopmail.com>
Co-authored-by: Hoseok Seo <ddinghoya@gmail.com>
Co-authored-by: Tibor Botfai (gidano) <gidano@gmail.com>
2023-08-07 19:43:20 +00:00
Alexander Capehart
c42a3ca97c
ui: refine navigation listeners
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.
2023-08-03 13:14:12 -06:00
Alexander Capehart
151b69bedb
list: add selection menu
Add a menu dialog for selections. This more or less completes the
bottom sheet menu functionality.

Resolves #454.
2023-08-03 11:52:43 -06:00
Alexander Capehart
c838813434
Merge branch 'dev' into feature/cover_carousel 2023-07-28 10:19:47 -06:00
Alexander Capehart
6d342325ea
list: open menu dialogs from toolbars
Make it so that toolbars now open menu dialogs as items do.

This excludes the selection menu currently since there's no dialog for
such.
2023-07-28 08:44:31 -06:00
Alexander Capehart
507bc516ce
ui: fix edit layout crashes
Fix crashes that prevented android studio from showing layout previews
of certain views.
2023-07-27 15:42:19 -06:00
Alexander Capehart
6ac757b952
list: move sort settings to module
Move sort settings from music -> list, since they're probably better
there anyway.
2023-07-25 21:01:54 -06:00
Alexander Capehart
d6d1071535
all: cleanup
Routine code inspection and cleanup, this time with the new lints from
android studio giraffe.
2023-07-25 20:45:30 -06:00
Alexander Capehart
842677fab4
ui: fix broken back navigation
Caused by a change in a dependency update that suddenly causes
FragmentManager's back callback to to jump ahead of ours for no
reason.
2023-07-25 19:58:03 -06:00
Alexander Capehart
6ef2f74694
detail: add playlist resorting
Add the ability to resort a playlist when in edit mode.

Resolves #446.
2023-07-25 19:58:03 -06:00
Alexander Capehart
b2a3416289
image: simplify coverview internals
Remove the setting responsiveness from CoverView, given that it really
doesn't need to that anymore.
2023-07-25 19:58:03 -06:00
Alexander Capehart
a201cb15bc
list: rework sort dialog internals
Change the sort dialog to allow the following:
1. Allow null initial sort values in the dialog.
2. Make saving only possible if the sort changed.
2023-07-25 19:58:03 -06:00
Alexander Capehart
ed08559b94
all: fix merge junk 2023-07-25 19:58:03 -06:00
Weblate (bot)
816ab04252
Translations update from Hosted Weblate (#524)
* weather: introduce display precipitation

Introduce a new datatype called DisplayPrecipitation that optimizes the
precipitation level for UI display.

This is primarily meant to fix improper precipitation displays when
values lower than 0.1 in are shown, albiet that may need to change
eventually.

* Translated using Weblate (Hindi)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (36 of 36 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/pa/

* Translated using Weblate (Hindi)

Currently translated at 100.0% (36 of 36 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/hi/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Polish)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pl/

* Translated using Weblate (Finnish)

Currently translated at 93.2% (264 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fi/

---------

Co-authored-by: Alexander Capehart <alex@oxycblt.org>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: Vaclovas Intas <vaclovas1999@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: Eryk Michalak <gnu.ewm@protonmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
2023-07-25 19:58:03 -06:00
Alexander Capehart
a1947c4102
home: switch to sort dialogs
Switch the home view to sort dialogs, and simplify away any listeners
that expected popup menus.
2023-07-25 19:57:59 -06:00
Alexander Capehart
3340914c51
detail: switch to sort dialogs
Use the new sort dialogs on in detail views.
2023-07-25 16:47:25 -06:00
Alexander Capehart
ec7f2d979a
list: add sort menu scaffold
Add the base dialog that will replace the prior sort menus in-app.
2023-07-25 16:04:02 -06:00
Alexander Capehart
68a9ce7b09
build: update deps
I didn't fully keep track of what I did this time, mostly since I was
busy wrangling some of the insane build issues from this gradle update.
2023-07-25 14:35:26 -06:00
Alexander Capehart
4b49174ced
ui: return to old nested nav
It just...started working again. Beats me why.

Start using it again, but with most of the changes in-tact. I like the
way it looks.
2023-07-22 12:10:54 -06:00
Weblate (bot)
84a90e0364
Translations update from Hosted Weblate (#501)
* Translated using Weblate (Arabic)

Currently translated at 77.3% (218 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ar/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/

* Translated using Weblate (Arabic (ar_IQ))

Currently translated at 52.8% (149 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ar_IQ/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (282 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hu/

* Translated using Weblate (Malayalam)

Currently translated at 32.6% (92 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ml/

* Translated using Weblate (Arabic)

Currently translated at 28.3% (80 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ar/

* Translated using Weblate (Czech)

Currently translated at 100.0% (36 of 36 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/cs/

* Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/

* Translated using Weblate (Italian)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (36 of 36 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/uk/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (36 of 36 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/es/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (36 of 36 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/zh_Hans/

* Translated using Weblate (Norwegian Bokmål)

Currently translated at 90.8% (257 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/nb_NO/

* Translated using Weblate (Czech)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (French)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fr/

* Translated using Weblate (Russian)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hu/

* Translated using Weblate (Italian)

Currently translated at 100.0% (36 of 36 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/it/

* Translated using Weblate (Lithuanian)

Currently translated at 98.9% (280 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (36 of 36 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/lt/

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (283 of 283 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/lt/

---------

Co-authored-by: nitrogen <nitro.gen.5995@gmail.com>
Co-authored-by: Tibor Botfai (gidano) <gidano@gmail.com>
Co-authored-by: Raman <aksharam.sme4i@aleeas.com>
Co-authored-by: Fjuro <ifjuro@proton.me>
Co-authored-by: atilluF <110931720+atilluF@users.noreply.github.com>
Co-authored-by: BMT[UA] <weblate@yopmail.com>
Co-authored-by: Eric <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: Vaclovas Intas <vaclovas1999@gmail.com>
2023-07-19 03:45:23 +00:00
Koitharu
a341281548
Open menu by tap on cover 2023-07-14 11:16:42 +03:00
Koitharu
22db781c0b
Do not start playing after switching tracks by swype 2023-07-14 11:16:41 +03:00
Koitharu
69de9d6f2f
Full song info pager on playback screen 2023-07-14 11:16:32 +03:00
Alexander Capehart
124726693e
list: fix incomplete scrolling in menu dialog
Fix an issue where the options in MenuDialog could not full scroll for
an unknown reason.

Derived from some absurd issue where BottomSheetBehavior dislikes
ConstraintLayout's spacing and decides to improperly allocate enough
space for the RecyclerView to scroll.
2023-07-12 20:03:01 -06:00
Alexander Capehart
18d9c0adf0
ui: further tweak bottom sheet
Switch back to the default MDC-provided animations, just without the
ugly alpha change, and fix any auxillary issues that come with that.
2023-07-12 09:59:53 -06:00
Alexander Capehart
5a5d6d53c2
list: add handle to menu dialogs
As per the standard, add a bottom sheet handle to the menu dialogs to
improve accessibility.
2023-07-11 21:14:30 -06:00
Alexander Capehart
9111a6eec7
ui: tweak bottom sheet dialog transitions
Use a native slide animation for entering/editing bottom sheet dialogs,
which looks a good amount nicer overall.
2023-07-11 21:14:22 -06:00
Alexander Capehart
32a0d97e5d
list: add ability to play/shuffle songs in menu
Add play and shuffle options for all song menus.

These will override the shuffle state, unlike other song play
interactions.

This required a good bit of refactoring to menu, some of which
might be ported to other commands in future changes.
2023-07-11 15:09:30 -06:00
Alexander Capehart
ecc84dd8c8
playback: fix parent play mode not being applied
Caused by a trivial problem with key use.
2023-07-11 14:44:30 -06:00
Alexander Capehart
4275fdbcf0
music: rename mode -> type
Rename MusicMode to MusicType.

The original naming was always a bit clunky given that it referred to
both settings and data configuration. I feel that "Type" is probably
better overall.
2023-07-11 12:08:51 -06:00
Alexander Capehart
3908400418
playback: use playsong settings
Use PlaySong modeling within settings too. This largely completes the
PlaySong refactor and fully adds the ability to play songs by
themselves as an option.

Resolves #424.
2023-07-11 11:58:05 -06:00
Alexander Capehart
59ee40b228
playback: add missing imports
Forgotten from prior backport commit.
2023-07-11 11:05:08 -06:00
Alexander Capehart
4fa43d59ec
playback: fix vertical scrolling interception
Fix an issue where the cover ViewPager would intercept vertical swipes
to collapse the queue sheet. This required manually configuring nested
scrolling states in the the internal RecyclerView.
2023-07-11 10:52:52 -06:00
Alexander Capehart
97816e349a
build: update deps
Media3 -> 1.1.0. Update project info accordingly to use Media3
ExoPlayer instead of standalone ExoPlayer.
Nav -> 2.6.0 once again, probably without the absurd bugs now
Kotlin -> 1.9.0
Kotlin Coroutines -> 1.7.2
LeakCanary -> 2.12
2023-07-11 10:30:41 -06:00
Alexander Capehart
598b3f4173
playback: include playsong datatype
This was apparently not included in the prior commit, whoops.
2023-07-10 15:21:47 -06:00
Koitharu
7e5cd2acd7
Cover art carousel on playback fragment 2023-07-08 12:37:58 +03:00
Alexander Capehart
7495a59ab1
playback: add scaffold for new playback mode
Add the scaffold for PlaySong, a new version of playback modes that
- Supports playback of a song by itself, requested by #424.
- Will make direct playback from the song menu feasible (given
additional reworks)
- Prevents the invalid state of playing a song by it's playlist,
as the sealed interface implementation of PlaySong requires a Playlist
to be provided to it's respective variant.
2023-07-06 20:07:16 -06:00
Alexander Capehart
7d42d016f1
playback: simplify panel command
Simplify the Panel command from a sealed interface to a enum.

They held no data, better to use an enum and improve switch
performance.
2023-07-06 20:07:16 -06:00
Weblate (bot)
58848727f0
Translations update from Hosted Weblate (#494)
* Translated using Weblate (Hungarian)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hu/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Italian)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Translated using Weblate (Finnish)

Currently translated at 93.5% (262 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fi/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (281 of 281 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (281 of 281 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (281 of 281 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Russian)

Currently translated at 100.0% (281 of 281 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (281 of 281 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/

* Translated using Weblate (Japanese)

Currently translated at 99.6% (281 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ja/

* Translated using Weblate (German)

Currently translated at 99.6% (281 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (German)

Currently translated at 100.0% (282 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (French)

Currently translated at 100.0% (282 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fr/

* Translated using Weblate (Italian)

Currently translated at 100.0% (282 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (282 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (282 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hu/

* Translated using Weblate (Czech)

Currently translated at 100.0% (282 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (282 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Hindi)

Currently translated at 99.2% (280 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/

* Translated using Weblate (Hungarian)

Currently translated at 100.0% (282 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hu/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (282 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (282 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/

* Translated using Weblate (Hungarian)

Currently translated at 97.2% (35 of 36 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/hu/

* Added translation using Weblate (Arabic (Saudi Arabia))

* Added translation using Weblate (Arabic)

* Translated using Weblate (Arabic (ar_IQ))

Currently translated at 52.8% (149 of 282 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ar_IQ/

---------

Co-authored-by: Tibor Botfai (gidano) <gidano@gmail.com>
Co-authored-by: BMT[UA] <weblate@yopmail.com>
Co-authored-by: Enrico D'Ortenzio <enrico2588@gmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: Eric <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: min7-i <postly+github_min@mailbox.org>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: Fjuro <ifjuro@proton.me>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: nitrogen <nitro.gen.5995@gmail.com>
2023-07-06 23:07:22 +00:00
Alexander Capehart
640c01a257
Merge branch 'master' into dev 2023-07-04 22:39:58 -06:00
Alexander Capehart
9aafcda599
build: bump to 3.1.4
Bump Auxio to version 3.1.4 (34).
2023-07-04 21:54:37 -06:00
Alexander Capehart
87bb47cec3
music: index negative replaygain tags
Caused by an absurd error stemming from absurd helper function naming.
2023-07-04 21:50:38 -06:00
Alexander Capehart
f8fbcac482
ui: fix queue sheet not being scrollable
Fix an issue where the recent BackportBottomSheetBehavior update would
break queue sheet scrolling, as the queue sheet would be set to
invisible and prevent the findScrollingChild helper from being able
to locate it.

Fix this by removing that visibility check in the first place.
2023-07-04 21:47:45 -06:00
Alexander Capehart
0cd59ce4e0
all: redocument navigation system
Add documentation for the new navigation system, which largely
completes this change.
2023-07-04 21:44:34 -06:00
Alexander Capehart
7239256e27
list: unify viewmodels
Unify the disjoint selection and menu viewmodels into a single
ListViewModel.

This is technically not fully done, as MenuViewModel remains as a
backing element of the menu dialogs, but otherwise that's it.
2023-07-04 20:37:55 -06:00
Alexander Capehart
b4ffffedfd
list: make adding selection to playlist easier
Make adding selection information to a playlist signifigantly easier
than prior.
2023-07-04 15:19:48 -06:00
Alexander Capehart
b4394c3a4a
util: fix horrible numeric function naming
"nonZeroOrNull" is actuallly more apt as "positiveOrNull".
2023-07-04 15:16:08 -06:00
Alexander Capehart
7adf7f7beb
music: index negative replaygain tags
Caused by an absurd error stemming from absurd helper function naming.
2023-07-04 15:09:47 -06:00
Alexander Capehart
ada446767d
image: make coverview respond to settings
Make CoverView respond to all cover settings and the round mode
setting.
2023-07-04 15:01:12 -06:00
Alexander Capehart
e490ff64c1
playback: make bar action respond to settings
Now that the navigation graphs are unified, the playback bar now has to
respond to when it's custom action setting changes.
2023-07-04 14:38:33 -06:00
Alexander Capehart
9e5b737d1a
playback: refactor navigation commands
Unify the artist and genre picker commands into a single event
(like others), and also make the playback panel correctly respond to
album/artist navigation events.
2023-07-04 14:24:46 -06:00
Alexander Capehart
a6a3eceb7b
music: re-add add -> new playlist route
Re-add the add to playlist -> new playlist route that was accidentally
removed at some point.
2023-07-04 13:27:23 -06:00
Alexander Capehart
14107c9444
all: standardize nav consume usage
Standardize navigation command consumption to only occur when a
navigation route has *definitively* ended. If more commands could
come, observe them. Otherwise, consume immediately.
2023-07-04 13:20:13 -06:00
Alexander Capehart
e8289dcda0
list: remove song play/shuffle options
Remove the new play/shuffle options for now since I'll have to
drastically refactor how PlaybackMode is handled to make it work
decently.
2023-07-04 12:08:50 -06:00
Alexander Capehart
ab2b853737
list: expand item menus
Bit of a megapatch that:
- Adds dedicated play, shuffle, and view items to all item menus
(songs haven't been fully implemented yet)
- Adds icons to all item menus
- Re-adds enabled/disabled items to menus
- Makes menu action naming conventions more consistent with the rest
of the app
2023-07-04 11:15:19 -06:00
Alexander Capehart
f84b6f68b3
ui: fix queue sheet not being scrollable
Fix an issue where the recent BackportBottomSheetBehavior update would
break queue sheet scrolling, as the queue sheet would be set to
invisible and prevent the findScrollingChild helper from being able
to locate it.

Fix this by removing that visibility check in the first place.
2023-07-03 20:34:25 -06:00
Alexander Capehart
39b1fd1057
menu: move item logic from listfragment
Move menu action logic from ListFragment into corresponding
MenuFragments.
2023-07-03 20:05:49 -06:00
Alexander Capehart
d6a20fedb3
all: use menu everywhere
Use the new menu system in all applicable places.

More consideration is needed right now on whether the toolbars should
also have menu items, so they remain unchanged right now.
2023-07-03 16:52:42 -06:00
Alexander Capehart
0d896c04e3
list: clean up menu impl
Clean up the some minor mistakes in the new menu dialog implementation.
2023-07-03 16:08:17 -06:00
Alexander Capehart
db2e9e12f0
list: add type-specific menu impls
Add menus for each fundamental music datatype. Each will display
information about the data contained.
2023-07-03 15:18:04 -06:00
Alexander Capehart
c1158b1a07
list: add menu dialog framework
Add a dialog that shows menu information as a bottom sheet instead of as
a PopupMenu.

This did not take as much finessing of BottomSheetBehavior as the main
playback UI framework did, just some style redefinitions.
2023-07-03 14:28:32 -06:00
Alexander Capehart
6dc2892eb9
home: fix settings anim
Fix mismatched navigation animations when going to settings and back.
2023-07-03 10:45:32 -06:00
Alexander Capehart
a1efb0c34a
ui: rename menu resources
Switch from redundant menu_* prefixes to more use-specific prefixes
used elsewhere.
2023-06-30 20:31:15 -06:00
Koitharu
56a4102023
Switch tracks by swipe on cover 2023-06-30 12:36:31 +03:00
Alexander Capehart
fcbce0fb98
ui: fix issues from new nav
Fix miscellanious issues from the flattened nav graph system.

Nowhere near enough, largely counting on the planned bottom sheet menus
to eventually be able to ignore most of these issues.
2023-06-27 20:05:04 -06:00
Alexander Capehart
9b0e39919b
music: simplify playlist decision events
Simplify the 4 stateflows controlling when playlist decision dialogs
must be opened to just one enum.

This is like the detail view, and makes the amount of observers I have
to spin up much smaller.

Eventually, most of even these observer calls will be collapsed into
the menu itself.
2023-06-27 19:43:15 -06:00
Alexander Capehart
07e9ca8ef6
ui: flatten nav graph
Flatten the navigation graph into a single "main" graph that links
home to both explore and preference fragments.

***This massively breaks the app in it's current state***. Further
changes and refactors are needed to get this back to working.
2023-06-27 17:30:11 -06:00
Weblate (bot)
d1e29d5cae
Translations update from Hosted Weblate (#481)
* Added translation using Weblate (Swedish)

* Translated using Weblate (Swedish)

Currently translated at 97.0% (33 of 34 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/sv/

* Translated using Weblate (Swedish)

Currently translated at 35.2% (98 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/

* Translated using Weblate (Swedish)

Currently translated at 46.7% (130 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/sv/

* Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/zh_Hans/

* Translated using Weblate (Czech)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/cs/

* Translated using Weblate (German)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (Spanish)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/es/

* Translated using Weblate (Polish)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pl/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/

* Translated using Weblate (French)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fr/

* Translated using Weblate (Russian)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Croatian)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hr/

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/be/

* Translated using Weblate (Polish)

Currently translated at 100.0% (280 of 280 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pl/

---------

Co-authored-by: sköldpadda <weblate@turtle.garden>
Co-authored-by: Eric <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Fjuro <ifjuro@proton.me>
Co-authored-by: qwerty287 <ndev@web.de>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: Maciej Klupp <maciej.klupp@gmail.com>
Co-authored-by: BMT[UA] <weblate@yopmail.com>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
2023-06-27 00:08:27 +00:00
Alexander Capehart
4840742c4e
build: bump to 3.1.3
Bump to version 3.1.3 (33).
2023-06-26 18:01:35 -06:00
Alexander Capehart
f8a0a42dd3
music: finalize duplicate tags fix
Officially finalize the fix for #484, at least I think.

Resolves #484.
2023-06-26 17:56:48 -06:00
Alexander Capehart
a1ab6d139a
ui: increase shuffle on icon thickness
Aggressively increase the shuffle icon thickness when it's indicated
as on.

Should allow the on state to be discerned easier.
2023-06-25 16:50:01 -06:00
Alexander Capehart
6f6a3d8d31
music: handle duplicate artist/genre values
Remove functionally duplicate artist/genre values that were read from
a file.

This caused a indexer crash in 3.1.2 due to the switch to music sets,
which no longer made duplicate values group the song twice. This then
cascaded to a failure in song finalization, as it expects there to be
the same amount of artists/genres as raw artists/genres.
2023-06-25 16:49:44 -06:00
Alexander Capehart
5bda85fe36
all: minor cleanup 2023-06-24 17:45:36 -06:00
Alexander Capehart
2adb34dffe
music: prevent deadlock on no-op refreshes
Fix a regression where the loading process will never stop on a no-op
refresh operation.

This was an oversight made in the redocumentation of the loading
process.
2023-06-24 17:30:56 -06:00
Alexander Capehart
29162820ae
ui: update bottomsheetbehavior
Update BottomSheetBehavior to the latest commit in 1.10.0-alpha04.

This adds a few new APIs that I still can't really use. I could in the
future.
2023-06-24 17:30:06 -06:00
Alexander Capehart
992457f361
music: document indexing process
Further document the music indexing process.

It's so aggressively parallelized as to require some more extensive
comments to actually make it clear what's going on.
2023-06-24 10:34:31 -06:00
Alexander Capehart
ed7b4e1410
music: recognize spaced artist tags
Recognize artists sort, albumartists sort, and album artists tags.

These are written by mediafile, so they are probably also written by
other software.
2023-06-24 09:04:21 -06:00
Alexander Capehart
19e8536323
music: fix testing artifacts in loading process
Fix testing lines created when working on the prior commit.
2023-06-23 08:49:08 -06:00
Alexander Capehart
036d952085
music: avoid hanging on discovery errors
Do not hang when an error halts the discovery process.

This was an oversight with the previous band-aid fix regarding handling
errors in music loading. If something failed, the channels would not
close, resulting in the main loop consuming the channel hanging.

There's probably a deeper issue causing this in 3.1.2, but with this
fix I can actually start digging for it.
2023-06-23 08:43:21 -06:00
Alexander Capehart
8bcc86c972
build: fix redundant recipes 2023-06-20 22:17:08 -06:00
Alexander Capehart
0042f42ced
playback: fix queue sheet scroll behavior
Fix an issue where an upwards nested scroll past the top of the queue
list would not actually collapse the sheet.

This was apparently caused by something introduced in recyclerview
1.3.0-alpha01. No idea why. Roll back to the working version.
2023-06-20 21:51:18 -06:00
Alexander Capehart
903a3e561a
image: add option to restore 1:1 crop behavior
Add an option to restore the old 1:1 crop behavior to the app.

Some people think this looks better, some people like to have youtube
thumbnails in their APICs. Can't really be opinionated here.
2023-06-20 17:25:37 -06:00
Alexander Capehart
8c604dae68
Merge branch 'api34' into dev 2023-06-20 16:58:48 -06:00
Alexander Capehart
c580d44466
build: bump to version 3.1.2
Bump the build version to 3.1.2 (32).
2023-06-15 19:33:47 -06:00
Alexander Capehart
7b4af3515d
music: prioritize earlier album artist info
Prioritize artist information from earlier albums (date-wise), as it's
less likely to change with the addition of new music.
2023-06-15 19:11:31 -06:00
Alexander Capehart
321bbcf03f
all: fix api 34 crashes
Fix general API 34 crashes that I could notice immediately.

Can really test any further since the API 34 AVDs are currently potatos
running at 3 FPS for some reason.
2023-06-15 13:32:05 -06:00
Alexander Capehart
6b43a65e56
build: update to api 34
Update the app to target API 34, alongside all dependencies that expect
such.

This finally fixes some long-standing issues in newer version of MDC,
thus allowing me to remove the divider backport as well.

More work is required for predictive back (don't even know where I
start with that...), but this is a good start.
2023-06-15 13:06:17 -06:00
Alexander Capehart
5825a29e00
Merge branch 'dev' of github.com:OxygenCobalt/Auxio into dev 2023-06-15 12:58:54 -06:00
Alexander Capehart
839861b6b8
music: fix grouping regressions
Fix regressions in grouping, mostly around the kind of music that is
prioritized and sort naming.
2023-06-15 12:58:10 -06:00
Weblate (bot)
f734268b40
Translations update from Hosted Weblate (#460)
* Translated using Weblate (Russian)

Currently translated at 100.0% (278 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/ru/

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (278 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/uk/

* Translated using Weblate (Finnish)

Currently translated at 92.8% (258 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fi/

* Translated using Weblate (Finnish)

Currently translated at 96.8% (31 of 32 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/fi/

* Translated using Weblate (Italian)

Currently translated at 98.5% (274 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Translated using Weblate (Italian)

Currently translated at 99.2% (276 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Translated using Weblate (Croatian)

Currently translated at 100.0% (278 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hr/

* Translated using Weblate (Korean)

Currently translated at 100.0% (33 of 33 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/ko/

* Translated using Weblate (Turkish)

Currently translated at 94.2% (262 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/tr/

* Translated using Weblate (German)

Currently translated at 100.0% (278 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/de/

* Translated using Weblate (French)

Currently translated at 97.1% (270 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fr/

* Translated using Weblate (Italian)

Currently translated at 99.2% (276 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (278 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/pa/

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (33 of 33 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/pa/

* Translated using Weblate (Hindi)

Currently translated at 100.0% (33 of 33 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/hi/

* Translated using Weblate (French)

Currently translated at 100.0% (278 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/fr/

* Translated using Weblate (Italian)

Currently translated at 100.0% (278 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/it/

* Translated using Weblate (Hindi)

Currently translated at 61.5% (171 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/hi/

* Translated using Weblate (Dutch)

Currently translated at 100.0% (278 of 278 strings)

Translation: Auxio/Strings
Translate-URL: https://hosted.weblate.org/projects/auxio/strings/nl/

* Translated using Weblate (Croatian)

Currently translated at 100.0% (33 of 33 strings)

Translation: Auxio/Metadata
Translate-URL: https://hosted.weblate.org/projects/auxio/metadata/hr/

---------

Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: BMT[UA] <weblate@yopmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: atilluF <110931720+atilluF@users.noreply.github.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: Hoseok Seo <ddinghoya@gmail.com>
Co-authored-by: Baki Nazik <voxrie@gmail.com>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: Issa1553 <fairfull.playing@gmail.com>
2023-06-15 17:10:53 +00:00
Alexander Capehart
31d647123f
music: use set for child information
Use sets for all child music information.

Unlike parent information, which usually has an ordering derived from
file information, child music information more or less doesn't, and
will be consistently re-interpreted by the app to apply user-configured
sorts.
2023-06-13 10:44:53 -06:00
Alexander Capehart
d22de34fd3
music: use sets for library information
Use a Set when storing all song, album, artist, and genre information.

These all have no consistent ordering due to parallelization, and
should be communicated as such.
2023-06-13 10:03:48 -06:00
Alexander Capehart
5b44c31689
music: sort song information
Sort song informtion in all MusicParent instances.

This is a temporary hack to band-aid music consistency between reloads,
as with the aggressive parallelization song order is no longer
consistent.
2023-06-13 09:37:18 -06:00
Alexander Capehart
530e427b79
music: improve library updates
Update library information in a synchronized block and then only
dispatch the update on the main thread.
2023-06-13 08:58:08 -06:00
Alexander Capehart
0771a75b5a
playback: ignore zeroed replaygain tags
Ignore ReplayGain adjustments that are just 0 dB.
2023-06-13 08:57:03 -06:00
Alexander Capehart
4ee20bc112
playback: fix regression regarding partial rgadj
Fix a regression where partial ReplayGain adjustments missing an album
or track component would not be indexed.

This was an oversight made when moving adjustments to the cache, as the
nullability model of ReplayGain adjustments changed.
2023-06-09 10:08:44 -06:00
Alexander Capehart
672c256b1e
music: group albums by raw artist keys
Properly group albums by raw artist keys, instead of by raw artist
instances.

This was an accidental regression in 3.1.1 that resulted in duplicate
albums in some circumstances.

Resolves #475.
2023-06-08 20:40:09 -06:00
Alexander Capehart
e848bea0bf
music: remove zero digit-likes from names
Remove all characters with a semantic meaning of "zero" from the start
of music names, at least when intelligent sorting is enabled.
2023-06-08 14:09:09 -06:00
Alexander Capehart
93d3e82140
ui: use targetstate more
Use targetState whenever making decisions on whether a certain sheet
state change is valid.

This is mostly for stylistic consistency and has no effect on UX.
2023-06-08 13:49:24 -06:00
Alexander Capehart
abe4255986
list: actually update playlist selections
Remove an incorrect change check resulting in the selection not
updating when playlist information changed.

Resolves #476.
2023-06-08 13:37:12 -06:00
Alexander Capehart
59280cc6d5
playback: standardize table names
Just let room pick the table names for PersistenceDatabase, instead of
using custom ones.

Reduces the amount of code in that part of the app.
2023-06-08 10:23:49 -06:00
Alexander Capehart
aaba858fcf
all: only use one fallback method for dbs
Only use fallbackToDestructiveMigration for all databases.

I thought you had to selectively enable downgrading as well, but
apparently that disables other destructive migrations. This was not
obvious at all and caused countless issues. Absolutely flooring.
2023-06-08 10:15:04 -06:00
Alexander Capehart
bce03a5833
playback: do not dynamically extract adjustments
Do not extract ReplayGain adjustments on the fly, instead doing them as
we go along.

This prevents an issue where the ReplayGain information would only be
applied a short period after playback start, which is heavily jarring.
2023-06-08 10:03:54 -06:00
Alexander Capehart
5ab46ba5d1
music: add userlibrary error returns
Make UserLibrary return some kind of error indicator if something
fails.

I don't have the framework for how the app will display these errors
just yet.
2023-06-07 20:10:07 -06:00
Alexander Capehart
a9a6d1ccc1
music: cleanup
Clean up parts of the music loader.
2023-06-07 20:08:57 -06:00
Alexander Capehart
77d01a0c97
home: use constant page limit
Use a constant page limit of 5 instead of a dynamic page limit.

This was not being properly updated prior, and since the ViewPager
already clamps it, the limit does not really need to be based on the
tab size anyway.
2023-06-07 20:07:06 -06:00