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.
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.
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.
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.
Unify corner radius and icon size configurations under a new sizing
property. This is largely driven by a need to remove the typical
half-width icon sizing, as it results in blurry playing indicators
in some cases. This also co-incides with a change of parent image
icon sizes to 32dp over 28dp.
Resolves#415.
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.
Fix visual clipping on the shuffle FAB's shadow.
Turns out padding, while slower, is actually the better inset handling
method, as it allows me to avoid visual clipping in some cases.
FINALLY update to MDC 1.7.0. After over half a year.
I have been continually blocked by doing this due to this absurd ripple
bug that was so continually frustrating. Today, I finally figred out
how to hack a fix in by using R E F L E C T I O N and manually
disabling the bugged code path since google apparently can't be bothered
to fix it.
Now, you might wonder why I didn't update to 1.8.0. That is because
there is ANOTHER RIPPLE BUG. THIS TIME WITH THE TAB LAYOUT. AND ONLY IF
IT'S IN A COLLAPSING TOOLBAR LAYOUT. Can't wait to finally use the new
1.8.0 features in December!
Redesign the header component to be more aligned with M3 guidelines.
This includes moving the divider to the top when reasonable, using a
smaller font size, and using a tinted coloration to separate itself
from the list contents.
Redocument the detail, home, image, and list modules.
Much of this project's documentation has drifted from actual
functionality, and newer code is pretty sparely documented.
This commit seeks to rectify that by redocumenting every source
file in this project.
Refactor all Backend instances into a new package called extractor and
a new structure called "Layer".
Layers are no longer generalized into an interface. Instead, they build
on eachother in order to produce a correct output of raw songs.
One of these layers is a stub class to eventually implement caching.
This changeset also phases out the "Ignore MediaStore tags" setting, as
it is no longer needed.
Auxio tried to leverage built-in android string attributes for Ok and
Cancel while still completing them for other translations that were not
supported by the OS.
Turns out this was a terrible idea when I switched to Weblate, which
has no knowledge of this trick and could lead to a misleading
translation value. Remove it.
Resolves#215.
Move all menu functionality from long-click to a menu button.
This is in preparation for #93, as I need to free up the long-click
for a selection option. The spacing isn't really consistent at all,
but that's because I wanted to make something that looks right
depending on the context.
Update transitions in the home fragment to X-axis.
I noticed a visual issue in the detail transition in the existing
version stemming from how the main fragment's drawing is clipped by
the bottom sheet, resulting in a less-than-ideal Z-axis transition.
While I wanted to fix this by attempting to switch to inset based
bottom sheet management, I still need to wait for more changes in
order to successfully pull that off, and hence I'll be reverting it
soon.
Moving these transitions to X-axis prevents this visual issue while
still being roughly semantically similar.
Unify the background state layers of the entire app by overriding
colorControlHighlight.
Lots of components still use it, so it's beneficial to make it
consistent with the rest of the app theming.
Update MDC to the alpha version in order to use some extra features.
I was planning to switch to the new MaterialSwitch, but alpha03 has
this insane crippling issue with ripples that blocks such. Use alpha02
and prep the app for the addition of the switch.
Remove the ripple resources and replace them with their system
counterparts.
This is to remove redundancy in-app and make the widget more consistent
with other android widgets.
Further rework the button layout to be alike to other modern widgets.
This changeset transforms the play button into a FAB-ish thing,
makes spacing coherent between the uses of each layout, and adds
spacers to make the buttons layout in a more appealing way.
Completely rework Auxio's iconography based on the new material symbols
icon set.
This does the following:
1. Switches the sharp + filled icon style to an outlined + round icon
style.
2. Removes 32dp icons from everywhere except the playback panel.
This does not:
1. Actually handle optical sizes right. This is going to take some more
work to make it harmonious with the current UI.
2. Update margins in some places to be harmonious with the new icons.
This is also going to take some more work to do properly.
Remove the TitleMidLarge style, replacing it with more Material3
attributes.
This finally removes all of the non-standard text styles. There is
still the two TitleMedium styles, but this is considered okay.
In the playback view, TitleMidLarge has become TitleLarge, which
honestly works quite well, as the same text styles are used in the
detail views.
Completely rework app typography.
Today I found out that inter has a tool that allowed you to generate
line spacings for a particular font size. Several hours later, I
regenerated the entirety of Auxio's typography to use this new system.
Moreso, I also tried to eliminate some of the non-standard text styles
that I was using prior. That failed. Mostly there's two edge-cases
regarding title bolding and the playback view that I simply cannot
work through right now, since M3's typography system is horribly
restrictive.
Remove the temporary 28dp hack that was applied to the playback bar.
This finally puts the playback bar in line with all other icon
components. The playback panel is still weird, but that's okay since
it's a full screen view and the buttons can take up more space.
Since I absolutely hate change, I had to effectively frog-boil myself
in order to do this, first downsizing the icon from 32dp to 28dp, and
then from 28dp down to 24dp. I can't believe I care about this so much.
Completely rework the excluded directory system into a new
"Music Folders" system.
This is implemented alongside a new "Include" mode. This mode
allows the user to restrict music indexing to a parsicular folder.
I've been reluctant to add this feature, as having two separate
options seemed bad. This resolves it by effectively packing whether
to include/exclude directories into a single option.
Resolves#154.
Completely rework the way Auxio handles icons.
This is mostly two changes:
1. Removing ImageButton/StyledImageButton for MaterialButton. This is
done by abusing MaterialButton's theming options to make it only show
an icon.
2. Standardizing icon sizes into small, medium, and large categories.
Small is the default, Medium and Large are for edge-cases like the
playback icons which look horrible at 24dp.
3. Abusing the Toolbar to make it follow Material 3 guidelines. This
mostly involved removing the strange icon sizing and correctly padding
the view.
4. Reworking the playback bar to use more, smaller icons, making it
more like a Toolbar in the process (which I like).
Rework the style of all album covers in the app to be more in line with
the new track number style.
This is mostly comprised of adding a new background to all cover views
and rescaling error icons to be smaller than they would normally be.
This also includes a change in the cover/track background color from
colorSurfaceVariant to colorOnSurfaceInverse, which seems to provide
the best visibility in all cases.
These changes also apply to the track number views.