Commit graph

2208 commits

Author SHA1 Message Date
Alexander Capehart
48b0b11e88
all: random cleanup 2023-10-16 21:38:14 -06:00
Alexander Capehart
f4518eb70f
build: update deps
Forgot to update ksp.
2023-10-16 21:36:41 -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
Alexander Capehart
b84e3de3e0
info: clarify readme portions 2023-09-16 11:18:35 -06:00
Alexander Capehart
23c538e7aa
Make README more professional
Yeah, this gets rid of a little of the character, but it these kinds of quips a little immature and might turn off recruiters.
2023-09-16 11:16:23 -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
83ec0c13da
Merge pull request #503 from Koitharu/feature/cover_carousel
Cover art carousel on playback fragment
2023-08-21 07:50:31 -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
5cd46193d5
Merge pull request #545 from OxygenCobalt/dev
Version 3.2.0
2023-08-18 08:46:18 -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