Commit graph

1602 commits

Author SHA1 Message Date
Alexander Capehart
e68cc4d620
build: update deps
Update a huge amount of dependencies. Forgot specifically what I
did.
2023-05-11 15:42:47 -06:00
Alexander Capehart
715739f005
playback: remove parent mediasession value
Is redundant now given that METADATA_KEY_DISPLAY_DESCRIPTION is used
now.
2023-05-11 15:11:25 -06:00
Alexander Capehart
43036cfd59
playback: fix notif not responding to settings
Fix an issue where changes in image settings would not cause the
notification to respond.
2023-05-11 15:10:35 -06:00
Alexander Capehart
a8691cf693
build: enable r8 full mode
Enable R8 full mode for the app.

Should shave off ~150kb.
2023-05-11 15:07:09 -06:00
Alexander Capehart
cb69400905
music: add playlist creation stub
Add a stub for creating a new playlist.

UX details are not worked out yet, so the functionality is still
extremely bare.
2023-05-11 13:16:45 -06:00
Alexander Capehart
a5176d6209
all: do not do work on static initialization
Try to lazily initialize certain static variables that do work (like
Regex) to speed up initialization time.
2023-05-11 13:10:47 -06:00
Alexander Capehart
c98ca8712f
music: re-add fallible async execution
Re-add the tryAsync wrapper function to the loading process to properly
handle music loading errors.

Turns out there is basically no other way to properly do this except for
the insane exception -> Result -> exception hack.
2023-05-11 12:57:43 -06:00
Alexander Capehart
aa24ea00ea
all: use sealed interface when possible
Use sealed interface instead of sealed class when no class features are
actually used by the code.
2023-05-11 12:36:58 -06:00
Alexander Capehart
4e5a3f7fe1
tests: fix failure
Fix some accidental regressions and unported mocks.
2023-05-11 12:25:20 -06:00
Alexander Capehart
b72f33a989
search: match file names case-insensitively
Not doing this lead to some inconsistent search results at points.

Resolves #437.
2023-05-11 12:21:58 -06:00
Alexander Capehart
c7b875376c
music: refactor name implementation
Refactor the music name implementation to do the following:
1. Unify normal and sort names under a single datatype
2. Handle arbitrary-length digit strings
3. Ignore puncutation regardless of the intelligent sort
configuration, as it is trivially localizable.

Resolves #423.

Co-authored by: ChatGPT-3.5
2023-05-11 12:19:39 -06:00
Alexander Capehart
ca349dea18
music: fix tests
Fix tests that weren't migated to media3.
2023-05-10 20:48:44 -06:00
Alexander Capehart
3daaadf8ea
all: disable media3 optin insanity
Forgot to do this in the prior commit. Again, nearly every use of
ExoPlayer by Auxio is considered "unsafe" and would fail the build
unless I slather it all in OptIn annotations or have a global lint.xml
file just sitting in the root directory.
2023-05-10 17:50:58 -06:00
Alexander Capehart
c1e4d0f10e
all: switch to media3
Move everything over to the media3 library instead of ExoPlayer.

Media3 is worse in every way. It labels half of ExoPlayer as "unsafe"
because it thinks that it's garbage uwu "helpful" abstractions are
perfectly servicable when in reality they are a pile of garbage filled
with insane performance issues, race conditions, and a seeming lack
of awareness to the sheer absurdity of android's media APIs. It is
absolutely horrible, but ExoPlayer will stop being maintained soon
and I will have to move over for further maintenance.
2023-05-10 17:47:31 -06:00
Alexander Capehart
c6c3816bfc
Merge branch 'master' into dev 2023-05-10 17:09:06 -06:00
Alexander Capehart
04ef09dd94
build: update deps
Time to catch up on dependency updates after working non-stop for a
month and a half.
2023-05-10 14:00:36 -06:00
Alexander Capehart
78d9f9f613
Merge pull request #425 from OxygenCobalt/3.0.5-cherrypick
Version 3.0.5
2023-04-17 00:03:14 +00:00
Alexander Capehart
d0f8291085
music: fix incorrect sort punct removal
Fix incorrect punctuation removal resulting in weird sorting behavior.
2023-04-16 18:01:32 -06:00
Alexander Capehart
e6b00b1025
build: bump to 3.0.5
Bump the version to 3.0.5.
2023-04-16 17:30:51 -06:00
Alexander Capehart
b031adabeb
music: correctly bubble exceptions
Correctly bubble failures in the music loading process.

