Commit graph

479 commits

Author SHA1 Message Date
Alexander Capehart
d909f2d98e
detail: make playlist view use collapsing toolbar 2024-07-20 13:13:56 -06:00
Alexander Capehart
6ea7233626
detail: make genre view use collapsing toolbar 2024-07-20 13:13:21 -06:00
Alexander Capehart
0eb3ede8ec
detail: make artist view use collapsing toolbar 2024-07-20 12:54:04 -06:00
Alexander Capehart
86e2fd7a89
detail: make album view use collapsing toolbar 2024-07-20 11:19:18 -06:00
Alexander Capehart
a959933036
ui: use z transitions everywhere
Semantically correct, and now reasonable since the UI is no longer
clipped.

Will do shared element at some point once they have predictive
back support.
2024-07-04 22:26:59 -06:00
Alexander Capehart
7995d3ac98
ui: material 3.1 (first draft)
I'm mostly cowboying through patching things to look nice. I'll re-add round mode
configs and actually try to migrate to standard spacing later.
2024-04-17 22:07:50 -06:00
Alexander Capehart
2af90c2427
detail: add replaygain values to song properties
This should allow for clearer debugging.
2024-01-06 18:46:13 -07:00
Alexander Capehart
0675ce8a03
music: rename playlist when reimporting
When reimporting an M3U file into a playlist, if the name differs, then
initiate a rename dialog so the user has a choice on whether they want
to use the new name or not.

This does kinda desecrate the "Rename" decision a bit, but it's still
to the user the same.
2024-01-01 20:21:39 -07:00
Alexander Capehart
c5a3f72b99
music: add more playlist messages
Add more types of playlist messages corresponding to other actions, so
they can be indicated in the UI only when the process is complete.

This is somewhat incomplete. It does not include indicating errors for
other playlist operations (Which I want to do), and neither does it
handle situations in which some playlist operations and up reducing
to others (i.e import -> create). I need to do that later.
2023-12-23 22:02:55 -07:00
Alexander Capehart
21970349cc
music: add ability to import into playlists
Add a menu option that allows you to import a playlist file into an
existing playlist.

This is useful for keeping Auxio playlists up to date with a remote
source.
2023-12-23 20:50:40 -07:00
Alexander Capehart
3f1f2f5c2d
music: implement exporting frontend
Implement the exporting dialog and flow in all places in the app.
2023-12-23 12:16:02 -07:00
Alexander Capehart
364675b252
music: revamp paths
Revamp paths with an entirely new abstraction that should improve
testability and integration with M3U playlists.
2023-12-19 22:14:59 -07:00
Alexander Capehart
d6801354ce
music: only include explicit albums in count
Only include an artists explicit albums (ones directly linked w/album
artist) in their count.

This is arguably more appropriate than the prior behavior, given
Auxio's collaborator/artist distinction.

Resolves #581.
2023-11-12 11:26:27 -07:00
Alexander Capehart
bf3c30e8af
music: add demo release type
This is part of the MusicBrainz spec, but I didn't think of implementing
it. Turns out it's stupidly common among music releases, so may as well.

