The stock overlay is not sufficient for our needs, as:
1. It seemingly cannot be set up without missing certain touch areas or
disabling the touch area of the speed dial itself
2. The scrim can't be evenly applied everywhere in the app due to the
nested expore UI.
So, modify the speed dial to work without a scrim and reimplement the
overlay touch behavior manually.
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.
Add configuration options for:
- Using windows-compatible paths with \ separators and C:\\ volume
prefixes
- Switching between relative and absolute paths
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.
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.
By default, bottom sheet handles have 16dp bottom padding for some
reason. This looked really bad on the dialogs, so remove it there.
Only keep it on the queue handle, since it has a companion label that
will overlap if not lopsided.
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.
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
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.
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.
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.
Use a real mdc drag handle on the queue sheet.
The accessibility functions won't even be enabled, but that
would need to be communicated in a special way anyway.
Make the app UI properly handle album covers that are not 1:1, instead
of just cropping them.
This required switching to Coil's rounded corners transformation
outright so that the non-1:1 image can sit inside the CoverView in a
way that actually looks good
I'm pretty confident this will work, but there might be some edge cases
since coil's transformation is really finicky.
Resolves#355.
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.
Move the music editing state to the toolbar.
This should be signifigantly clearer than prior, at the cost of it's
"universality" implying that renaming should be available when it
actually won't be.
Fix two issues with the ways items are laid out:
1. Remove the automatic span size lookup. Now that ConcatAdpater is
used, this basically becomes impossible to really leverage.
2. Use a divider item instead of a divider item decoration. The
latter is too buggy in many contexts, like the search view.
Resolves#426Resolves#444
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.