Commit graph

556 commits

Author SHA1 Message Date
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
5f70ce8870
build: drop api 21-23 support
Drop support for Lollipop and Marshmallow.

I legit cannot build for them anymore. There's some insane dependency
tangle between Kapt and Room that makes it impossible to use anything
BUT Java 17 (maybe Java 11). If I use Java 17 or Java 11, suddenly the
whole app crashes since Lollipop and Marshmallow only support some weird
Java 8/11 chimera abomination. This issue has persisted probably since
the move to Java 11, making it basically unusable anyway, so at this point
just cut the charade and officially drop support.
2023-06-01 10:52:44 -06:00
Alexander Capehart
b93a512bf7
image: introduce sizing
Unify corner radius and icon size configurations under a new sizing
property. This is largely driven by a need to remove the typical
half-width icon sizing, as it results in blurry playing indicators
in some cases. This also co-incides with a change of parent image
icon sizes to 32dp over 28dp.

Resolves #415.
2023-05-28 20:00:52 -06:00
Alexander Capehart
b7c15e0cc5
image: refactor views
Refactor StyledImageView and ImageGroup into a new class called
CoverView.

This new view is more sensibly designed and should be capable of
handling non-square album covers when implemented.
2023-05-28 15:29:38 -06:00
Alexander Capehart
d539c35518
ui: fix button log spam
Fix log spam about unresolved attrs coming from button apparently
forgetting where it's default icon tint is.
2023-05-28 09:06:41 -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
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
8939d341e6
detail: default to "no disc" instead of "disc 1"
Default tracks without a disc to a group called "No disc" instead of
disc 1.

This should reduce confusion on the user end, as it will make improper
taggings more apparent instead of simply degrading to a werid sort
ordering.

Resolves #405.
2023-05-25 12:03:37 -06:00
Alexander Capehart
4210a8d247
ui: disable some options w/empty parents
Disable most playback and playlisting operations when an artist or
playlist is empty.
2023-05-25 11:55:49 -06:00
Alexander Capehart
a5e01be34b
Merge branch 'dev' into feature/share 2023-05-24 15:49:53 +00:00
Alexander Capehart
8a8586968f
all: cleanup
Final pre-release cleanup.
2023-05-21 20:04:18 -06:00
Alexander Capehart
7e739061d8
Merge branch 'dev' into feature/share 2023-05-21 19:14:55 +00:00
Alexander Capehart
89eeaa33cc
list: avoid crashing on span size lookups
Apparently sometimes the span size lookup will try to find an item that
does not exist. Fix that.
2023-05-21 12:01:41 -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
33381f463a
playback: move drag helper to list
Move most of QueueDragCallback to the list module.

This is planned to be re-used with the playlist view, so it should be
shared.
2023-05-18 20:16:53 -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
7915655c78
Songs sharing 2023-05-18 10:23:34 +03: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
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
949a9c879c
detail: improve playlist presentation
Improve playlist presentation in the detail views, especially when
it is empty.
2023-05-13 19:32:03 -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
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
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
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
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
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
686290a6c1
playlist: add basic ui support
Add extremely basic UI support for playlists.
2023-03-20 19:47:56 -06:00
Alexander Capehart
e50bc80a0b
music: handle compilation flag tags
Handle COMPILATION and ITUNESCOMPILATION flags, if present.

Just map these to Various Artists and a compilation release type.

Resolves #373.
2023-03-19 13:14:53 -06:00
Alexander Capehart
9cc75a0e11
detail: separate header from list data
Separate the header information into it's own adapter, and concatenate
it with the prior adapter.

This way, it can be updated separately without a jarring list update.
2023-03-19 12:03:58 -06:00
Alexander Capehart
45fe36bd09
music: add option to disable article sort names
Add a setting to remove hard-coded sort names based on articles.

This feature is nice, but does not work with some non-english music.
Those individuals should have the ability to disable it.

The implementation honestly is not the greatest, primarily because it
does a 100% reload when it could just regenerate the library. Auxio's
current music model isn't really designed for that, so it will do this
until a need to that kind of "soft reload" really arises.

Resolves #359.
2023-02-20 18:34:01 -07:00
Alexander Capehart
975f239b8b
detail: add metadata to song detail view
Add metadata items to the song detail view. Should provide a useful
view into how Auxio is interpreting song metadata.

Resolves #330.
2023-02-19 21:59:58 -07:00
Alexander Capehart
213409924b
playback: switch to ffmpeg extension
Switch to the FFMpeg ExoPlayer extension, which should enable support
for ALAC while also retaining support for FLAC below Android 8.
2023-02-13 09:06:45 -07:00
Alexander Capehart
c9ddda2ebd
home: fix visual clipping on shuffle fab shadow
Fix visual clipping on the shuffle FAB's shadow.

