Commit graph

1497 commits

Author SHA1 Message Date
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
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
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
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
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
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
Alexander Capehart
b2a3416289
image: simplify coverview internals
Remove the setting responsiveness from CoverView, given that it really
doesn't need to that anymore.
2023-07-25 19:58:03 -06:00
Alexander Capehart
a201cb15bc
list: rework sort dialog internals
Change the sort dialog to allow the following:
1. Allow null initial sort values in the dialog.
2. Make saving only possible if the sort changed.
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
4b49174ced
ui: return to old nested nav
It just...started working again. Beats me why.

Start using it again, but with most of the changes in-tact. I like the
way it looks.
2023-07-22 12:10:54 -06:00
Alexander Capehart
124726693e
list: fix incomplete scrolling in menu dialog
Fix an issue where the options in MenuDialog could not full scroll for
an unknown reason.

Derived from some absurd issue where BottomSheetBehavior dislikes
ConstraintLayout's spacing and decides to improperly allocate enough
space for the RecyclerView to scroll.
2023-07-12 20:03:01 -06:00
Alexander Capehart
18d9c0adf0
ui: further tweak bottom sheet
Switch back to the default MDC-provided animations, just without the
ugly alpha change, and fix any auxillary issues that come with that.
2023-07-12 09:59:53 -06:00
Alexander Capehart
9111a6eec7
ui: tweak bottom sheet dialog transitions
Use a native slide animation for entering/editing bottom sheet dialogs,
which looks a good amount nicer overall.
2023-07-11 21:14:22 -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
ecc84dd8c8
playback: fix parent play mode not being applied
Caused by a trivial problem with key use.
2023-07-11 14:44:30 -06:00
Alexander Capehart
4275fdbcf0
music: rename mode -> type
Rename MusicMode to MusicType.

The original naming was always a bit clunky given that it referred to
both settings and data configuration. I feel that "Type" is probably
better overall.
2023-07-11 12:08:51 -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
97816e349a
build: update deps
Media3 -> 1.1.0. Update project info accordingly to use Media3
ExoPlayer instead of standalone ExoPlayer.
Nav -> 2.6.0 once again, probably without the absurd bugs now
Kotlin -> 1.9.0
Kotlin Coroutines -> 1.7.2
LeakCanary -> 2.12
2023-07-11 10:30:41 -06:00
Alexander Capehart
598b3f4173
playback: include playsong datatype
This was apparently not included in the prior commit, whoops.
2023-07-10 15:21:47 -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
7d42d016f1
playback: simplify panel command
Simplify the Panel command from a sealed interface to a enum.

They held no data, better to use an enum and improve switch
performance.
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
b4ffffedfd
list: make adding selection to playlist easier
Make adding selection information to a playlist signifigantly easier
than prior.
2023-07-04 15:19:48 -06:00
Alexander Capehart
b4394c3a4a
util: fix horrible numeric function naming
"nonZeroOrNull" is actuallly more apt as "positiveOrNull".
2023-07-04 15:16:08 -06:00
Alexander Capehart
7adf7f7beb
music: index negative replaygain tags
Caused by an absurd error stemming from absurd helper function naming.
2023-07-04 15:09:47 -06:00
Alexander Capehart
ada446767d
image: make coverview respond to settings
Make CoverView respond to all cover settings and the round mode
setting.
2023-07-04 15:01:12 -06:00
Alexander Capehart
e490ff64c1
playback: make bar action respond to settings
Now that the navigation graphs are unified, the playback bar now has to
respond to when it's custom action setting changes.
2023-07-04 14:38:33 -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
39b1fd1057
menu: move item logic from listfragment
Move menu action logic from ListFragment into corresponding
MenuFragments.
2023-07-03 20:05:49 -06:00