Re-add sorting to HomeFragment, except heavily improved. The major
improvement here is the addition of song sorting, which was a heavily
requested feature judging by #16. The setting does not save yet and
is not present in the detail fragments, but it is still a major
milestone for the new home ui.
Drop the Bridge theme and completely migrate to material. This is for
two reasons:
- To make Material You less painful
- Improve coloring [Dark mode, other colors, etc].
Most of the previous UI elements were kept [no rounded corners], but
did come at the cost of removing the hint tagline from the search bar
since there was simply no good way to integrate it. There are also
some other miscellanious issues [Weird selection menus, dividers are
not migrated still], but those will be fixed in future commits.
Make HomeFragment's AppBarLayout lift when the data scrolls. This
was something I wanted to do initially, but kept running into issues
with. Turns out the addition of my custom AppBarLayout made this pretty
trivial all things considered. The entire app now follows this idiom.
Improve the search UI by making it edge-to-edge and adding the
liftOnScroll idiom. It does come with the caveat of walking on
eggshells to get the liftOnScroll code working, but its okay. It
may be improved in the future.
Make the queue UI follow the liftOnScroll idiom that is already used
in the detail views. This also tweaks the edge-to-edge behavior so
that this view properly works.
Fix two annoying appbar issues:
- Appbar will collapse if the navigation sequence is too fast
- Tab ripple would paint over the indicator unless the ripple was unbounded [???]
Do the final utility refactor, placing custom views into a .ui
submodule and the general utils into a new .util module. This
system seems to stick well.
Add a nice elevation effect to queue dragging operations. This has no
purpose outside of looking nicer. Luckily it doesn't effect queue
behavior at all.
Remove the janky requestFocus/clearFocus called on SearchFragment
and replace them with InputMethodManager calls. This is generally
more user friendly, especially when returning to search from
navigation.
Remove the SHOW_ALL variant from DisplayMode, replacing it with null
in SearchFragment where it was initially used. This allows all the
home pager fragments to be combined into a single HomeListFragment
that simply chooses a DisplayMode.
By default, ViewPager2's sensitivity can result in vertical scroll
actions being registered as horizontal scroll actions, which is bad
for UX. Fix that by reflecting into the internal RecyclerView and
changing the touch slope value.
Merge LibraryFragment, SongsFragment, and others into a new fragment
called HomeFragment. This is the beginning of the Auxio UI overhaul.
This has caused some regressions here and there, but these will be
rectified over time.