Turns out padding, while slower, is actually the better inset handling
method, as it allows me to avoid visual clipping in some cases.
2023-02-12 21:53:34 -07:00
Alexander Capehart
1826ae3215
deps: update to mdc 1.8.0-alpha01
FINALLY update to MDC 1.7.0. After over half a year.

I have been continually blocked by doing this due to this absurd ripple
bug that was so continually frustrating. Today, I finally figred out
how to hack a fix in by using R E F L E C T I O N and manually
disabling the bugged code path since google apparently can't be bothered
to fix it.

Now, you might wonder why I didn't update to 1.8.0. That is because
there is ANOTHER RIPPLE BUG. THIS TIME WITH THE TAB LAYOUT. AND ONLY IF
IT'S IN A COLLAPSING TOOLBAR LAYOUT. Can't wait to finally use the new
1.8.0 features in December!
2023-02-12 21:45:47 -07:00
Alexander Capehart
3c211a1d17
list: make sorting direction explicit
Make sorting direction (ascending/descending) explicit in the UI and in
the code.

Instead of a boolean flag, two distinct "ascending" and "descending"
options are used instead. This should be much clearer.
2023-02-02 21:44:15 -07:00
Alexander Capehart
90843918d6
settings: use manual nav graph
Manually use our own navigation graph in the new settings view.

This avoids a crash that occurs with the default preferences navigation
(on some devices) where the differing app IDs between debug and release
makes it so that the fragments cannot be found. Because you know.
Android.
2023-01-20 18:38:10 -07:00
Alexander Capehart
fb93b82b2b
ui: redesign headers
Redesign the header component to be more aligned with M3 guidelines.

This includes moving the divider to the top when reasonable, using a
smaller font size, and using a tinted coloration to separate itself
from the list contents.
2023-01-16 19:35:16 -07:00
Alexander Capehart
4a7bc4e511
settings: split up ui
Split up the settings ui into four categories.

This should reduce the visual load on the user as Auxio continues to
accrue possible configuration options.

Resolves #323.
2023-01-16 16:14:51 -07:00
Alexander Capehart
a0aaec98d0
music: extend non-standard artists to id3v2
Just pre-emptively add support for TXXX variations of the non-standard
vorbis artist fields to the ID3v2 parser.

I'd imagine the naming convention will be similar between them, so why
not.
2023-01-16 09:33:20 -07:00
Alexander Capehart
ac9f50c0a0
settings: do not use sharedpreference listener
Switch back to using settings-specific listeners rather than the
SharedPreference listener.

Again, this is due to the need to decouple android code from settings.
It also allows us to fully obscure the details of what settings we are
actually working with.
2023-01-06 19:20:56 -07:00
Alexander Capehart
80e85bfffa
replaygain: add reset button to pre-amp dialog
Add a button to reset the pre-amp to it's default setting.

This way, you don't have to specifically seek to the 0 dB value in the
dialog in order to reset it.
2023-01-01 12:29:28 -07:00
Alexander Capehart
dc46c49f07
list: add editable list listener
Add a listener for the editable lists in the queue and tab config
views.

This simply reduces the amount of duplicated code within both of those
views.
2022-12-31 13:47:13 -07:00
Alexander Capehart
f416bb0d00
music: localize list values
When resolving the names of several artists or genres, use a localized
separator instead of a comma.

This makes list values more correct in other languages, if properly
translated.
2022-12-30 16:34:28 -07:00
Alexander Capehart
cf6e7a5f0d
music: add support for album date ranges
Add support for albums to have a range of dates.

Often compilation albums will have Songs released in different months
or years, so it makes some sense to show a date range rather than just
the ealiest date.

The only point at which the earliest date is still shown is in the home
view's popup, as maxiumum dates in a date range are not sorted by, and
so showing it doesn't make sense.
2022-12-30 16:09:41 -07:00
Alexander Capehart
94e1b71d9b
about: update links
Update links in the about page to direct to the new wiki pages.
2022-12-28 15:19:57 -07:00
Alexander Capehart
195ea074ca
playback: re-add play from genre
Re-add the "Play from genre" setting.

It's much easier to implement this now than prior with the picker
framework, so may as well retain consistency.
2022-12-27 16:24:52 -07:00
Alexander Capehart
cce7b766d7
all: reformat code
Reformat all project code
2022-12-26 19:59:27 -07:00