Resolves #590.
2023-11-12 11:12:59 -07:00
Alexander Capehart
52697ef891
detail: allow adding to playlist in playlist
The playback view can still add to a playlist from a playlist, so I
have to implement this navigation route no matter what.
2023-11-11 23:01:51 -07: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
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
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
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
Alexander Capehart
ed08559b94
all: fix merge junk 2023-07-25 19:58:03 -06:00
Weblate (bot)
816ab04252
Translations update from Hosted Weblate (#524)
* weather: introduce display precipitation

Introduce a new datatype called DisplayPrecipitation that optimizes the
precipitation level for UI display.

This is primarily meant to fix improper precipitation displays when
values lower than 0.1 in are shown, albiet that may need to change
eventually.

* Translated using Weblate (Hindi)

Currently translated at 100.0% (283 of 283 strings)

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

* Translated using Weblate (Lithuanian)

Currently translated at 100.0% (283 of 283 strings)

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

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (283 of 283 strings)

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

* Translated using Weblate (Punjabi)

Currently translated at 100.0% (36 of 36 strings)

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

* Translated using Weblate (Hindi)

Currently translated at 100.0% (36 of 36 strings)

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

* Translated using Weblate (Spanish)

Currently translated at 100.0% (283 of 283 strings)

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

* Translated using Weblate (Polish)

Currently translated at 100.0% (283 of 283 strings)

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

* Translated using Weblate (Finnish)

Currently translated at 93.2% (264 of 283 strings)

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

---------

Co-authored-by: Alexander Capehart <alex@oxycblt.org>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: Vaclovas Intas <vaclovas1999@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: Eryk Michalak <gnu.ewm@protonmail.com>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
2023-07-25 19:58:03 -06:00
Alexander Capehart
a1947c4102
home: switch to sort dialogs
Switch the home view to sort dialogs, and simplify away any listeners
that expected popup menus.
2023-07-25 19:57:59 -06:00
Alexander Capehart
3340914c51
detail: switch to sort dialogs
Use the new sort dialogs on in detail views.
2023-07-25 16:47:25 -06:00
Alexander Capehart
ec7f2d979a
list: add sort menu scaffold
Add the base dialog that will replace the prior sort menus in-app.
2023-07-25 16:04:02 -06:00
Alexander Capehart
68a9ce7b09
build: update deps
I didn't fully keep track of what I did this time, mostly since I was
busy wrangling some of the insane build issues from this gradle update.
2023-07-25 14:35:26 -06:00
Alexander Capehart
32a0d97e5d
list: add ability to play/shuffle songs in menu
Add play and shuffle options for all song menus.

These will override the shuffle state, unlike other song play
interactions.

This required a good bit of refactoring to menu, some of which
might be ported to other commands in future changes.
2023-07-11 15:09:30 -06:00
Alexander Capehart
3908400418
playback: use playsong settings
Use PlaySong modeling within settings too. This largely completes the
PlaySong refactor and fully adds the ability to play songs by
themselves as an option.

Resolves #424.
2023-07-11 11:58:05 -06:00
Alexander Capehart
7495a59ab1
playback: add scaffold for new playback mode
Add the scaffold for PlaySong, a new version of playback modes that
- Supports playback of a song by itself, requested by #424.
- Will make direct playback from the song menu feasible (given
additional reworks)
- Prevents the invalid state of playing a song by it's playlist,
as the sealed interface implementation of PlaySong requires a Playlist
to be provided to it's respective variant.
2023-07-06 20:07:16 -06:00
Alexander Capehart
0cd59ce4e0
all: redocument navigation system
Add documentation for the new navigation system, which largely
completes this change.
2023-07-04 21:44:34 -06:00
Alexander Capehart
7239256e27
list: unify viewmodels
Unify the disjoint selection and menu viewmodels into a single
ListViewModel.

This is technically not fully done, as MenuViewModel remains as a
backing element of the menu dialogs, but otherwise that's it.
2023-07-04 20:37:55 -06:00
Alexander Capehart
9e5b737d1a
playback: refactor navigation commands
Unify the artist and genre picker commands into a single event
(like others), and also make the playback panel correctly respond to
album/artist navigation events.
2023-07-04 14:24:46 -06:00
Alexander Capehart
a6a3eceb7b
music: re-add add -> new playlist route
Re-add the add to playlist -> new playlist route that was accidentally
removed at some point.
2023-07-04 13:27:23 -06:00
Alexander Capehart
14107c9444
all: standardize nav consume usage
Standardize navigation command consumption to only occur when a
navigation route has *definitively* ended. If more commands could
come, observe them. Otherwise, consume immediately.
2023-07-04 13:20:13 -06:00
Alexander Capehart
ab2b853737
list: expand item menus
Bit of a megapatch that:
- Adds dedicated play, shuffle, and view items to all item menus
(songs haven't been fully implemented yet)
- Adds icons to all item menus
- Re-adds enabled/disabled items to menus
- Makes menu action naming conventions more consistent with the rest
of the app
2023-07-04 11:15:19 -06:00
Alexander Capehart
d6a20fedb3
all: use menu everywhere
Use the new menu system in all applicable places.

More consideration is needed right now on whether the toolbars should
also have menu items, so they remain unchanged right now.
2023-07-03 16:52:42 -06:00
Alexander Capehart
c1158b1a07
list: add menu dialog framework
Add a dialog that shows menu information as a bottom sheet instead of as
a PopupMenu.

This did not take as much finessing of BottomSheetBehavior as the main
playback UI framework did, just some style redefinitions.
2023-07-03 14:28:32 -06:00
Alexander Capehart
a1efb0c34a
ui: rename menu resources
Switch from redundant menu_* prefixes to more use-specific prefixes
used elsewhere.
2023-06-30 20:31:15 -06:00
Alexander Capehart
fcbce0fb98
ui: fix issues from new nav
Fix miscellanious issues from the flattened nav graph system.

Nowhere near enough, largely counting on the planned bottom sheet menus
to eventually be able to ignore most of these issues.
2023-06-27 20:05:04 -06:00
Alexander Capehart
9b0e39919b
music: simplify playlist decision events
Simplify the 4 stateflows controlling when playlist decision dialogs
must be opened to just one enum.

This is like the detail view, and makes the amount of observers I have
to spin up much smaller.

Eventually, most of even these observer calls will be collapsed into
the menu itself.
2023-06-27 19:43:15 -06:00
Alexander Capehart
07e9ca8ef6
ui: flatten nav graph
Flatten the navigation graph into a single "main" graph that links
home to both explore and preference fragments.

***This massively breaks the app in it's current state***. Further
changes and refactors are needed to get this back to working.
2023-06-27 17:30:11 -06:00
Alexander Capehart
31d647123f
music: use set for child information
Use sets for all child music information.

Unlike parent information, which usually has an ordering derived from
file information, child music information more or less doesn't, and
will be consistently re-interpreted by the app to apply user-configured
sorts.
2023-06-13 10:44:53 -06:00
Alexander Capehart
55597e4976
ui: fix incorrectly aligned disc headers
Fix an issue where disc headers would be at the top when no subtitle as
available.

I really thought that TextView.text would be null if I set it to null.
Instead it becomes an empty string, breaking the visbility change. Fix
it by just using the disc value.

Resolves #472.
2023-06-07 09:23:16 -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
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
c2def19aee
ui: handle playing indicator edge cases
Handle two edge cases identified with the playing indicator behavior:
1. When enqueing songs from another parent, the prior parent is still
indicates as "playing" when it kind-of isn't.
2. When playback is stopped, the parent is not reset, and thus will
still be indicated as "playing" after the song has disappeared. This
is rarer and should be resolved in other ways, but the solution to
1 also fixes this.

Resolves #380.
2023-05-25 13:16:58 -06:00