Alexander Capehart
63f7627fbc
all: log listener additions
...
Log whenever a listener is added/removed.
This might make it easier to track concurrency issues stemming from
listener dispatch and addition occuring at the same time.
2023-05-29 09:24:06 -06:00
Alexander Capehart
10d05b1f26
all: fix log statements
...
Fix messy and useless log statements throughout the app.
2023-05-28 10:10:03 -06:00
Alexander Capehart
699227c1a8
all: relog project
...
Fill in a lot of code paths in the project with log statements in order
to improve the debugging experience.
2023-05-26 16:36:06 -06:00
Alexander Capehart
b037cfb166
music: improve sorting
...
Update sorting usage in-app so that it's only done when absolutely
necessary.
2023-05-25 13:47:11 -06:00
Alexander Capehart
ba94d4fa21
detail: group implicit albums in "appears on"
...
Group albums implicitly linked to an artist via the "artist" tag into
their own section called "Appears on".
This makes Auxio's artist model a bit more apparent to users.
Resolves #411 .
2023-05-25 12:54:23 -06:00
Alexander Capehart
a5e01be34b
Merge branch 'dev' into feature/share
2023-05-24 15:49:53 +00:00
Alexander Capehart
af563c83ac
build: reduce execution times
...
Reduce build execution times through the use of non-transitive/final R
classes and removing unnecessary wildcard imports.
2023-05-22 21:41:13 -06:00
Alexander Capehart
8a8586968f
all: cleanup
...
Final pre-release cleanup.
2023-05-21 20:04:18 -06:00
Alexander Capehart
9b37975008
image: fix album ordering
...
Prior ordering sorted by album song count, which skewed results if an
entire album was not present in an input list.
2023-05-21 14:46:24 -06:00
Alexander Capehart
877d380fa0
music: use indices in playlist db
...
Use indices in the playlist database, which should improve perofrmance
a little.
2023-05-21 13:38:24 -06:00
Alexander Capehart
7e739061d8
Merge branch 'dev' into feature/share
2023-05-21 19:14:55 +00:00
Alexander Capehart
8953f12a1e
music: try to fix repo race conditions
...
Forgot to slather the entire class in Synchronized and Volatile. Should
make crashes less likely, I hope.
2023-05-21 09:53:56 -06:00
Alexander Capehart
5244a2b858
build: fix release
...
Apparently AGP throws a fit when you don't suppress warnings for
cryptography classes that aren't even used. Great.
2023-05-20 20:11:33 -06:00
Alexander Capehart
c86970470f
music: back playlists with database
...
Finally persist playlists with a backing database.
2023-05-20 19:57:57 -06:00
Alexander Capehart
572b0e52f8
music: clean up playlist experience
...
Add a variety of mild fixes and qol improvements regarding playlists.
2023-05-20 11:24:45 -06:00
Alexander Capehart
5fff1bd0b3
image: simplify implementation
...
Reduce the accepted datatype of extractors down to a list of songs,
moving the other datatypes to the UI layer.
This massively reduces the amount of components that must be managed,
and enables functionality related to playlist editing.
2023-05-19 14:12:22 -06:00
Alexander Capehart
996c86b361
detail: add playlist editing
...
Add the ability to edit a playlist in it's detail view.
This replaces the prior sorting functionality entirely. That will be
re-added later.
2023-05-19 11:15:33 -06:00
Alexander Capehart
41cab82523
Merge branch 'dev' into feature/share
2023-05-18 23:20:53 +00:00
Alexander Capehart
3a5e1a5111
music: add playlist renaming
...
Add the flow for renaming a playlist.
2023-05-18 17:09:59 -06:00
Koitharu
e48916fb27
Fix style issues
2023-05-18 19:27:50 +03:00
Koitharu
7f11e886f7
Sharing albums, artists, genres and playlists
2023-05-18 12:19:17 +03:00
Koitharu
7915655c78
Songs sharing
2023-05-18 10:23:34 +03:00
Alexander Capehart
ded7956319
build: update media3 to 1.0.2
2023-05-17 19:26:01 -06:00
Alexander Capehart
97e144058a
music: add playlist deletion dialog
...
Add a dialog that allows the user to confirm playlist deletion, instead
of it happening immediately.
2023-05-17 18:56:09 -06:00
Alexander Capehart
d1f9200bf9
list: unwind choiceviewholder
...
Unwind ChoiceViewHolder into specific impls.
Was not re-usable enough w/playlists in order to be reasonable.
2023-05-17 17:39:52 -06:00
Alexander Capehart
06885ba264
music: extend equality impls
...
Extend the music equals/hashCode implementations to take into account
the raw music.
This way, items that change in non-UID metadata are actually considered
different at runtime while UIDs can still persist the data in a stable
manner.
2023-05-17 16:11:26 -06:00
Alexander Capehart
d0a68353a7
music: simplify picker closing
...
Simplify picker closing navigation by avoiding weird communication via
state change and instead simply navigate twice from NewPlaylistDialog.
This is probably really stupid. But so is the other way.
2023-05-17 12:09:51 -06:00
Alexander Capehart
6cfb50a10f
detail: drop equality checks
...
Most of the list creation operations are O(1), and the stateflow
equality makes it not matter anyway.
2023-05-17 11:56:50 -06:00
Alexander Capehart
dcc82608bd
music: add playlist deletion
...
Add basic playlist deletion flow.
No confirmation dialog yet, that will need to be implemented later.
2023-05-17 11:07:16 -06:00
Alexander Capehart
956b6fda2b
all: fix inspections
...
Fix miscellanious code inspections.
2023-05-14 09:59:08 -06:00
Alexander Capehart
d0444bb41d
detail: add duration indicator to playlist
...
Add a duration indicator alongside the song count in the playlist
detail header.
2023-05-13 20:05:04 -06:00
Alexander Capehart
7435165929
music: add playlist addition
...
Implement playlist addition and it's UI flow.
2023-05-13 19:06:51 -06:00
Alexander Capehart
4fe91c25e3
music: streamline new playlist implementation
...
Make the implementation of the playlist creation dialog signifigantly
simpler by removing some aspects that don't really need implementation
yet.
2023-05-13 11:40:35 -06:00
Alexander Capehart
5bf5687ccf
build: update agp to 8.0.1
2023-05-12 16:30:18 -06:00
Alexander Capehart
e2104c58b8
music: clean up playlist name dialog
...
Cleanup the playlist naming dialog to have nicer UX/implementation.
2023-05-12 15:42:30 -06:00
Alexander Capehart
97705a37e4
music: remove uid tests
...
Remove Music.UID tests for now in favor of adding them to the main
datatype tests instead in the future.
2023-05-12 13:46:24 -06:00
Alexander Capehart
763061c352
music: automatically number new playlists
...
Automatically number new playlists, from Playlist 1, Playlist 2, etc.
This comes with the additional requirement that all playlists have
unique names.
2023-05-12 13:43:18 -06:00
Alexander Capehart
e01ea25d0b
music: add playlist naming flow
...
Add a real playlist naming dialog and UX flow.
This is a bit rough at the moment since theres a good amount of nuance
here. Should improve as the playlist implementation continues to grow
more fleshed out.
2023-05-12 10:39:56 -06:00
Alexander Capehart
7ba2b1bb41
music: strip articles from extremely short names
...
Strip articles from names that are longer than 2-4 characters, compared
the prior limit of 3-5.
Resolves #440 .
2023-05-12 07:01:04 -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
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
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
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