Do it the easy way and simply map to a result, then backl to an
exception. I need to actually just make it fully bubble event
2023-04-16 17:29:21 -06:00
Alexander Capehart
89d599ae4e
widget: fix inconsistent cover corner radius
Somehow the line that makes the corner sizes consistent was lost.
2023-04-16 17:29:09 -06:00
Alexander Capehart
20feba024e
Merge pull request #419 from chrispalmeri/sorting
Updates to intelligent sorting
2023-04-15 17:46:55 -06:00
Alexander Capehart
0756726281
Merge pull request #419 from chrispalmeri/sorting
Updates to intelligent sorting
2023-04-15 13:03:00 -06:00
Chris Palmeri
6ac0cf358a
Use six digit sort name padding 2023-04-15 10:11:39 -05:00
Chris Palmeri
d04cd4ce4f
Refactor sort name changes 2023-04-15 10:05:15 -05:00
Chris Palmeri
b34462340a
Strip symbols and forget thousands separator 2023-04-12 23:33:16 -05:00
Chris Palmeri
7d8cdba6a9
Regex numbers and common thumb 2023-04-12 00:52:04 -05:00
Weblate (bot)
2e34933c86
Translations update from Hosted Weblate (#403)
* 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 (Czech)

Currently translated at 100.0% (260 of 260 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (260 of 260 strings)

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

* Translated using Weblate (Russian)

Currently translated at 100.0% (260 of 260 strings)

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

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (260 of 260 strings)

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

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (260 of 260 strings)

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

* Translated using Weblate (Czech)

Currently translated at 100.0% (261 of 261 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (261 of 261 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (261 of 261 strings)

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

* Translated using Weblate (Korean)

Currently translated at 100.0% (261 of 261 strings)

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

* Translated using Weblate (Russian)

Currently translated at 100.0% (261 of 261 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (261 of 261 strings)

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

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (261 of 261 strings)

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

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (261 of 261 strings)

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

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (261 of 261 strings)

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

* Added translation using Weblate (Odia)

* Added translation using Weblate (Finnish)

* Translated using Weblate (Odia)

Currently translated at 0.7% (2 of 261 strings)

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

* Translated using Weblate (Greek)

Currently translated at 45.5% (119 of 261 strings)

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

* Translated using Weblate (Italian)

Currently translated at 99.6% (260 of 261 strings)

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

* Translated using Weblate (Polish)

Currently translated at 100.0% (261 of 261 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (261 of 261 strings)

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

* Translated using Weblate (Croatian)

Currently translated at 100.0% (30 of 30 strings)

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

* Translated using Weblate (Croatian)

Currently translated at 100.0% (261 of 261 strings)

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

* Translated using Weblate (Odia)

Currently translated at 1.9% (5 of 261 strings)

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

* Translated using Weblate (Finnish)

Currently translated at 90.0% (235 of 261 strings)

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

---------

Co-authored-by: Fjuro <ifjuro@proton.me>
Co-authored-by: qwerty287 <ndev@web.de>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: Vaclovas Intas <vaclovas1999@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: Hoseok Seo <ddinghoya@gmail.com>
Co-authored-by: BMN <weblate@yopmail.com>
Co-authored-by: Eric <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: Subham Jena <subhamjena8465@gmail.com>
Co-authored-by: Ricardo Feleque <rnfeq869w@relay.firefox.com>
Co-authored-by: atilluF <atilluF@users.noreply.hosted.weblate.org>
Co-authored-by: Maciej Klupp <maciej.klupp@gmail.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
2023-04-11 07:49:58 -06:00
Alexander Capehart
f2a90bf0af
picker: refactor into module-specific impls
Refactor the weird picker god module into specific sub-impls in
playback and a new navigation package.

I cannot keep this unified. The needs are too different among each
picker. Better to keep it separate, especially in preparation for
the playlist dialogs.
2023-03-25 21:13:42 -06:00
Alexander Capehart
5de1e221ac
widget: fix inconsistent cover corner radius
Somehow the line that makes the corner sizes consistent was lost.
2023-03-25 15:54:06 -06:00
Alexander Capehart
67e67ca1d0
playback: generalize make playback panel opening
If the user clicks on the playback bar in any context, including the
queue view, open the playback panel.

This adds another means to closing the queue that does not involve
swiping.

Resolves #402.
2023-03-25 15:32:37 -06:00
Alexander Capehart
829e2a42c4
home: add playlist add button
Refactor the home FAB to switch to playlist addition button
when at the playlist tab.
2023-03-25 15:11:48 -06:00
Alexander Capehart
9988a1b76b
music: add framework for playlist mutation
Add the boilerplate for basic playlist creation/addition.

No integration in UI yet.
2023-03-25 14:36:22 -06:00
Alexander Capehart
70e824c4e7
Merge branch 'master' into dev 2023-03-25 09:49:28 -06:00
Alexander Capehart
5b4697410b
Merge pull request #401 from OxygenCobalt/3.0.4-cherrypick
Version 3.0.4
2023-03-25 15:43:35 +00:00
Alexander Capehart
41653a6d8a
build: bump to 3.0.4
Bump to version 3.0.4.
2023-03-24 08:30:13 -06:00
Alexander Capehart
6fc8a64677
music: move sort name number handling to setting
Make the numeric sort name handling added prior dependent on a new
"Intelligent Sorting" setting that also controls the article checks.

This kind of behavior might not be desirable in all cases, and it makes
the setting more consistent anyway.
2023-03-24 08:26:33 -06:00
Weblate (bot)
37f633cb9d
Translations update from Hosted Weblate (#398)
* Translated using Weblate (Czech)

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (Galician)

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (French)

Currently translated at 70.6% (183 of 259 strings)

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

* Translated using Weblate (Italian)

Currently translated at 99.2% (257 of 259 strings)

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

* Translated using Weblate (Korean)

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (Polish)

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (Russian)

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (Turkish)

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (Croatian)

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (Belarusian)

Currently translated at 100.0% (259 of 259 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (260 of 260 strings)

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

* Translated using Weblate (Italian)

Currently translated at 99.2% (258 of 260 strings)

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

* Translated using Weblate (Ukrainian)

Currently translated at 100.0% (260 of 260 strings)

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

* Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (260 of 260 strings)

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

* Translated using Weblate (Japanese)

Currently translated at 100.0% (260 of 260 strings)

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

* Translated using Weblate (Galician)

Currently translated at 100.0% (260 of 260 strings)

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

---------

Co-authored-by: Fjuro <ifjuro@proton.me>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: BMN <weblate@yopmail.com>
Co-authored-by: Eric <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: C. Rüdinger <Mail-an-CR@web.de>
Co-authored-by: atilluF <atilluF@users.noreply.hosted.weblate.org>
Co-authored-by: SakiNSA <legit@mail.ee>
Co-authored-by: Alexander Capehart <oxycblt@abstractr.net>
2023-03-23 17:52:38 -06:00
Alexander Capehart
7c0b73b699
music: move sort name number handling to setting
Make the numeric sort name handling added prior dependent on a new
"Intelligent Sorting" setting that also controls the article checks.

This kind of behavior might not be desirable in all cases, and it makes
the setting more consistent anyway.
2023-03-23 17:40:44 -06:00
Alexander Capehart
97b63992b5
music: make playlist uids random
Make playlist UIDs randomly generated.

This will allow multiple playlists with the same name, which may be
useful.
2023-03-23 17:15:38 -06:00
Alexander Capehart
f388e492aa
playback: add playlist support
Add playlist support to the playback code.
2023-03-23 16:07:56 -06:00
Alexander Capehart
52e0620149
music: fix failing tests 2023-03-22 19:59:29 -06:00
Alexander Capehart
4068c3e009
detail: add playlist view
Add a detail view for playlists.

This is most equivelent to the genre detail view right now, but will be
differentiated eventually.
2023-03-22 19:58:58 -06:00
Alexander Capehart
f3a2d94086
music: add playlist song sorting
Add the internal sort modes for playlist songs.

Theoretically this might be better as playlist-specific, but it's
harder to integrate that currently.
2023-03-22 17:22:10 -06:00
Alexander Capehart
f846a08b01
music: refactor library usage
Refactor the disjoint Library and Playlist setup into two new
DeviceLibrary and UserLibrary implementations.

This makes the API surface a bit less disjoint than prior.
2023-03-22 17:16:41 -06:00
Alexander Capehart
d8b67a8512
test: fix failure
Once again, forgot to update the mock implementations.
2023-03-20 20:29:43 -06:00
Alexander Capehart
686290a6c1
playlist: add basic ui support
Add extremely basic UI support for playlists.
2023-03-20 19:47:56 -06:00
Alexander Capehart
9a282e2be9
music: unify indexer and repository
Unify Indexer and MusicRepository into a single class.

This is meant to create a single dependency on PlaylistDatabase and
reduce the amount of orchestration.
2023-03-20 15:57:27 -06:00
Alexander Capehart
4033a791a7
playlist: consider playlists music
Consider playlists music rather than an extension of music.

This also sets up the basics of a playlist datbaase.
2023-03-20 15:57:27 -06:00
Weblate (bot)
5e3b4a2fce
Translations update from Hosted Weblate (#387)
* Translated using Weblate (Arabic (ar_IQ))

Currently translated at 58.9% (151 of 256 strings)

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

* Added translation using Weblate (Hebrew)

* Translated using Weblate (Hebrew)

Currently translated at 96.5% (28 of 29 strings)

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

* Translated using Weblate (Hebrew)

Currently translated at 61.7% (158 of 256 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (256 of 256 strings)

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

* Translated using Weblate (Polish)

Currently translated at 100.0% (256 of 256 strings)

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

* Translated using Weblate (Polish)

Currently translated at 100.0% (256 of 256 strings)

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

* Translated using Weblate (Polish)

Currently translated at 100.0% (256 of 256 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (256 of 256 strings)

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

* Translated using Weblate (German)

Currently translated at 100.0% (29 of 29 strings)

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

* Translated using Weblate (Galician)

Currently translated at 98.0% (251 of 256 strings)

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

* Translated using Weblate (Polish)

Currently translated at 100.0% (256 of 256 strings)

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

* Translated using Weblate (Polish)

Currently translated at 100.0% (256 of 256 strings)

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

* Translated using Weblate (Polish)

Currently translated at 100.0% (256 of 256 strings)

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

---------

Co-authored-by: Moayad Ahmed <meayad1728383@gmail.com>
Co-authored-by: FAYE <pl4gve@gmail.com>
Co-authored-by: qwerty287 <ndev@web.de>
Co-authored-by: Maciej Klupp <maciej.klupp@gmail.com>
Co-authored-by: Макар Разин <makarrazin14@gmail.com>
Co-authored-by: C. Rüdinger <Mail-an-CR@web.de>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
2023-03-20 09:06:01 -06:00