Alexander Capehart
8edfcd22c7
music: make grouping mechanism consistent
...
Actually bother to make the way music is grouped consistent, based on:
- The first track for albums
- The earliest album for artists
- The first song for genres
2023-06-07 15:15:51 -06:00
Alexander Capehart
927c4a056e
music: recognize (album)artistssort tags
...
Recognize albumartistssort and artistssort tags, which are apparently
written by beets.
2023-06-07 15:15:01 -06:00
Alexander Capehart
736f3ec6b7
playback: fix crash on state restore
...
Fix a crash stemming from applying the playback state on the main
thread instead of the background thread.
all: add misc todos
2023-06-03 09:12:41 -06:00
Alexander Capehart
182883ef2d
music: avoid redundant devicelibrary comparison
...
Avoid redundantly comparing DeviceLibrary instances based on parent
information already derived from song instances.
2023-06-03 09:02:39 -06:00
Alexander Capehart
d786cd16d7
all: cleanup
...
Pre-release clean-up.
2023-06-02 17:25:59 -06:00
Alexander Capehart
df174e22f6
music: cache hashcode in data
...
Cache the hashcode of song/album/artist/genre information so that it
can be calculated easily later.
2023-06-01 20:46:56 -06:00
Alexander Capehart
0d28bdf99e
music: remove unnecessary documentation
...
Remove unnecessary function documentation for private methods in
DeviceLibrary.
2023-06-01 20:18:02 -06:00
Alexander Capehart
a37df594e7
music: fix song build bottleneck
...
Fix redundant separator parsing obliterating loading performance.
If there are no separators configured, the parsing function would not
short-circuit and instead do a useless O(n) iteraton (including
escaping!), massively reducing performance.
Song build performance still isn't the best (blame intelligent
sorting), but it's definitely better now.
2023-06-01 20:16:39 -06:00
Alexander Capehart
f9ccb831d8
music: fix comparison issues
...
Fix a few problems with the current comparison algorithm:
1. It wasn't actually comparing the raw music information, only the
UIDs, which was redundant.
2. The comparison in the main music loading process occurred on the
main thread, which causes massive freeze-up issues.
Resolves #457 .
2023-06-01 15:10:24 -06:00
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