Refactor the styling again to make all styles start with the Auxio
prefix. Also try to phase out the usage of layout_width and
layout_height in most places, since those can cause a lot of
frustration if they aren't used in the layout they are expected in.
Completely refactor the detail module. This is for a few reasons:
- Prevent data regeneration every time a fragment re-creates.
- Make DetailModel follow the customs of other ViewModels.
- Simplify layouts into a single detail item to reduce code
complexity.
Currently sorting doesn't work, but that is still being worked out
as the legacy SortMode continues to be phased out of Auxio.
Make playback/about UIs follow the new liftOnScroll and edge-to-edge
idioms. This finally allows me to collapse a lot of duplicate code
into MainActivity and in general reduce code mess.
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.
Move the progress bar to the bottom of CompactPlaybackFragment in both
orientations. Doesn't look the nicest right now, but will be when the
new home fragment is created.
Fix a plethora of style issues that lead to a worse touch experience.
I tried to optimize these solutions so that they didn't reduce the layout
density too much. More updates may have to be made in the future.
Tweak some dimens so that they line up with the 8dp grid. This doesn't
apply to all of them since some of them are fined-tuned [such as the
fast-scroller]. The latter would likely be migrated in the later UI
overhaul.
Refactor styles again, this time trying to seperate the more
layout-specific attributes so that layouts become more re-usable.
This also updates the naming conventions of styles.
Instead of using @color/background directly, use ?attr/colorSurface
so that changes can be made to the theming easier. This also
resolves some more minor issues regarding certain widget's
backgrounds.
Do two things to the margin and padding system:
- Remove the redundant padding/margin dimens and replace it with a unified "spacing" dimen namespace
- Make most margin and padding dimens follow the divisible-by-8 rule in material design
Finally move the app from AppCompat the Material Bridge theme. This does a couple things:
- Removes need for runtime styling of material widgets used before
- Allows for a better dialog style [But only after a ton of tinkering and weird hacks]
- Makes theming slightly easier [After all the dumb migration bugs and technicalities are fixed]
I never want to do something like this again. UI styling on android is a nightmare.
Change the album detail layout to rely on a RecyclerView entirely instead of a NestedScrollView, at the cost of some functionality I'll need to re-add.
Instead of converting int-genres to normal genres during the music loader process, instead do it in the Genre object as a lazy initializer, so that the names remain [Probably] unique.
Heavily change how music loading works so that artists arent redundantly loaded, genres are primarily song-based instead of genre based, and songs are now bound to their correct genres.